In [1]:
from utilities import * 
css_styles()


Out[1]:

IOOS System Test - Theme 2

CoscoBusan

  • November 7, 2007 at 8:27 AM the container ship M/V Cosco Busan strikes the San Francisco Bay Bridge tearing a 100 ft. long gash in its hull over the fuel tanks.
  • 50,000 gals of bunker fuel discharges into the Bay in approximately 10 seconds.
  • The USCG and DFG are notified of an incident and respond immediately, on-scene in 50 minutes.

In [2]:
from pylab import *
from IPython.display import HTML

Geographic subset


In [3]:
bounding_box = [ -123.38, 37.05, -121.53, 38.37]  # San Francisco Bay and surrounding waters

"Geographic subset: {!s}".format(bounding_box)


Out[3]:
'Geographic subset: [-123.38, 37.05, -121.53, 38.37]'

Temporal subset


In [4]:
from datetime import datetime
start_date = datetime(2007,11,1)
start_date_string = start_date.strftime('%Y-%m-%d %H:00')

end_date = datetime(2007,11,14)
end_date_string = end_date.strftime('%Y-%m-%d %H:00')

"Temporal subset: ( {!s} to {!s} )".format(start_date_string, end_date_string)


Out[4]:
'Temporal subset: ( 2007-11-01 00:00 to 2007-11-14 00:00 )'

Define all known the CSW endpoints


In [5]:
# https://github.com/ioos/system-test/wiki/Service-Registries-and-Data-Catalogs
known_csw_servers = ['http://data.nodc.noaa.gov/geoportal/csw',
                     'http://www.nodc.noaa.gov/geoportal/csw',
                     'http://www.ngdc.noaa.gov/geoportal/csw',
                     'http://cwic.csiss.gmu.edu/cwicv1/discovery',
                     'http://geoport.whoi.edu/geoportal/csw',
                     'https://edg.epa.gov/metadata/csw',
                     'http://cmgds.marine.usgs.gov/geonetwork/srv/en/csw',
                     'http://cida.usgs.gov/gdp/geonetwork/srv/en/csw',
                     'http://geodiscover.cgdi.ca/wes/serviceManagerCSW/csw',
                     'http://geoport.whoi.edu/gi-cat/services/cswiso',
                     'https://data.noaa.gov/csw',
                     ]

Construct CSW Filters


In [6]:
from owslib import fes
def fes_date_filter(start_date='1900-01-01',stop_date='2100-01-01',constraint='overlaps'):
    if constraint == 'overlaps':
        start = fes.PropertyIsGreaterThanOrEqualTo(propertyname='apiso:TempExtent_end', literal=start_date)
        stop = fes.PropertyIsLessThanOrEqualTo(propertyname='apiso:TempExtent_begin', literal=stop_date)
    elif constraint == 'within':
        start = fes.PropertyIsGreaterThanOrEqualTo(propertyname='apiso:TempExtent_begin', literal=start_date)
        stop = fes.PropertyIsLessThanOrEqualTo(propertyname='apiso:TempExtent_end', literal=stop_date)
    return fes.And([start, stop])

In [7]:
# Geographic filters
geographic_filter = fes.BBox(bbox=bounding_box)

# Temporal filters
temporal_filter = fes_date_filter(start_date_string, end_date_string)

filters = fes.And([geographic_filter, temporal_filter])
The actual CSW filter POST envelope looks like this

In [8]:
from owslib.etree import etree
print etree.tostring(filters.toXML(), pretty_print=True)


<ogc:And xmlns:ogc="http://www.opengis.net/ogc">
  <ogc:BBOX>
    <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
    <gml311:Envelope xmlns:gml311="http://www.opengis.net/gml">
      <gml311:lowerCorner>-123.38 37.05</gml311:lowerCorner>
      <gml311:upperCorner>-121.53 38.37</gml311:upperCorner>
    </gml311:Envelope>
  </ogc:BBOX>
  <ogc:And>
    <ogc:PropertyIsGreaterThanOrEqualTo>
      <ogc:PropertyName>apiso:TempExtent_end</ogc:PropertyName>
      <ogc:Literal>2007-11-01 00:00</ogc:Literal>
    </ogc:PropertyIsGreaterThanOrEqualTo>
    <ogc:PropertyIsLessThanOrEqualTo>
      <ogc:PropertyName>apiso:TempExtent_begin</ogc:PropertyName>
      <ogc:Literal>2007-11-14 00:00</ogc:Literal>
    </ogc:PropertyIsLessThanOrEqualTo>
  </ogc:And>
</ogc:And>

Filter out CSW servers that do not support a BBOX query

In [9]:
from owslib.csw import CatalogueServiceWeb
bbox_endpoints = []
for url in known_csw_servers:
    queryables = []
    try:
        csw = CatalogueServiceWeb(url, timeout=20)
    except BaseException:
        print "Failure - %s - Timed out" % url
    if "BBOX" in csw.filters.spatial_operators:
        print "Success - %s - BBOX Query supported" % url
        bbox_endpoints.append(url)    
    else:
        print "Failure - %s - BBOX Query NOT supported" % url


Success - http://data.nodc.noaa.gov/geoportal/csw - BBOX Query supported
Success - http://www.nodc.noaa.gov/geoportal/csw - BBOX Query supported
Success - http://www.ngdc.noaa.gov/geoportal/csw - BBOX Query supported
Success - http://cwic.csiss.gmu.edu/cwicv1/discovery - BBOX Query supported
Success - http://geoport.whoi.edu/geoportal/csw - BBOX Query supported
Success - https://edg.epa.gov/metadata/csw - BBOX Query supported
Success - http://cmgds.marine.usgs.gov/geonetwork/srv/en/csw - BBOX Query supported
Success - http://cida.usgs.gov/gdp/geonetwork/srv/en/csw - BBOX Query supported
Success - http://geodiscover.cgdi.ca/wes/serviceManagerCSW/csw - BBOX Query supported
Failure - http://geoport.whoi.edu/gi-cat/services/cswiso - Timed out
Success - http://geoport.whoi.edu/gi-cat/services/cswiso - BBOX Query supported
Success - https://data.noaa.gov/csw - BBOX Query supported

Query CSW Servers using filters


In [10]:
titles = []
urls = []
service_types = []
servers = []
for url in bbox_endpoints:
    print "*", url
    try:
        csw = CatalogueServiceWeb(url, timeout=20)
        csw.getrecords2(constraints=[filters], maxrecords=200, esn='full')
        for record, item in csw.records.items():
            try:
                # Get title
                if len(item.title) > 80:
                   title = "{!s}...{!s}".format(item.title[0:40], item.title[-40:])
                else:
                    title = item.title
                service_url, scheme = next(((d['url'], d['scheme']) for d in item.references), None)
                if service_url:    
                    print "    [x] {!s}".format(title)
                    titles.append(item.title)
                    urls.append(service_url)
                    service_types.append(scheme)
                    servers.append(url)
            except:
                continue
    except BaseException as e:
        print "    [-] FAILED: {!s}".format(e)


* http://data.nodc.noaa.gov/geoportal/csw
    [x] Database and documents created as part o...h Watch program (NODC Accession 0069124)
    [x] Environmental Sensitivity Index (ESI) At...on systems data (NODC Accession 0052935)
    [x] Temperature and current data from moorin...n System (WCOS) (NODC Accession 0002039)
    [x] Temperature, salinity, and dissolved oxy...August 30, 2011 (NODC Accession 0082196)
    [x] Real-Time XBT Data assembled by US NOAA ...07 - 11/25/2007 (NODC Accession 0036654)
    [x] NOAA's Coastal Change Analysis Program (...l United States (NODC Accession 0121254)
    [x] Northern elephant seal temperature cast ...anuary 25, 2011 (NODC Accession 0077805)
    [x] Real-Time XBT data assembled by US NOAA ...21 - 2014-07-27 (NODC Accession 0120671)
    [x] Physical and meteorological data from th...1 to 2007-12-31 (NODC Accession 0111862)
    [x] Water quality, meteorological, and nutri... August 1, 2011 (NODC Accession 0052765)
    [x] Environmental toxicology data collected ... to 05 May 2010 (NODC Accession 0074376)
    [x] Biological, chemical, and physical data ...1 to 7 Mar 2013 (NODC Accession 0117942)
    [x] 14 km Sea Surface Temperature for North ... 1986 - present (NODC Accession 0099042)
    [x] NOAA marine environmental buoy data from...r November 2007 (NODC Accession 0037101)
    [x] Partial pressure (or fugacity) of carbon...6 to 2013-04-25 (NODC Accession 0081041)
    [x] Real-Time XBT Data assembled by US NOAA ...07 - 11/18/2007 (NODC Accession 0036511)
    [x] Real-Time XBT Data assembled by US NOAA ...07 - 12/02/2007 (NODC Accession 0036812)
    [x] Real-Time XBT Data assembled by US NOAA ...08 - 07/13/2008 (NODC Accession 0043250)
    [x] Real-Time XBT Data assembled by US NOAA ...08 - 01/13/2008 (NODC Accession 0037999)
    [x] Dissolved Inorganic Carbon, Alkalinity, ...IFICA) Database (NODC Accession 0110865)
    [x] Real-Time XBT Data assembled by US NOAA ...07 - 11/04/2007 (NODC Accession 0036106)
    [x] Delayed CTD and XBT data assembled and s...79 - 05/25/2010 (NODC Accession 0065272)
    [x] Ocean currents measured by Shipboard Aco...o 16 March 2008 (NODC Accession 0049878)
    [x] Dissolved inorganic carbon, alkalinity, ...1 to 2012-03-18 (NODC Accession 0081040)
    [x] Marine mammal observations conducted dur... 25 August 2009 (NODC Accession 0083783)
    [x] Real-time profile data assembled by Cana...k of 11/12/2007 (NODC Accession 0036508)
    [x] Real-time profile data assembled by Cana...ek of 11/5/2007 (NODC Accession 0036200)
    [x] Real-time profile data assembled by Cana...k of 12/17/2007 (NODC Accession 0037175)
    [x] Real-time profile data assembled by Cana...k of 11/26/2007 (NODC Accession 0036811)
    [x] Real-time profile data assembled by Cana...k of 12/10/2007 (NODC Accession 0037066)
    [x] Oceanographic profile temperature, salin...om 1994 to 2012 (NODC Accession 0108923)
    [x] GHRSST Level 2P Eastern Pacific Regional...s (GOES) Imager on the GOES-11 satellite
    [x] Real-time profile data assembled by Cana...k of 11/19/2007 (NODC Accession 0036653)
    [x] Real-time profile data assembled by Cana...ek of 1/28/2008 (NODC Accession 0038510)
    [x] Real-time profile data assembled by Cana...eek of 1/7/2008 (NODC Accession 0037998)
    [x] Real-time profile data assembled by Cana...ek of 1/21/2008 (NODC Accession 0038295)
    [x] Real-time profile data assembled by Cana...k of 12/24/2007 (NODC Accession 0037747)
    [x] Real-time profile data assembled by Cana...ek of 12/3/2007 (NODC Accession 0036982)
    [x] Real-time profile data assembled by Cana...eek of 2/4/2008 (NODC Accession 0038681)
    [x] Real-time profile data assembled by Cana...ek of 3/24/2008 (NODC Accession 0039764)
    [x] Real-time profile data assembled by Cana...ek of 2/18/2008 (NODC Accession 0038997)
    [x] Ocean currents measured by Shipboard Aco... to 13 May 2009 (NODC Accession 0067774)
    [x] Partial pressure (or fugacity) of carbon...4 to 2012-08-31 (NODC Accession 0083189)
    [x] Real-time profile data assembled by Cana...k of 01/18/2010 (NODC Accession 0061367)
    [x] Ocean currents measured by shipboard ADC...0-07 to 2012-02 (NODC Accession 0093159)
    [x] Temperature, salinity, and other profile...1972 to present (NODC Accession 0038589)
    [x] North and South Pacific Ocean Temperatur...01 to June 2009 (NODC Accession 0056790)
    [x] GHRSST Level 2P West Atlantic Regional S...s (GOES) Imager on the GOES-12 satellite
    [x] Temperature, salinity, nutrients, oxygen...om 1873 to 2007 (NODC Accession 0002023)
    [x] Real-Time XBT data assembled by US NOAA ...21 - 2014-04-27 (NODC Accession 0117871)
    [x] Physical oceanographic data collected fr...7 to 2011-10-27 (NODC Accession 0104152)
    [x] Annual update of delayed mode profile da... DFO-MPO Canada (NODC Accession 0098794)
    [x] Temperature and salinity profile data fr...1 to 2009-06-29 (NODC Accession 0054952)
    [x] Temperature and salinity profile data fr...5 to 2009-11-11 (NODC Accession 0059419)
    [x] Temperature and salinity profile data fr...0 to 2010-02-24 (NODC Accession 0062336)
    [x] Temperature and salinity profile data fr...6 to 2010-03-03 (NODC Accession 0062541)
    [x] Temperature and salinity profile data fr...5 to 2009-12-23 (NODC Accession 0060676)
    [x] Temperature and salinity profile data fr...3 to 2010-04-20 (NODC Accession 0063426)
    [x] Temperature and salinity profile data fr...2 to 2009-10-14 (NODC Accession 0058712)
    [x] Temperature and salinity profile data fr...5-21 2009-07-29 (NODC Accession 0056401)
    [x] Temperature and salinity profile data fr...1 to 2009-11-25 (NODC Accession 0059843)
    [x] Temperature and salinity profile data fr...0 to 2010-07-07 (NODC Accession 0065608)
    [x] Temperature and salinity profile data fr...1 to 2009-11-04 (NODC Accession 0059252)
    [x] Temperature and salinity profile data fr...1 to 2010-04-28 (NODC Accession 0063915)
    [x] Temperature and salinity profile data fr...6 to 2009-02-25 (NODC Accession 0051511)
    [x] Temperature and salinity profile data fr...8 to 2010-05-05 (NODC Accession 0064230)
    [x] Temperature and Salinity profile data fr...4 to 2008-07-02 (NODC Accession 0043168)
    [x] Temperature and salinity profile data fr...0 to 2010-04-14 (NODC Accession 0063066)
    [x] Temperature and salinity profile data fr...1 to 2010-05-26 (NODC Accession 0064596)
    [x] Temperature and Salinity profile data fr...1 to 2008-09-03 (NODC Accession 0045171)
    [x] Temperature and salinity profile data fr...6 to 2009-11-18 (NODC Accession 0059715)
    [x] Temperature and salinity profile data fr...5 to 2009-08-12 (NODC Accession 0056916)
    [x] Temperature and salinity profile data fr...0 to 2010-03-30 (NODC Accession 0062945)
    [x] Temperature and salinity profile data fr...0 to 2009-10-07 (NODC Accession 0058661)
    [x] Temperature and salinity profile data fr...1 to 2009-05-13 (NODC Accession 0053781)
    [x] Temperature and salinity profile data fr...6 to 2009-05-06 (NODC Accession 0053667)
    [x] Temperature and salinity profile data fr...0 to 2009-09-15 (NODC Accession 0057931)
    [x] Temperature and Salinity profile data fr...5 to 2008-10-01 (NODC Accession 0046091)
    [x] Temperature and salinity profile data fr...5 to 2009-04-15 (NODC Accession 0053404)
    [x] Temperature and salinity profile data fr...5 to 2010-03-10 (NODC Accession 0062620)
    [x] Temperature and salinity profile data fr...6 to 2009-09-02 (NODC Accession 0057380)
    [x] Temperature and salinity profile data fr...6 to 2009-09-29 (NODC Accession 0058435)
    [x] Temperature and salinity profile data fr...1 to 2009-12-02 (NODC Accession 0059941)
    [x] Temperature and salinity profile data fr...3 to 2009-10-21 (NODC Accession 0058895)
    [x] Temperature and salinity profile data fr...2 to 2009-08-19 (NODC Accession 0057012)
    [x] Temperature and salinity profile data fr...0 to 2009-08-26 (NODC Accession 0057201)
    [x] Temperature and salinity profile data fr...1 to 2009-05-20 (NODC Accession 0002096)
    [x] Temperature and salinity profile data fr...2 to 2008-05-14 (NODC Accession 0042233)
    [x] Temperature and salinity profile data fr...2 to 2009-05-27 (NODC Accession 0054151)
    [x] Temperature and salinity profile data fr...2 to 2010-01-27 (NODC Accession 0061627)
    [x] Temperature and salinity profile data fr...3-01 2009-07-22 (NODC Accession 0056186)
    [x] Temperature and salinity profile data fr...4 to 2010-09-07 (NODC Accession 0067578)
    [x] Temperature and salinity profile data fr...5 to 2009-09-09 (NODC Accession 0057653)
    [x] Temperature and salinity profile data fr...8 to 2009-03-18 (NODC Accession 0002061)
    [x] Temperature and salinity profile data fr...6 to 2010-03-24 (NODC Accession 0062812)
    [x] Temperature and salinity profile data fr...5 to 2009-10-28 (NODC Accession 0059070)
    [x] Temperature and Salinity profile data fr...3 to 2008-08-06 (NODC Accession 0044418)
    [x] Temperature and salinity profile data fr...2 to 2010-02-03 (NODC Accession 0061793)
    [x] Temperature and salinity profile data fr...3 to 2008-05-27 (NODC Accession 0042581)
    [x] Temperature and Salinity profile data fr...8 to 2008-09-24 (NODC Accession 0045718)
    [x] Temperature and Salinity profile data fr...6 to 2008-07-30 (NODC Accession 0044081)
    [x] Temperature and Salinity profile data fr...2 to 2008-10-22 (NODC Accession 0046744)
    [x] Temperature and salinity profile data fr...1 to 2009-12-09 (NODC Accession 0060151)
    [x] Temperature and Salinity profile data fr...1 to 2008-10-15 (NODC Accession 0046551)
    [x] Temperature and salinity profile data fr...8 to 2009-06-10 (NODC Accession 0054495)
    [x] Temperature and Salinity profile data fr...5 to 2008-08-12 (NODC Accession 0044571)
    [x] Temperature and Salinity profile data fr...2 to 2008-08-20 (NODC Accession 0044799)
    [x] Temperature and salinity profile data fr...0 to 2009-08-05 (NODC Accession 0056402)
    [x] Temperature and Salinity profile data fr...2 to 2008-07-09 (NODC Accession 0043301)
    [x] Temperature and Salinity profile data fr...2 to 2008-06-25 (NODC Accession 0043160)
    [x] Temperature and Salinity profile data fr...2 to 2008-09-17 (NODC Accession 0045501)
    [x] Temperature and salinity profile data fr...5 to 2010-01-13 (NODC Accession 0061249)
    [x] Temperature and salinity profile data fr...4 to 2008-06-18 (NODC Accession 0042993)
    [x] Temperature and salinity profile data fr...5 to 2010-02-17 (NODC Accession 0062190)
    [x] Temperature and Salinity profile data fr...4 to 2008-08-27 (NODC Accession 0045045)
    [x] Temperature and salinity profile data fr...7 to 2007-11-10 (NODC Accession 0036509)
    [x] Temperature and salinity profile data fr...0 to 2010-01-20 (NODC Accession 0061422)
    [x] Temperature and Salinity profile data fr...8 to 2008-06-11 (NODC Accession 0042829)
    [x] Temperature and salinity profile data fr...6 to 2008-01-05 (NODC Accession 0037968)
    [x] Temperature and salinity profile data fr...7 to 2009-09-22 (NODC Accession 0058095)
    [x] Temperature and salinity profile data fr...3 to 2010-04-07 (NODC Accession 0062992)
    [x] Temperature and salinity profile data fr...1 to 2007-12-15 (NODC Accession 0037174)
    [x] Temperature and Salinity profile data fr...6 to 2008-07-23 (NODC Accession 0043700)
    [x] Temperature and salinity profile data fr...1 to 2009-01-21 (NODC Accession 0049908)
    [x] Temperature and salinity profile data fr...1 to 2007-11-17 (NODC Accession 0036655)
    [x] Temperature and Salinity profile data fr...1 to 2008-12-03 (NODC Accession 0049080)
    [x] GEOSAT Follow-On (GFO): Precise Orbit Ephemeris (NODC Accession 0085958)
    [x] GEOSAT Follow-On (GFO): Sensor Data Records (NODC Accession 0085959)
    [x] GEOSAT Follow-On (GFO): Geophysical Data Record (NODC Accession 0085960)
    [x] GEOSAT Follow-On (GFO): Operational Orbi...a for 1998-2008 (NODC Accession 0085961)
    [x] GEOSAT Follow-On (GFO): Housekeeping Tel...d Waveform Data (NODC Accession 0085962)
    [x] Temperature and Salinity profile data fr...8 to 2008-09-10 (NODC Accession 0045433)
    [x] Temperature and Salinity profile data fr...8 to 2008-11-05 (NODC Accession 0048681)
    [x] Temperature and Salinity profile data fr...9 to 2008-10-08 (NODC Accession 0046221)
    [x] Temperature and salinity profile data fr...6 to 2008-02-23 (NODC Accession 0039187)
    [x] Temperature and salinity profile data fr...4 to 2010-02-10 (NODC Accession 0061982)
    [x] Temperature and salinity profile data fr...5 to 2009-12-16 (NODC Accession 0060303)
    [x] Temperature and salinity profile data fr...3 to 2007-12-29 (NODC Accession 0037840)
    [x] Temperature and salinity profile data fr...8 to 2007-12-22 (NODC Accession 0037749)
    [x] Temperature and salinity profile data fr...8 to 2008-04-02 (NODC Accession 0040202)
    [x] Temperature and salinity profile data fr...5 to 2009-12-30 (NODC Accession 0060860)
    [x] Temperature and salinity profile data fr...7 to 2008-04-30 (NODC Accession 0041852)
    [x] Temperature and salinity profile data fr...8 to 2010-01-06 (NODC Accession 0061041)
    [x] Temperature and salinity profile data fr...2 to 2007-12-08 (NODC Accession 0037064)
    [x] Temperature and salinity profile data fr...9 to 2008-01-19 (NODC Accession 0038416)
    [x] Temperature and salinity profile data fr...8 to 2009-07-07 (NODC Accession 0055703)
    [x] Temperature and salinity profile data fr...2 to 2009-04-01 (NODC Accession 0052543)
    [x] Temperature and salinity profile data fr...0 to 2008-03-11 (NODC Accession 0039531)
    [x] Temperature and salinity profile data fr...0 to 2007-12-01 (NODC Accession 0036984)
    [x] Temperature and salinity profile data fr...7 to 2009-04-29 (NODC Accession 0053406)
    [x] Temperature and salinity profile data fr...6 to 2008-02-02 (NODC Accession 0038684)
    [x] Temperature and salinity profile data fr...3 to 2008-01-12 (NODC Accession 0038182)
    [x] Temperature and salinity profile data fr...4 to 2010-08-30 (NODC Accession 0067580)
    [x] Temperature and Salinity profile data fr...0 to 2008-01-07 (NODC Accession 0049897)
    [x] Temperature and salinity profile data fr...8 to 2007-11-24 (NODC Accession 0036810)
    [x] Temperature and salinity profile data fr...1 to 2008-02-16 (NODC Accession 0038996)
    [x] Temperature and salinity profile data fr...3 to 2008-03-26 (NODC Accession 0039831)
    [x] Temperature and salinity profile data fr...6 to 2010-07-21 (NODC Accession 0065907)
    [x] Temperature and salinity profile data fr...2 to 2008-04-09 (NODC Accession 0041111)
    [x] Temperature and salinity profile data fr...0 to 2008-03-19 (NODC Accession 0039736)
    [x] Temperature and salinity profile data fr...5 to 2008-03-01 (NODC Accession 0039348)
    [x] Temperature and salinity profile data fr...1 to 2008-04-23 (NODC Accession 0041687)
    [x] Temperature and Salinity profile data fr...1 to 2008-05-07 (NODC Accession 0042027)
    [x] Temperature and salinity profile data fr...5 to 2008-02-09 (NODC Accession 0038806)
    [x] Temperature and salinity profile data fr...2 to 2007-11-03 (NODC Accession 0036203)
    [x] Temperature and Salinity profile data fr...1 to 2008-11-26 (NODC Accession 0048970)
    [x] Temperature and salinity profile data fr...1 to 2008-06-04 (NODC Accession 0042701)
    [x] Temperature and Salinity profile data fr...2 to 2008-10-29 (NODC Accession 0047147)
    [x] Temperature and salinity profile data fr...6 to 2008-12-17 (NODC Accession 0049548)
    [x] Temperature and salinity profile data fr...3 to 2008-01-26 (NODC Accession 0038512)
    [x] Temperature and salinity profile data fr...6 to 2008-12-31 (NODC Accession 0049896)
    [x] Temperature and Salinity profile data fr...5 to 2008-11-12 (NODC Accession 0048682)
    [x] Temperature and salinity profile data fr...1 to 2010-09-22 (NODC Accession 0067581)
    [x] Temperature and salinity profile data fr...8 to 2010-07-28 (NODC Accession 0066010)
    [x] GHRSST Level 2P Global Bulk Sea Surface ...n the NOAA-17 satellite produced by NAVO
    [x] GHRSST Regional Bulk Sea Surface Tempera...n the NOAA-17 satellite produced by NAVO
    [x] GHRSST Level 2P Regional Bulk Sea Surfac...n the NOAA-18 satellite produced by NAVO
    [x] Temperature and salinity profile data fr...4 to 2010-08-04 (NODC Accession 0066096)
    [x] Temperature and salinity profile data fr...8 to 2009-04-08 (NODC Accession 0052711)
    [x] Temperature and salinity profile data fr...2 to 2010-08-14 (NODC Accession 0066560)
    [x] Temperature and salinity profile data fr...8 to 2009-03-10 (NODC Accession 0001641)
    [x] Temperature and salinity profile data fr...0 to 2009-01-28 (NODC Accession 0050189)
    [x] Temperature and salinity profile data fr...8 to 2010-06-02 (NODC Accession 0064761)
    [x] Temperature and salinity profile data fr...0 to 2009-07-14 (NODC Accession 0056017)
    [x] Temperature and salinity profile data fr...8 to 2010-06-16 (NODC Accession 0065228)
    [x] Temperature and salinity profile data fr...7 to 2009-02-11 (NODC Accession 0051074)
    [x] Temperature and salinity profile data fr...6 to 2010-06-30 (NODC Accession 0065607)
    [x] Temperature and salinity profile data fr...3 to 2009-02-18 (NODC Accession 0051087)
    [x] Temperature and salinity profile data fr...3 to 2009-02-04 (NODC Accession 0050193)
    [x] Temperature and salinity profile data fr...1 to 2010-03-17 (NODC Accession 0062738)
    [x] Temperature and salinity profile data fr...1 to 2010-08-20 (NODC Accession 0066754)
    [x] Temperature and salinity profile data fr...4 to 2010-06-09 (NODC Accession 0064949)
    [x] Temperature and salinity profile data fr...1 to 2010-08-10 (NODC Accession 0066408)
    [x] Temperature and salinity profile data fr...8 to 2009-03-25 (NODC Accession 0052463)
    [x] Temperature and salinity profile data fr...2 to 2009-03-04 (NODC Accession 0051719)
    [x] Temperature, salinity, dissolved oxygen,...om 1977 to 2009 (NODC Accession 0059564)
    [x] Temperature and salinity profile data fr...6 to 2009-01-14 (NODC Accession 0049907)
    [x] Temperature and salinity profile data fr...7 to 2009-04-22 (NODC Accession 0053405)
    [x] Temperature and salinity profile data fr...6 to 2008-12-10 (NODC Accession 0049331)
    [x] Sea level measured by tide gauges from g...vember 2013 (NODC Accession 0019568v4.4)
* http://www.nodc.noaa.gov/geoportal/csw
    [x] Global SST & Sea Ice Analysis, L4 OSTIA,...ly (METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2)
    [x] Daily-OI-V2, final, Data (Ship, Buoy, AVHRR, GSFC-ice)
    [x] Daily optimum interpolation(OI) SST on 1/4-degree grid;
    [x] Daily MUR SST, Final product
    [x] Global Sea Surface Temperature Analysis
    [x] Sea Surface Temperature from WindSat onboard Coriolis, 25 km resolution
    [x] Sea Surface Temperature from TMI onboard TRMM, 25 km resolution, tropic
    [x] Sea Surface Temperature from AMSRE onboard AQUA, 25 km resolution
    [x] THREDDS Server Catalog : Caribbean and Gulf of Mexico Regional Node/SST_GOES
    [x] THREDDS Server Catalog : Caribbean and G...egional Node/GLOBAL_SEASON_CARBON_FLUXES
    [x] THREDDS Server Catalog : Caribbean and G...gional Node/GLOBAL_MONTHLY_CARBON_FLUXES
    [x] Near Real Time Dynamic Topography
    [x] Research Ship Knorr Underway Meteorological Data, Quality Controlled
    [x] Research Ship Atlantis Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Hi'ialakai Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Ka'imimoana Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Oscar Dyson Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Ronald Brown Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Miller Freeman Underway Meteorological Data, Quality Controlled
    [x] NOAA Ship Henry B. Bigelow Underway Meteorological Data, Quality Controlled
    [x] GODAE, SFCOBS - Surface Temperature Observations
    [x] West Coast Observing System (WCOS) Temperature Data
    [x] SWFSC FED Mid Water Trawl Juvenile Rockfish Survey, Surface Data
    [x] SWFSC FED Mid Water Trawl Juvenile Rockfish Survey, CTD Data
    [x] CalCOFI Egg Counts
    [x] Global Temperature and Salinity Profile Programme (GTSPP) Data
    [x] CalCOFI Larvae Counts, Scientific Names MB to MO
    [x] CalCOFI Larvae Counts, Scientific Names ED to EU
    [x] CalCOFI Larvae Counts, Scientific Names AN to AR
    [x] CalCOFI NOAAHydros
    [x] CalCOFI Tows
    [x] CalCOFI Stations
    [x] CalCOFI Larvae Sizes
    [x] CalCOFI Larvae Counts Positive Tows
    [x] CalCOFI Larvae Counts, Scientific Names V to Z
    [x] CalCOFI Larvae Counts, Scientific Names TF to U
    [x] CalCOFI Larvae Counts, Scientific Names SU to TE
    [x] CalCOFI Larvae Counts, Scientific Names SJ to ST
    [x] CalCOFI Larvae Counts, Scientific Names SD to SI
    [x] CalCOFI Larvae Counts, Scientific Names SB to SC
    [x] CalCOFI Larvae Counts, Scientific Names Q to SA
    [x] CalCOFI Larvae Counts, Scientific Names PP to PZ
    [x] CalCOFI Larvae Counts, Scientific Names PL to PO
    [x] CalCOFI Larvae Counts, Scientific Names OY to PI
    [x] CalCOFI Larvae Counts, Scientific Names OM to OX
    [x] CalCOFI Larvae Counts, Scientific Names NB to OL
    [x] CalCOFI Larvae Counts, Scientific Names MP to NA
    [x] CalCOFI Larvae Counts, Scientific Names LJ to MA
    [x] CalCOFI Larvae Counts, Scientific Names LB to LI
    [x] CalCOFI Larvae Counts, Scientific Names IE to LA
    [x] CalCOFI Larvae Counts, Scientific Names HJ to ID
    [x] CalCOFI Larvae Counts, Scientific Names HB to HI
    [x] CalCOFI Larvae Counts, Scientific Names GO to HA
    [x] CalCOFI Larvae Counts, Scientific Names EV to GN
    [x] CalCOFI Larvae Counts, Scientific Names DH to EC
    [x] CalCOFI Larvae Counts, Scientific Names C to CE
    [x] CalCOFI Larvae Counts, Scientific Names CP to DE
    [x] CalCOFI Larvae Counts, Scientific Names CI to CO
    [x] CalCOFI Larvae Counts, Scientific Names CD to CH
    [x] CalCOFI Larvae Counts, Scientific Names BCE to BZ
    [x] CalCOFI Larvae Counts, Scientific Names A to AM
    [x] CalCOFI Larvae Counts, Scientific Names AS to BA
    [x] CalCOFI Egg Stages
    [x] CalCOFI Egg Counts Positive Tows
    [x] CalCOFI SIO Hydrographic Cast Data
    [x] CalCOFI SIO Hydrographic Bottle Data
    [x] 20071201141207-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007335_day-v02.0-fv01.0.nc
    [x] 20071201021840-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007335_night-v02.0-fv01.0.nc
    [x] 20071130142246-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007334_day-v02.0-fv01.0.nc
    [x] 20071130004707-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007334_night-v02.0-fv01.0.nc
    [x] 20071129134216-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007333_day-v02.0-fv01.0.nc
    [x] 20071129014843-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007333_night-v02.0-fv01.0.nc
    [x] 20071128135243-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007332_day-v02.0-fv01.0.nc
    [x] 20071128010824-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007332_night-v02.0-fv01.0.nc
    [x] 20071127145407-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007331_day-v02.0-fv01.0.nc
    [x] 20071127011845-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007331_night-v02.0-fv01.0.nc
    [x] 20071126150445-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007330_day-v02.0-fv01.0.nc
    [x] 20071126022021-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007330_night-v02.0-fv01.0.nc
    [x] 20071125142906-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007329_day-v02.0-fv01.0.nc
    [x] 20071125013951-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007329_night-v02.0-fv01.0.nc
    [x] 20071124143938-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007328_day-v02.0-fv01.0.nc
    [x] 20071124015023-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007328_night-v02.0-fv01.0.nc
    [x] 20071123135907-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007327_day-v02.0-fv01.0.nc
    [x] 20071123020056-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007327_night-v02.0-fv01.0.nc
    [x] 20071122140441-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007326_day-v02.0-fv01.0.nc
    [x] 20071122012026-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007326_night-v02.0-fv01.0.nc
    [x] 20071121141528-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007325_day-v02.0-fv01.0.nc
    [x] 20071121022202-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007325_night-v02.0-fv01.0.nc
    [x] 20071120124253-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007324_day-v02.0-fv01.0.nc
    [x] 20071120023235-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007324_night-v02.0-fv01.0.nc
    [x] 20071119125324-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007323_day-v02.0-fv01.0.nc
    [x] 20071119024307-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007323_night-v02.0-fv01.0.nc
    [x] 20071118130349-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007322_day-v02.0-fv01.0.nc
    [x] 20071118020237-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007322_night-v02.0-fv01.0.nc
    [x] 20071117140628-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007321_day-v02.0-fv01.0.nc
    [x] 20071117021310-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007321_night-v02.0-fv01.0.nc
    [x] 20071116142155-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007320_day-v02.0-fv01.0.nc
    [x] 20071116022342-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007320_night-v02.0-fv01.0.nc
    [x] 20071115143227-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007319_day-v02.0-fv01.0.nc
    [x] 20071115014311-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007319_night-v02.0-fv01.0.nc
    [x] 20071114144258-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007318_day-v02.0-fv01.0.nc
    [x] 20071114024447-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007318_night-v02.0-fv01.0.nc
    [x] 20071113135731-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007317_day-v02.0-fv01.0.nc
    [x] 20071113011313-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007317_night-v02.0-fv01.0.nc
    [x] 20071112131706-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007316_day-v02.0-fv01.0.nc
    [x] 20071112012346-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007316_night-v02.0-fv01.0.nc
    [x] 20071111132755-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007315_day-v02.0-fv01.0.nc
    [x] 20071111022522-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007315_night-v02.0-fv01.0.nc
    [x] 20071110142910-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007314_day-v02.0-fv01.0.nc
    [x] 20071110023555-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007314_night-v02.0-fv01.0.nc
    [x] 20071109125645-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007313_day-v02.0-fv01.0.nc
    [x] 20071109015536-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007313_night-v02.0-fv01.0.nc
    [x] 20071108135920-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007312_day-v02.0-fv01.0.nc
    [x] 20071108034803-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007312_night-v02.0-fv01.0.nc
    [x] 20071107140948-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007311_day-v02.0-fv01.0.nc
    [x] 20071107021629-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007311_night-v02.0-fv01.0.nc
    [x] 20071106133011-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007310_day-v02.0-fv01.0.nc
    [x] 20071106030938-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007310_night-v02.0-fv01.0.nc
    [x] 20071105134438-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007309_day-v02.0-fv01.0.nc
    [x] 20071105014630-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007309_night-v02.0-fv01.0.nc
    [x] 20071104121204-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007308_day-v02.0-fv01.0.nc
    [x] 20071104024758-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007308_night-v02.0-fv01.0.nc
    [x] 20071103131443-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007307_day-v02.0-fv01.0.nc
    [x] 20071103025838-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007307_night-v02.0-fv01.0.nc
    [x] 20071102122819-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007306_day-v02.0-fv01.0.nc
    [x] 20071102030911-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007306_night-v02.0-fv01.0.nc
    [x] 20071101123901-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007305_day-v02.0-fv01.0.nc
    [x] 20071101031943-NODC-L3C_GHRSST-SSTskin-A...2_NOAA18_G_2007305_night-v02.0-fv01.0.nc
    [x] 20071031124927-NODC-L3C_GHRSST-SSTskin-A...5.2_NOAA18_G_2007304_day-v02.0-fv01.0.nc
    [x] Global Monthly Dai Palmer Drought Severity Index
    [x] HADCRUT4 Combined Air Temperature/SST Anomaly
    [x] HADCRUT4 Combined Air Temperature/SST Anomaly Error
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly Variance Adjusted
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly
    [x] HADCRUT3 Combined Air Temperature/SST Anomaly
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM4 Air Temperature Dataset
    [x] CRUTEM3 Air Temperature Anomaly Variance Adjusted
    [x] CRUTEM3 Air Temperature Anomaly
    [x] CRUTEM3 Air Temperature Anomaly
    [x] CRUTEM3 Air Temperature Anomaly
    [x] CRUTEM3 Air Temperature Anomaly
    [x] CRUTEM3 Air Temperature Anomaly
    [x] CRUTEM3 Air Temperature Anomaly
    [x] Daily MUR SST, Final product
    [x] Analysed foundation sea surface temperature, global
    [x] Analysed foundation sea surface temperature, global
    [x] Monthly version of HadISST sea surface temperature state-space components
    [x] HadISST (1-degree)/HadISST (1-degree)
    [x] 20071201-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071130-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071129-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071128-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071127-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071126-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071125-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071124-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071123-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071122-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071121-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071120-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071119-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071118-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071117-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071116-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071115-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071114-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071113-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071112-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071111-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071110-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071109-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071108-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071107-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071106-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071105-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071104-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071103-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071102-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071101-EUR-L4HRfnd-GLOB-v01-fv01-ODYSSEA.nc.bz2
    [x] 20071202-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071130-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
    [x] 20071201-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071129-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
    [x] 20071130-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071128-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
    [x] 20071129-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071127-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
    [x] 20071128-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071126-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
    [x] 20071127-REMSS-L4HRfnd-GLOB-v01-fv03-mw_ir_OI.nc.gz
    [x] 20071125-REMSS-L4HRfnd-GLOB-v01-fv01-mw_ir_OI.nc.gz
* http://www.ngdc.noaa.gov/geoportal/csw
    [x] San Francisco Bay, California Coastal Digital Elevation Model
    [x] San Francisco Bay, California Coastal Digital Elevation Model
    [x] Central California Coastal Digital Elevation Model
    [x] Central California Coastal Digital Elevation Model
    [x] Daily 1/8-degree gridded meteorological data [1 Jan 1949 - 31 December 2010]
    [x] Directional wave and sea surface tempera...SSAGE, CA from 2002/06/28 to 2014/05/02.
    [x] CeNCOOS 52N SOS
    [x] Monterey, California Coastal Digital Elevation Model
    [x] Monterey, California Coastal Digital Elevation Model
    [x] OSU Chlorophyll Anomaly, MODIS Aqua, West US, July 2002-June 2014
    [x] OSU SST Anomaly, MODIS Aqua, West US, July 2002-June 2014
    [x] Directional wave and sea surface tempera...6/12/19 18:00:00 to 2007/11/02 14:59:59.
    [x] Weatherflow, Inc. SOS
    [x] NOAA/NOS and USCGS Seabed Descriptions from Hydrographic Surveys
    [x] Directional wave and sea surface tempera...7/08/17 22:00:00 to 2008/11/10 11:59:59.
    [x] Directional wave and sea surface tempera...SLAND, CA from 1991/09/10 to 2014/06/08.
    [x] NOAA.NOS.CO-OPS SOS
    [x] Directional wave and sea surface tempera...SHORE, OR from 2006/07/12 to 2014/03/14.
    [x] NDBC Standard Meteorological Buoy Data
    [x] Directional wave and sea surface tempera...REYES, CA from 1996/12/06 to 2014/09/05.
    [x] Directional wave and sea surface tempera...RVEST, CA from 1991/10/22 to 2013/11/01.
    [x] Archive of Core and Site/Hole Data and P...Integrated Ocean Drilling Program (IODP)
    [x] Directional wave and sea surface tempera...7/11/28 19:00:00 to 2008/06/29 11:59:59.
    [x] Directional wave and sea surface tempera...OCINO, CA from 1999/03/21 to 2014/05/15.
    [x] Directional wave and sea surface tempera...POINT, CA from 2000/07/11 to 2014/04/10.
    [x] Directional wave and sea surface tempera...7/09/14 20:00:00 to 2008/11/07 12:59:59.
    [x] Directional wave and sea surface tempera...6/12/04 22:00:00 to 2008/02/26 13:59:59.
    [x] Directional wave and sea surface tempera...O BAR, CA from 2007/07/25 to 2014/07/24.
    [x] Directional wave and sea surface tempera...6/09/01 16:00:00 to 2008/05/04 22:59:59.
    [x] National Data Buoy Center SOS
    [x] NOAA Coral Reef Watch Operational Twice-...lite Coral Bleaching Monitoring Products
    [x] Solar Radio
    [x] NGDC Marine Geology Data Archive
    [x] EMAG2: Earth Magnetic Anomaly Grid (2-arc-minute resolution)
    [x] Enhanced Magnetic Model 2010
    [x] International Geomagnetic Reference Field - 11th Generation
    [x] World Magnetic Model 2010
    [x] Marine Geology Reports in the NGDC Archive
    [x] ETOPO1 1 Arc-Minute Global Relief Model
    [x] PacIOOS Boundaries: EEZs and Geographic
    [x] Chlorophyll-a, Aqua MODIS, NPP, Global, Science Quality (8 Day Composite)
    [x] Directional wave and sea surface tempera...7/06/29 20:00:00 to 2009/01/14 16:59:59.
    [x] Directional wave and sea surface tempera...7/06/08 17:00:00 to 2008/11/04 23:59:59.
    [x] Directional wave and sea surface tempera...7/07/25 17:00:00 to 2007/12/27 00:59:59.
    [x] Directional wave and sea surface tempera...OUTER, CA from 2007/05/17 to 2014/09/14.
    [x] Intertidal Zone Seawater Temperature
* http://cwic.csiss.gmu.edu/cwicv1/discovery
    [-] FAILED: 'REQUEST_LIMITATION: INVALID_LL_LAT_VALUE - Latitude of lower left corner should be between [-90.0, 90.0].'
* http://geoport.whoi.edu/geoportal/csw
    [-] FAILED: 'Invalid parameter value: locator=PropertyName'
* https://edg.epa.gov/metadata/csw
* http://cmgds.marine.usgs.gov/geonetwork/srv/en/csw
* http://cida.usgs.gov/gdp/geonetwork/srv/en/csw
* http://geodiscover.cgdi.ca/wes/serviceManagerCSW/csw
    [-] FAILED: 'ORA-00920: invalid relational operator'
* http://geoport.whoi.edu/gi-cat/services/cswiso
    [-] FAILED: timed out
* https://data.noaa.gov/csw

What service are available?


In [11]:
import pandas as pd
srvs = pd.DataFrame(zip(titles, urls, service_types, servers), columns=("Title", "URL", "Service Type", "Server"))
srvs = srvs.drop_duplicates()
pd.set_option('display.max_rows', 10)
srvs


Out[11]:
Title URL Service Type Server
0 Database and documents created as part of the ... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
1 Environmental Sensitivity Index (ESI) Atlas: C... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
2 Temperature and current data from moorings dep... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
3 Temperature, salinity, and dissolved oxygen pr... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
4 Real-Time XBT Data assembled by US NOAA Atlant... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
5 NOAA's Coastal Change Analysis Program (C-CAP)... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
6 Northern elephant seal temperature cast data c... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
7 Real-Time XBT data assembled by US NOAA Atlant... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
8 Physical and meteorological data from the Scri... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
9 Water quality, meteorological, and nutrient da... http://www.nodc.noaa.gov/ urn:x-esri:specification:ServiceType:ArcIMS:Me... http://data.nodc.noaa.gov/geoportal/csw
... ... ... ...

445 rows × 4 columns

What types of service are available


In [12]:
pd.DataFrame(srvs.groupby("Service Type").size(), columns=("Number of services",))


Out[12]:
Number of services
Service Type
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Document 37
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Onlink 373
urn:x-esri:specification:ServiceType:distribution:url 31
urn:x-esri:specification:ServiceType:download:url 4

4 rows × 1 columns

SOS and DAP Servers are not properly identified
One can not tell (programatically) what the "urn:x-esri:specification:ServiceType:distribution:url" scheme actually is.

SOS


In [13]:
def find_sos(x):
    d = x.lower()
    if "sos" in d and "dods" not in d:
        return x
    return None

In [14]:
sos_servers = filter(None, srvs["URL"].map(find_sos))
sos_servers


Out[14]:
['http://sos.cencoos.org/sos/sos/json',
 'http://www.weatherflow.com/sos.pl?service=SOS&request=GetCapabilities',
 'http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities',
 'http://sdf.ndbc.noaa.gov/sos/server.php']
52N SOS Link is not correct - Issue #189
http://sos.cencoos.org/sos/sos/json should be referencing http://sos.cencoos.org/sos/sos as the SOS server.

Set some variables to pull from SOS servers


In [25]:
variables_to_query = ["sea_water_temperature", "surface_temperature_anomaly", "air_temperature"]

