On Thu, 15 Jul 2010, Crowe, Andrew wrote:

Gavin

Gavin

You can convert the raster grid to a polygon grid by coercing the SpatialGridDataFrame to a SpatialPixelsDataFrame then from that to a SpatialPolygonsDataFrame.

You should then be able to recode the polygon data for each particular depth class and union them using unionSpatialPolygons. This then needs joining with a data frame created from the depth classes to create a SpatialPolygonsDataFrame for output to a shapefile using writePolyShape

In addition, you can massage the output of contourLines() to make a less jagged version:

library(maptools)
data(volcano)
x2 <- ContourLines2SLDF(contourLines(volcano))
# volcano is a regular "image" style object, SpatialGridDataFrame
# objects can be coerced with as.image.SpatialGridDataFrame()
# we don't (yet) have contourLines() for sp objects
x3 <- x2[(as.character(x2$level) > "140" & as.character(x2$level) <
 "170"),]
cx3 <- coordinates(x3)
str(cx3)
crds <- rbind(cx3[[1]][[1]], c(NA, NA), cx3[[2]][[1]], c(NA, NA),
  cx3[[2]][[2]], c(NA, NA), cx3[[1]][[2]])
# this could be automated in a loop
colnames(crds) <- c("x", "y")
pols <- map2SpatialPolygons(as.data.frame(crds), IDs=rep("1", 4))
# number of IDs like input polygons
pls <- slot(pols, "polygons")
gpclibPermit()
pls1 <- lapply(pls, checkPolygonsHoles)
slot(pols, "polygons") <- pls1
plot(pols, col="grey", pbg="yellow")

Both the use of checkPolygonsHoles() and unionSpatialPolygons require the use of gpclib with its bad licence. We're at mid-term with the GSoC rgeos project now, which provides similar facilities.

Using the contour lines may give a visually more pleasing, and maybe more helpful rendering than the blocky polygonised raster cells (which anyway will have been interpolated).

Please let us know how you get on,

Roger



Hope that helps

Andrew

Dr Andrew Crowe

Lancaster Environment Centre
Lancaster University
Lancaster    LA1 4YQ
UK

Tel: +44 (0)1524 595879

________________________________

From: r-sig-geo-boun...@stat.math.ethz.ch on behalf of Gavin Simpson
Sent: Thu 15/07/2010 12:28 PM
To: r-sig-geo@stat.math.ethz.ch
Subject: [R-sig-Geo] Convert SpatialGridDataFrame to polygons...?



Dear list,

I have been given a set of ASCII grids which I read into R using
readAsciiGrid(). The grids represent an interpolated water depth data
set for a set of lakes; each grid represents a separate lake. For some
reason I have been asked to convert this gridded data into a set of
polygons. For example; given the gridded data, I want to generate a
polygon that covers the area of the lake (from the grid) that is 1-2m
deep say. I would then need to write out this polygon as an ESRI shape
file.

Are there tools in R to do this sort of conversion?

It is a bit more complex that the simple example, as lakes can have
multiple basins (areas of deeper water). Say a lake has two deep areas
so a cross section through the lakes might look like a W, for such a
lake I would require an object that contained two polygons representing
the area of the lake between 4 and 5 meters say in *each* of the basins.
These would then be read out into a shape file. My GIS colleague
indicates that ArcGIS/ArcMAP has a function to polygonise a raster grid
in such a way. Is there something similar in the R spatial software
stack?

An alternative approach would be to contour (at appropriate depth
intervals) the interpolated grid and convert the set of contours into
polygons for individual lakes. Is there a function to do this?

As you can see, this is very much a look-see at the moment. We are
evaluating whether it would be quicker to work out how to do this in R
as opposed to doing it by hand in ArcGIS.

Any suggestions would be most gratefully received indeed!

All the best,

Gavin
--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk 
<http://www.freshwaters.org.uk/>
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

_______________________________________________
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


--
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.biv...@nhh.no

_______________________________________________
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