[R-sig-Geo] raster package: overlay changes geometry
Robert J. Hijmans
r.hijmans at gmail.com
Tue Oct 27 18:04:59 CET 2009
Hi Agus,
This is probably caused by unexpected values in your input TIF file.
The Upper Left Y is lower then the Lower Left Y...
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 1760.0)
Upper Right ( 2640.0, 0.0)
Lower Right ( 2640.0, 1760.0)
I do not know if this is "legal" (I sure hope not); but it would be
useful to have your input file (if you can send it off-list) to see
how to best catch this (and either deal with it correctly or give an
error).
I cannot reproduce this problem with other files
Here is an example that works fine:
library(raster)
fn1 <- system.file("pictures/Rlogo.jpg", package="rgdal")
b <- brick(fn1)
b <- readAll(b)
# create a three band TIF file as in your example
b2 <- writeRaster(b, filename='input.tif', filetype='GTiff', overwrite=TRUE)
fn2 <- 'input.tif'
r1 <- raster(fn2,band=1)
r2 <- raster(fn2,band=2)
r3 <- raster(fn2,band=3)
f <- function(x,y,z,coefs= t(matrix(1:3)))
coefs[1,1]*x+coefs[1,2]*y+coefs[1,3]*z
o <- overlay(r1,r2,r3,fun=f,filename="test.tif", filetype='GTiff',
overwrite=TRUE, progress='tcltk')
extent(b)
extent(b2)
extent(r1)
extent(o)
GDALinfo(fn1)
GDALinfo(fn2)
GDALinfo('test.tif')
# By the way, this would be more efficient
b <- brick(fn1)
overlay(b,fun=f,filename="test.tif", filetype='GTiff', overwrite=TRUE)
Robert
On Tue, Oct 27, 2009 at 3:44 AM, Agustin Lobo <alobolistas at gmail.com> wrote:
> Hi!
>
> I've done:
> r1 <- raster("SDIM0160.tif",band=1)
> r2 <- raster("SDIM0160.tif",band=2)
> r3 <- raster("SDIM0160.tif",band=3)
> f <- function(x,y,z,coefs=calcoefs) coefs[1,1]*x+coefs[1,2]*y+coefs[1,3]*z
> overlay(r1,r2,r3,fun=f,filename="SDIM0160_miL1.tif"filetype='GTiff')
>
> The problem is that the resulting raster does not have the same geometry as
> the input one.
>
> Input:
> $ gdalinfo SDIM0160.tif
> Warning 1: TIFFReadDirectory:Unknown field with tag 37717 (0x9355)
> encountered
> Driver: GTiff/GeoTIFF
> Files: SDIM0160.tif
> Size is 2640, 1760
> Coordinate System is `'
> Metadata:
> TIFFTAG_SOFTWARE=SIGMA PhotoPro 2.4.0.3198
> TIFFTAG_DATETIME=2009:09:22 15:56:48
> TIFFTAG_XRESOLUTION=180
> TIFFTAG_YRESOLUTION=180
> TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
> Image Structure Metadata:
> INTERLEAVE=PIXEL
> Corner Coordinates:
> Upper Left ( 0.0, 0.0)
> Lower Left ( 0.0, 1760.0)
> Upper Right ( 2640.0, 0.0)
> Lower Right ( 2640.0, 1760.0)
> Center ( 1320.0, 880.0)
> Band 1 Block=2640x1 Type=Byte, ColorInterp=Red
> Band 2 Block=2640x1 Type=Byte, ColorInterp=Green
> Band 3 Block=2640x1 Type=Byte, ColorInterp=Blue
>
> Output:
> $ gdalinfo SDIM0160_miL1.tif
> Driver: GTiff/GeoTIFF
> Files: SDIM0160_miL1.tif
> Size is 2640, 1760
> Coordinate System is `'
> Origin = (0.000000000000000,1761.000000000000000)
> Pixel Size = (1.000000000000000,-1.000000000000000)
> Image Structure Metadata:
> INTERLEAVE=BAND
> Corner Coordinates:
> Upper Left ( 0.000, 1761.000)
> Lower Left ( 0.0000000, 1.0000000)
> Upper Right ( 2640.000, 1761.000)
> Lower Right ( 2640.000, 1.000)
> Center ( 1320.000, 881.000)
> Band 1 Block=2640x1 Type=Float32, ColorInterp=Gray
>
>
> Could this be fixed?
>
> Thanks,
>
> Agus
>
> _______________________________________________
> 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