[Thread Prev][Thread Next][Index]

Re: non COARDS-compliant via DODS



Oops, wrongly cc'd to owner-las_users originally, let's try again....

-------------------------------

Joe,

I tried your suggested init_modulo_x.jnl script, but it still doesn't work.

The problem appears not to be that the axis is not declared modulo, but
that the axes are in a different ordering to that required for COARDS
compliance.

With init_modulo_x.jnl, and the default full region x/y plot for 'Salinity'
in LAS you get 'No Valid Data', which is not true. Furthermore, if the
deepest level (36) is selected, you get an 'Illegal region' error. The
FERRET debug output is:



yes? cancel mode verify
yes? cancel mode interp
yes? canc data/all
yes? go init_modulo_x 
"http://www.nerc-essc.ac.uk/cgi-bin/nph-dods/OCCAM/d4733.restart1_a.hdf.gz"; "1" 
"1" "salinity"
 Cached data cleared from memory
Replacing definition of axis LONGITUDE_T
 *** NOTE: grid  used by data set d4733.restart1_a.hdf.gz
 *** NOTE: Redefinition may alter apparent contents of data set
 *** NOTE: grid  used by data set d4733.restart1_a.hdf.gz
 *** NOTE: Redefinition may alter apparent contents of data set
yes? set region/x="180":"540"/y="-78.0":"65.875"/z="36":"36"/l=1
yes? set win/size=.5
yes? set win/asp=0.599479166666667
yes? GO "/tmp/lasgo27486969543.jnl"
 **ERROR: illegal limits: "SALINITY" is not in the range X=180:540
          Axis extremes are X=0.5:36.5
CONTOUR/FILL/levels=30/set salinity




For reference again, the definition of salinity in this dataset is:

    Grid {
     ARRAY:
        Float64 SALINITY[LATITUDE_T = 577][LONGITUDE_T = 1440][DEPTH = 36];
     MAPS:
        Float64 LATITUDE_T[577];
        Float64 LONGITUDE_T[1440];
        Float64 DEPTH[36];
    } SALINITY;




I'm trying to learn ferret, DODS, and LAS all at the same time here, as
well as having 150GB of non-COARDS compliant HDF files I'm trying to put
up. So I must tread carefully, but I suspect the answer may lie in redefining
the axes in an init_script. To repeat the basic problem: the variables
in my dataset are either 2-d, ordered (y,x), or 3-d, ordered (y,x,z).
COARDS requires (t,z,y,x).

However, the only way I've found to do this is with the ferret command
"use/order=...", and this applies to whole data sets, not variables.
I'm not sure how an init_script could do this for individual variables.




Your answer has also inspired another question. It's not clear to me what
the metadata in the XML file is used for. You said:

> Your first problem (out-of-range errors) is due to the fact that there
> is no metadata in your HDF files for the X (longitude) axis indicating
> the units for the axis. 

I presumed that by including the attributes (eg type="x" units="degrees_east")
in the XML, that would compensate for the lack of corresponding info in
the HDF file. Is this not the case, then? In that case, is the ordering
of the axes within a grid definition in the XML even important?



Thank you very much for your help so far. This is so close to working now,
hopefully a new LAS site available before long...



Thanks by the way for your suggestions re weird variable names. That has
helped, though I was more confident on that problem than this non-COARDS
axes problem.



Best regards,
 - Andrew


-----------------------------------------------------
Andrew Woolf  (awo@mail.nerc-essc.ac.uk)
Environmental Systems Science Centre (ESSC)
Reading University
3 Earley Gate
Whiteknights
Reading RG6 6AL
UNITED KINGDOM
Phone: +44 (0)118 931 8741   Fax: +44 (0)118 931 6413
-----------------------------------------------------



[Thread Prev][Thread Next][Index]

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