Skip to content

Commit 6383d52

Browse files
committed
adapt to new proj6 syntax
1 parent a821592 commit 6383d52

File tree

6 files changed

+20
-86
lines changed

6 files changed

+20
-86
lines changed

ost/generic/ts_extent.py

Lines changed: 6 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,24 @@
22
# -*- coding: utf-8 -*-
33

44
import json
5-
import shutil
65
import logging
7-
from pathlib import Path
8-
from tempfile import TemporaryDirectory
96

107
try:
118
import gdal
129
except ModuleNotFoundError as e:
13-
from osgeo import gdal
14-
except ModuleNotFoundError as e:
15-
raise e
10+
try:
11+
from osgeo import gdal
12+
except ModuleNotFoundError:
13+
raise e
1614

1715
import geopandas as gpd
1816
from retrying import retry
1917

20-
from ost.helpers import raster as ras, vector as vec
18+
from ost.helpers import vector as vec
2119

2220
logger = logging.getLogger(__name__)
2321

2422

25-
@retry(stop_max_attempt_number=3, wait_fixed=1)
26-
def mt_extent_old(list_of_scenes, config_file):
27-
28-
with open(config_file) as file:
29-
config_dict = json.load(file)
30-
temp_dir = Path(config_dict['temp_dir'])
31-
aoi = config_dict['aoi']
32-
33-
# get track/burst dir from first scene
34-
target_dir = Path(list_of_scenes[0]).parent.parent.parent
35-
out_file = target_dir.joinpath(f'{target_dir.name}.extent.gpkg')
36-
37-
logger.info(f'Creating common extent mask for track {target_dir.name}.')
38-
# get out directory
39-
out_dir = out_file.parent
40-
41-
temp_extent = out_dir.joinpath('extent.vrt')
42-
# build vrt stack from all scenes
43-
gdal.BuildVRT(
44-
str(temp_extent),
45-
list_of_scenes,
46-
options=gdal.BuildVRTOptions(srcNodata=0, separate=True)
47-
)
48-
49-
with TemporaryDirectory(prefix=f'{temp_dir}/') as temp:
50-
51-
# create namespace for temp file
52-
temp = Path(temp)
53-
image_bounds = temp.joinpath(out_file.name)
54-
exterior = temp.joinpath(out_file.name + '_ext')
55-
56-
# create outline
57-
ras.outline(temp_extent, image_bounds, 0, False)
58-
59-
# create exterior ring and write out
60-
vec.exterior(image_bounds, exterior, -0.0018)
61-
62-
# intersect with aoi
63-
if config_dict['processing']['mosaic']['cut_to_aoi']:
64-
try:
65-
vec.aoi_intersection(aoi, exterior, out_file)
66-
except ValueError:
67-
shutil.move(exterior, out_file)
68-
else:
69-
shutil.move(exterior, out_file)
70-
71-
return target_dir.name, list_of_scenes, out_file
72-
73-
7423
@retry(stop_max_attempt_number=3, wait_fixed=1)
7524
def mt_extent(list_of_extents, config_file):
7625

@@ -114,7 +63,7 @@ def mt_extent(list_of_extents, config_file):
11463
aoi_df = vec.wkt_to_gdf(config_dict['aoi'])
11564
df = gpd.overlay(aoi_df, df1, how='intersection')
11665
df.to_file(out_file, driver='GPKG')
117-
except ValueError as e:
66+
except ValueError:
11867
df1.to_file(out_file, driver='GeoJSON')
11968
else:
12069
df1.to_file(out_file, driver='GeoJSON')

