[Thread Prev][Thread Next][Index]

Re: [las_users] No Lat/Lon grids found problem

[BE] Ufuk Utku Turuncoglu wrote:

What is the meanning of the <link match> elements in the XML file. Is it neccecary to create these files?
The line match="" syntax is just a way of identifying another XML element within the file. For example, link match="/lasdata/axes/axisX" refers to the element <lasdata><axes><axisX...></axisX></axes></lasdata>.

So, i am using las version armstrong.1.0. Is it sufficent to use command "ant" under root las directory to build when i change the las.xml file under conf/server/las.xml ?
No. Once you make a change to the las.xml you must run the genLas.pl command again. From the $LAS_HOME/conf/server directory run the command ../../xml/perl/genLas.pl las.xml.



Roland Schweitzer wrote:

You are right that the latitude/longitude definition in your data set is the issue. Right now addXML cannot create configuration information from lat/lon variables that depend on I and J. We'll add that capability in the future. We're still working on some documentation for configuring data sets of this type. Meanwhile, here are some tips written by Ansley for creating the configuration information yourself.


I'll quote an example xml configuration file here - it's for a dataset that has curvilinear longitude and latitude coordinate variables, and a time axis. The only differences from an xml file for data on a rectilinear grid are the addition of Ferret properties curvi_coord_llon and curvi_coord_lat pointing to the coordinate variables, and the use of fake axis ranges and units in the X and Y axis descriptions. The X and Y axes of a curvilinear data set are just index values, but in the XML, you should describe them with the lowest longitude in the longitude coordinate variable and the delta that would be needed to go from that lowest to the highest longitude if the data were equally spaced. This lets the User Interface present the right spatial range on the map. The same goes for the latitudes. After the xml example I'll show how to get the information from Ferret about the lon/lat ranges and step size.

You will need the Ferret scripts from the Armstrong 1.0 release to make sense of the data. The new Armstrong 1.0 scripts can also do a regridding from curvilinear to rectilinear grids, and it's on my list to document how to set that up, but for the moment let's start with this, which will produce plots in native curvilinear grid. Check out the "show grid point" option on the interface, which puts a dot at the location of the grid points or a subset of them, a good way to show what the grid does. I'll attach an example gif image at the end -

 <wndspd_cdf name="Demo Curvilinear data"

  <!-- Default properties for this dataset -->
    <curvi_coord_lon>LONGITUDE</curvi_coord_lon> <!-- curv. coords -->
    <curvi_coord_lat>LATITUDE</curvi_coord_lat>  <!-- curv. coords -->
   <wndspd name="10m wind speed" units="m/s">
    <link match="/lasdata/grids/wndspd_cdf_X_Y_MT_grid"/>
  <link match="/lasdata/axes/wndspd_cdf_X"/>
  <link match="/lasdata/axes/wndspd_cdf_Y"/>
  <link match="/lasdata/axes/wndspd_cdf_MT"/>
<!-- The X and Y ranges here are the ranges for the curvilinear
     coordinates, not the coordinate axes of the variables -->
 <wndspd_cdf_X type="x" units="degrees_east">
  <arange start="-179.99" step="2.95" size="122"/>
 <wndspd_cdf_Y type="y" units="degrees_north">
  <arange start="47.94" step="3.45" size="122"/>
 <wndspd_cdf_MT type="t" units="month">
  <arange start="2000-01-16" step="1" size="48"/>

For the dataset in this example, Ferret is an easy way to get the minimum longitude/latitude, the step sizes, and the units

yes? USE "/home/porter/ansley/wndspd_2000-2003_sea.nc"
yes? STAT longitude
             X: 0.5 to 122.5
             Y: 0.5 to 122.5
             Z:  N/A
             T:  N/A
             DATA SET: ./wndspd_2000-2003_sea.nc

 Total # of data points: 14884 (122*122*1*1)
 # flagged as bad  data: 0
 Minimum value: -179.99
 Maximum value: 179.93
 Mean    value: -1.2532 (unweighted average)
 Standard deviation: 104.64

yes? list (179.93+179.99)/122
             VARIABLE : (179.93+179.99)/122

yes? list longitude.units
             DATA SET : ECMWF Operational
             FILENAME : wndspd_2000-2003_sea.nc

yes? STAT latitude
             X: 0.5 to 122.5
             Y: 0.5 to 122.5
             Z:  N/A
             T:  N/A
             DATA SET: ./wndspd_2000-2003_sea.nc

 Total # of data points: 14884 (122*122*1*1)
 # flagged as bad  data: 0
 Minimum value: 47.937
 Maximum value: 90
 Mean    value: 66.818 (unweighted average)
 Standard deviation: 8.5362

yes? LIST (90-47.937)/122
             VARIABLE : (90-47.937)/122

yes? LIST latitude.units
             DATA SET : ECMWF Operational
             FILENAME : wndspd_2000-2003_sea.nc

[BE] Ufuk Utku Turuncoglu wrote:

I install LAS server and now i need to define my own datasets. I am using addXML tool but when i run the command

/bigdisk/progs/addXML-1.5.1/addXML.sh -n mmout_pre_d3-2001-2010.nc

it gives,

File parsed.  No Lat/Lon grids found.

error messages. I search the las user messages but the problem still exist. I will attach the output of the ncdump -c command as,

