[BE] Ufuk Utku Turuncoglu wrote:
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>.Hi,What is the meanning of the <link match> elements in the XML file. Is it neccecary to create these files?
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
--Ufuk Roland Schweitzer wrote:Hello,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.Roland =+=+=+=+=+=+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 ------------------- <datasets> <wndspd_cdf name="Demo Curvilinear data"url="file:/home/porter/ansley/wndspd_2000-2003_sea.nc"doc=""> <!-- Default properties for this dataset --> <properties> <ferret> <curvi_coord_lon>LONGITUDE</curvi_coord_lon> <!-- curv. coords --> <curvi_coord_lat>LATITUDE</curvi_coord_lat> <!-- curv. coords --> </ferret> </properties> <variables> <wndspd name="10m wind speed" units="m/s"> <link match="/lasdata/grids/wndspd_cdf_X_Y_MT_grid"/> </wndspd> </variables> </wndspd_cdf> </datasets> <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"/> </wndspd_cdf_X_Y_MT_grid> </grids> <!-- The X and Y ranges here are the ranges for the curvilinear coordinates, not the coordinate axes of the variables --> <axes> <wndspd_cdf_X type="x" units="degrees_east"> <arange start="-179.99" step="2.95" size="122"/> </wndspd_cdf_X> <wndspd_cdf_Y type="y" units="degrees_north"> <arange start="47.94" step="3.45" size="122"/> </wndspd_cdf_Y> <wndspd_cdf_MT type="t" units="month"> <arange start="2000-01-16" step="1" size="48"/> </wndspd_cdf_MT> </axes> ------------------For the dataset in this example, Ferret is an easy way to get the minimum longitude/latitude, the step sizes, and the unitsyes? USE "/home/porter/ansley/wndspd_2000-2003_sea.nc" yes? STAT longitude 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 2.950 yes? list longitude.units VARIABLE : LONGITUDE.UNITS DATA SET : ECMWF Operational FILENAME : wndspd_2000-2003_sea.nc "degrees_east" yes? STAT latitude 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 0.3448 yes? LIST latitude.units VARIABLE : LATITUDE.UNITS DATA SET : ECMWF Operational FILENAME : wndspd_2000-2003_sea.nc "degrees_north" [BE] Ufuk Utku Turuncoglu wrote:Hi,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 { dimensions: x_cross = 201 ; y_cross = 114 ; time = UNLIMITED ; // (113 currently) variables: 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