Pull out all observation from all SOS servers


In [26]:
from pyoos.collectors.ioos.swe_sos import IoosSweSos
from pyoos.collectors.coops.coops_sos import CoopsSos
from pyoos.collectors.ndbc.ndbc_sos import NdbcSos
from owslib.ows import ExceptionReport
from datetime import timedelta
from copy import copy
from StringIO import StringIO

sos_dfs = []
for sos in sos_servers:
    if "co-ops" in sos.lower() or "ndbc" in sos.lower():
        
        # CSV Output
    
        if "co-ops" in sos.lower():
            # Use the COOPS collector
            collector = CoopsSos()
        elif "ndbc" in sos.lower():
            # Use the NDBC collector
            collector = NdbcSos()
        for v in variables_to_query:
            collector.filter(variables=[v])
            collector.filter(bbox=bounding_box)
            new_start = copy(start_date)
            new_end   = copy(start_date)

            # Hold dataframe for periodic concat
            v_frame = None

            while new_end < end_date:
                new_end = min(end_date, new_start + timedelta(days=1))
                collector.filter(start=new_start)
                collector.filter(end=new_end)
                try:
                    print "Collecting from {!s}: ({!s} -> {!s})".format(sos, new_start, new_end)
                    data = collector.raw()
                    new_frame = pd.DataFrame.from_csv(StringIO(data))
                    new_frame = new_frame.reset_index()
                    if v_frame is None:
                        v_frame = new_frame
                    else:
                        v_frame = pd.concat([v_frame, new_frame])
                        v_frame = v_frame.drop_duplicates()
                except ExceptionReport as e:
                    print "  [-] Error obtaining {!s} from {!s} - Message from server: {!s}".format(v, sos, e)
                    continue
                finally:
                    new_start = new_end

            if v_frame is not None:
                sos_dfs.append(v_frame)
    
    else:
        # Use the generic IOOS SWE collector
        try:
            collector = IoosSweSos(sos)
        except BaseException as e:
            print "[-]  Could not process {!s}.  Reason: {!s}".format(sos, e)
            continue
            
        for v in variables_to_query:
            collector.filter(variables=[v])
            collector.filter(bbox=bounding_box)
            collector.filter(start=start_date)
            collector.filter(end=end_date)
            collector.filter(variables=[v])
            try:
                data = collector.collect()
                print data
            except BaseException as e:
                print "[-]  Could not process {!s}.  Reason: {!s}".format(sos, e)
                continue


[-]  Could not process http://sos.cencoos.org/sos/sos/json.  Reason: HTTP Error 405: Method Not Allowed
[-]  Could not process http://www.weatherflow.com/sos.pl?service=SOS&request=GetCapabilities.  Reason: HTTP Error 404: Not Found
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities - Message from server: 'Valid observedProperty values: air_temperature, air_pressure, sea_water_electrical_conductivity, currents, sea_water_salinity, water_surface_height_above_reference_datum, sea_surface_height_amplitude_due_to_equilibrium_ocean_tide, sea_water_temperature, winds, harmonic_constituents, datums, relative_humidity, rain_fall, visibility'
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
Collecting from http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
  [-] Error obtaining surface_temperature_anomaly from http://sdf.ndbc.noaa.gov/sos/server.php - Message from server: 'surface_temperature_anomaly'
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-01 00:00:00 -> 2007-11-02 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-02 00:00:00 -> 2007-11-03 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-03 00:00:00 -> 2007-11-04 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-04 00:00:00 -> 2007-11-05 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-05 00:00:00 -> 2007-11-06 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-06 00:00:00 -> 2007-11-07 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-07 00:00:00 -> 2007-11-08 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-08 00:00:00 -> 2007-11-09 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-09 00:00:00 -> 2007-11-10 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-10 00:00:00 -> 2007-11-11 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-11 00:00:00 -> 2007-11-12 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-12 00:00:00 -> 2007-11-13 00:00:00)
Collecting from http://sdf.ndbc.noaa.gov/sos/server.php: (2007-11-13 00:00:00 -> 2007-11-14 00:00:00)
NOTE
We are only plotting the first variable retrieved back from the SOS server. The following graphs could be in a loop.

In [27]:
pd.set_option('display.max_rows', 10)

Number of measurments per sensor


In [28]:
pd.DataFrame(sos_dfs[0].groupby("sensor_id").size(), columns=("Number of measurments",))


Out[28]:
Number of measurments
sensor_id
urn:ioos:sensor:NOAA.NOS.CO-OPS:9414290:E1 3118
urn:ioos:sensor:NOAA.NOS.CO-OPS:9414523:E1 3119
urn:ioos:sensor:NOAA.NOS.CO-OPS:9414750:E1 3119
urn:ioos:sensor:NOAA.NOS.CO-OPS:9415020:E1 3112
urn:ioos:sensor:NOAA.NOS.CO-OPS:9415144:E1 3120

5 rows × 1 columns