ncdump -h mmout_pre_d3-2001-2010.nc
netcdf mmout_pre_d3-2001-2010 {
       x_cross = 201 ;
       y_cross = 114 ;
       time = UNLIMITED ; // (113 currently)
       float lat(x_cross, y_cross) ;
               lat:long_name = "latitude coordinate" ;
               lat:standard_name = "latitude" ;
               lat:units = "degrees_north" ;
       float lon(x_cross, y_cross) ;
               lon:long_name = "longitude coordinate" ;
               lon:standard_name = "longitude" ;
               lon:units = "degrees_east" ;
       double rain_con(time, x_cross, y_cross) ;
rain_con:long_name = "accumulated convective precipitation" ;
               rain_con:units = "mm" ;
       double rain_non(time, x_cross, y_cross) ;
rain_non:long_name = "accumulated nonconvective precipitation" ;
               rain_non:units = "mm" ;
       double time(time) ;
               time:long_name = "Time" ;
               time:units = "hours since 1960-08-01 00:00:00" ;
       double x_cross(x_cross) ;
               x_cross:long_name = "Grid Points in x" ;
       double y_cross(y_cross) ;
               y_cross:long_name = "Grid Points in y" ;

// global attributes:
               :lambert_true_lat1 = 60. ;
               :lambert_true_lat2 = 30. ;
               :lambert_center_lat = 45. ;
               :lambert_center_lon = 26. ;
:history = "Tue Aug 21 19:03:56 2007: ncks -dtime,0,112 tmp.nc mmout_pre_d3-2001-2010.nc\n", "Tue Aug 21 19:03:50 2007: ncrcat A2_00_70p/domain_3/mmout_pre_001.nc A2_00_70p/domain_3/mmout_pre_002.nc A2_00_70p/domain_3/mmout_pre_003.nc A2_00_70p/domain_3/mmout_pre_004.nc A2_00_70p/domain_3/mmout_pre_005.nc A2_00_70p/domain_3/mmout_pre_006.nc A2_00_70p/domain_3/mmout_pre_007.nc A2_00_70p/domain_3/mmout_pre_008.nc A2_00_70p/domain_3/mmout_pre_009.nc A2_00_70p/domain_3/mmout_pre_010.nc A2_00_70p/domain_3/mmout_pre_011.nc A2_00_70p/domain_3/mmout_pre_012.nc A2_00_70p/domain_3/mmout_pre_013.nc A2_00_70p/domain_3/mmout_pre_014.nc A2_00_70p/domain_3/mmout_pre_015.nc A2_00_70p/domain_3/mmout_pre_016.nc A2_00_70p/domain_3/mmout_pre_017.nc A2_00_70p/domain_3/mmout_pre_018.nc A2_00_70p/domain_3/mmout_pre_019.nc A2_00_70p/domain_3/mmout_pre_020.nc A2_00_70p/domain_3/mmout_pre_021.nc A2_00_70p/domain_3/mmout_pre_022.nc A2_00_70p/domain_3/mmout_pre_023.nc A2_00_70p/domain_3/mmout_pre_024.nc A2_00_70p/domain_3/mmout_pre_025.nc A2_00_70p/domain_3/mmout_pre_026.nc A2_00_70p/domain_3/mmout_pre_027.nc A2_00_70p/domain_3/mmout_pre_028.nc A2_00_70p/domain_3/mmout_pre_029.nc A2_00_70p/domain_3/mmout_pre_030.nc A2_00_70p/domain_3/mmout_pre_031.nc A2_00_70p/domain_3/mmout_pre_032.nc A2_00_70p/domain_3/mmout_pre_033.nc A2_00_70p/domain_3/mmout_pre_034.nc A2_00_70p/domain_3/mmout_pre_035.nc A2_00_70p/domain_3/mmout_pre_036.nc A2_00_70p/domain_3/mmout_pre_037.nc A2_00_70p/domain_3/mmout_pre_038.nc A2_00_70p/domain_3/mmout_pre_039.nc A2_00_70p/domain_3/mmout_pre_040.nc A2_00_70p/domain_3/mmout_pre_041.nc A2_00_70p/domain_3/mmout_pre_042.nc A2_00_70p/domain_3/mmout_pre_043.nc A2_00_70p/domain_3/mmout_pre_044.nc A2_00_70p/domain_3/mmout_pre_045.nc A2_00_70p/domain_3/mmout_pre_046.nc A2_00_70p/domain_3/mmout_pre_047.nc A2_00_70p/domain_3/mmout_pre_048.nc A2_00_70p/domain_3/mmout_pre_049.nc A2_00_70p/domain_3/mmout_pre_050.nc A2_00_70p/domain_3/mmout_pre_051.nc A2_00_70p/domain_3/mmout_pre_052.nc A2_00_70p/domain_3/mmout_pre_053.nc A2_00_70p/domain_3/mmout_pre_054.nc A2_00_70p/domain_3/mmout_pre_055.nc A2_00_70p/domain_3/mmout_pre_056.nc A2_00_70p/domain_3/mmout_pre_057.nc tmp.nc\n", "Created by ./nc2.py on Sun Aug 19 13:25:04 2007" ;
               :nco_openmp_thread_number = 1 ;

i think problem is related with x,y gird. Any suggestion will be helpful.

Best wishes,

Ufuk Utku Turuncoglu
ITU, Informatics Institute

[Thread Prev][Thread Next][Index]

Contact Us
Dept of Commerce / NOAA / OAR / PMEL / TMAP

Privacy Policy | Disclaimer | Accessibility Statement