TransWikia.com

Aligning existing polygon borders using QGIS?

Geographic Information Systems Asked by damian on December 5, 2020

I’m looking for a method to align the borders of two overlapping and already existing polygon layers. I’m aware of the node tool and its tolerance snapping option, but the area I’m working with is too large to do it manually.

I have two polygon layers. Layer 1 contains about 11,000 municipality features. Layer 2 contains 14 climatic zones (colored in picture 1).

Two layers with precise municipality features and unprecise climate zone features

As seen in picture 2 the outer border of the two layers do not fit. First of all I would like to manipulate the outer border of the climate zone layer (colored) so that it aligns with the outer border of the municipality features. Further I do not want the climate zone features to split the municipality features. One municipality shall be covered by only one climate zone.

Detail: Outer borders are not aligned. Some municipalites are intersected by the climate zone layer

At the very end I plan to intersect the two layers so that I have a list: Municipality ID to climate zone ID.

So far I only found a tool for ArcGIS, called Align to Shape.

Is something like this available for QGIS too?

3 Answers

Offhand I don't know of a QGIS tool that does it, but I have a couple of ideas on how to tackle the problem.

One possible workflow, though not automatic, would be to dissolve all municipal to a temp polygon, then clip the climate data using that. This would eliminate the exterior overlaps and leave only the interior gaps, which would be fewer problems to address. You could then intersect the two and join the result back to municipal to transfer the climate attributes back to unmodified municipals, thus preserving the areas that get dropped in the intersect.

That doesn't address the interior climate borders though. A possible solution to that (which also disregards the above) would be to convert the municipals to centroids, intersect the centroids with climate, then join the result back to municipals to assign the climate attributes. The consideration here is how split municipals will be handled. First you'd want to make sure you constrained the centroids so they were point inside (not necessarily true centroids). Then you have to decide if you can live with or need to check for cases where the majority of the municipal falls in one climate but the 'centroid' falls in another. Assuming you want to use a majority rule assignment that is.

Yet another possibility might be a Spatial Join constrained to a one-to-one match.

Correct answer by Chris W on December 5, 2020

I would recommend these steps:

  • Create polygon centroids for your municipality features.
  • Next use "join attributes by location" to give these new centroids all a new attribute that is the climate zone.
  • Then join this centroid layer to your original municipality polygons by a unique ID only including the new climate zone though.
  • (Optional): Create a new dissolved version of the municipalities polygon layer which dissolves using the new climate area variable as the 'dissolve by' variable. This may through up lots of slither polygons though, but the areas are large enough to clean relatively easily with cleaning tools.

Answered by JamesR on December 5, 2020

I know I'm late to this answer, but since I came across the same problem, this is how I solved it.

Download and install the MMQGIS plugin, then in the menubar select MMQGIS>Combine>Spatial Join

In the popup window select the municipalities as the target layer and the climate layer as the join layer. Select the climateID as the join field then select 'Largest Proportion' as the field operation. That way, you have a rough spatial join.

Answered by needshelp on December 5, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP