[Thread Prev][Thread Next][Index]

LAS problem using files with trivial vertical dimension

Our LAS server has a mixture of data with 2 and 3 spatial dimensions.
Some of the 2D files have a trivial vertical dimension to indicate
they're on the surface (e.g. surface fluxes from an ocean model). A
sample XML file contains
 <avg3a_shfl_climl1_m1_12_y121_350_nc_Surface units="cm" type="z">

There's a problem when one tries to look at one of these 2D datasets
after accessing a genuine 3D dataset in the same LAS session. LAS
remembers the level chosen from the 3D file and tries to apply it to the
2D file. The error message looks something like

Illegal Limits
Sorry ...

     **ERROR: illegal limits: "HFL" is not in the range Z=127.9in the
range : to :
          Axis extremes are Z=-0.5:0.5: and continue to :

Please try again with a time that lies within this range.

Note that this problem doesn't arise with ordinary 2D files, only the
ones with the trivial vertical dimension. Choosing "Start Over" is not
enough to clear this state, it seems to be necessary to restart the

In one respect, LAS recognises that these really are 2D files and
doesn't display a selection widget for the vertical dimension.
RegionConstraint.java checks whether an axis is trivial (with length 1)
when setting this up. 

    for (Iterator i = mAxes.iterator(); i.hasNext(); ){
      IAxis a = (IAxis)i.next();
      if (a.getSize() > 1 && !a.isAnalysis()){

I think there needs to be a similar check in XmlRequester.java. The
following change fixed the problem I had (note that I'm using 6.2 from
CVS, 6.1 had the same problem but the line numbers are different)

% diff -c XmlRequester.java XmlRequester.java.old 
*** XmlRequester.java	Mon Apr 14 11:55:08 2003
--- XmlRequester.java.old	Mon Apr 14 11:53:16 2003
*** 162,168 ****
      for (Iterator i = varInfo.getAxes().iterator(); i.hasNext(); ){
        IAxis ax = (IAxis)i.next();
!       if (ax.getSize() <=  1 || ax.isAnalysis()){
--- 162,168 ----
      for (Iterator i = varInfo.getAxes().iterator(); i.hasNext(); ){
        IAxis ax = (IAxis)i.next();
!       if (ax.isAnalysis()){

Apologies if this doesn't seem very clear. Unfortunately our LAS server
is still an experimental one behind our firewall so you can't see the
problem for yourself.


Martin Dix

[Thread Prev][Thread Next][Index]

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