[Thread Prev][Thread Next][Index]

Re: [las_users] Re: Declaring mooring data in LAS



Thank you again for your answer Roland. With the substitution of the <v> by <arange>, it works now !!

I just have the time size that is also not well detected by addXML. The interval limit is too high so users can select time intervals with no data (the usual LAS error is then showed).

To conclude, as we have to manually modify the xml constructed by addXML, we can't use LAS. We thought about a automatic generation of the LAS configuration for the datasets served by a Thredds catalog.
It would seems that the development of a specific python script with netcdf4-python/matplotlib is a better solution for our needs.

Cheers,
Adrien


Le 27/07/2012 01:48, Roland Schweitzer a écrit :
This will work.

Roland

<datasets>
  <id-8e08495b58 name="http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc" url=""true" href="http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc">http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc">
    <variables>
      <TEMP_ADJUSTED-id-8e08495b58 name="SEA TEMPERATURE" units="Celsius degree" url="">
        <link match="/lasdata/grids/grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58" />
      </TEMP_ADJUSTED-id-8e08495b58>
    </variables>
  </id-8e08495b58>
</datasets>
<grids>
  <grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58>la
    <link match="/lasdata/axes/LONGITUDE-x-id-8e08495b58" />
    <link match="/lasdata/axes/LATITUDE-y-id-8e08495b58" />
    <link match="/lasdata/axes/DEPTH-z-id-8e08495b58" />
    <link match="/lasdata/axes/TIME-t-id-8e08495b58" />
  </grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58>
</grids>
<axes>
  <LONGITUDE-x-id-8e08495b58 type="x" units="degree_east">
    <arange start="166.4433" size="1" step="1"/>
  </LONGITUDE-x-id-8e08495b58>
  <LATITUDE-y-id-8e08495b58 type="y" units="degree_north">
    <arange start="-22.3038" size="1" step="1"/>
  </LATITUDE-y-id-8e08495b58>
  <DEPTH-z-id-8e08495b58 type="z" units="m">
    <v>2</v>
  </DEPTH-z-id-8e08495b58>
  <TIME-t-id-8e08495b58 type="t" units="hour">
    <arange start="1977-04-15 22:00:00" size="16798" step="1" />
  </TIME-t-id-8e08495b58>
</axes>


On Fri, Jul 20, 2012 at 1:02 AM, Adrien Cheype <adrien.cheype@xxxxxx> wrote:
Thanks Roland for your answer.

This is the xml declaration returned by the command "./addXML.sh -t http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/catalog.xml".

<datasets>
  <id-8e08495b58 name="http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc" url="" moz-do-not-send="true" href="http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc" target="_blank">"http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/ANSEVA01_199704_WITH_GRID.nc">
    <variables>
      <TEMP_ADJUSTED-id-8e08495b58 name="SEA TEMPERATURE" units="Celsius degree" url="">
        <link match="/lasdata/grids/grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58" />
      </TEMP_ADJUSTED-id-8e08495b58>
    </variables>
  </id-8e08495b58>
</datasets>
<grids>
  <grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58>la
    <link match="/lasdata/axes/LONGITUDE-x-id-8e08495b58" />
    <link match="/lasdata/axes/LATITUDE-y-id-8e08495b58" />
    <link match="/lasdata/axes/DEPTH-z-id-8e08495b58" />
    <link match="/lasdata/axes/TIME-t-id-8e08495b58" />
  </grid-LONGITUDE-LATITUDE-DEPTH-TIME-id-8e08495b58>
</grids>
<axes>
  <LONGITUDE-x-id-8e08495b58 type="x" units="degree_east">
    <v>166.4433</v>
  </LONGITUDE-x-id-8e08495b58>
  <LATITUDE-y-id-8e08495b58 type="y" units="degree_north">
    <v>-22.3038</v>
  </LATITUDE-y-id-8e08495b58>
  <DEPTH-z-id-8e08495b58 type="z" units="m">
    <v>2</v>
  </DEPTH-z-id-8e08495b58>
  <TIME-t-id-8e08495b58 type="t" units="hour">
    <arange start="1977-04-15 22:00:00" size="16798" step="1" />
  </TIME-t-id-8e08495b58>
</axes>

I have just noticed that the longitude/latitude are not well filled. The value in the data is : 166.44331 and -22.30376. However, the format for these fields is "%+8.4lf". So I have done two other tests :
- I kept the same values and modified in the header the LATITUDE:format/LONGITUDE:format to "%+8.5lf" -> no changement in the declaration generated by addXML.sh and the same problem with the LAS interface.
- I kept the header and modified in the only value for LATITUDE and LONGITUDE (I wrote 166 and -22) -> the same problem with the LAS interface

You can access to this 3 datasets at http://sitecpso-test.ird.nc:8080/thredds/dodsC/oceano_series/grid/.

Cheers,
Adrien


Le 20/07/2012 00:14, Roland Schweitzer a écrit :
Sounds like you are on the right track.  Can you post the configuration file produced by addXML.  Particularly the y axis, bu the entire thing would be helpful.

Roland

On Thu, Jul 19, 2012 at 1:52 AM, Adrien Cheype <adrien.cheype@xxxxxx> wrote:
Hi,

No answer... anybody try to store fixed buoys/mooring data and get timeseries graphs by LAS ???

Thanks in avance,
Adrien


Le 16/07/2012 21:24, Adrien Cheype a écrit :
Hi,

I would like to declare some datasets in LAS. They are mooring data which respect the OceanSites convention [1] (COARDS compliant).

However, these datasets are not gridded data and it is my understanding gridded data is a requirement for LAS. As we can see in the file structure [2], as the DEPH, LONGITUDE and LATITUDE dimensions are always equals to 1, only the variable TEMP depends on TIME.

So I've changed the file structure so that the dataset may be recognized by LAS. I've changed the TEMP variable and its depends now on 4 dimensions : LONGITUDE, LATITUDE, DEPH and TIME [3]. The DDS returned by Thredds shows us the grid is found [4] (the same for the Ferret command line). Thus, the addXml.sh script is now able to generate the declaration xml and after a configuration restart I can access to this dataset in LAS.

However, it's impossible to select a correct coordinate. The North & South coordinates is initialized with a "NaN N" value (but we can select others latitudes), and the East & West coordinates is always blocked at 2.5 E" !  [5]
LAS suggests only timeseries plots so we can conclude it detects correctly the data dimensions. But why doesn't it select correctly the only longitude/latitude filled in the dataset ? (the depth value seams to be recognized)

Thanks for your help,
Cheer,

Adrien


[1] http://www.oceansites.org/docs/oceansites_user_manual.pdf

[2]
dimensions:
    TIME = 16798 ;
    DEPH = 1 ;
    LONGITUDE = 1 ;
    LATITUDE = 1 ;

variables:
    double TIME(TIME) ;
        TIME:long_name = "DECIMAL JULIAN DAY (UTC) OF EACH MEASUREMENT" ;
        TIME:standard_name = "time" ;
        TIME:units = "days since 1950-01-01T00:00:00Z" ;
        TIME:conventions = "Relative julian days with decimal part (as parts of the day) from REFERENCE_DATE_TIME" ;
        TIME:valid_min = "0." ;
        TIME:valid_max = "90000." ;
        TIME:format = "%9.5lf" ;
        TIME:epic_code = "601." ;
        TIME:axis = "T" ;
        TIME:comment = "Julian day of the measurement" ;
        TIME:coordinate = "TIME" ;
    double LATITUDE(LATITUDE) ;
        LATITUDE:long_name = "LATITUDE OF THE MEASUREMENT" ;
        LATITUDE:standard_name = "latitude" ;
        LATITUDE:units = "degree_north" ;
        LATITUDE:valid_min = "-90." ;
        LATITUDE:valid_max = "90." ;
        LATITUDE:format = "%+8.4lf" ;
        LATITUDE:_FillValue = "9999" ;
        LATITUDE:epic_code = "500." ;
        LATITUDE:axis = "Y" ;
        LATITUDE:comment = "Latitude of the measurement (decimal)" ;
        LATITUDE:coordinate = "LATITUDE" ;
    double LONGITUDE(LONGITUDE) ;
        LONGITUDE:long_name = "LONGITUDE OF THE MEASUREMENT" ;
        LONGITUDE:standard_name = "longitude" ;
        LONGITUDE:units = "degree_east" ;
        LONGITUDE:valid_min = "-180." ;
        LONGITUDE:valid_max = "180." ;
        LONGITUDE:format = "%+9.4lf" ;
        LONGITUDE:_FillValue = "9999" ;
        LONGITUDE:epic_code = "501." ;
        LONGITUDE:axis = "X" ;
        LONGITUDE:comment = "Latitude of the measurement (decimal)" ;
        LONGITUDE:coordinate = "LONGITUDE" ;
    double DEPH(DEPH) ;
        DEPH:long_name = "SEA WATER DEPH" ;
        DEPH:standard_name = "deph" ;
        DEPH:units = "m" ;
        DEPH:positive = "up" ;
        DEPH:format = "%7.2lf" ;
        DEPH:_FillValue = "9999" ;
        DEPH:axis = "Z" ;
        DEPH:comment = "Pressure of the measurement " ;
        DEPH:coordinate = "LEVEL" ;
    byte TEMP_QC(TIME) ;
        TEMP_QC:_FillValue = "0" ;
    double TEMP(TIME) ;
        TEMP:long_name = "SEA TEMPERATURE" ;
        TEMP:units = "Celsius degree" ;
        TEMP:valid_max = "30.0" ;
        TEMP:valid_min = "0.0" ;
        TEMP:_FillValue = "99999.0" ;
        TEMP:resolution = "0.001" ;
        TEMP:format = "%6.3lf" ;

// global attributes:
        :data_type = "time-series" ;
        :type_position = "GPS" ;
        :cycle_mesure = "ANSEVA01_199704" ;
        :time_coverage_start = "1997-04-15T22:55:00Z" ;
        :time_coverage_end = "1997-10-07T22:15:00Z" ;
        :project_name = "COTIERES-NOUMEA" ;
        :pi_name = "Varillon" ;
        :platform_code = "ANSEVA01" ;
        :cycle_traitement = "0A" ;
        :type_instrument = "StowAway-TEMP (C) ONSET -4C TO 38C" ;
        :number_instrument = "69" ;
        :conventions = "OceanSITES 1.1, CF1.4" ;

[3]
netcdf ANSE {
dimensions:
    LATITUDE = 1 ;
    LONGITUDE = 1 ;
    TIME = 16798 ;
    DEPH = 1 ;

variables:
    double LATITUDE(LATITUDE) ;
        LATITUDE:_FillValue = 9.969209968386869e+36 ;
        LATITUDE:axis = "Y" ;
        LATITUDE:comment = "Latitude of the measurement (decimal)" ;
        LATITUDE:coordinate = "LATITUDE" ;
        LATITUDE:epic_code = "500." ;
        LATITUDE:format = "%+8.4lf" ;
        LATITUDE:long_name = "LATITUDE OF THE MEASUREMENT" ;
        LATITUDE:standard_name = "latitude" ;
        LATITUDE:units = "degree_north" ;
        LATITUDE:valid_max = "90." ;
        LATITUDE:valid_min = "-90." ;
    double LONGITUDE(LONGITUDE) ;
        LONGITUDE:_FillValue = 9.969209968386869e+36 ;
        LONGITUDE:axis = "X" ;
        LONGITUDE:comment = "Latitude of the measurement (decimal)" ;
        LONGITUDE:coordinate = "LONGITUDE" ;
        LONGITUDE:epic_code = "501." ;
        LONGITUDE:format = "%+9.4lf" ;
        LONGITUDE:long_name = "LONGITUDE OF THE MEASUREMENT" ;
        LONGITUDE:standard_name = "longitude" ;
        LONGITUDE:units = "degree_east" ;
        LONGITUDE:valid_max = "180." ;
        LONGITUDE:valid_min = "-180." ;
    double TIME(TIME) ;
        TIME:long_name = "DECIMAL JULIAN DAY (UTC) OF EACH MEASUREMENT" ;
        TIME:standard_name = "time" ;
        TIME:units = "days since 1950-01-01T00:00:00Z" ;
        TIME:conventions = "Relative julian days with decimal part (as parts of the day) from REFERENCE_DATE_TIME" ;
        TIME:valid_min = "0." ;
        TIME:valid_max = "90000." ;
        TIME:format = "%9.5lf" ;
        TIME:epic_code = "601." ;
        TIME:axis = "T" ;
        TIME:comment = "Julian day of the measurement" ;
        TIME:coordinate = "TIME" ;
    double DEPH(DEPH) ;
        DEPTH:long_name = "SEA WATER DEPH" ;
        DEPTH:standard_name = "deph" ;
        DEPTH:units = "m" ;
        DEPTH:positive = "up" ;
        DEPTH:format = "%7.2lf" ;
        DEPTH:_FillValue = 9.969209968386869e+36 ;
        DEPTH:axis = "Z" ;
        DEPTH:comment = "Pressure of the measurement " ;
        DEPTH:coordinate = "LEVEL" ;
    double TEMP(LONGITUDE, LATITUDE, DEPH, TIME) ;
        TEMP_ADJUSTED:long_name = "SEA TEMPERATURE" ;
        TEMP_ADJUSTED:units = "Celsius degree" ;
        TEMP_ADJUSTED:valid_max = "30.0" ;
        TEMP_ADJUSTED:valid_min = "0.0" ;
        TEMP_ADJUSTED:_FillValue = 9.969209968386869e+36 ;
        TEMP_ADJUSTED:resolution = "0.001" ;
        TEMP_ADJUSTED:format = "%6.3lf" ;
    byte TEMP_QC(TIME) ;

// global attributes:
        :data_type = "time-series" ;
        :type_position = "GPS" ;
        :cycle_mesure = "ANSEVA01_199704" ;
        :time_coverage_start = "1997-04-15T22:55:00Z" ;
        :time_coverage_end = "1997-10-07T22:15:00Z" ;
        :project_name = "COTIERES-NOUMEA" ;
        :pi_name = "Varillon" ;
        :platform_code = "ANSEVA01" ;
        :cycle_traitement = "0A" ;
        :type_instrument = "StowAway-TEMP (C) ONSET -4C TO 38C" ;
        :number_instrument = "69" ;
        :conventions = "OceanSITES 1.1, CF1.4" ;
}

[4]
Dataset {
    Float64 LATITUDE[LATITUDE = 1];
    Float64 LONGITUDE[LONGITUDE = 1];
    Float64 TIME[TIME = 16798];
    Float64 DEPH[DEPH = 1];
    Grid {
     ARRAY:
        Float64 TEMP[LONGITUDE = 1][LATITUDE = 1][DEPH = 1][TIME = 16798];
     MAPS:
        Float64 LONGITUDE[LONGITUDE = 1];
        Float64 LATITUDE[LATITUDE = 1];
        Float64 DEPH[DEPH = 1];
        Float64 TIME[TIME = 16798];
    } TEMP;
    Byte TEMP_QC[TIME = 16798];
} oceano_series/grid/ANSE.nc;

[5] see "las_timeseries_coordinates_error.jpg" in the attached file



--
Adrien Cheype
Ingénieur en Systèmes d'Information
Service « Informatique Scientifique et Appui aux Partenaires du Sud »
Direction du Système d'Information (DSI)
http://www.ird.fr/dsi/
http://www.ird.fr/informatique-scientifique/

INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT
BP A5 - 98848 Nouméa - Nouvelle Calédonie
Tél. +687 260 789



--
Adrien Cheype
Ingénieur en Systèmes d'Information
Service « Informatique Scientifique et Appui aux Partenaires du Sud »
Direction du Système d'Information (DSI)
http://www.ird.fr/dsi/
http://www.ird.fr/informatique-scientifique/

INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT
BP A5 - 98848 Nouméa - Nouvelle Calédonie
Tél. +687 260 789



--
Adrien Cheype
Ingénieur en Systèmes d'Information
Service « Informatique Scientifique et Appui aux Partenaires du Sud »
Direction du Système d'Information (DSI)
http://www.ird.fr/dsi/
http://www.ird.fr/informatique-scientifique/

INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT
BP A5 - 98848 Nouméa - Nouvelle Calédonie
Tél. +687 260 789

[Thread Prev][Thread Next][Index]


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

Privacy Policy | Disclaimer | Accessibility Statement