ost/helpers/vector.py

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ def aoi_to_wkt(aoi):
6161
if Path(aoi).exists():
6262
try:
6363
gdf = gpd.GeoDataFrame.from_file(aoi)
64-
if gdf.crs != {'init': 'epsg:4326'}:
64+
if gdf.crs != {'epsg:4326'}:
6565
try:
66-
gdf = gdf.geometry.to_crs({'init': 'epsg:4326'})
66+
gdf = gdf.geometry.to_crs({'epsg:4326'})
6767
except:
6868
raise ValueError('No valid OST AOI definition.')
6969
# return AOI as single vector object
@@ -174,7 +174,7 @@ def geodesic_point_buffer(lat, lon, meters, envelope=False):
174174
"""
175175

176176
# get WGS 84 proj
177-
proj_wgs84 = pyproj.Proj(init='epsg:4326')
177+
proj_wgs84 = pyproj.Proj('epsg:4326')
178178

179179
# Azimuthal equidistant projection
180180
aeqd_proj = '+proj=aeqd +lat_0={lat} +lon_0={lon} +x_0=0 +y_0=0'
@@ -352,9 +352,7 @@ def wkt_to_gdf(wkt):
352352
# polygon wkt
353353
elif geometry.geom_type == 'Polygon':
354354
data = {'id': ['1'], 'geometry': loads(wkt)}
355-
gdf = gpd.GeoDataFrame(
356-
data, crs={'init': 'epsg:4326', 'no_defs': True}
357-
)
355+
gdf = gpd.GeoDataFrame(data, crs='epsg:4326')
358356

359357
# geometry collection of single multiploygon
360358
elif (
@@ -363,9 +361,7 @@ def wkt_to_gdf(wkt):
363361
):
364362

365363
data = {'id': ['1'], 'geometry': geometry}
366-
gdf = gpd.GeoDataFrame(
367-
data, crs={'init': 'epsg:4326', 'no_defs': True}
368-
)
364+
gdf = gpd.GeoDataFrame(data, crs='epsg:4326')
369365

370366
ids, feats = [], []
371367
for i, feat in enumerate(gdf.geometry.values[0]):
@@ -383,9 +379,7 @@ def wkt_to_gdf(wkt):
383379

384380
data = {'id': ['1'],
385381
'geometry': geometry}
386-
gdf = gpd.GeoDataFrame(
387-
data, crs={'init': 'epsg:4326', 'no_defs': True}
388-
)
382+
gdf = gpd.GeoDataFrame(data, crs='epsg:4326')
389383

390384
# everything else
391385
else:
@@ -396,10 +390,7 @@ def wkt_to_gdf(wkt):
396390
geoms.append(geom)
397391
i += 1
398392

399-
gdf = gpd.GeoDataFrame(
400-
{'id': ids, 'geometry': geoms},
401-
crs={'init': 'epsg:4326', 'no_defs': True}
402-
)
393+
gdf = gpd.GeoDataFrame({'id': ids, 'geometry': geoms}, crs='epsg:4326')
403394

404395
return gdf
405396

@@ -421,7 +412,7 @@ def exterior(infile, outfile, buffer=None):
421412
:param buffer:
422413
:return:
423414
"""
424-
gdf = gpd.read_file(infile, crs={'init': 'EPSG:4326'})
415+
gdf = gpd.read_file(infile, crs='epsg:4326')
425416
gdf.geometry = gdf.geometry.apply(lambda row: Polygon(row.exterior))
426417
gdf_clean = gdf[gdf.geometry.area >= 1.0e-6]
427418

ost/s1/burst_inventory.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def burst_inventory(inventory_df, outfile, download_dir=os.getenv('HOME'),
144144
'AnxTime', 'BurstNr', 'geometry']
145145

146146
# crs for empty dataframe
147-
crs = {'init': 'epsg:4326', 'no_defs': True}
147+
crs = 'epsg:4326'
148148
# create empty dataframe
149149
gdf_full = gpd.GeoDataFrame(columns=column_names, crs=crs)
150150

@@ -238,7 +238,7 @@ def refine_burst_inventory(aoi, burst_gdf, outfile, coverages=None):
238238
# turn aoi into a geodataframe
239239
aoi_gdf = gpd.GeoDataFrame(vec.wkt_to_gdf(aoi).buffer(0.05))
240240
aoi_gdf.columns = ['geometry']
241-
aoi_gdf.crs = {'init': 'epsg:4326', 'no_defs': True}
241+
aoi_gdf.crs = 'epsg:4326'
242242

243243
# get columns of input dataframe for later return function
244244
cols = burst_gdf.columns
@@ -282,10 +282,7 @@ def prepare_burst_inventory(burst_gdf, config_file):
282282
]
283283

284284
# create empty geodataframe
285-
proc_burst_gdf = gpd.GeoDataFrame(
286-
columns=cols, geometry='geometry',
287-
crs={'init': 'epsg:4326', 'no_defs': True}
288-
)
285+
proc_burst_gdf = gpd.GeoDataFrame(columns=cols, geometry='geometry', crs='epsg:4326')
289286

290287
# load relevant config parameters
291288
with open(config_file, 'r') as file:

ost/s1/refine_inventory.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,10 +455,7 @@ def _backward_search(aoi_gdf, inventory_df, datelist, area_reduce=0):
455455
if intersect_area >= aoi_area - area_reduce:
456456
break
457457

458-
return gpd.GeoDataFrame(
459-
out_frame, geometry='geometry',
460-
crs={'init': 'epsg:4326', 'no_defs': True}
461-
)
458+
return gpd.GeoDataFrame(out_frame, geometry='geometry', crs='epsg:4326')
462459

463460

464461
def search_refinement(

ost/s1/s1scene.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ def zip_annotation_get(self, download_dir, data_mount=None):
509509
'BurstNr', 'geometry']
510510

511511
# crs for empty dataframe
512-
crs = {'init': 'epsg:4326'}
512+
crs = 'epsg:4326'
513513
gdf_final = gpd.GeoDataFrame(columns=column_names, crs=crs)
514514

515515
file = self.get_path(download_dir, data_mount)

ost/s1/search.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def _query_scihub(opener, query):
161161
'geometry'
162162
]
163163

164-
crs = {'init': 'epsg:4326'}
164+
crs = 'epsg:4326'
165165
geo_df = gpd.GeoDataFrame(columns=columns, crs=crs)
166166

167167
# we need this for the paging

0 commit comments

Comments
 (0)