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

Reply via email to