Friday, 11 March 2016

raster - How to create cohesive Spatial Pixels from Spatial Points Dataset


I have a Spatial Point DF spo (covering an irregular shaped area of interest). The data are not on a regular grid due to CRS transformation.


My goal is a raster with predefined resolution and extent of the area of interest (more spatial point data are to be mapped on this master raster).


Problems start when I


rasterize(spo, raster(ncol, nrow, extent, crs), spo$param)

I need to adjust nrowand ncol in a way so that I won't get moire patterns of NAs within my area of interest. I can't use a predefined (higher) resolution.


As a solution to this, I thought I would need some kind of Spatial Pixel DF spi, that covers my whole area of interest (just like meuse.grid in library(raster); data(meuse.grid)), and serves as a master grid. Then, I can use it to interpolate my data, e.g.


idw(param~1,spo,spi)


and by this, get full cover of my area of interest at my chosen resolution. But how can a SpatialPixelsDataFrame be produced from the point data?


So in my view, the question boils down to: How to produce meuse.grid from meuse dataset?


Maybe I'm taking the wrong approach here, so please let me know if more easily can achieved what I'm after, using a different way.



Answer



What I would do is create a convex hull around the source points in spo, and sample in that polygon using spsample. This function allows you to prescribe the gridcell size, see this function in automap for an example (disclaimer, I wrote automap).


The next step would be to interpolate the values, e.g. using automap:


library(automap)
loadMeuse()
kr = autoKrige(log(zinc)~1, meuse, convex_hull_grid)


This uses kriging (Ordinary Kriging in this case) to fit a variogram model to the data and interpolate the values in meuse to the grid in convex_hull_grid.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...