Skip to content

Commit

Permalink
Issue #127 fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
micah-prime committed Oct 3, 2024
1 parent 07c1bc7 commit 2fef13c
Showing 1 changed file with 35 additions and 8 deletions.
43 changes: 35 additions & 8 deletions snowexsql/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,13 @@ def _filter_campaign(cls, qry, v):
)
return qry

@classmethod
def _filter_observers(cls, qry, v):
qry = qry.join(
cls.MODEL.observers
).filter(Observer.name == v)
return qry

@classmethod
def extend_qry(cls, qry, check_size=True, **kwargs):
if cls.MODEL is None:
Expand Down Expand Up @@ -147,9 +154,7 @@ def extend_qry(cls, qry, check_size=True, **kwargs):
qry_model.site.has(name=v)
)
elif k == "observer":
qry = qry.join(
qry_model.observers
).filter(Observer.name == v)
qry = cls._filter_observers(qry, v)
elif k == "doi":
qry = qry.join(
qry_model.doi
Expand Down Expand Up @@ -324,11 +329,19 @@ def from_area(cls, shp=None, pt=None, buffer=None, crs=26912, **kwargs):
try:
if shp is not None:
qry = session.query(cls.MODEL)
qry = qry.filter(
func.ST_Within(
cls.MODEL.geom, from_shape(shp, srid=crs)
# Filter geometry based on Site for LayerData
if cls.MODEL == LayerData:
qry = qry.join(cls.MODEL.site).filter(
func.ST_Within(
Site.geom, from_shape(shp, srid=crs)
)
)
else:
qry = qry.filter(
func.ST_Within(
cls.MODEL.geom, from_shape(shp, srid=crs)
)
)
)
qry = cls.extend_qry(qry, check_size=True, **kwargs)
df = query_to_geopandas(qry, engine)
else:
Expand All @@ -341,7 +354,15 @@ def from_area(cls, shp=None, pt=None, buffer=None, crs=26912, **kwargs):

buffered_pt = qry.all()[0][0]
qry = session.query(cls.MODEL)
qry = qry.filter(func.ST_Within(cls.MODEL.geom, buffered_pt))
# Filter geometry based on Site for LayerData
if cls.MODEL == LayerData:
qry = qry.join(cls.MODEL.site).filter(
func.ST_Within(Site.geom, buffered_pt)
)
else:
qry = qry.filter(
func.ST_Within(cls.MODEL.geom, buffered_pt)
)
qry = cls.extend_qry(qry, check_size=True, **kwargs)
df = query_to_geopandas(qry, engine)
except Exception as e:
Expand Down Expand Up @@ -374,6 +395,12 @@ def _filter_campaign(cls, qry, v):
Site.campaign).filter(Campaign.name == v)
return qry

@classmethod
def _filter_observers(cls, qry, v):
qry = qry.join(cls.MODEL.site).join(
Site.observers).filter(Observer.name == v)
return qry

@property
def all_site_ids(self):
"""
Expand Down

0 comments on commit 2fef13c

Please sign in to comment.