In [1]:
import threddsclient
cat = threddsclient.read_url('http://www.esrl.noaa.gov/psd/thredds/catalog.xml')
print cat.name, cat.url
print 'num refs =', len(cat.references)
print 'num datasets =', len(cat.datasets)


THREDDS PSD Test Catalog http://www.esrl.noaa.gov/psd/thredds/catalog.xml
num refs = 2
num datasets = 0

In [2]:
for ref in cat.references:
    print ref.name


Datasets
Aggregations

In [3]:
cat2 = cat.references[0].follow()
print cat2.name, cat2.url
print 'num refs =', len(cat2.references)
print 'num datasets =', len(cat2.datasets)


Datasets http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/catalog.xml
num refs = 0
num datasets = 1

In [4]:
ds = cat2.datasets[0]
print ds.name, ds.url, ds.is_collection(), len(ds.datasets), len(ds.references)


Datasets http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/catalog.xml?dataset=Datasets True 0 49

In [5]:
for i in range(0, len(ds.references)):
    print i, ds.references[i].name, ds.references[i].url


0 20thC_ReanV2 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/20thC_ReanV2/catalog.xml
1 20thC_ReanV2c http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/20thC_ReanV2c/catalog.xml
2 COBE http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/COBE/catalog.xml
3 COBE2 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/COBE2/catalog.xml
4 CarbonTracker http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/CarbonTracker/catalog.xml
5 NARR http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/NARR/catalog.xml
6 Timeseries http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/Timeseries/catalog.xml
7 cmap http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/cmap/catalog.xml
8 coads http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/coads/catalog.xml
9 cpc_us_hour_precip http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/cpc_us_hour_precip/catalog.xml
10 cpc_us_precip http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/cpc_us_precip/catalog.xml
11 cpcsoil http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/cpcsoil/catalog.xml
12 cru http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/cru/catalog.xml
13 dai_pdsi http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/dai_pdsi/catalog.xml
14 ghcncams http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ghcncams/catalog.xml
15 ghcngridded http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ghcngridded/catalog.xml
16 gistemp http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/gistemp/catalog.xml
17 godas http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.xml
18 gpcc http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/gpcc/catalog.xml
19 gpcp http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/gpcp/catalog.xml
20 icoads http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/icoads/catalog.xml
21 interp_OLR http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/interp_OLR/catalog.xml
22 kaplan_sst http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/kaplan_sst/catalog.xml
23 mlost http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/mlost/catalog.xml
24 mlostv3b http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/mlostv3b/catalog.xml
25 msu http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/msu/catalog.xml
26 ncep http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep/catalog.xml
27 ncep.marine http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.marine/catalog.xml
28 ncep.pac.ocean http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.pac.ocean/catalog.xml
29 ncep.reanalysis http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis/catalog.xml
30 ncep.reanalysis.dailyavgs http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis.dailyavgs/catalog.xml
31 ncep.reanalysis.derived http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis.derived/catalog.xml
32 ncep.reanalysis2 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2/catalog.xml
33 ncep.reanalysis2.dailyavgs http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/catalog.xml
34 ncep.reanalysis2.derived http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.derived/catalog.xml
35 noaa.ersst http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaa.ersst/catalog.xml
36 noaa.oisst.v2 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaa.oisst.v2/catalog.xml
37 noaa.oisst.v2.derived http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaa.oisst.v2.derived/catalog.xml
38 noaa.oisst.v2.highres http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaa.oisst.v2.highres/catalog.xml
39 noaa_hrc http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaa_hrc/catalog.xml
40 noaamergedtemp http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/noaamergedtemp/catalog.xml
41 nodc.woa94 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/nodc.woa94/catalog.xml
42 nodc.woa98 http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/nodc.woa98/catalog.xml
43 olrcdr http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/olrcdr/catalog.xml
44 prec http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/prec/catalog.xml
45 precl http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/precl/catalog.xml
46 snowcover http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/snowcover/catalog.xml
47 udel.airt.precip http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/udel.airt.precip/catalog.xml
48 uninterp_OLR http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/uninterp_OLR/catalog.xml

In [6]:
cat3 = ds.references[33].follow()
print cat3.name, cat3.url, len(cat3.references), len(cat3.datasets)


ncep.reanalysis2.dailyavgs http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/catalog.xml 0 1

In [7]:
for ref in cat3.flat_references():
    print ref.name, ref.url


gaussian_grid http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/gaussian_grid/catalog.xml
pressure http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/pressure/catalog.xml
surface http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/surface/catalog.xml

In [8]:
cat4 = cat3.flat_references()[2].follow()
print cat4.name, cat4.url, len(cat4.flat_datasets())


surface http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/surface/catalog.xml 109

In [9]:
print '{0.name}, {0.url}, {0.modified}, {0.bytes}'.format(cat4.flat_datasets()[0])


hgt.sfc.nc, http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/ncep.reanalysis2.dailyavgs/surface/catalog.xml?dataset=Datasets/ncep.reanalysis2.dailyavgs/surface/hgt.sfc.nc, 2010-08-19T21:22:40Z, 24030

In [10]:
print cat4.flat_datasets()[0].download_url()


http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/ncep.reanalysis2.dailyavgs/surface/hgt.sfc.nc

In [11]:
print cat4.flat_datasets()[0].opendap_url()


http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/ncep.reanalysis2.dailyavgs/surface/hgt.sfc.nc

In [12]:
print cat4.download_urls()[0]


http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/ncep.reanalysis2.dailyavgs/surface/hgt.sfc.nc

In [13]:
print cat4.opendap_urls()[0]


http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/ncep.reanalysis2.dailyavgs/surface/hgt.sfc.nc