[R-sig-Geo] changing the data type of a gdal dataset

Alan Swanson alan.swanson at umontana.edu
Fri Nov 20 05:54:42 CET 2009


Dear R gurus,
I have a function that applies various model prediction functions over a 
set of large image files, producing a single output file with the same 
spatial extent.  Due to memory issues, I'm breaking the input and output 
files into tiles.  I have this working except for one small issue 
regarding data types. 

I create a new gdal transient dataset by copying an existing one using:
handle <- GDAL.open(fullnames[1],read.only=T)
tds <- 
copyDataset(handle,driver=new('GDALDriver','GTiff'),strict=F,options=NULL)
...
putRasterData(tds,t(preds), offset= c(strt[1], 0))
...
saveDataset(tds,outfile.p)
GDAL.close(tds)
      
Which works great, except that my output always needs to be floating 
point, but the input may be byte or integer, in which case the output 
dataset retains the format of the input file.  So I either need to 
change the data type of the new file, or create the new file using:
tds <- new("GDALTransientDataset",driver,dims[1],dims[2], type="Float32")

and then copy the spatial reference information from an existing 
dataset.  I can't figure out how to do either of these.  Your help would 
be much appreciated.
Cheers,
Alan



More information about the R-sig-Geo mailing list