Project

General

Profile

Preprocessing of CryoTEMPO-EOLIS netcdf for ingestion in rasdaman

Added by Otoniel José Campos Escobar over 2 years ago

Hello everyone,

I'm new to using cdo and netcdf files in general, currently I want to ingest a CryoTEMPO-EOLIS netcdf file of Greenland (attached for your reference) into rasdaman.
To do so I need to preprocess the file and move the time, X, and Y variables to the dimensions section, currently it is like this:

ncdump -h CS_OFFL_THEM_POINT_GREENLAND_2021_01_-600000___-1500000__V002.nc
netcdf CS_OFFL_THEM_POINT_GREENLAND_2021_01_-600000___-1500000__V002 {
dimensions:
        row = UNLIMITED ; // (2532 currently)
variables:
        int time(row) ;
                time:long_name = "Measurement of time" ;
                time:units = "Seconds from 1970 in the UTC timezone." ;
                time:short_name = "time" ;
        float x(row) ;
                x:long_name = "x: spatial position on the x axis using the projection defined for the region." ;
                x:units = "metres" ;
                x:standard_name = "x" ;
        float y(row) ;
                y:long_name = "y: spatial position on the y axis using the projection defined for the region" ;
                y:units = "metres" ;
                y:standard_name = "y" ;
        float elevation(row) ;
                elevation:units = "metres" ;
                elevation:long_name = "Elevation estimate for a point in space and time" ;
                elevation:coordinates = "x y" ;
        float uncertainty(row) ;
                uncertainty:units = "metres" ;
                uncertainty:long_name = "Uncertainty estimate for a point in space and time" ;
                uncertainty:coordinates = "x y" ;
        int isSwath(row) ;
                isSwath:units = "swath=1 poca=0" ;
                isSwath:long_name = "Indicates whether the point is from the Swath=[1] processing or is a POCA=[0] input" ;
                isSwath:coordinates = "x y" ;
        int inputfileid(row) ;
                inputfileid:units = "Numeric Id" ;
                inputfileid:long_name = "Numeric id that uses the Variable Attribute as a String Lookup" ;
                inputfileid:coordinates = "x y" ;

I would like to have something like this:

dimensions:
        time = UNLIMITED ; // (25 currently)
        X = some_number;
        Y = some_number;
variables:
        float elevation(row) ;
                elevation:units = "metres" ;
                elevation:long_name = "Elevation estimate for a point in space and time" ;
                elevation:coordinates = "x y" ;

Data Description: https://earth.esa.int/eogateway/documents/20142/37627/CryoTEMPO-Thematic-Product-Handbook.pdf page 20.

Any insight would be most appreciated!