[R-sig-Geo] convert a shapefile to geotiff with type = "Float32"

Els Ducheyne educheyne at avia-gis.be
Tue Feb 9 12:20:00 CET 2010


Dear all
indeed some drivers cannot handle the NA
just modify them in R before you export and that does the trick

img[img(is.an)] <- (-9999)

Els
On 9 Feb 2010, at 11:56, jgarcia at ija.csic.es wrote:

> I can tell that I have also a problem writting NA values in map exported
> through rgdal (with several drivers, e.g., IDRISI) and imported in
> ArcInfo. The NA values are not properly imported, and at the moment I'm
> exporting NA values as a number (e.g., -9999)
> 
> Javier
> ---
> 
>> Hello again,
>> My writeGDAL statement was slightly wrong.. I didn't have the NA
>> values in quotes.
>> it should be:
>> # attempt to write out a geotiff
>> writeGDAL(shp.grd, "/home/data2/gis/AT_Hailey/r_rasters/test.tif",
>> drivername = "GTiff", type = "Float32", mvFlag = 'NA', options=NULL,
>> copy_drivername = "GTiff")
>> 
>> I can now load the tiff file into QGis correctly, but still not ArcMap.
>> Has anyone found a grid type that loads into Arc smoothly?
>> Hailey
>> 
>> 
>> On Mon, Feb 8, 2010 at 11:56 AM, Hailey Eckstrand
>> <haileyeckstrand at gmail.com> wrote:
>>> Hello List,
>>> I am trying to load in a shapefile and then write it out as a geoTiff.
>>> I am using the package rgdal.
>>> 
>>> library("rgdal")
>>> ## load in my shapefile
>>> shp <-
>>> readOGR("/home/data3/projects/hydrology/vic/output/water_balance/peace_cc/summary",
>>> "peace_base_et_6190")
>>> 
>>> # Just to be clear, here is the structure of my data
>>> str(shp)
>>> Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
>>>  ..@ data       :'data.frame': 3975 obs. of  13 variables:
>>>  .. ..$ jan: num [1:3975] 12 12.4 12.3 12.3 12.5 ...
>>>  .. ..$ feb: num [1:3975] 12.8 13.2 13 13.1 13.5 ...
>>>  .. ..$ mar: num [1:3975] 16.3 16.6 16.8 16.8 17.1 ...
>>>  .. ..$ apr: num [1:3975] 31.2 33.7 30.1 28.1 29.2 ...
>>>  .. ..$ may: num [1:3975] 106 111 101 99 103 ...
>>>  .. ..$ jun: num [1:3975] 99.4 116 121.1 115.1 108 ...
>>>  .. ..$ jul: num [1:3975] 57.8 56.9 74.7 69.5 65 ...
>>>  .. ..$ aug: num [1:3975] 53.8 51.2 59.5 58.6 57.3 ...
>>>  .. ..$ sep: num [1:3975] 44 40.6 52.8 49.4 49.2 ...
>>>  .. ..$ oct: num [1:3975] 32.4 32 35.3 34.1 34.9 ...
>>>  .. ..$ nov: num [1:3975] 12.6 12.9 12.9 12.9 13.4 ...
>>>  .. ..$ dec: num [1:3975] 12.8 13.2 13.2 13.1 13.6 ...
>>>  .. ..$ sum: num [1:3975] 491 510 542 522 517 ...
>>>  ..@ coords.nrs : num(0)
>>>  ..@ coords     : num [1:3975, 1:2] -123 -123 -122 -123 -123 ...
>>>  .. ..- attr(*, "dimnames")=List of 2
>>>  .. .. ..$ : NULL
>>>  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
>>>  ..@ bbox       : num [1:2, 1:2] -127.7 54.2 -120.6 58
>>>  .. ..- attr(*, "dimnames")=List of 2
>>>  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
>>>  .. .. ..$ : chr [1:2] "min" "max"
>>>  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
>>>  .. .. ..@ projargs: chr " +proj=longlat +ellps=WGS84 +datum=WGS84
>>> +no_defs +towgs84=0,0,0"
>>> 
>>> # Convert it to a SpatialGridDataGrame, so I can writeGDAL
>>> gridded(shp) <- TRUE
>>> shp.grid <- as(shp, "SpatialGridDataFrame")
>>> 
>>> # structure of my SpatialGridDataFrame
>>> str(shp.grid)
>>> Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
>>>  ..@ data       :'data.frame': 7130 obs. of  13 variables:
>>>  .. ..$ jan: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ feb: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ mar: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ apr: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ may: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ jun: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ jul: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ aug: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ sep: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ oct: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ nov: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ dec: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  .. ..$ sum: num [1:7130] NA NA NA NA NA NA NA NA NA NA ...
>>>  ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3 slots
>>>  .. .. ..@ cellcentre.offset: Named num [1:2] -127.7 54.2
>>>  .. .. .. ..- attr(*, "names")= chr [1:2] "coords.x1" "coords.x2"
>>>  .. .. ..@ cellsize         : Named num [1:2] 0.0625 0.0625
>>>  .. .. .. ..- attr(*, "names")= chr [1:2] "coords.x1" "coords.x2"
>>>  .. .. ..@ cells.dim        : Named int [1:2] 115 62
>>>  .. .. .. ..- attr(*, "names")= chr [1:2] "coords.x1" "coords.x2"
>>>  ..@ grid.index : int(0)
>>>  ..@ coords     : num [1:2, 1:2] -127.7 -120.6 54.2 58
>>>  .. ..- attr(*, "dimnames")=List of 2
>>>  .. .. ..$ : NULL
>>>  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
>>>  ..@ bbox       : num [1:2, 1:2] -127.8 54.2 -120.6 58.1
>>>  .. ..- attr(*, "dimnames")=List of 2
>>>  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
>>>  .. .. ..$ : chr [1:2] "min" "max"
>>>  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
>>>  .. .. ..@ projargs: chr " +proj=longlat +ellps=WGS84 +datum=WGS84
>>> +no_defs +towgs84=0,0,0"
>>> 
>>> # attempt to write out a geotiff
>>> writeGDAL(shp.grd, "/home/data2/gis/AT_Hailey/r_rasters/test.tif",
>>> drivername = "GTiff", type = "Float32", mvFlag = NA, options=NULL,
>>> copy_drivername = "GTiff")
>>> 
>>> 
>>> The file that I write out only has NA values. I realize something is
>>> wrong as I haven't figured out how to define which column I'd like to
>>> convert.
>>> Thanks in advance,
>>> Hailey
>>> 
>> 
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>> 
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 



More information about the R-sig-Geo mailing list