Skip to content

Commit c351df5

Browse files
committed
Add check for getting consitant coordinates
1 parent ea709e7 commit c351df5

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

api/routers/edr.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from utilities import split_and_strip
3131
from utilities import validate_bbox
3232
from utilities import verify_parameter_names
33+
from utilities import calculate_largest_postition_deviation
3334

3435
router = APIRouter(prefix="/collections/observations")
3536

@@ -97,6 +98,7 @@ async def get_locations(
9798
platform_coordinates[obs.ts_mdata.platform].add(
9899
(obs.obs_mdata[-1].geo_point.lon, obs.obs_mdata[-1].geo_point.lat)
99100
)
101+
100102
# Check for inconsistent parameter definitions between stations
101103
# TODO: How to handle those?
102104
if obs.ts_mdata.parameter_name in all_parameters and all_parameters[obs.ts_mdata.parameter_name] != parameter:
@@ -112,6 +114,16 @@ async def get_locations(
112114
# Check for multiple coordinates or names on one station
113115
for station_id in platform_parameters.keys():
114116
if len(platform_coordinates[station_id]) > 1:
117+
if (
118+
calculate_largest_postition_deviation(platform_coordinates[station_id]) < 1e-4
119+
): # all coordinates is with 10M
120+
platform_coordinates[station_id] = {
121+
sorted(
122+
[i for i in platform_coordinates[station_id]],
123+
key=lambda x: (len(str(x[0])), len(str(x[1])), x[0], x[1]),
124+
)[-1]
125+
}
126+
continue
115127
raise HTTPException(
116128
status_code=500,
117129
detail={

0 commit comments

Comments
 (0)