Commit aad32b55 authored by Eric Duminil's avatar Eric Duminil
Browse files

Seems to work with Multipolygon again

parent 34a11f74
Showing with 15 additions and 2 deletions
+15 -2
...@@ -21,10 +21,13 @@ import re ...@@ -21,10 +21,13 @@ import re
import urllib.request import urllib.request
import time import time
import zipfile import zipfile
import re
from pyproj import CRS from pyproj import CRS
from pyproj import Transformer from pyproj import Transformer
COORDINATES_REGEX = re.compile(r"(\-?\d+\.\d*) (\-?\d+\.\d*)")
###### User input ########## ###### User input ##########
POLYGONS = { POLYGONS = {
"StuttgartCenter": "POLYGON((9.175287 48.780916, 9.185501 48.777522, 9.181467 48.773704, 9.174429 48.768472, 9.168807 48.773902, 9.175287 48.780916))", "StuttgartCenter": "POLYGON((9.175287 48.780916, 9.185501 48.777522, 9.181467 48.773704, 9.174429 48.768472, 9.168807 48.773902, 9.175287 48.780916))",
...@@ -133,9 +136,11 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None: ...@@ -133,9 +136,11 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None:
params_path = output_dir / 'params.txt' params_path = output_dir / 'params.txt'
wkt_path = output_dir / 'region.wkt' wkt_path = output_dir / 'region.wkt'
local_wkt = convert_wkt_to_local(wkt)
print(f" Extracting {output_file}.") print(f" Extracting {output_file}.")
with open(wkt_path, 'w') as f: with open(wkt_path, 'w') as f:
f.write(wkt) f.write(local_wkt)
with open(params_path, 'w') as f: with open(params_path, 'w') as f:
f.write("--input\n") f.write("--input\n")
...@@ -143,6 +148,7 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None: ...@@ -143,6 +148,7 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None:
f.write("\n") f.write("\n")
f.write("--output\n") f.write("--output\n")
f.write(f'"{output_file}"\n') f.write(f'"{output_file}"\n')
f.write('--local\n')
f.write("--wkt\n") f.write("--wkt\n")
f.write(f'"{wkt_path}"\n') f.write(f'"{wkt_path}"\n')
...@@ -154,7 +160,6 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None: ...@@ -154,7 +160,6 @@ def extract_region(output_dir: Path, location_name: str, wkt: str) -> None:
capture_output=True capture_output=True
) )
if (result.stderr): if (result.stderr):
print("\n")
print(result.stderr) print(result.stderr)
if result.returncode != 0: if result.returncode != 0:
raise ValueError(f"RegionChooser failed with code {result.returncode}") raise ValueError(f"RegionChooser failed with code {result.returncode}")
...@@ -174,6 +179,14 @@ def main(polygons: dict[str, str]) -> None: ...@@ -174,6 +179,14 @@ def main(polygons: dict[str, str]) -> None:
extract_region(output_dir, location_name, wkt) extract_region(output_dir, location_name, wkt)
print() print()
def show_coordinates(match):
longitude, latitude = match.groups()
transformer = Transformer.from_crs(WGS84, LOCAL_CRS, always_xy=True)
x, y = transformer.transform(longitude, latitude)
return f"{x} {y}"
def convert_wkt_to_local(wkt):
return COORDINATES_REGEX.sub(show_coordinates, wkt)
if __name__ == '__main__': if __name__ == '__main__':
main(POLYGONS) main(POLYGONS)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment