[R-sig-Geo] Saving jpeg world files
Tom Mulholland
tmulholland at bigpond.com
Wed Nov 29 12:10:20 CET 2006
Doh! I had completely forgotten about rgdal. That's exactly the route I
need to take.
Thanks
Roger Bivand wrote:
> On Wed, 29 Nov 2006, Mulholland, Tom wrote:
>
>> I am beginning to get a little bit bog eyed with the myriad of options
>> there are within the various spatial packages. I am trying to find ways
>> of porting the results I get within R into a GIS environment and I can't
>> seem to see anything that would let me write a jpeg file with an
>> appropriate world file.
>
> The most direct route is to use a SpatialGridDataFrame or equivalently
> SpatialPixelDataFrame, and writeGDAL() in rgdal. That gives very good
> support for GeoTiff files. The JPEG driver is present, but much more
> limited than GeoTiff - it has to be either single-band or three-band, and
> only Byte data. For released rgdal, you would write the jpeg from a single
> variable by stretching it over 0-255, taking integers, writing as GeoTiff
> to a temp file, opening the file as a GDAL data set, copying to JPEG,
> and saving:
>
> library(sp)
> library(rgdal)
> data(meuse.grid)
> coordinates(meuse.grid) <- c("x", "y")
> gridded(meuse.grid) <- TRUE
> # quantize
> rd <- range(meuse.grid$dist)
> meuse.grid$idist <- as.integer(255*(meuse.grid$dist-rd[1])/(rd[2]-rd[1]))
> # write temporary GTiff
> tf <- tempfile()
> writeGDAL(meuse.grid["idist"], tf, drivername="GTiff", type="Byte")
> # open temporary file as GDAL dataset and copy to JPEG
> x <- GDAL.open(tf)
> dx <- copyDataset(x, driver="JPEG", options="WORLDFILE=YES")
> # and write out
> td <- tempdir()
> tf1 <- paste(td, "output.jpg", sep="/")
> saveDataset(dx, tf1, options="WORLDFILE=YES")
> GDAL.close(x)
> GDAL.close(dx)
> # check to see if worldfile present and OK (*.wld use cell centre
> # registration, the bounding box goes to the cell boundaries
> list.files(td)
> slot(meuse.grid, "grid")
> file.show(paste(td, "output.wld", sep="/"))
>
> Had rgdal and the underlying GDAL library allowed jpeg files to be written
> directly, this would be simpler. However, you may find that the software
> that reads jpeg files also reads GeoTiff files, which are far more
> flexible, taking many more data types, including floating point values.
>
> For those interested in image overlays in Google Earth, this recipe lets
> you make PNG files too (but so far I haven't got GE to read a worldfile to
> place the image, and of course GE wants geographical coordinates). PNG
> support an alpha channel too.
>
> Hope this isn't too complicated. We probably need an interface between im
> and sp classes so that getting from im to GDAL is simpler.
>
> Roger
>
>
>> I have managed to create an ASCIIGrid but my first tests seem to
>> indicate that not all grids are created equally. My experience with some
>> of the "free" windows GIS applications is that jpg files seem to be more
>> universally supported, so I thought that might be a more fruitful way to
>> go. I will then have to worry less about making sure my output is the
>> type that can be imported.
>>
>> It looks to me as if the class "im" in spatstat is conceptually
>> straightforward to process. It looks as if all the attributes are there
>> to create a world file. Since my data is already projected it would seem
>> that I should be able to simply use the jpeg device for output (not that
>> I have any idea how I'll go about that) and create a text file to go
>> along with it.
>>
>> The first question is 'Am I missing something really simple?' and the
>> second is "Is there a straightforward solution that I have already
>> missed."
>>
>> Tom
>>
>> platform i386-pc-mingw32
>> arch i386
>> os mingw32
>> system i386, mingw32
>> status
>> major 2
>> minor 4.0
>> year 2006
>> month 10
>> day 03
>> svn rev 39566
>> language R
>> version.string R version 2.4.0 (2006-10-03)
>>
>> Tom Mulholland
>> Senior Demographer
>> Applied Research and Modelling
>> State and Regional Policy
>> Department for Planning and Infrastructure
>> Perth, Western Australia
>> +61 (08) 9264 7936
>>
>> _______________________________________________
>> 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