]> ToastFreeware Gitweb - philipp/winterrodeln/mediawiki_extensions/wrmap.git/blobdiff - tools/simplify_province.py
Merge branch 'master' into dist
[philipp/winterrodeln/mediawiki_extensions/wrmap.git] / tools / simplify_province.py
diff --git a/tools/simplify_province.py b/tools/simplify_province.py
new file mode 100644 (file)
index 0000000..15d8b84
--- /dev/null
@@ -0,0 +1,31 @@
+import argparse
+import fiona
+from fiona.crs import CRS
+
+from simplify_country import simplify_inner, print_wkt
+
+
+# data from https://www.naturalearthdata.com/
+SOURCE = f'/vsizip//home/philipp/daten/GeoData/naturalearth/v5.1/natural_earth_vector.sqlite.zip/packages/natural_earth_vector.sqlite'
+LAYER_NAME = 'ne_10m_admin_1_states_provinces'
+
+
+def load_province(province_name: str):
+    with fiona.open(SOURCE, layer=LAYER_NAME) as src:
+        for feature in src:
+            properties = feature['properties']
+            if properties['name'] == province_name:
+                return feature['geometry'], src.crs
+
+
+def main(province_name: str):
+    country, crs = load_province(province_name)
+    simplified_country = simplify_inner(country, crs)
+    print_wkt(simplified_country)
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Creates a simplified version of a province')
+    parser.add_argument('--province', default='Bozen', help='Province to simplify (e.g. Bozen)')
+    args = parser.parse_args()
+    main(args.province)