Monday 19 December 2016

coordinate system - Dissolving reprojected features split into two parts by international dateline (180 degrees) in QGIS


I am trying to view the World EEZ polygon from Marine Regions.org, but centered on the Pacific Ocean.


To centre the EEZ map on the Pacific ocean I followed these steps. The custom CRS from this is: +proj=robin +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs



So far, so good.


However, I would then like to dissolve the shapefile so that the parts of EEZ's which were originally split by the projection separated at 180, but which actually share attribute information, are one part, without the split where they would be separated under the original projection. This can be seen in the EEZ of New Zealand and nearby EEZs.


I have tried:
1) Eliminate sliver polygons
2) Dissolve, by a common attribute (EEZ Name, e.g. 'New Zealand').


I also tried save the shapefile to the new projection, but when I try to use the dissolve or sliver processes on this, the temporary file QGIS creates a warning saying 'projection not identified, reprojected to WGS84', and the polygons do not appear.


This answer does not work for me, which may be because I am using a custom projection which QGIS does not recognise.


enter image description here



Answer



Similar to my post in the linked topic, the data needs some handwork before dissolving works:




  1. Check for geometry errors

  2. Split polygons that cross the antimeridian of your projection (30°E)

  3. Reproject the data to Robinson

  4. Perform multipart to single part

  5. Check the nodes where the 180° meridian cuts the borders. Left and right points might not match, so snap them with a tolerance of 10 pixels

  6. Dissolve the polygons


You might need to assign the Robinson projection again between the steps 3 to 5.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...