|
2 | 2 | import os
|
3 | 3 |
|
4 | 4 | import click
|
| 5 | +import pyproj |
5 | 6 |
|
6 | 7 | from osmox import build, config
|
7 | 8 | from osmox.helpers import PathPath, path_leaf
|
@@ -116,29 +117,25 @@ def run(config_path, input_path, output_name, format, crs, single_use, lazy):
|
116 | 117 |
|
117 | 118 | if format == "geojson":
|
118 | 119 | extension = "geojson"
|
119 |
| - driver = 'GeoJSON' |
120 |
| - writer = gdf.to_file |
| 120 | + writer_method = 'to_file' |
| 121 | + kwargs = {"driver": 'GeoJSON'} |
121 | 122 | elif format == "geopackage":
|
122 | 123 | extension = "gpkg"
|
123 |
| - driver = 'GPKG' |
124 |
| - writer = gdf.to_file |
| 124 | + writer_method = 'to_file' |
| 125 | + kwargs = {"driver": 'GPKG'} |
125 | 126 | elif format == "geoparquet":
|
126 | 127 | extension = "parquet"
|
127 |
| - writer = gdf.to_parquet |
| 128 | + writer_method = 'to_parquet' |
| 129 | + kwargs = {} |
128 | 130 |
|
129 | 131 | logger.info(f" Writing objects to {format} format.")
|
130 | 132 | output_filename = f"{output_name}_{crs.replace(':', '_')}.{extension}"
|
131 | 133 |
|
132 |
| - if format != "geoparquet": |
133 |
| - writer(output_filename, driver=driver) |
134 |
| - else: |
135 |
| - writer(output_filename) |
136 |
| - |
137 |
| - if not crs == "epsg:4326" and format != "geoparquet": |
138 |
| - logger.info(" Reprojecting output to EPSG:4326 (lat lon)") |
139 |
| - gdf.to_crs("epsg:4326").to_file(f"{output_name}_epsg_4326.{extension}", driver=driver) |
140 |
| - elif not crs == "epsg:4326" and format == "geoparquet": |
141 |
| - logger.info(" Reprojecting output to EPSG:4326 (lat lon)") |
142 |
| - gdf.to_crs("epsg:4326").to_parquet(f"{output_name}_epsg_4326.parquet") |
| 134 | + getattr(gdf, writer_method)(output_filename, **kwargs) |
| 135 | + |
| 136 | + if pyproj.CRS(crs) != pyproj.CRS("epsg:4326"): |
| 137 | + logger.info(" Reprojecting additional output to EPSG:4326 (lat lon)") |
| 138 | + gdf_4326 = gdf.to_crs("epsg:4326") |
| 139 | + getattr(gdf_4326, writer_method)(f"{output_name}_epsg_4326.{extension}", **kwargs) |
143 | 140 |
|
144 | 141 | logger.info("Done.")
|
0 commit comments