Add README and QGIS model for world_map.gpkg

This commit is contained in:
Áron Gergely 2019-08-25 11:58:20 +03:00 committed by Nyall Dawson
parent 7004d8e51b
commit eef953b41a
2 changed files with 579 additions and 0 deletions

View File

@ -0,0 +1,47 @@
# README World Map GeoPackage
The `world_map.gpkg` contains the following layers:
- countries
- states_provinces
- disputed_borders
These layers were processed from source data. The purpose of this readme is to explain briefly the data sources and the processing steps.
### Data source
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)
### Processing
The layer-specific processing steps are described below.
##### _countries_ and _states_provinces_
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.*
##### _disputed_borders_
This layer was created by importing data source [2] as-is.
##### Manual clean-up of attribute tables (all layers)
Finally, in the GeoPackage the less meaningful fields in the attribute tables were dropped.

View File

@ -0,0 +1,532 @@
<!DOCTYPE model>
<Option type="Map">
<Option type="Map" name="children">
<Option type="Map" name="grass7:v.generalize_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="grass7:v.generalize" type="QString" name="alg_id"/>
<Option value="v.generalize" type="QString" name="component_description"/>
<Option value="1104" type="double" name="component_pos_x"/>
<Option value="632" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="grass7:v.generalize_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="-l">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="true" type="bool" name="static_value"/>
</Option>
</Option>
<Option type="List" name="-t">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="false" type="bool" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_MIN_AREA_PARAMETER">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="1e+6" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_OUTPUT_TYPE_PARAMETER">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="3" type="int" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_REGION_PARAMETER">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option type="invalid" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_SNAP_TOLERANCE_PARAMETER">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="-1" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_VECTOR_DSCO">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="" type="QString" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_VECTOR_EXPORT_NOCAT">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="false" type="bool" name="static_value"/>
</Option>
</Option>
<Option type="List" name="GRASS_VECTOR_LCO">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="" type="QString" name="static_value"/>
</Option>
</Option>
<Option type="List" name="alpha">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="1" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="angle_thresh">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="3" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="beta">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="1" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="betweeness_thresh">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="cats">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="" type="QString" name="static_value"/>
</Option>
</Option>
<Option type="List" name="closeness_thresh">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="degree_thresh">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0" type="int" name="static_value"/>
</Option>
</Option>
<Option type="List" name="input">
<Option type="Map">
<Option value="native:reprojectlayer_1" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="iterations">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="1" type="int" name="static_value"/>
</Option>
</Option>
<Option type="List" name="look_ahead">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="7" type="int" name="static_value"/>
</Option>
</Option>
<Option type="List" name="method">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0" type="int" name="static_value"/>
</Option>
</Option>
<Option type="List" name="reduction">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="50" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="slide">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0.5" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="threshold">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="1000" type="double" name="static_value"/>
</Option>
</Option>
<Option type="List" name="type">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option type="List" name="static_value">
<Option value="2" type="int"/>
<Option value="1" type="int"/>
</Option>
</Option>
</Option>
<Option type="List" name="where">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="" type="QString" name="static_value"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:clip_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:clip" type="QString" name="alg_id"/>
<Option value="Clip" type="QString" name="component_description"/>
<Option value="1415" type="double" name="component_pos_x"/>
<Option value="875" type="double" name="component_pos_y"/>
<Option type="StringList" name="dependencies">
<Option value="native:fixgeometries_1" type="QString"/>
<Option value="native:reprojectlayer_2" type="QString"/>
</Option>
<Option value="native:clip_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:fixgeometries_1" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="OVERLAY">
<Option type="Map">
<Option value="native:reprojectlayer_2" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:densifygeometriesgivenaninterval_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:densifygeometriesgivenaninterval" type="QString" name="alg_id"/>
<Option value="Densify by interval" type="QString" name="component_description"/>
<Option value="508" type="double" name="component_pos_x"/>
<Option value="625" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:densifygeometriesgivenaninterval_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:extenttolayer_1" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="INTERVAL">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="0.1" type="double" name="static_value"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:dissolve_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:dissolve" type="QString" name="alg_id"/>
<Option value="Dissolve" type="QString" name="component_description"/>
<Option value="1960" type="double" name="component_pos_x"/>
<Option value="1137" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:dissolve_1" type="QString" name="id"/>
<Option type="Map" name="outputs">
<Option type="Map" name="countries_generalized">
<Option value="native:dissolve_1" type="QString" name="child_id"/>
<Option value="countries_generalized" type="QString" name="component_description"/>
<Option value="2109" type="double" name="component_pos_x"/>
<Option value="1245" type="double" name="component_pos_y"/>
<Option type="invalid" name="default_value"/>
<Option value="false" type="bool" name="mandatory"/>
<Option value="countries_generalized" type="QString" name="name"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
</Option>
</Option>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="FIELD">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="iso_a2" type="QString" name="static_value"/>
</Option>
</Option>
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:reprojectlayer_3" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:dissolve_2">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:dissolve" type="QString" name="alg_id"/>
<Option value="Dissolve" type="QString" name="component_description"/>
<Option value="1720" type="double" name="component_pos_x"/>
<Option value="1135" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:dissolve_2" type="QString" name="id"/>
<Option type="Map" name="outputs">
<Option type="Map" name="Generalized states and provinces">
<Option value="native:dissolve_2" type="QString" name="child_id"/>
<Option value="Generalized states and provinces" type="QString" name="component_description"/>
<Option value="1871" type="double" name="component_pos_x"/>
<Option value="1244" type="double" name="component_pos_y"/>
<Option type="invalid" name="default_value"/>
<Option value="false" type="bool" name="mandatory"/>
<Option value="Generalized states and provinces" type="QString" name="name"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
</Option>
</Option>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="FIELD">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="diss_me" type="QString" name="static_value"/>
</Option>
</Option>
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:reprojectlayer_3" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:extenttolayer_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:extenttolayer" type="QString" name="alg_id"/>
<Option value="Create layer from extent" type="QString" name="component_description"/>
<Option value="350" type="double" name="component_pos_x"/>
<Option value="522" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:extenttolayer_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="false" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option value="-179.9 ,179.9, -89.9, 89.9" type="QString" name="static_value"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:fixgeometries_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:fixgeometries" type="QString" name="alg_id"/>
<Option value="Fix geometries" type="QString" name="component_description"/>
<Option value="1259" type="double" name="component_pos_x"/>
<Option value="754" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:fixgeometries_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="grass7:v.generalize_1" type="QString" name="child_id"/>
<Option value="output" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:reprojectlayer_1">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:reprojectlayer" type="QString" name="alg_id"/>
<Option value="Reproject layer" type="QString" name="component_description"/>
<Option value="948" type="double" name="component_pos_x"/>
<Option value="511" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:reprojectlayer_1" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="vectorlayer" type="QString" name="parameter_name"/>
<Option value="0" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="TARGET_CRS">
<Option type="Map">
<Option value="projectedcrs" type="QString" name="parameter_name"/>
<Option value="0" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:reprojectlayer_2">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:reprojectlayer" type="QString" name="alg_id"/>
<Option value="Reproject extent" type="QString" name="component_description"/>
<Option value="675" type="double" name="component_pos_x"/>
<Option value="746" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:reprojectlayer_2" type="QString" name="id"/>
<Option type="Map" name="outputs">
<Option type="Map" name="reprojected_Extent">
<Option value="native:reprojectlayer_2" type="QString" name="child_id"/>
<Option value="reprojected_Extent" type="QString" name="component_description"/>
<Option value="821" type="double" name="component_pos_x"/>
<Option value="860" type="double" name="component_pos_y"/>
<Option type="invalid" name="default_value"/>
<Option value="false" type="bool" name="mandatory"/>
<Option value="reprojected_Extent" type="QString" name="name"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
</Option>
</Option>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:densifygeometriesgivenaninterval_1" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="TARGET_CRS">
<Option type="Map">
<Option value="projectedcrs" type="QString" name="parameter_name"/>
<Option value="0" type="int" name="source"/>
</Option>
</Option>
</Option>
</Option>
<Option type="Map" name="native:reprojectlayer_3">
<Option value="true" type="bool" name="active"/>
<Option name="alg_config"/>
<Option value="native:reprojectlayer" type="QString" name="alg_id"/>
<Option value="Reproject layer" type="QString" name="component_description"/>
<Option value="1567" type="double" name="component_pos_x"/>
<Option value="988" type="double" name="component_pos_y"/>
<Option name="dependencies"/>
<Option value="native:reprojectlayer_3" type="QString" name="id"/>
<Option name="outputs"/>
<Option value="true" type="bool" name="outputs_collapsed"/>
<Option value="true" type="bool" name="parameters_collapsed"/>
<Option type="Map" name="params">
<Option type="List" name="INPUT">
<Option type="Map">
<Option value="native:clip_1" type="QString" name="child_id"/>
<Option value="OUTPUT" type="QString" name="output_name"/>
<Option value="1" type="int" name="source"/>
</Option>
</Option>
<Option type="List" name="TARGET_CRS">
<Option type="Map">
<Option value="2" type="int" name="source"/>
<Option type="QgsCoordinateReferenceSystem" name="static_value">
<spatialrefsys>
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<authid>EPSG:4326</authid>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</Option>
</Option>
</Option>
</Option>
</Option>
</Option>
<Option name="help"/>
<Option name="modelVariables"/>
<Option value="" type="QString" name="model_group"/>
<Option value="Generalize world map" type="QString" name="model_name"/>
<Option type="Map" name="parameterDefinitions">
<Option type="Map" name="native:dissolve_1:countries_generalized">
<Option value="true" type="bool" name="create_by_default"/>
<Option value="-1" type="int" name="data_type"/>
<Option type="invalid" name="default"/>
<Option value="countries_generalized" type="QString" name="description"/>
<Option value="0" type="int" name="flags"/>
<Option name="metadata"/>
<Option value="native:dissolve_1:countries_generalized" type="QString" name="name"/>
<Option value="sink" type="QString" name="parameter_type"/>
<Option value="true" type="bool" name="supports_non_file_outputs"/>
</Option>
<Option type="Map" name="native:dissolve_2:Generalized states and provinces">
<Option value="true" type="bool" name="create_by_default"/>
<Option value="-1" type="int" name="data_type"/>
<Option type="invalid" name="default"/>
<Option value="Generalized states and provinces" type="QString" name="description"/>
<Option value="0" type="int" name="flags"/>
<Option name="metadata"/>
<Option value="native:dissolve_2:Generalized states and provinces" type="QString" name="name"/>
<Option value="sink" type="QString" name="parameter_type"/>
<Option value="true" type="bool" name="supports_non_file_outputs"/>
</Option>
<Option type="Map" name="native:reprojectlayer_2:reprojected_Extent">
<Option value="true" type="bool" name="create_by_default"/>
<Option value="-1" type="int" name="data_type"/>
<Option type="invalid" name="default"/>
<Option value="reprojected_Extent" type="QString" name="description"/>
<Option value="0" type="int" name="flags"/>
<Option name="metadata"/>
<Option value="native:reprojectlayer_2:reprojected_Extent" type="QString" name="name"/>
<Option value="sink" type="QString" name="parameter_type"/>
<Option value="true" type="bool" name="supports_non_file_outputs"/>
</Option>
<Option type="Map" name="projectedcrs">
<Option value="EPSG:54030" type="QString" name="default"/>
<Option value="CRS to use for generalization" type="QString" name="description"/>
<Option value="0" type="int" name="flags"/>
<Option name="metadata"/>
<Option value="projectedcrs" type="QString" name="name"/>
<Option value="crs" type="QString" name="parameter_type"/>
</Option>
<Option type="Map" name="vectorlayer">
<Option type="List" name="data_types">
<Option value="2" type="int"/>
</Option>
<Option type="invalid" name="default"/>
<Option value="NaturalEarth vector layer" type="QString" name="description"/>
<Option value="0" type="int" name="flags"/>
<Option name="metadata"/>
<Option value="vectorlayer" type="QString" name="name"/>
<Option value="vector" type="QString" name="parameter_type"/>
</Option>
</Option>
<Option type="Map" name="parameters">
<Option type="Map" name="projectedcrs">
<Option value="projectedcrs" type="QString" name="component_description"/>
<Option value="774" type="double" name="component_pos_x"/>
<Option value="628" type="double" name="component_pos_y"/>
<Option value="projectedcrs" type="QString" name="name"/>
</Option>
<Option type="Map" name="vectorlayer">
<Option value="vectorlayer" type="QString" name="component_description"/>
<Option value="801" type="double" name="component_pos_x"/>
<Option value="400" type="double" name="component_pos_y"/>
<Option value="vectorlayer" type="QString" name="name"/>
</Option>
</Option>
</Option>