Many data providers have organized their data collections into THREDDS catalogs. For example, the blended Sea Surface Temperature data from the Climate ModelingBranch of the Environmental Modeling Center of the National Centers forEnvironmental Prediction (there's that mouthful again) is actually a collection of similar data. There are weekly and monthly data sets as well as various climatologies that have been calculated. Fortunately, the IRI Data Library is organized into a giant THREDDS catalog and each sub-component of the hierarchy is itself a THREDDS catalog. So to add all of the various parts of the blended SST data to LAS addXML can parse the THREDDS catalog and extract information for every netCDF data source referenced in the catalog.
For example:
addXML.sh -t http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/thredds.xml
will create the following configuration:
<datasets>
<id-2322d0cde9 name="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.climatology/dods"
url="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.climatology/dods">
<variables>
<c6190.sst-id-2322d0cde9 name="Sea Surface Temperature" units="Celsius_scale" url="#c6190.sst">
<link match="/lasdata/grids/grid-X-Y-T-id-2322d0cde9" />
</c6190.sst-id-2322d0cde9>
<c7100.sst-id-2322d0cde9 name="Sea Surface Temperature" units="Celsius_scale" url="#c7100.sst">
<link match="/lasdata/grids/grid-X-Y-T-id-2322d0cde9" />
</c7100.sst-id-2322d0cde9>
<mask-id-2322d0cde9 name="Land-Sea Mask" units="unitless" url="#mask">
<link match="/lasdata/grids/grid-X-Y-id-2322d0cde9" />
</mask-id-2322d0cde9>
</variables>
</id-2322d0cde9>
<id-36e3274059 name="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.monthly/dods"
url="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.monthly/dods">
<variables>
<mask-id-36e3274059 name="Land-Sea Mask" units="unitless" url="#mask">
<link match="/lasdata/grids/grid-X-Y-id-36e3274059" />
</mask-id-36e3274059>
<sea_ice-id-36e3274059 name="Sea Ice Concentration" units="percent" url="#sea_ice">
<link match="/lasdata/grids/grid-X-Y-T-id-36e3274059" />
</sea_ice-id-36e3274059>
<sst-id-36e3274059 name="Sea Surface Temperature" units="Celsius_scale" url="#sst">
<link match="/lasdata/grids/grid-X-Y-T-id-36e3274059" />
</sst-id-36e3274059>
<ssta-id-36e3274059 name="Sea Surface Temperature Anomaly" units="degree_Celsius" url="#ssta">
<link match="/lasdata/grids/grid-X-Y-T-id-36e3274059" />
</ssta-id-36e3274059>
</variables>
</id-36e3274059>
<!-- This section must be removed or commented out before installing this configuration information...
<id-ccd7f4b795 name="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.pentad-climatology/dods"
url="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.pentad-climatology/dods">
<!--This data source has no lat/lon grids that follow a known convention.-->
<variables />
</id-ccd7f4b795>
-->
<id-03e9b9c2c1 name="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.weekly/dods"
url="http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.GLOBAL/.Reyn_SmithOIv2/.weekly/dods">
<variables>
<mask-id-03e9b9c2c1 name="Land-Sea Mask" units="unitless" url="#mask">
<link match="/lasdata/grids/grid-X-Y-id-03e9b9c2c1" />
</mask-id-03e9b9c2c1>
</variables>
</id-03e9b9c2c1>
</datasets>
<grids>
<grid-X-Y-T-id-2322d0cde9>
<link match="/lasdata/axes/X-x-id-2322d0cde9" />
<link match="/lasdata/axes/Y-y-id-2322d0cde9" />
<link match="/lasdata/axes/T-t-id-2322d0cde9" />
</grid-X-Y-T-id-2322d0cde9>
<grid-X-Y-id-2322d0cde9>
<link match="/lasdata/axes/X-x-id-2322d0cde9" />
<link match="/lasdata/axes/Y-y-id-2322d0cde9" />
</grid-X-Y-id-2322d0cde9>
<grid-X-Y-id-36e3274059>
<link match="/lasdata/axes/X-x-id-36e3274059" />
<link match="/lasdata/axes/Y-y-id-36e3274059" />
</grid-X-Y-id-36e3274059>
<grid-X-Y-T-id-36e3274059>
<link match="/lasdata/axes/X-x-id-36e3274059" />
<link match="/lasdata/axes/Y-y-id-36e3274059" />
<link match="/lasdata/axes/T-t-id-36e3274059" />
</grid-X-Y-T-id-36e3274059>
<grid-X-Y-id-03e9b9c2c1>
<link match="/lasdata/axes/X-x-id-03e9b9c2c1" />
<link match="/lasdata/axes/Y-y-id-03e9b9c2c1" />
</grid-X-Y-id-03e9b9c2c1>
</grids>
<axes>
<X-x-id-2322d0cde9 type="x" units="degree_east">
<arange start="0.5" size="360" step="1" />
</X-x-id-2322d0cde9>
<Y-y-id-2322d0cde9 type="y" units="degree_north">
<arange start="-89.5" size="180" step="1" />
</Y-y-id-2322d0cde9>
<T-t-id-2322d0cde9 type="t" units="month">
<arange start="1960-01-01" size="12" step="1" />
</T-t-id-2322d0cde9>
<X-x-id-36e3274059 type="x" units="degree_east">
<arange start="0.5" size="360" step="1" />
</X-x-id-36e3274059>
<Y-y-id-36e3274059 type="y" units="degree_north">
<arange start="-89.5" size="180" step="1" />
</Y-y-id-36e3274059>
<T-t-id-36e3274059 type="t" units="month">
<arange start="1981-11-01" size="307" step="1" />
</T-t-id-36e3274059>
<X-x-id-03e9b9c2c1 type="x" units="degree_east">
<arange start="0.5" size="360" step="1" />
</X-x-id-03e9b9c2c1>
<Y-y-id-03e9b9c2c1 type="y" units="degree_north">
<arange start="-89.5" size="180" step="1" />
</Y-y-id-03e9b9c2c1>
</axes>
<las_categories>
<category name="Reyn_SmithOIv2">
<category name="Reyn_SmithOIv2">
<category name="climatology">
<filter action="apply-dataset" contains-tag="id-2322d0cde9" />
</category>
<category name="monthly">
<filter action="apply-dataset" contains-tag="id-36e3274059" />
</category>
<category name="pentad-climatology">
<filter action="apply-dataset" contains-tag="id-ccd7f4b795" />
</category>
<category name="weekly">
<filter action="apply-dataset" contains-tag="id-03e9b9c2c1" />
</category>
</category>
</category>
</las_categories>
Categories are Created to Match the THREDDDS Hierarchy
Notice the categories at the bottom of the configuration. When added to LAS, the categories will make the user interface hierarchy match the hierarchy of the THREDDS catalog that was used as the source for this configuration. N.B. if you are not already using categories in you LAS configuration you will need to remove these categories from the resulting file before you add it to your LAS. Or you can add categories for you existing data sets so that they will be displayed in the user interface.