from owslib.sos import SensorObservationService
from owslib.swe.observation.sos200 import SOSGetObservationResponse
from IPython.core.display import HTML
service = SensorObservationService('http://www.bom.gov.au/waterdata/services',version='2.0.0')
str =''
for prop in service.observed_properties:
str += '
' + prop.replace('http://bom.gov.au/waterdata/services/parameters/','') + ''
HTML(str)
response = service.get_observation(featureOfInterest='http://bom.gov.au/waterdata/services/stations/181.1',
offerings=['http://bom.gov.au/waterdata/services/tstypes/Pat4_PC_1'],
observedProperties=['http://bom.gov.au/waterdata/services/parameters/Water Course Discharge'],
eventTime='om:phenomenonTime,2016-01-01T00:00:00+10/2016-03-05T00:00:00+10')
%matplotlib inline
from owslib.etree import etree
import pandas as pd
from pandas import Series
et = etree.fromstring(response)
parsed_response = SOSGetObservationResponse(et)
for o in parsed_response.observations[0:2]:
series = o.get_result()
dates = [p.datetime for p in series]
values = [p.value for p in series]
series = pd.Series(values, index=dates)
series.plot()