When exporting areas with v.out.ogr, you need to set the -c flag if
holes should stay holes. That changed in GRASS7, there the meaning of
the -c flag is reversed and must be set to export features without
category (because you are not the only one having this problem with
v.out.ogr).
Markus M
Roger Bivand wrote:
This problem arose in comparing vector and raster buffering on a
recent course. Using 6.4.0RC5 v.to.rast for a line, then buffering
with r.buffer gave a plausible outcome, but we wished to look at the
vector equivalent. In addition, we wanted to cookie-cut a raster with
the vector buffer, to match using r.mapcalc on the raster workflow, in
R taking the cell centres as representative points.
The problem is that while the internal vector representation of the
buffer has a hole, the hole is filled with an island on export (using
either shapefile or GML OGR drivers). The setup in R for a test
dataset is:
library(rgdal)
L1 <- Line(cbind(c(1, 2, 3, 5), c(1, 3, 5, 10)))
L2 <- Line(cbind(c(2, 1.5, 3), c(3, 4, 5)))
LA <- Lines(list(L1, L2), ID="A")
LB <- Lines(list(Line(cbind(c(4, 6), c(3, 1)))), ID="B")
SL <- SpatialLines(list(LA, LB))
SLDF <- SpatialLinesDataFrame(SL, data=data.frame(ID=c("A", "B"),
row.names=c("", "B"))))
writeOGR(SLDF, ".", "buff_island", driver="ESRI Shapefile")
(also on: http://spatial.nhh.no/misc/buff_island.zip).
then in GRASS (using wx) v.in.ogr to a new location, v.buffer with
distance 0.25, display (OK, 2 centroids), export as area as shapefile
or GML (visual inspection of the GML shows that the hole gets filled
on export), import back, and the hole is filled (three centroids). I'm
sure I'm missing something, but my cookie-cutter was cutting the
island too, and should have avoided the hole.
I'd be very grateful for leads.
Roger
PS. Where is v.to.rast on the wx menu system?
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user