> Micha Silver wrote: >> Bryan Keith wrote: >>>> >>>> Orange boundaries are duplicates - overlapping lines - that GRASS >>>> topology doesn't allow. >>>> You should be able to get rid of these with: >>>> "v.clean in=... out=... tool=break,bpol,rmdupl" >>>> But I've never had good luck with this. >>>> The alternative that might work better for you: >>>> Re-import the layer from the original shapefiles (or where ever they >>>> came from) but use the "type=line" option to v.in.ogr. (No centroids >>>> will be created) >>>> Now do v.clean on this new GRASS vector, using tool=snap,break,rmdupl. >>>> Next use >>>> "v.type ... type=line,boundary" >>>> to convert the (cleaned) lines to boundaries, and then >>>> "v.centroids ... opt=add" >>>> to create area centroids inside each closed boundary. >>>> >>> >>> Micha, >>> >>> Yes, thank you, that worked! Here's what I did: >>> >>> >> >> Cheers. >> Although I think I misled you a bit. I was mistaken about the orange >> line >> color in the digitizer. It simply indicates a boundary that is wholly >> shared >> by two adjacent areas. *Not* a topological error. >> In any case, importing polygon shapefiles first as lines (not >> boundaries), >> doing the topology cleanup, and then convert to boundaries and add >> centroids >> seems to be the smoother way to go. > > I object because > > 1. you would need to replicate the cleaning steps done by v.in.ogr > which has, amongst others, a snapping option > > 2. adding centroids will add centroids to all areas, also those that > where holes in polygons provided by OGR, e.g. a waterbodies shapefile > with lakes and islands in lakes: the islands are not waterbodies and > should not get a centroid > > 3. you will loose attributes because there is no (easy) way to link > any attributes coming with the shapefile to newly generated centroids, > e.g. land cover/land use shapefiles >
Markus, I agree with you regarding #1. However, in my case I had a line shapefile, not polygons, so #2 and #3 did not apply. I haven't tried to import a polygon shapefile as areas into GRASS. Importing as lines and fixing attributes does not seem like the desired approach. Bryan > Markus M > >>> >>> v.in.ogr -o dsn=C:\path\to\shapefile\test_ln.shp output=testm_ln >>> type=line >>> v.clean input=testm_ln output=testmclean_ln tool=snap,break,rmdupl >>> thresh=0.2,0,0 >>> v.type input=testmclean_ln output=testmclean_bnd type=line,boundary >>> v.centroids input=testmclean_bnd output=testmclean_py option=add >>> >>> Thanks for all the help. >>> >>> Bryan >>> -- >>> >> >> Micha Silver >> Arava Development Co. +972-52-3665918 >> http://surfaces.co.il >> >> >> _______________________________________________ >> grass-user mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/grass-user >> > _______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
