resources/data/README_world_map.md
The world_map.gpkg contains the following layers:
These layers were processed from source data. The purpose of this readme is to explain briefly the data sources and the processing steps.
Natural Earth 1:10m detail level Cultural vectors: https://www.naturalearthdata.com/downloads/10m-cultural-vectors/
The specific layers used for input are:
[0]: Admin 1 – States, Provinces v4.1.0
[1]: Admin 0 – Countries v4.1.0
[2]: Admin 0 – Breakaway, Disputed Areas v4.1.0 (boundary lines)
The layer-specific processing steps are described below.
These two layers are derived from data source [0].
In order to keep the size small, the geometry was simplified with GRASS v.generalize, then dissolved
on state/province level and on country level respectively. These above steps were done with a QGIS model world_map_generalize.model3 that is included in this folder.
For the countries layer, the attribute table of data source [1] was joined in manually and the country attribute fields were copied.
Side notes to the QGIS model:
Input data are in WGS84 (EPSG:4326); re-projection to a meter-based CRS was necessary
in order to set meaningful thresholds in v.generalize.
I chose Robinson (EPSG:54030) for that purpose. I think it is an OK
compromise for a global projected CRS in this case.
The model also creates a safe extent polygon for WGS84 coordinate space and clips the simplified layers to that extent before re-projecting them back to WGS84. This was necessary in order to avoid polygons crossing the 180˚ meridian. Those would be rendered as large invalid polygons crossing the entire world.
This layer was created by importing data source [2] as-is.
In the GeoPackage the less meaningful fields in the attribute tables were dropped.
And finally Crimea and Sevastopol were restored to belong to the Ukraine using
update states_provinces set iso_a2='UA',sov_a3='UA',adm0_a3='UA',admin='Ukraine',gu_a3='UKR' where name IN ('Crimea','Sevastopol');
update countries set geom=st_union(geom, (select st_union(geom) from states_provinces where name IN ('Crimea','Sevastopol'))) where name='Ukraine';
update countries set geom=st_difference(geom, (select st_union(geom) from states_provinces where name IN ('Crimea','Sevastopol'))) where name='Russia';
Fixing a typo:
ogrinfo resources/data/world_map.gpkg -sql "UPDATE states_provinces SET name='Seine-et-Marne', woe_name='Seine-et-Marne' WHERE name='Seien-et-Marne'"