0

I'm tring to access all water level data within a bounding box and temporal extent using the OGC SOS from the NOAA CO-OPS. On the page here: http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/ there is a very useful SOS query builder tool, and I can formulate a query to get all the station data in a specific region:

http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetObservation&version=1.0.0&observedProperty=water_surface_height_above_reference_datum&offering=urn:ioos:network:NOAA.NOS.CO-OPS:WaterLevelActive&featureOfInterest=BBOX:-74.4751,40.389,-73.7432,40.9397&responseFormat=text%2Fcsv&eventTime=2012-10-26T00:00:00Z/2012-11-01T00:00:00Z&result=VerticalDatum%3D%3Durn:ogc:def:datum:epsg::5103&dataType=VerifiedSixMinute

But when I execute this query it tells me max of 1 day can be requested in a collection.

So I guess there are two approaches.

Approach 1: Do a query on collection with bounding box, but only the start time requested:

http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetObservation&version=1.0.0&observedProperty=water_surface_height_above_reference_datum&offering=urn:ioos:network:NOAA.NOS.CO-OPS:WaterLevelActive&featureOfInterest=BBOX:-74.4751,40.389,-73.7432,40.9397&responseFormat=text%2Fcsv&eventTime=2012-10-26T00:00:00Z&result=VerticalDatum%3D%3Durn:ogc:def:datum:epsg::5103&dataType=VerifiedSixMinute

which returns:

station_id,sensor_id,"latitude (degree)","longitude (degree)",date_time,"water_surface_height_above_reference_datum (m)",datum_id,"vertical_position (m)"
urn:ioos:station:NOAA.NOS.CO-OPS:8518750,urn:ioos:sensor:NOAA.NOS.CO-OPS:8518750:W1,40.7006,-74.0142,2012-10-26T00:00:00Z,0.446,urn:ogc:def:datum:epsg::5103,1.848
urn:ioos:station:NOAA.NOS.CO-OPS:8531680,urn:ioos:sensor:NOAA.NOS.CO-OPS:8531680:W1,40.4669,-74.0094,2012-10-26T00:00:00Z,0.319,urn:ogc:def:datum:epsg::5103,1.624

and then I could strip out the station_id and use them in single station queries.

Approach 2: Issue multiple collection request for periods of one day and then concatenate the responses together.

I guess I would use approach 1 if I had more days than stations, and approach 2 if I had more stations than days.

Is there a better way?

1

Both approaches are valid and your reasoning is correct. This is more relevant when the requests and responses are handled manually.

If you were to write a small program to do that on your behalf, then that process becomes a breeze. Here is a link where you can find some sample Java programs that show how you can access data from multiple stations for longer periods of time:

http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/ClientGetter?p=15

On the other hand issuing a GetCapabilities request before asking for the data of interest will allow you to filter and choose the stations based on their data offerings and their locations.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.