1
1
from datetime import datetime
2
2
from typing import Tuple
3
3
from copy import deepcopy
4
- import csv
5
4
6
5
from dagster import (
7
6
asset ,
13
12
)
14
13
from lxml import objectify
15
14
15
+ from bag3d .common .utils .geodata import bbox_from_wkt
16
16
from bag3d .common .utils .files import unzip
17
17
from bag3d .common .utils .requests import download_file
18
18
from bag3d .common .utils .database import (
@@ -291,7 +291,6 @@ def load_bag_layer(
291
291
"new_table" : new_table ,
292
292
"dsn" : context .resources .db_connection .connect .dsn ,
293
293
}
294
- wkt_path = Path ("/tmp/wkt.csv" )
295
294
296
295
# Create the ogr2ogr command. The order of parameters is important!
297
296
if context .op_config .get ("with_parallel" ):
@@ -327,11 +326,9 @@ def load_bag_layer(
327
326
]
328
327
geofilter = context .op_config .get ("geofilter" )
329
328
if geofilter :
330
- with wkt_path .open ("w" ) as f :
331
- csvwriter = csv .writer (f , quoting = csv .QUOTE_STRINGS )
332
- csvwriter .writerow (["WKT" ,])
333
- csvwriter .writerow ([geofilter ,])
334
- cmd .append (f"-clipsrc { wkt_path } " )
329
+ bbox = bbox_from_wkt (geofilter )
330
+ cmd .append ("-spat {bbox}" )
331
+ kwargs ["bbox" ] = " " .join (map (str , bbox ))
335
332
cmd .append ("-f PostgreSQL PG:'{dsn}'" )
336
333
cmd .append ('{{}}"' )
337
334
cmd .append (f"::: { layer_dir } /*.xml" )
@@ -357,7 +354,6 @@ def load_bag_layer(
357
354
return_code , output = context .resources .gdal .app .execute (
358
355
"ogr2ogr" , cmd , kwargs = kwargs , local_path = extract_dir
359
356
)
360
- wkt_path .unlink (missing_ok = True )
361
357
return True if return_code == 0 else False
362
358
363
359
0 commit comments