From d576238617070ec2e099f5e828e1cba2768460cd Mon Sep 17 00:00:00 2001 From: Nik Sauer Date: Wed, 19 Feb 2025 15:22:49 +0100 Subject: [PATCH] added filter in city current for pm2_5 --- code/routers/city.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/routers/city.py b/code/routers/city.py index 701ef14..8cd2fa0 100644 --- a/code/routers/city.py +++ b/code/routers/city.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Response from sqlalchemy.orm import Session from database import get_db -from sqlalchemy import func, desc +from sqlalchemy import func, or_, distinct, and_ from datetime import datetime, timezone, timedelta from zoneinfo import ZoneInfo @@ -60,7 +60,7 @@ async def get_average_measurements_by_city( now = datetime.now(timezone.utc) start = now - timedelta(hours=1) - from sqlalchemy import distinct + LOWER, UPPER = Dimension.get_filter_threshold(Dimension.PM2_5) q = ( db.query( @@ -77,9 +77,13 @@ async def get_average_measurements_by_city( .filter(City.slug == city_slug) .filter(Values.value != 'nan') .filter(Measurement.time_measured >= start) + # filter outlier + .filter(or_(Values.dimension != Dimension.PM2_5, and_(LOWER <= Values.value, Values.value <= UPPER))) .group_by(Values.dimension) ) + print(len(q.all())) + station_count = db.query(Station).join(Location).join(City).filter(City.slug == city_slug).count() j = {