Skip to content

Commit fda497d

Browse files
committed
correct sample function
1 parent ad2630e commit fda497d

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

map2loop/sampler.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import shapely
1212
import numpy
1313
from typing import Optional
14+
from osgeo import gdal
1415

1516

1617
class Sampler(ABC):
@@ -74,7 +75,7 @@ def __init__(self, decimation: int = 1):
7475

7576
@beartype.beartype
7677
def sample(
77-
self, spatial_data: geopandas.GeoDataFrame, dtm_data: Optional[geopandas.GeoDataFrame] = None, geology_data: Optional[geopandas.GeoDataFrame] = None
78+
self, spatial_data: geopandas.GeoDataFrame, dtm_data: Optional[gdal.Dataset] = None, geology_data: Optional[geopandas.GeoDataFrame] = None
7879
) -> pandas.DataFrame:
7980
"""
8081
Execute sample method takes full point data, samples the data and returns the decimated points
@@ -88,10 +89,16 @@ def sample(
8889
data = spatial_data.copy()
8990
data["X"] = data.geometry.x
9091
data["Y"] = data.geometry.y
91-
data["Z"] = set_z_values_from_raster_df(dtm_data, data)["Z"]
92-
data["layerID"] = geopandas.sjoin(
93-
data, geology_data, how='left'
94-
)['index_right']
92+
if dtm_data is not None:
93+
data["Z"] = set_z_values_from_raster_df(dtm_data, data)["Z"]
94+
else:
95+
data["Z"] = None
96+
if geology_data is not None:
97+
data["layerID"] = geopandas.sjoin(
98+
data, geology_data, how='left'
99+
)['index_right']
100+
else:
101+
data["layerID"] = None
95102
data.reset_index(drop=True, inplace=True)
96103

97104
return pandas.DataFrame(data[:: self.decimation].drop(columns="geometry"))

0 commit comments

Comments
 (0)