[R-sig-Geo] intermittent writeGDAL problems

Tim Keitt tkeitt at gmail.com
Fri Jul 13 18:40:20 CEST 2007


This is perhaps because the 'reg.finalizer' function in R did not
originally have the 'on.exit' option and so dangling handles would be
left at the end of an R  session. I just checked and the 'on.exit'
option is now available, so we need to enable it in the code. That
will force closing of all GDAL handles on exiting R and should solve
the problem.

However, the read/writeGDAL function should explicitly close handles
and not leave them to the gc. The (nil) pointer in the debugging
output below is worrisome.

THK

On 7/13/07, Matthew Landis <landis at isciences.com> wrote:
> Hello again,
>
> Now that I've managed to use readGDAL successfully, I'd really like to
> write some img files using writeGDAL, and I'm having some er,
> interesting problems that I can't quite understand.  Pardon the length
> of the message.
>
> For the most part, writeGDAL successfully writes an IMG file that I can
> successfully read into ArcGIS, with projection and all.  But sometimes
> (from an identical writeGDAL command) the file comes up with no
> projection and data values of all zeros.  Checking this in R using
> GDALinfo or readGDAL reveals the same thing - proj4string is NA and all
> values are zero.
>
> BUT, if I use readGDAL again on the same file, it works, and,
> additionally, I can then successfully read it into ArcGIS.
>
> I wonder if there is a buffer issue where the writeGDAL command doesn't
> quite finish it's business until I nudge it with some other GDAL
> commands.  If I close R before I get the file to read in properly, then
> no amount of readGDAL will get it to come in with projection and data
> values.
>
> I think one solution is to figure out the lower level commands like
> GDAL.open and GDAL.close so I can close handles explicitly, but it would
> be nice to use writeGDAL.  Any ideas?
>
> Here is a sample of the code that produced the problem.
>
>  > library(rgdal)
> Loading required package: sp
> Geospatial Data Abstraction Library extensions to R successfully loaded
>
>  > test <- readGDAL('swe20070220.img')
> swe20070220.img has GDAL driver HFA
> and has 360 rows and 720 columns
> Closing GDAL dataset handle 0x0209ef78...  destroyed ... done.
>
>  > summary(test)
> Object of class SpatialGridDataFrame
> Coordinates:
>    min max
> x -180 180
> y  -90  90
> Is projected: FALSE
> proj4string :
> [+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0]
> Number of points: 2
> Grid attributes:
>   cellcentre.offset cellsize cells.dim
> x           -179.75      0.5       720
> y            -89.75      0.5       360
> Data attributes:
>      band1
>  Min.   :     0.00
>  1st Qu.:    14.00
>  Median :    57.00
>  Mean   :    63.02
>  3rd Qu.:    98.00
>  Max.   :   480.00
>  NA's   :225758.00
>
>  > writeGDAL(test, 'swe20070220_TEST.img', driver = 'HFA')
>
>  > test2 <- readGDAL('swe20070220_TEST.img')
> swe20070220_TEST.img has GDAL driver HFA
> and has 360 rows and 720 columns
> Closing GDAL dataset handle 0x0218f760...  destroyed ... done.
> Closing GDAL dataset handle 0x020b72f8...  destroyed ... done.
> Closing GDAL dataset handle 0x0209f068...  destroyed ... done.
>  > summary(test2)
> Object of class SpatialGridDataFrame
> Coordinates:
>   min max
> x   0 720
> y   0 360
> Is projected: NA
> proj4string : [NA]
> Number of points: 2
> Grid attributes:
>   cellcentre.offset cellsize cells.dim
> x               0.5        1       720
> y               0.5        1       360
> Data attributes:
>      band1
>  Min.   :0
>  1st Qu.:0
>  Median :0
>  Mean   :0
>  3rd Qu.:0
>  Max.   :0
>  > image(test2)
> Closing GDAL dataset handle (nil)... done.
>
>  > rm(test2)
>  > test2 <- readGDAL('swe20070220_TEST.img')
> swe20070220_TEST.img has GDAL driver HFA
> and has 360 rows and 720 columns
> Closing GDAL dataset handle 0x02187368...  destroyed ... done.
>  > summary(test2)
> Object of class SpatialGridDataFrame
> Coordinates:
>    min max
> x -180 180
> y  -90  90
> Is projected: FALSE
> proj4string :
> [+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0]
> Number of points: 2
> Grid attributes:
>   cellcentre.offset cellsize cells.dim
> x           -179.75      0.5       720
> y            -89.75      0.5       360
> Data attributes:
>      band1
>  Min.   :     0.00
>  1st Qu.:    14.00
>  Median :    57.00
>  Mean   :    63.02
>  3rd Qu.:    98.00
>  Max.   :   480.00
>  NA's   :225758.00
>
>  > version              _
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          5.0
> year           2007
> month          04
> day            23
> svn rev        41293
> language       R
> version.string R version 2.5.0 (2007-04-23)
>
> Many thanks in advance
>
> --
> **********************************
> Matthew Landis
> Research Analyst
> Isciences, LLC
> 61 Main St., Suite 200
> Burlington VT 05401 USA
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>


-- 
Timothy H. Keitt, University of Texas at Austin
Contact info and schedule at http://www.keittlab.org/tkeitt/
Reprints at http://www.keittlab.org/tkeitt/papers/
ODF attachment? See http://www.openoffice.org/




More information about the R-sig-Geo mailing list