Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ftools.dissolve and geoprocessing.dissolve "loose" polygons #12866

Closed
qgib opened this issue Jun 13, 2010 · 5 comments
Closed

ftools.dissolve and geoprocessing.dissolve "loose" polygons #12866

qgib opened this issue Jun 13, 2010 · 5 comments
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Processing Relating to QGIS Processing framework or individual Processing algorithms

Comments

@qgib
Copy link
Contributor

qgib commented Jun 13, 2010

Author Name: Anita Graser (@anitagraser)
Original Redmine Issue: 2806

Redmine category:processing/qgis


Both dissolve tools fail on the attached shapefile. Polygons are lost in the process. Compare http://forum.qgis.org/viewtopic.php?f=2&t=6724


@qgib
Copy link
Contributor Author

qgib commented Jul 22, 2011

Author Name: Giovanni Manghi (@gioman)


  • assigned_to_id removed nobody
  • pull_request_patch_supplied was configured as 0
  • category_id was changed from Vectors to 44

@qgib
Copy link
Contributor Author

qgib commented Jul 25, 2011

Author Name: Paolo Cavallini (@pcav)


  • start_date was configured as 2011-07-25
  • tracker_id was changed from 1 to 4

@qgib
Copy link
Contributor Author

qgib commented Oct 15, 2011

Author Name: Giovanni Manghi (@gioman)


The vector is in much bad conditions than it seem just looking at it (and the QGIS "check geometry" tool basically looks only for self-intersections as in the pseudo-topological model are both allowed holes and overlapping areas).

Importing it into GRASS it shows that there are 610 holes, 310 overlapping areas and a number of 0 size areas. If you dissolve the vector with GRASS, or with QGIS after exporting 1_polygon from GRASS (as shapefile, for example), you'll get the "expected" result, but the 0 size areas will show very clearly in the middle of the polygons (see attached image).

The solution is importing into GRASS and during the operation setting the parameters "snapping threshold for boundaries" (to remove the slivers/holes) and "minimum size area to be imported" (to remove 0 size areas). This way the resulting vector will be perfectly clean (attached) and it will dissolve with no problems.

You may want also to read this ticket, especially the last two comments in #13186 (comment)

Resuming: Arc* does some kind tolerance/snapping when dissolving, GEOS (the engine QGIS uses) doesn't (to keep as much precision as possible during union operations), but the option exist and may make sense to expose in the QGIS gui. You may want to open a feature ticket about this.

This is the result of the import operation of the original vector into GRASS is the following

@v.in.ogr -o dsn=/home/gio/Desktop/suelosenah.shp output=suelo snap=-1 min_area=0.0001

Over-riding projection check

Layer: suelosenah

Counting polygons for 63 features...

Importing map 63 features...


Building topology for vector map ...

Registering primitives...

761 primitives registered

13901 vertices registered

Number of nodes: 741

Number of primitives: 761

Number of points: 0

Number of lines: 0

Number of boundaries: 761

Number of centroids: 0

Number of areas: -

Number of isles: -


Cleaning polygons, result is not guaranteed!


Break polygons:


Remove duplicates:


Break boundaries:


Remove duplicates:


Clean boundaries at nodes:


Break boundaries:


Remove duplicates:


Clean boundaries at nodes:


Change dangles to lines:


Remove bridges:


Merge boundaries:


Building topology for vector map ...

Building areas...

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

1038 areas built

59 isles built

Attaching islands...

Number of nodes: 9238

Number of primitives: 29041

Number of points: 0

Number of lines: 0

Number of boundaries: 29041

Number of centroids: 0

Number of areas: 1038

Number of isles: 59

Number of incorrect boundaries: 78

Number of areas without centroid: 1038

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid

Cannot calculate area centroid


Find centroids for layer: suelosenah


Write centroids:

407 areas represent more (overlapping) features, because polygons overlap in input layer(s). Such areas are linked to more than 1 row in attribute table. The number of features for those areas is stored as category in layer 2


63 input polygons

Total area: 1.49304E+08 (1038 areas)

Overlapping area: 32.6961 (407 areas)

Area without category: 1262.18 (400 areas)


Building topology for vector map ...

Registering primitives...
1000��������� 2000��������� 3000���������
3951 primitives registered

17787 vertices registered

Building areas...

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

Area of size = 0.0 ignored

1038 areas built

59 isles built

Attaching islands...

Attaching centroids...

Number of nodes: 2839

Number of primitives: 3951

Number of points: 0

Number of lines: 0

Number of boundaries: 3322

Number of centroids: 629

Number of areas: 1038

Number of isles: 59

Number of incorrect boundaries: 78

Number of duplicate centroids: 201

Number of areas without centroid: 610
Successfully finished@


  • resolution was changed from to invalid
  • fixed_version_id removed Version 1.7.0
  • tracker_id was changed from 4 to 1
  • 3480 was configured as diss_0_areas.jpg
  • 3479 was configured as suelo2_shp.zip

@qgib
Copy link
Contributor Author

qgib commented Oct 15, 2011

Author Name: Giovanni Manghi (@gioman)


  • status_id was changed from Open to Closed

@qgib
Copy link
Contributor Author

qgib commented Apr 30, 2017

Author Name: Giovanni Manghi (@gioman)


The "ftools" category is being removed from the tracker, changing the category of this ticket to "Processing/QGIS" to not leave the category orphaned.

@qgib qgib added Bug Either a bug report, or a bug fix. Let's hope for the latter! Processing Relating to QGIS Processing framework or individual Processing algorithms labels May 24, 2019
@qgib qgib closed this as completed May 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Processing Relating to QGIS Processing framework or individual Processing algorithms
Projects
None yet
Development

No branches or pull requests

1 participant