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()