Greetings,
(Please excuse the length of this message, but I needed to include
examples of some length to be complete)
I have been looking at some installations of the TDS and I have
noticed that the DDX response that it provides does not contain
any of the DAS metadata. Is this intentional? The DDX is intended
to be more than a simple XML replacement for the DDS. THe DDX
should contain all of the DAS metadata too.
For example, this data set: http://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/TA/vgeo/1day.html
(which I believe is served by a TDS)
Returns this DDS ( http://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/TA/vgeo/1day.dds
):
Dataset {
Float64 altitude[altitude = 1];
Float64 lat[lat = 600];
Float64 lon[lon = 1440];
Float64 time[time = 841];
Grid {
ARRAY:
Float32 TAvgeo[time = 841][altitude = 1][lat = 600][lon =
1440];
MAPS:
Float64 time[time = 841];
Float64 altitude[altitude = 1];
Float64 lat[lat = 600];
Float64 lon[lon = 1440];
} TAvgeo;
} satellite/TA/vgeo/1day;
And it returns this DDX ( http://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/TA/vgeo/1day.ddx
):
<?xml version="1.0" encoding="UTF-8"?>
<Dataset name="satellite/TA/vgeo/1day"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xml.opendap.org/ns/DAP2"
xsi:schemaLocation="http://xml.opendap.org/ns/DAP2 http://xml.opendap.org/dap/dap2.xsd
" >
<Array name="altitude">
<Float64/>
<dimension name="altitude" size="1"/>
</Array>
<Array name="lat">
<Float64/>
<dimension name="lat" size="600"/>
</Array>
<Array name="lon">
<Float64/>
<dimension name="lon" size="1440"/>
</Array>
<Array name="time">
<Float64/>
<dimension name="time" size="841"/>
</Array>
<Grid name="TAvgeo">
<Array name="TAvgeo">
<Float32/>
<dimension name="time" size="841"/>
<dimension name="altitude" size="1"/>
<dimension name="lat" size="600"/>
<dimension name="lon" size="1440"/>
</Array>
<Map name="time">
<Float64/>
<dimension name="time" size="841"/>
</Map>
<Map name="altitude">
<Float64/>
<dimension name="altitude" size="1"/>
</Map>
<Map name="lat">
<Float64/>
<dimension name="lat" size="600"/>
</Map>
<Map name="lon">
<Float64/>
<dimension name="lon" size="1440"/>
</Map>
</Grid>
</Dataset>
and this DAS ( http://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/TA/vgeo/1day.das
):
Attributes {
altitude {
Float64 actual_range 0.0, 0.0;
Int32 fraction_digits 0;
String long_name "Altitude";
String positive "up";
String standard_name "altitude";
String units "m";
String axis "Z";
String _CoordinateAxisType "Height";
String _CoordinateZisPositive "up";
}
lat {
String _CoordinateAxisType "Lat";
Float64 actual_range -74.875, 74.875;
String coordsys "geographic";
Int32 fraction_digits 4;
String long_name "Latitude";
String point_spacing "even";
String standard_name "latitude";
String units "degrees_north";
String axis "Y";
}
lon {
String _CoordinateAxisType "Lon";
Float64 actual_range 0.125, 359.875;
String coordsys "geographic";
Int32 fraction_digits 4;
String long_name "Longitude";
String point_spacing "even";
String standard_name "longitude";
String units "degrees_east";
String axis "X";
}
time {
Float64 actual_range 1.2277008E9, 1.2277008E9;
Int32 fraction_digits 0;
String long_name "Centered Time";
String units "seconds since 1970-01-01T00:00:00Z";
String standard_name "time";
String axis "T";
String _CoordinateAxisType "Time";
}
TAvgeo {
Float32 _FillValue -9999999.0;
Float32 actual_range -2.11292, 7.82442;
String coordsys "geographic";
Int32 fraction_digits 4;
String long_name "Currents, Geostrophic, Aviso, 0.25
degrees, Global, Meridional";
Float32 missing_value -9999999.0;
Int32 numberOfObservations 525727;
Float64 percentCoverage 0.608480324074074;
String standard_name "northward_sea_water_velocity";
String units "m s-1";
}
NC_GLOBAL {
String acknowledgement "NOAA NESDIS COASTWATCH, NOAA SWFSC
ERD";
String cdm_data_type "Grid";
Int32 cols 1440;
String composite "true";
String contributor_name "Aviso";
String contributor_role "Source of level 2 data.";
String Conventions "COARDS, CF-1.0, Unidata Dataset
Discovery v1.0, CWHDF";
String creator_email "dave.foley@xxxxxxxx";
String creator_name "NOAA CoastWatch, West Coast Node";
String creator_url "http://coastwatch.pfel.noaa.gov";
String cwhdf_version "3.4";
String date_created "2009-05-16Z";
String date_issued "2009-05-16Z";
Float64 Easternmost_Easting 359.875;
Float64 et_affine 0.0, 0.25, 0.25, 0.0, 0.125, -74.875;
Int32 gctp_datum 12;
Float64 gctp_parm 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
Int32 gctp_sys 0;
Int32 gctp_zone 0;
Float64 geospatial_lat_max 74.875;
Float64 geospatial_lat_min -74.875;
Float64 geospatial_lat_resolution 0.25;
String geospatial_lat_units "degrees_north";
Float64 geospatial_lon_max 359.875;
Float64 geospatial_lon_min 0.125;
Float64 geospatial_lon_resolution 0.25;
String geospatial_lon_units "degrees_east";
Float64 geospatial_vertical_max 0.0;
Float64 geospatial_vertical_min 0.0;
String geospatial_vertical_positive "up";
String geospatial_vertical_units "m";
String history "Aviso
2009-05-16T13:35:53Z NOAA CoastWatch (West Coast Node) and NOAA
SFSC ERD";
String id "LTAvgeoS1day_20081126120000";
String institution "NOAA CoastWatch, West Coast Node";
String keywords "EARTH SCIENCE > Oceans > Ocean Circulation
> Ocean Currents";
String keywords_vocabulary "GCMD Science Keywords";
String license "The data may be used and redistributed for
free but is not intended for legal use, since it may contain
inaccuracies. Neither the data Contributor, CoastWatch, NOAA, nor
the United States Government, nor any of their employees or
contractors, makes any warranty, express or implied, including
warranties of merchantability and fitness for a particular
purpose, or assumes any legal liability for the accuracy,
completeness, or usefulness, of this information.";
String naming_authority "gov.noaa.pfel.coastwatch";
Float64 Northernmost_Northing 74.875;
String origin "Aviso";
Int32 pass_date 14209;
Float64 polygon_latitude -74.875, 74.875, 74.875, -74.875,
-74.875;
Float64 polygon_longitude 0.125, 0.125, 359.875, 359.875,
0.125;
String processing_level "3";
String project "CoastWatch (http://coastwatch.noaa.gov/)";
String projection "geographic";
String projection_type "mapped";
String references "Aviso: http://www.aviso.oceanobs.com .";
Int32 rows 600;
String satellite "TOPEX/Poseidon, ERS-1, ERS-2, Geosat
Follow-On, Envisat, Jason-1";
String sensor "Altimeter";
String source "satellite observation: TOPEX/Poseidon,
ERS-1, ERS-2, Geosat Follow-On, Envisat, Jason-1, Altimeter";
Float64 Southernmost_Northing -74.875;
String standard_name_vocabulary "CF-1.0";
Float64 start_time 0.0;
String summary "Aviso Meridional Geostrophic Current is
inferred from Sea Surface Height Deviation, climatological
dynamic height, and basic fluid mechanics.";
String time_coverage_end "2008-11-27T00:00:00Z";
String time_coverage_start "2008-11-26T00:00:00Z";
String title "Currents, Geostrophic, Aviso, 0.25 degrees,
Global, Meridional";
Float64 Westernmost_Easting 0.125;
}
}
While the DDX response correctly reflects the structural content
of the DDS, it completely lacks the metadata of the DAS. I know
that the Java-OPeNDAP library has methods that allow a DAS to be
directly ingested into the DDS memory object. Once that is
accomplished the DDX result will contain the DAS information.
Additionally there methods are that would allow java code reading
from a netCDF file to directly populate the DDS memory object with
metadata such that it would produce a metadata rich DDX
representation. Is this something that might be addressed in a
future TDS release?
Nathan
PS - The correctly formed DDX for the data set http://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/TA/vgeo/1day
would be:
<?xml version="1.0" encoding="UTF-8"?>
<Dataset name="satellite/TA/vgeo/1day"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xml.opendap.org/ns/DAP2"
xsi:schemaLocation="http://xml.opendap.org/ns/DAP2 http://localhost:8080/dts/schema/opendap-0.0.0.xsd
" >
<Attribute name="NC_GLOBAL" type="Container">
<Attribute name="acknowledgement" type="String">
<value>"NOAA NESDIS COASTWATCH, NOAA SWFSC ERD"</
value>
</Attribute>
<Attribute name="cdm_data_type" type="String">
<value>"Grid"</value>
</Attribute>
<Attribute name="cols" type="Int32">
<value>1440</value>
</Attribute>
<Attribute name="composite" type="String">
<value>"true"</value>
</Attribute>
<Attribute name="contributor_name" type="String">
<value>"Aviso"</value>
</Attribute>
<Attribute name="contributor_role" type="String">
<value>"Source of level 2 data."</value>
</Attribute>
<Attribute name="Conventions" type="String">
<value>"COARDS, CF-1.0, Unidata Dataset Discovery v1.0,
CWHDF"</value>
</Attribute>
<Attribute name="creator_email" type="String">
<value>"dave.foley@xxxxxxxx"</value>
</Attribute>
<Attribute name="creator_name" type="String">
<value>"NOAA CoastWatch, West Coast
Node"</value>
</Attribute>
<Attribute name="creator_url" type="String">
<value>"http://coastwatch.pfel.noaa.gov"</value>
</Attribute>
<Attribute name="cwhdf_version" type="String">
<value>"3.4"</value>
</Attribute>
<Attribute name="date_created" type="String">
<value>"2009-05-16Z"</value>
</Attribute>
<Attribute name="date_issued" type="String">
<value>"2009-05-16Z"</value>
</Attribute>
<Attribute name="Easternmost_Easting" type="Float64">
<value>359.875</value>
</Attribute>
<Attribute name="et_affine" type="Float64">
<value>0.0</value>
<value>0.25</value>
<value>0.25</value>
<value>0.0</value>
<value>0.125</value>
<value>-74.875</value>
</Attribute>
<Attribute name="gctp_datum" type="Int32">
<value>12</value>
</Attribute>
<Attribute name="gctp_parm" type="Float64">
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
<value>0.0</value>
</Attribute>
<Attribute name="gctp_sys" type="Int32">
<value>0</value>
</Attribute>
<Attribute name="gctp_zone" type="Int32">
<value>0</value>
</Attribute>
<Attribute name="geospatial_lat_max" type="Float64">
<value>74.875</value>
</Attribute>
<Attribute name="geospatial_lat_min" type="Float64">
<value>-74.875</value>
</Attribute>
<Attribute name="geospatial_lat_resolution" type="Float64">
<value>0.25</value>
</Attribute>
<Attribute name="geospatial_lat_units" type="String">
<value>"degrees_north"</value>
</Attribute>
<Attribute name="geospatial_lon_max" type="Float64">
<value>359.875</value>
</Attribute>
<Attribute name="geospatial_lon_min" type="Float64">
<value>0.125</value>
</Attribute>
<Attribute name="geospatial_lon_resolution" type="Float64">
<value>0.25</value>
</Attribute>
<Attribute name="geospatial_lon_units" type="String">
<value>"degrees_east"</value>
</Attribute>
<Attribute name="geospatial_vertical_max" type="Float64">
<value>0.0</value>
</Attribute>
<Attribute name="geospatial_vertical_min" type="Float64">
<value>0.0</value>
</Attribute>
<Attribute name="geospatial_vertical_positive" type="String">
<value>"up"</value>
</Attribute>
<Attribute name="geospatial_vertical_units" type="String">
<value>"m"</value>
</Attribute>
<Attribute name="history" type="String">
<value>"Aviso
2009-05-16T13:35:53Z NOAA CoastWatch (West Coast Node) and NOAA
SFSC ERD"</value>
</Attribute>
<Attribute name="id" type="String">
<value>"LTAvgeoS1day_20081126120000"</value>
</Attribute>
<Attribute name="institution" type="String">
<value>"NOAA CoastWatch, West Coast
Node"</value>
</Attribute>
<Attribute name="keywords" type="String">
<value>"EARTH SCIENCE > Oceans > Ocean Circulation
> Ocean Currents"</value>
</Attribute>
<Attribute name="keywords_vocabulary" type="String">
<value>"GCMD Science Keywords"</value>
</Attribute>
<Attribute name="license" type="String">
<value>"The data may be used and redistributed for free
but is not intended for legal use, since it may contain
inaccuracies. Neither the data Contributor, CoastWatch, NOAA, nor
the United States Government, nor any of their employees or
contractors, makes any warranty, express or implied, including
warranties of merchantability and fitness for a particular
purpose, or assumes any legal liability for the accuracy,
completeness, or usefulness, of this information."</value>
</Attribute>
<Attribute name="naming_authority" type="String">
<value>"gov.noaa.pfel.coastwatch"</value>
</Attribute>
<Attribute name="Northernmost_Northing" type="Float64">
<value>74.875</value>
</Attribute>
<Attribute name="origin" type="String">
<value>"Aviso"</value>
</Attribute>
<Attribute name="pass_date" type="Int32">
<value>14209</value>
</Attribute>
<Attribute name="polygon_latitude" type="Float64">
<value>-74.875</value>
<value>74.875</value>
<value>74.875</value>
<value>-74.875</value>
<value>-74.875</value>
</Attribute>
<Attribute name="polygon_longitude" type="Float64">
<value>0.125</value>
<value>0.125</value>
<value>359.875</value>
<value>359.875</value>
<value>0.125</value>
</Attribute>
<Attribute name="processing_level" type="String">
<value>"3"</value>
</Attribute>
<Attribute name="project" type="String">
<value>"CoastWatch (http://coastwatch.noaa.gov/)"</
value>
</Attribute>
<Attribute name="projection" type="String">
<value>"geographic"</value>
</Attribute>
<Attribute name="projection_type" type="String">
<value>"mapped"</value>
</Attribute>
<Attribute name="references" type="String">
<value>"Aviso: http://www.aviso.oceanobs.com ."</
value>
</Attribute>
<Attribute name="rows" type="Int32">
<value>600</value>
</Attribute>
<Attribute name="satellite" type="String">
<value>"TOPEX/Poseidon, ERS-1, ERS-2, Geosat Follow-On,
Envisat, Jason-1"</value>
</Attribute>
<Attribute name="sensor" type="String">
<value>"Altimeter"</value>
</Attribute>
<Attribute name="source" type="String">
<value>"satellite observation: TOPEX/Poseidon, ERS-1,
ERS-2, Geosat Follow-On, Envisat, Jason-1, Altimeter"</value>
</Attribute>
<Attribute name="Southernmost_Northing" type="Float64">
<value>-74.875</value>
</Attribute>
<Attribute name="standard_name_vocabulary" type="String">
<value>"CF-1.0"</value>
</Attribute>
<Attribute name="start_time" type="Float64">
<value>0.0</value>
</Attribute>
<Attribute name="summary" type="String">
<value>"Aviso Meridional Geostrophic Current is inferred
from Sea Surface Height Deviation, climatological dynamic height,
and basic fluid mechanics."</value>
</Attribute>
<Attribute name="time_coverage_end" type="String">
<value>"2008-11-27T00:00:00Z"</value>
</Attribute>
<Attribute name="time_coverage_start" type="String">
<value>"2008-11-26T00:00:00Z"</value>
</Attribute>
<Attribute name="title" type="String">
<value>"Currents, Geostrophic, Aviso, 0.25 degrees,
Global, Meridional"</value>
</Attribute>
<Attribute name="Westernmost_Easting" type="Float64">
<value>0.125</value>
</Attribute>
</Attribute>
<Array name="altitude">
<Attribute name="actual_range" type="Float64">
<value>0.0</value>
<value>0.0</value>
</Attribute>
<Attribute name="fraction_digits" type="Int32">
<value>0</value>
</Attribute>
<Attribute name="long_name" type="String">
<value>"Altitude"</value>
</Attribute>
<Attribute name="positive" type="String">
<value>"up"</value>
</Attribute>
<Attribute name="standard_name" type="String">
<value>"altitude"</value>
</Attribute>
<Attribute name="units" type="String">
<value>"m"</value>
</Attribute>
<Attribute name="axis" type="String">
<value>"Z"</value>
</Attribute>
<Attribute name="_CoordinateAxisType" type="String">
<value>"Height"</value>
</Attribute>
<Attribute name="_CoordinateZisPositive" type="String">
<value>"up"</value>
</Attribute>
<Float64/>
<dimension name="altitude" size="1"/>
</Array>
<Array name="lat">
<Attribute name="_CoordinateAxisType" type="String">
<value>"Lat"</value>
</Attribute>
<Attribute name="actual_range" type="Float64">
<value>-74.875</value>
<value>74.875</value>
</Attribute>
<Attribute name="coordsys" type="String">
<value>"geographic"</value>
</Attribute>
<Attribute name="fraction_digits" type="Int32">
<value>4</value>
</Attribute>
<Attribute name="long_name" type="String">
<value>"Latitude"</value>
</Attribute>
<Attribute name="point_spacing" type="String">
<value>"even"</value>
</Attribute>
<Attribute name="standard_name" type="String">
<value>"latitude"</value>
</Attribute>
<Attribute name="units" type="String">
<value>"degrees_north"</value>
</Attribute>
<Attribute name="axis" type="String">
<value>"Y"</value>
</Attribute>
<Float64/>
<dimension name="lat" size="600"/>
</Array>
<Array name="lon">
<Attribute name="_CoordinateAxisType" type="String">
<value>"Lon"</value>
</Attribute>
<Attribute name="actual_range" type="Float64">
<value>0.125</value>
<value>359.875</value>
</Attribute>
<Attribute name="coordsys" type="String">
<value>"geographic"</value>
</Attribute>
<Attribute name="fraction_digits" type="Int32">
<value>4</value>
</Attribute>
<Attribute name="long_name" type="String">
<value>"Longitude"</value>
</Attribute>
<Attribute name="point_spacing" type="String">
<value>"even"</value>
</Attribute>
<Attribute name="standard_name" type="String">
<value>"longitude"</value>
</Attribute>
<Attribute name="units" type="String">
<value>"degrees_east"</value>
</Attribute>
<Attribute name="axis" type="String">
<value>"X"</value>
</Attribute>
<Float64/>
<dimension name="lon" size="1440"/>
</Array>
<Array name="time">
<Attribute name="actual_range" type="Float64">
<value>1.2277008E9</value>
<value>1.2277008E9</value>
</Attribute>
<Attribute name="fraction_digits" type="Int32">
<value>0</value>
</Attribute>
<Attribute name="long_name" type="String">
<value>"Centered Time"</value>
</Attribute>
<Attribute name="units" type="String">
<value>"seconds since
1970-01-01T00:00:00Z"</value>
</Attribute>
<Attribute name="standard_name" type="String">
<value>"time"</value>
</Attribute>
<Attribute name="axis" type="String">
<value>"T"</value>
</Attribute>
<Attribute name="_CoordinateAxisType" type="String">
<value>"Time"</value>
</Attribute>
<Float64/>
<dimension name="time" size="841"/>
</Array>
<Grid name="TAvgeo">
<Attribute name="_FillValue" type="Float32">
<value>-9999999.0</value>
</Attribute>
<Attribute name="actual_range" type="Float32">
<value>-2.11292</value>
<value>7.82442</value>
</Attribute>
<Attribute name="coordsys" type="String">
<value>"geographic"</value>
</Attribute>
<Attribute name="fraction_digits" type="Int32">
<value>4</value>
</Attribute>
<Attribute name="long_name" type="String">
<value>"Currents, Geostrophic, Aviso, 0.25 degrees,
Global, Meridional"</value>
</Attribute>
<Attribute name="missing_value" type="Float32">
<value>-9999999.0</value>
</Attribute>
<Attribute name="numberOfObservations" type="Int32">
<value>525727</value>
</Attribute>
<Attribute name="percentCoverage" type="Float64">
<value>0.608480324074074</value>
</Attribute>
<Attribute name="standard_name" type="String">
<value>"northward_sea_water_velocity"</value>
</Attribute>
<Attribute name="units" type="String">
<value>"m s-1"</value>
</Attribute>
<Array name="TAvgeo">
<Float32/>
<dimension name="time" size="841"/>
<dimension name="altitude" size="1"/>
<dimension name="lat" size="600"/>
<dimension name="lon" size="1440"/>
</Array>
<Map name="time">
<Float64/>
<dimension name="time" size="841"/>
</Map>
<Map name="altitude">
<Float64/>
<dimension name="altitude" size="1"/>
</Map>
<Map name="lat">
<Float64/>
<dimension name="lat" size="600"/>
</Map>
<Map name="lon">
<Float64/>
<dimension name="lon" size="1440"/>
</Map>
</Grid>
</Dataset>
= = =
Nathan Potter ndp at opendap.org
OPeNDAP, Inc. +1.541.231.3317
_______________________________________________
thredds mailing list
thredds@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit:
http://www.unidata.ucar.edu/mailing_lists/