In [1]:
from owslib.csw import CatalogueServiceWeb
from owslib import fes
import netCDF4
In [2]:
endpoint = 'http://www.nodc.noaa.gov/geoportal/csw' # NODC/UAF Geoportal: granule level
csw = CatalogueServiceWeb(endpoint,timeout=60)
print csw.version
In [3]:
csw.get_operation_by_name('GetRecords').constraints
Out[3]:
In [4]:
val = 'ghrsst'
filter1 = fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [5]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
Out[5]:
In [6]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
Out[6]:
In [8]:
endpoint = 'http://www.ngdc.noaa.gov/geoportal/csw' # NGDC/IOOS Geoportal
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
Out[8]:
In [9]:
csw.get_operation_by_name('GetRecords').constraints
Out[9]:
In [10]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('apiso:ServiceType', 'property')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [11]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
Out[11]:
In [12]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
Out[12]:
In [ ]:
endpoint = 'http://catalog.data.gov/csw-all' # catalog.data.gov CSW
#endpoint = 'http://csw.data.gov.uk/geonetwork/srv/en/csw' # data.gov.uk
#endpoint = 'http://www.nationaalgeoregister.nl/geonetwork/srv/eng/csw'
#endpoint = 'http://www.rndt.gov.it/RNDT/CSW'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
for oper in csw.operations:
print(oper.name)
In [ ]:
csw.get_operation_by_name('GetRecords').constraints
In [ ]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('apiso:ServiceType', 'property')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [ ]:
val = 'sea surface'
filter1 = fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
choice=random.choice(list(csw.records.keys()))
print csw.records[choice].title
print csw.records[choice].references
In [ ]:
endpoint = 'http://geoport.whoi.edu/geoportal/csw' # catalog.data.gov CSW
csw = CatalogueServiceWeb(endpoint,timeout=60)
print csw.version
In [ ]:
for oper in csw.operations:
if oper.name == 'GetRecords':
print '\nISO Queryables:\n',oper.constraints['SupportedISOQueryables']['values']
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
In [ ]:
endpoint='http://oos.soest.hawaii.edu/pacioos/ogc/csw.py'
In [ ]:
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
csw.get_operation_by_name('GetRecords').constraints
In [ ]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('apiso:ServiceType', 'property')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [ ]:
val = 'ROMS'
filter1 = fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
Working! Woo hoo!!!
In [ ]:
endpoint = 'https://edg.epa.gov/metadata/csw'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
# trying to do this search:
# ('roms' OR 'selfe' OR 'adcirc' OR 'ncom' OR 'hycom' OR 'fvcom') AND 'ocean' NOT 'regridded' NOT 'espresso'
# should return 11 records from NODC geoportal
search_text = ['waves','selfe','adcirc','ncom','hycom','fvcom']
filt=[]
for val in search_text:
filt.append(fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?'))
filter1=fes.Or(filt)
val = 'ocean'
filter2=fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
val = 'regridded'
filt=fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter3 = fes.Not([filt])
val = 'espresso'
filt=fes.PropertyIsLike(propertyname='apiso:AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter4 = fes.Not([filt])
filter_list = [fes.And([filter1, filter2, filter3, filter4])]
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
In [ ]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('apiso:SupportedISOQueryables', 'apiso:ServiceType')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [ ]:
endpoint = 'http://cmgds.marine.usgs.gov/geonetwork/srv/en/csw'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
endpoint = 'http://cida.usgs.gov/gdp/geonetwork/srv/en/csw'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
foo=csw.get_operation_by_name('GetRecords')
foo.constraints
In [ ]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('SupportedISOQueryables', 'ServiceType')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [ ]:
val = 'dap'
service_type = fes.PropertyIsLike(propertyname='ServiceType',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ service_type]
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
val = 'climate'
filter1 = fes.PropertyIsLike(propertyname='AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [ ]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
In [ ]:
choice=random.choice(list(csw.records.keys()))
print choice
csw.records[choice].references
In [ ]:
endpoint ='http://inspire-geoportal.ec.europa.eu/GeoportalProxyWebServices/resources/OGCCSW202/AT'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
In [ ]:
csw.get_operation_by_name('GetRecords').constraints
In [14]:
try:
csw.get_operation_by_name('GetDomain')
csw.getdomain('apiso:ServiceType', 'property')
print(csw.results['values'])
except:
print('GetDomain not supported')
In [15]:
val = 'data'
filter1 = fes.PropertyIsLike(propertyname='AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [16]:
csw.getrecords2(constraints=filter_list,maxrecords=1000,esn='full')
len(csw.records.keys())
Out[16]:
In [17]:
choice=random.choice(list(csw.records.keys()))
print(csw.records[choice].title)
print(csw.records[choice].references)
Out[17]:
In [18]:
endpoint = 'http://www.rndt.gov.it/RNDT/CSW'
csw = CatalogueServiceWeb(endpoint,timeout=60)
csw.version
Out[18]:
In [19]:
csw.get_operation_by_name('GetRecords').constraints
Out[19]:
In [27]:
val = 'water'
filter1 = fes.PropertyIsLike(propertyname='AnyText',literal=('*%s*' % val),
escapeChar='\\',wildCard='*',singleChar='?')
filter_list = [ filter1 ]
In [28]:
csw.getrecords2(constraints=filter_list,maxrecords=100,esn='full')
len(csw.records.keys())
Out[28]:
In [53]:
choice=random.choice(list(csw.records.keys()))
print(csw.records[choice].title)
print(csw.records[choice].references)
In [ ]: