[GRASS-user] fixing overlapping areas with snap and min_area

Markus Metz markus.metz.giswork at gmail.com
Sun May 19 09:56:57 PDT 2019


On Tue, May 14, 2019 at 12:26 AM Tyler Smith <tyler at plantarum.ca> wrote:
>
> Hello,
>
> I am trying to import a shapefile that contains polygons. Using v.in.ogr
with default settings works, but generates overlapping areas:
>
> ```
> v.in.ogr input=~/path/to/data/ output=soils_omafra
>
> ...
>
> -----------------------------------------------------
> 139375 input polygons
> Total area: 1.87116E+11 (713211 areas)
> Overlapping area: 465.913 (142064 areas)
> Area without category: 1.0631E+09 (137984 areas)
> -----------------------------------------------------
> Copying features...
>
> Building topology for vector map <soils_omafra at PERMANENT>...
> Registering primitives...
> Building areas...
> WARNING: Area of size = 0.0 ignored
> WARNING: Area of size = 0.0 ignored
> WARNING: Area of size = 0.0 ignored
> ```
>
> After several hours testing different values of snap and min_area, I have
come up with the following:
>
> ```
> v.in.ogr input=~/path/to/data/ output=soils_omafra snap=4.52e-07
min_area=10.0
>
> ...
>
> -----------------------------------------------------
> 138109 input polygons
> Total area: 1.87116E+11 (138565 areas)
> Overlapping area: 34.3593 (4 areas)
> Area without category: 1.0631E+09 (421 areas)
> -----------------------------------------------------
>
> [no warnings reported]
> ```
>
> If I increase snap any more I start creating additional areas, so I don't
think I can automatically get rid of the remaining 4 areas.
>
> However, when I plot those areas and look at them, they are below the
min_area threshold I've set:
>
> ```
> d.what.vect map=soils_omafra
>
> ...
> soils_omafra at PERMANENT:
> Type: Area
> Sq_Meters: 6.307
> Hectares: 0.001
> Acres: 0.002
> Sq_Miles: 0.0
> Layer: 2
> Category: 2
> ...
> ```
>
> My map is in a lat-long projection, and the map unit is meters. I thought
setting min_area=10.0 would drop all areas smaller than 10 sq meters, but
my problem areas here are only 6.3 sq meters?

Maybe the documentation needs some clarification: the min_area applies to
input polygons, not to output areas, i.e. input polygons smaller than
min_area are dropped. If you want to get rid off output areas smaller than
min_area=10, you need to use v.clean tool=rmarea threshold=10.
>
> Have I misunderstood what min_area does, or am I setting it incorrectly?
I notice that the default is 0.0001, which seems really small if the units
is actually meters.

The purpose of min_area is to filter out noise in the input.
>
> More generally, I'm not sure how critical these overlapping areas are, or
when I can safely ignore them. For my current project, I'm going to use the
imported polygons to create rasters for analysis in R.

There is no general answer if these overlapping areas are critical or not,
it depends mostly on whether overlapping areas are allowed at all.

Markus M
>
> Thank you for your time,
>
> Tyler
>
> --
> plantarum.ca
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20190519/74804a59/attachment.html>


More information about the grass-user mailing list