[Thread Prev][Thread Next][Index]

Re: dataset xml file


Some clarification on creating dataset xml files.

When LAS accesses data in a relational database, the NetCDF file it generates for you is in a format that makes sense from a raw data perspective -- a single index axis for all the returned records with lon, lat and time as variables.  The LAS user interface, however, pretends that the data exists on a lon-lat-time grid.  So in the dataset xml we need to tell a lie to LAS in order to have it present the lon-lat-time interface.

I don't think anyone would want to interact with in-situ data in LAS if we just presented a single axis selector 1-1000000 with lon, lat and time as variables.  Similarly, we don't want to return the data regridded onto a grid with fine enough resolution to uniquely identify every point -- the dataset would be catastrophically large and almost entirely empty!

I hope this clarifies why the NetCDF file resulting from an LAS DBMS query cannot be used to create the dataset xml file.

-- Jon

PS -- Storing data in a relational database is almost always not the best way to achieve efficient, fast access to your data.  However, many people use an DBMS for the querying capabilities associated with database systems or for policy reasons.  We have provided some support code for folks storing their data in an DBMS but the door is wide open for you to implement your own data access algorithms with LAS custom code.

Enils Bashi wrote:
Hi Joe,

Thank you for clearing that out. I am a bit puzzled though. If there is no
capability to create "real" netcdf files by quering a database from a perl
script, what are the benefits of using LAS Relational Database Access? The
reason for the question is that giving the facts, it appears using LAS RDBA
is not more efficient or quicker than just creating netcdf from ascii files
generated from the RDB.

Enils Bashi
Programmer - Chesapeake Bay Program
Veridyne Incorporated
Annapolis, Maryland: (410) 267-9833

Hi Enils,

addXml.pl will not work on a NetCDF file created using the LAS Relational
database access instructions.
Item No. 7 of the instructions reads, "You will have to construct the
configuration file by hand"

There may be a misunderstanding concerning the way this custom code works.
When a request is sent to the LAS product server, custom.pl reads the data
the RDB and creates these unique NetCDF files on the fly.  These files are
used in the custom Ferret scripts (item number 3 of the instructions lists
these) to create the LAS output.  The files contain neither gridded data nor
COARDS compliant metadata.

LAS prefers COARDS compliant NetCDF files.  COARDS
(http://ferret.pmel.noaa.gov/noaa_coop/coop_cdf_profile.html) conventions
that dimensions defined in the NetCDF file must be associated with a
variable of the same name as the dimension.  AddXml.pl expects to find this
coordinate variable.


Enils Bashi wrote:

Dear LAS users,

I am trying to configure LAS with a MySql RDBMS. I successfully created a
sample netcdf files following the instructions on
When I try to create the dataset xml file I get the following:

[root@nutria server]# ../xml/perl/addXml.pl --out_inc
../xml/perl/template.xml bishopville.xml bishopville.cdf
**File: bishopville.cdf
Dimension index doesn't have a coordinate variable at
line 93

Here is the output of ncdump:

netcdf bishopville {
        index = 12192 ;
        trdim = 2 ;
        double trdim(trdim) ;
                trdim:units = "hours since 2003-01-01" ;
                trdim:time_origin = "01-Jan-2003" ;
        double trange(trdim) ;
                trange:units = "hours" ;
        float xax(index) ;
                xax:long_name = "Longitude" ;
                xax:units = "degrees_east" ;
                xax:missing_value = -1.e+34f ;
        float yax(index) ;
                yax:long_name = "Latitude" ;
                yax:units = "degrees_north" ;
                yax:missing_value = -1.e+34f ;
        float zax(index) ;
                zax:long_name = "Depth" ;
                zax:units = "meters" ;
                zax:missing_value = -1.e+34f ;
        double tax(index) ;
                tax:long_name = "Time" ;
                tax:units = "hours since 2003-01-01" ;
                tax:time_origin = "01-Jan-2003" ;
                tax:missing_value = -1.e+34f ;
        float temp(index) ;
                temp:long_name = "Temperature" ;
                temp:units = "Degrees Fahrenheit" ;
                temp:missing_value = -1.e+34f ;

Im running LAS 6.1/Ferret 5.51

Any and all feedback would be greatly appreciated.

Enils Bashi
Programmer - Chesapeake Bay Program
Veridyne Incorporated
Annapolis, Maryland: (410) 267-9833

[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP
Contact Us | Privacy Policy | Disclaimer | Accessibility Statement