emerald-geomodelling / libaarhusxyz

Parser for the Aarhus Workbench XYZ format
MIT License
2 stars 0 forks source link

need way to filter and EM models by geographic area #19

Open burningsage opened 10 months ago

burningsage commented 10 months ago

something like this:

aoi = data.getProjectSubArea(area_of_interest)[0]
aoi = pd.DataFrame(data=aoi, columns=['x', 'y'])
aoi = gpd.GeoDataFrame(geometry=[Polygon(tuple([(x, y) for x, y  in zip(aoi.x, aoi.y)]))],
                       crs=data.projection)
mtempdat = gpd.GeoDataFrame(data=data.em.flightlines, geometry=gpd.points_from_xy(x=data.em.flightlines.x, y=data.em.flightlines.y, crs=data.projection), crs=data.projection)
mpoints_clip = gpd.clip(mtempdat, aoi)
mpoints_clip.sort_values(by='record', inplace=True)

InIndex = mtempdat.loc[mtempdat.index.isin(mpoints_clip.index)].index
data.em.flightlines = data.em.flightlines.loc[InIndex].reset_index(drop=True)
for key in list(data.em.layer_data.keys()):
    data.em.layer_data[key] = data.em.layer_data[key].loc[InIndex].reset_index(drop=True)