Package: edr-query-parser
OGC Environmental Data Retrieval API Query ParserTheOGC Environmental Data Retrieval APIquery parser makes it easy to use the EDR queries in your python project.Installpipinstalledr-query-parserUsageCollection Name Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/position?parameter-name=param1,param2''&coords=POINT(57.819 -3.966)&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&f=geoJSON&crs=84&z=500/400')print(edr_query.collection_name)#my_collectionQuery Type Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/position?parameter-name=param1,param2''&coords=POINT(57.819 -3.966)&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&f=geoJSON&crs=84&z=500/400')ifedr_query.instance_id:#is it an instanceprint(edr_query.instance_id)else:print(edr_query.query_type.is_position)# Trueprint(edr_query.query_type.is_radius)# Falseprint(edr_query.query_type.is_locations)# Falseprint(edr_query.query_type.is_corridor)# Falseprint(edr_query.query_type.is_area)# Falseprint(edr_query.query_type.is_trajectory)# Falseprint(edr_query.query_type.is_cube)# Falseprint(edr_query.query_type.is_items)# Falseprint(edr_query.query_type.value)# positionlocation ID Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/locations/aberdeen?''parameter-name=param1,param2&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00&''f=geoJSON&crs=84&z=500/400')ifedr_query.query_type.is_locations:print(edr_query.location_id)#aberdeenitem ID Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/items/2019-09-07')ifedr_query.query_type.is_items:print(edr_query.item_id)#2019-09-07coords ExampleThe EDR query parser returns aWKTobjectfromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/position?''coords=POINT(57.819 -3.966)&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&parameter-name=parameter1,parameter2&f=geoJSON&crs=84&z=all')ifedr_query.coords.is_set:print(edr_query.coords.coords_type)# Pointifedr_query.coords.coords_type=='Point':print(edr_query.coords.coordinates[0])# 57.819print(edr_query.coords.coordinates[1])# -3.966parameter-name Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/''position?coords=POINT(57.819 -3.966)''&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&parameter-name=parameter1,parameter2&f=geoJSON&crs=84&z=all')ifedr_query.parameter_name.is_set:print(edr_query.parameter_name.list)# [parameter1, parameter2]datetime Parameter ExampleThe EDR query parser converts the datetime parameter into a number of properties
with the date properties being expressed as adatetimeobjectfromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/''position?coords=POINT(57.819 -3.966)''&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&parameter-name=parameter1,parameter2&f=geoJSON&crs=84&z=all')ifedr_query.datetime.is_set:ifedr_query.datetime.is_interval:print(edr_query.datetime.interval_from.timestamp(),edr_query.datetime.interval_to.timestamp())elifedr_query.datetime.is_interval_open_end:print(edr_query.datetime.interval_open_end.timestamp())elifedr_query.datetime.is_interval_open_start:print(edr_query.datetime.interval_open_start.timestamp())else:print(edr_query.datetime.exact.timestamp())f Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/position?parameter-name=param1,param2''&coords=POINT(57.819 -3.966)&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&f=geoJSON&crs=84&z=500/400')print(edr_query.format.value)# geoJSONz Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/''position?coords=POINT(57.819 -3.966)''&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&parameter-name=parameter1,parameter2&f=geoJSON&crs=84&z=12/240')ifedr_query.z.is_set:ifedr_query.z.is_interval:print(edr_query.z.interval_from,edr_query.z.interval_to)ifedr_query.z.is_list:print(edr_query.z.interval_from,edr_query.z.list)crs Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/''position?coords=POINT(57.819 -3.966)''&datetime=2019-09-07T15:50-04:00/2019-09-07T15:50-05:00''&parameter-name=parameter1,parameter2&f=geoJSON&crs=84&z=12/240')print(edr_query.crs.value)# 84bbox Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/items/some_item/?bbox=12,13,20,21')print(edr_query.bbox.list)# [12.0, 13.0, 20.0, 21.0]Pagination limit Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/items?limit=100')print(edr_query.limit.value)# 100Pagination next Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/items?next=token123')print(edr_query.next.value)# "token123"corridor-height Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/corridor?corridor-height=12''&corridor-width=5')print(edr_query.corridor_height.value)# "12"corridor-width Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/corridor?corridor-height=12''&corridor-width=5')print(edr_query.corridor_width.value)# "5"width-units Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/corridor?width-units=km')print(edr_query.width_units.value)# "km"height-units Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/corridor?height-units=km')print(edr_query.height_units.value)# "km"within Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/radius?within=10&within-units=km')print(edr_query.within.value)# "10"within-units Parameter Examplefromedr_query_parserimportEDRQueryParseredr_query=EDRQueryParser('https://somewhere.com/collections/my_collection/radius?within=10&within-units=km')print(edr_query.within_units.value)# "km"