[R] Advice on Grid Data

Roger Bivand Roger.Bivand at nhh.no
Fri Nov 24 15:30:17 CET 2006


On Fri, 24 Nov 2006, Lorenzo Isella wrote:

> On 24/11/06, Roger Bivand <Roger.Bivand at nhh.no> wrote:
> > On Fri, 24 Nov 2006, Lorenzo Isella wrote:
> >
> > > Dear All,
> > > I would like to automate the analysis and plotting of data taken from a grid.
> > > Typically I deal with 2 spatial coordinates and a scalar f(x,y), but
> > > the spatial grid is not evenly spaced at all and usually given in this
> > > form:
> > > x                                 y                                     f(x,y)
> > > 0.0                      0.048979383              2.7659438106975056
> > > 0.0                      0.044986665              2.603891585041688
> > > 0.0023807306             0.04787451               2.715949356768243
> > > 0.0                      0.040993948              2.469223979694342
> > > 0.0023807306             0.043881793              2.5625191444824265
> > > 0.004761461              0.046769638              2.6629703119429022
> > > 0.0                      0.03700123               2.361940994655468
> > > 0.0023807306             0.039889075              2.436480700580665
> > > 0.004761461              0.04277692               2.517958884562618
> > > 0.0071421918             0.045664765              2.606844303834078
> > > 0.0                      0.060880877              3.470808435449538
> > > 0.0                      0.05691371               3.1907723461238686
> > > 0.0020467786             0.059650626              3.3672237912200016
> > > 0.0                      0.05294655               2.9558174712065237
> > > 0.0020467786             0.055683464              3.1075221272152054
> > > 0.004093557              0.05842038               3.268965886866726
> > > 0.0020467786             0.051716298              2.8929170062920653
> > > 0.004093557              0.054453213              3.029154848759894
> > > 0.006140336              0.057190128              3.1754081073235088
> > > 0.0                      0.02473231               2.138648866573983
> > > 0.0                      0.020556964              2.092324627395541
> > >
> > > I tried the image plot and lattice but unsuccessfully. Now I am
> > > reading about the sp package (
> > > http://cran.r-project.org/src/contrib/Descriptions/sp.html ), but I
> > > mainly would like a piece of advice about what tools to use and how to
> > > read and plot these data (I suppose it must be common e.g. in
> > > geography to deal with this kind of problems).
> >
> > Your data are not on a 2D grid, there are (here) 7 unique x values, but 21
> > unique y values of 21. You can treat the data as a SpatialPointsDataFrame
> > (see note in R News in 2005), but if you want to display them on an actual
> > grid, you will have to interpolate. For more ideas, perhaps try the
> > R-sig-geo mailing list.
> >
> > > Kind Regards
> > >
> > > Lorenzo
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > > and provide commented, minimal, self-contained, reproducible code.
> > >
> >
> > --
> > Roger Bivand
> > Economic Geography Section, Department of Economics, Norwegian School of
> > Economics and Business Administration, Helleveien 30, N-5045 Bergen,
> > Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
> > e-mail: Roger.Bivand at nhh.no
> >
> >
> 
> Thanks for the advice, but I hope I have not been misleading: only
> part of the grid coordinates are reported here (the whole list is very
> long).
> Does your conclusion hold anyway?


Well, if you convert your data to a SpatialPointsDataFrame, and then try 
to go to a SpatialPixelsDataFrame, you'll see if you succeed. A 
SpatialGridDataFrame requires data at all the cells in the grid, which you 
do not seem to have, so if you can get to a SpatialPixelsDataFrame, you 
will have display methods. If you look at the example on:

?"SpatialPixels-class"

and try to get to:

     data(meuse.grid)
     pts = meuse.grid[c("x", "y")]
     y = SpatialPixels(SpatialPoints(pts))
     class(y)
     y

then you should be able to do the same with your data present, see 

?"SpatialPixelsDataFrame-class"

Roger

> Cheers
> 
> Lorenzo
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no



More information about the R-help mailing list