You can also try RSAGA. It is very fast and handy to up-scale large grids (it is perfect to automate processing), and you only need to define the new grid cell size and the up/down-scaling method:
> library(RSAGA) # Download SAGA GIS from www.saga-gis.org and unzip the binaries to: rsaga.env(path="C:/Program Files/saga_vc") # first, convert to the SAGA format: > rsaga.esri.to.sgrd(in.grids="image12m.asc", out.sgrds="image12m.sgrd", > in.path=getwd()) # now resample to 18 m grid resolution using the bilinear resampling: > rsaga.get.usage(lib="grid_tools", module=0) > rsaga.geoprocessor(lib="grid_tools", module=0, > param=list(INPUT="image12m.sgrd", GRID="image18m.sgrd", METHOD=1, DIMENSIONS_CELLSIZE=18, SCALE_UP_METHOD=1)) # convert back to ESRI format: > rsaga.sgrd.to.esri(in.sgrds="image18m.sgrd", out.grids="image18m.asc", > out.path=getwd(), prec=1) The resampling methods implemented in SAGA (see GRID > Tools > Construction > Resampling) are available using the "rsaga.get.usage(lib="grid_tools", module=0)": -SCALE_UP_METHOD:<num> Interpolation Method Choice Available Choices: [0] Nearest Neighbor [1] Bilinear Interpolation [2] Inverse Distance Interpolation [3] Bicubic Spline Interpolation [4] B-Spline Interpolation [5] Mean Value -SCALE_DOWN_METHOD:<num> Interpolation Method Choice Available Choices: [0] Nearest Neighbor [1] Bilinear Interpolation [2] Inverse Distance Interpolation [3] Bicubic Spline Interpolation [4] B-Spline Interpolation Tom Hengl http://spatial-analyst.net -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: vrijdag 25 juli 2008 4:00 To: r-sig-geo@stat.math.ethz.ch Subject: [R-sig-Geo] Spatial Resampling Pujan Raj Regmi <[EMAIL PROTECTED]> writes: > I have a satellite image of 12m spatial resolution (4 bands). I want to > resample to coarser level. i.e. to 18m, 24m,30m,36m and so on. > The result I got from ENVI are not realistic so I want to do it in R > using weighted average from neighboring pixels. In package 'spatstat' the function 'blur' will perform spatial averaging of a pixel image, using Gaussian weights. The function 'as.im' can be used to change the dimensions of a pixel image. So for example if Z is a pixel image (object of class "im") then old.pixelsize <- Z$xstep blurZ <- blur(Z, 1.5 * old.pixelsize) old.dim <- Z$dim new.dim <- floor(old.dim/2) Y <- as.im(blurZ, dimyx=new.dim) computes a Gaussian kernel-weighted average of pixel values, then subsamples the image. Adrian Baddeley _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo