[R-sig-Geo] Drawing circular contours
Roger Bivand
Roger.Bivand at nhh.no
Wed Mar 7 11:25:18 CET 2007
On Wed, 7 Mar 2007, Edzer J. Pebesma wrote:
> Gabor, sp provides a contour method for objects of class
> SpatialGridDataFrame. I don't know how you should create a grid such
> that contours are circles -- simplest to generate distances from
> specific points.
These are effectively vector buffers around points. My guess would be that
the "circle"-type functions sent to R-help (often for drawing not
returning a polygon-as-circle) could be used. For example, John Fox'
posting:
http://finzi.psych.upenn.edu/R/Rhelp02a/archive/74907.html
could be adapted (for the projected case, the geographical coordinates
case is more difficult). Then construct SpatialPolygons objects from the
output object. Or make a template polygon for (0,0) and shift to the
required (x,y) centres before making SpatialPolygons objects.
Hope this helps,
Roger
PS. Most GIS do this, and I think PostGIS/GEOS does too, but I don't think
any of them can store the output as anything other than a ring polygon.
> I don't know if there is easy way to do this right now;
> a rather indirect way is to use the kriging variance from a linear
> variogram and a 1-NN neighbourhood:
>
> library(gstat) # requires sp
> data(meuse)
> coordinates(meuse) = ~x+y
> data(meuse.grid)
> gridded(meuse.grid) = ~x+y
> # interpolate over the complete rectangular area, not just the study area:
> meuse.grid = as(meuse.grid, "SpatialGrid")
> # krige from 10 random points with linear variogram and 1-NN neighbourhood:
> out = krige(log(zinc)~1,meuse[sample(1:155,10),], meuse.grid, vgm(1,
> "Lin", 0), nmax=1)
> # contour kriging variance:
> contour(out[2], asp=1)
>
> Note that the contour method does not set the aspect ratio by default --
> an omission.
> --
> Edzer
>
>
> Gabor Grothendieck wrote:
> > I am currently doing the following to draw circles at the
> > indicated distances from the center. The center is given
> > by utm coordinates: utm.e, utm.n . It does work:
> >
> > class(im2) # "SpatialGridDataFrame"
> > image(im2, "ind", col = col$ct)
> > library(plotrix)
> > dd <- c(25, 50, 100, 150)
> > for(i in 1:4) draw.circle(utm.e, utm.n, dd[i], border = "yellow")
> >
> > However, I would like to do this in a style better suited to sp
> > and rgdal by defining a function whose contours are circles and
> > plotting the indicated contours of it. Also I assume I will get
> > labelled contours by doing that which I don't currently have.
> >
> > How do I do that? I would appreciate specific code, if possible,
> >
> > Thanks.
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo at stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> >
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
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-sig-Geo
mailing list