In [29]:
graphing_frame = sos_dfs[0].pivot(index='date_time', columns='sensor_id', values=sos_dfs[0].columns[-1])
graphing_frame


Out[29]:
sensor_id urn:ioos:sensor:NOAA.NOS.CO-OPS:9414290:E1 urn:ioos:sensor:NOAA.NOS.CO-OPS:9414523:E1 urn:ioos:sensor:NOAA.NOS.CO-OPS:9414750:E1 urn:ioos:sensor:NOAA.NOS.CO-OPS:9415020:E1 urn:ioos:sensor:NOAA.NOS.CO-OPS:9415144:E1
date_time
2007-11-01T00:00:00Z 13.777 16.8 15.6 13.2 16.9
2007-11-01T00:06:00Z 13.769 16.8 15.6 13.2 16.9
2007-11-01T00:12:00Z 13.774 16.8 15.7 13.2 16.9
2007-11-01T00:18:00Z 13.771 16.8 15.6 13.2 16.9
2007-11-01T00:24:00Z 13.758 16.9 15.7 13.2 16.8
2007-11-01T00:30:00Z 13.750 16.9 15.7 13.2 16.8
2007-11-01T00:36:00Z 13.741 16.9 15.7 13.2 16.8
2007-11-01T00:42:00Z 13.742 16.9 15.7 13.2 16.8
2007-11-01T00:48:00Z 13.739 16.9 15.7 13.2 16.8
2007-11-01T00:54:00Z 13.728 16.9 15.7 13.2 16.8
... ... ... ... ...

3121 rows × 5 columns


In [30]:
%matplotlib inline

for col in graphing_frame.columns:
    fig, axes = plt.subplots(figsize=(20,5))
    graphing_frame[col].dropna().plot(title=col, color='m')
    axes.set_xlabel("Time (UTC)")
    axes.set_ylabel(sos_dfs[0].columns[-1])


DAP


In [31]:
def find_dap(x):
    d = x.lower()
    if ("dap" in d or "dods" in d) and "tabledap" not in d and "sos" not in d:
        return x
    return None

In [32]:
import os
dap_servers = filter(None, srvs["URL"].map(find_dap))
dap_servers = map(lambda x: os.path.splitext(x)[0], dap_servers)
dap_servers


Out[32]:
['http://thredds.axiomalaska.com/thredds/dodsC/MAURER.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/111p1/111p1_historic.nc',
 'http://coastwatch.pfeg.noaa.gov/erddap/griddap/osuChlaAnom',
 'http://coastwatch.pfeg.noaa.gov/erddap/griddap/osuSstAnom',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/155p1/155p1_d01.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/098p1/098p1_d08.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/067p1/067p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/139p1/139p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/029p1/029p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/071p1/071p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/111p1/111p1_d07.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/094p1/094p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/096p1/096p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/094p1/094p1_d07.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/139p1/139p1_d02.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/142p1/142p1_historic.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/096p1/096p1_d08.nc',
 'http://129.252.139.124:80/erddap/griddap/erdMHchla8day',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/029p1/029p1_d14.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/156p1/156p1_d02.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/142p1/142p1_d01.nc',
 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/156p1/156p1_historic.nc',
 'http://www.cencoos.org/thredds/dodsC/shorestations/Bodega_Head_Intertidal/OS_Bodega_Head_intertidal_2007_TS.nc']

Try to temperature data from all of the DAP endpoints at the time of the spill


In [33]:
import pytz
spill_time = datetime(2007, 11, 7, 8, 47, tzinfo=pytz.timezone("US/Pacific"))
"Spill time: {!s}".format(spill_time)


Out[33]:
'Spill time: 2007-11-07 08:47:00-07:53'

In [34]:
import iris
import iris.plot as iplt
import matplotlib.pyplot as plt
%matplotlib inline

variables = lambda cube: cube.standard_name in variables_to_query
constraint = iris.Constraint(cube_func=variables)



def iris_grid_plot(cube_slice, name=None):
    plt.figure(figsize=(12, 8))
    lat = cube_slice.coord(axis='Y').points
    lon = cube_slice.coord(axis='X').points
    time = cube_slice.coord('time')[0]
    plt.subplot(111, aspect=(1.0 / cos(mean(lat) * pi / 180.0)))
    plt.pcolormesh(lon, lat, ma.masked_invalid(cube_slice.data));
    plt.colorbar()
    plt.grid()
    date = time.units.num2date(time.points)
    date_str = date[0].strftime('%Y-%m-%d %H:%M:%S %Z')
    plt.title('%s: %s: %s' % (name, cube_slice.long_name, date_str));
    plt.show()

for dap in dap_servers:
    print "[*]  {!s}".format(dap)
    try:
        cube = iris.load_cube(dap, constraint)
    except Exception as e:
        print "    [-]  Could not load: {!s}".format(e)
        continue
    
    print "    [-]  Identified as a Grid"
    print "    [-]  {!s}".format(cube.attributes["title"])
    try:
        if len(cube.shape) > 2:
            try:
                cube.coord(axis='T').rename('time')
            except:
                pass
            time_dim   = cube.coord('time')
            time_value = time_dim.units.date2num(spill_time)
            time_index = time_dim.nearest_neighbour_index(time_value)
            time_pts   = time_dim.points[time_index]
    
            if len(cube.shape) == 4:
                cube = cube.extract(iris.Constraint(time=time_pts))
                cube = cube[-1, ::1, ::1]
            elif len(cube.shape) == 3:
                cube = cube.extract(iris.Constraint(time=time_pts))
                cube = cube[::1, ::1]
        elif len(cube.shape) == 2:
            cube = cube[::1, ::1]
        else:
            raise ValueError("Dimensions do not adhere to plotting requirements")
        iris_grid_plot(cube, cube.attributes["title"])
            
    except ValueError as e:
        print "    [-]  Could not plot: {!s}".format(e)
        continue


[*]  http://thredds.axiomalaska.com/thredds/dodsC/MAURER.nc
    [-]  Identified as a Grid
    [-]  Daily 1/8-degree gridded meteorological data [1 Jan 1949 - 31 December 2010]
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/111p1/111p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://coastwatch.pfeg.noaa.gov/erddap/griddap/osuChlaAnom
    [-]  Could not load: no cubes found
[*]  http://coastwatch.pfeg.noaa.gov/erddap/griddap/osuSstAnom
    [-]  Identified as a Grid
    [-]  OSU SST Anomaly, MODIS Aqua, West US, July 2002-June 2014
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/155p1/155p1_d01.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/098p1/098p1_d08.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/067p1/067p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/139p1/139p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/029p1/029p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/071p1/071p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/111p1/111p1_d07.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/094p1/094p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/096p1/096p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/094p1/094p1_d07.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/139p1/139p1_d02.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/142p1/142p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/096p1/096p1_d08.nc
    [-]  Could not load: no cubes found
[*]  http://129.252.139.124:80/erddap/griddap/erdMHchla8day
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/029p1/029p1_d14.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/156p1/156p1_d02.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/142p1/142p1_d01.nc
    [-]  Could not load: no cubes found
[*]  http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive/156p1/156p1_historic.nc
    [-]  Could not load: no cubes found
[*]  http://www.cencoos.org/thredds/dodsC/shorestations/Bodega_Head_Intertidal/OS_Bodega_Head_intertidal_2007_TS.nc
    [-]  Identified as a Grid
    [-]  Intertidal Zone Seawater Temperature 
    [-]  Could not plot: need more than 1 value to unpack

In [24]: