This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
----- Original Message ----- From: "Daniel Holloway" <address@hidden> To: <address@hidden> Sent: Wednesday, June 19, 2002 1:34 PM Subject: Reprsenting OGC services in a THREDDS catalog > > Continuing my autogeneration of THREDDS catalogs from > dods-dir service requests, following is an example of a catalog > representing a filesystem directory where the datafiles are > accessible from 4 different access protocols. In particular > I'm looking for input on how to represent the OGC services for > WMS/WCS access to the datafiles. > > First, given that the OGC WMS/WCS request protocol is > well-defined, client applications expect to interrogate the > remote server for its capabilities document, and then request > the appropriate layer. Also, layers on a WMS/WCS server > to a certain extent are an abstract representation of the > underlying data granules comprising the layer. When I state > 'abstract' I mean that only in the sense that the layer name is > an arbitrary name provided, and the multi-granular nature of > multifile data archives is represented in the layer's sample > dimensions. To make a long story short, all a WMS/WCS > client really needs is the layer name corresponding to a > particular collection/dataset to properly access the datafile > with that service (assuming the client app interacts with the > server to determine the sample dims, etc.) (Dataset #1 > in the example) > > However, if you want to insure that a particular datafile is > accessed by the WMS/WCS service, without requiring the > client to figure out the sample dimensions necessary > to access that particular datafile, then you would need to > add the minimal set of sample dimensions necessary to > uniquely identify the granule in the particular WMS/WCS > server. (Dataset #2 in the example) I would say that this situation is analogous to DODS, in the sense that you specify a dataset in the catalog, which can be further decomposed from within the protocol, or as an explicit catalog entry. > > It would be relatively easy to support example 1 in an > automated mode, and somewhat more difficult to support > example #2. Is example #1 sufficient? Is it even correct > given I'm using the empty string in urlPath? > Because urlPath is required on the access element, I hadnt thought of doing what you do in Example 1: <dataset name="QS_XWGRD3_2002001.20020041637.Z" serviceName="DODS" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041637. Z"> <access serviceName="FTP" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041637. Z"/> <access serviceName="WCS" urlPath=""/> <access serviceName="WMS" urlPath=""/> </dataset> Since you are assuming I think that a blank urlPath means "use the one in the dataset element". If this was allowed, then the meaning would be: The dataset is available through WCS and WMS, as "http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl/pub/ocean_wind/quikscat/L3/ data/2002/QS_XWGRD3_2002001.20020041637.Z" though DODS as "http://dods.jpl.nasa.gov/dods-bin/nph-dods/pub/ocean_wind/quikscat/L3/data/ 2002/QS_XWGRD3_2002001.20020041637.Z" and through FTP as "http://podaac.jpl.nasa.gov/pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2 002001.20020041637.Z" (shouldnt protocol type be ftp ?) (Note that I have removed serviceType attribute in the access element, which is intended to be used with an absolute URL instead of a serviceName attribute.) I had thought of doing it this way: <service name="OGC-DODS" serviceType="Compound" base=""> <service name="DODS" serviceType="DODS" base="http://dods.jpl.nasa.gov/dods-bin/nph-dods/"/> <service name="WCS" serviceType="WCS" base=http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl/> <service name="WMS" serviceType="WMS" base="http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl"/> </service> <dataset name="myName" serviceName="OGC-DODS" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041637. Z"> <access serviceName="FTP" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041637. Z"/> </dataset> or maybe even <service name="OGC-DODS-FTP" serviceType="Compound" base=""> <service name="DODS" serviceType="DODS" base="http://dods.jpl.nasa.gov/dods-bin/nph-dods/"/> <service name="FTP" serviceType="FTP" base="http://podaac.jpl.nasa.gov/"/> <service name="WCS" serviceType="WCS" base=http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl/> <service name="WMS" serviceType="WMS" base="http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl"/> </service> <dataset name="myName" serviceName="OGC-DODS-FTP" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041637. Z" /> ------------- For example 2: <dataset name="myName" serviceName="DODS" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041638. Z"> <access serviceName="FTP" urlPath="pub/ocean_wind/quikscat/L3/data/2002/QS_XWGRD3_2002001.20020041638. Z"/> <access serviceName="WCS" urlPath="?SERVICE=WCS&REQUEST=GetCoverage&TIME=2002-01-02&LAYER=QuikScat-Lev el3"/> <access serviceName="WMS" urlPath="?SERVICE=WMS&REQUEST=GetMap&TIME=2002-01-02&LAYER=QuikScat-Level3"/ > </dataset> I assume you mean (for WCS, WMS) use the urlPath from the dataset, and append, so the URL is "http://seablade.jpl.nasa.gov/cgi-bin/esip/de.pl/pub/ocean_wind/quikscat/L3/ data/2002/QS_XWGRD3_2002001.20020041637.Z?SERVICE=WCS&REQUEST=GetCoverage&TI ME=2002-01-02&LAYER=QuikScat-Level3" ??