wiki:Dev/GribFormat

Version 11 (modified by Dimitar Misev, 9 years ago) ( diff )

Support for decoding GRIB in rasdaman

Decoding GRIB files in rasdaman can be enabled by specifying --with-grib when configuring rasdaman. In this case the libgrib_api library must be installed; this library transparently supports both GRIB 1 and 2.

WCSTImport

WCSTImport will send this information to Petascope:

<boundedBy>
    <Envelope srsName="SECORE:EPSG/0/4326@OGC/0/AnsiDate@OGC/0/Index1D?axis_label='ensemble'" axisLabels="{{axisLabels}}" uomLabels="{{uomLabels}}" srsDimension="4">
        <lowerCorner>0, 0, 0, 0</lowerCorner>
        <upperCorner>720, 360, 1, 1</upperCorner>
    </Envelope>
</boundedBy>


 <!-- Some other stuff should be here -->


<gml:rangeSet>
    <gml:rangeParameters>
        {{rangeParameters}}
    </gml:rangeParameters>
    <gml:File>
        <gml:fileReference><![CDATA[
                {{fileReference}} <!-- file url -->
            ]]></gml:fileReference>
        <gml:fileStructure>{{mimetype}} <!-- grib / netcdf /whatever in mimetype format --></gml:fileStructure>
    </gml:File>
</gml:rangeSet>

rangeParameters:

[
  [
    {
      name: "Lat",
      min: 0,
      max: 720
    },
    {
      name: "Long",
      min: 0,
      max: 360
    },
    {
      name: "Ansi"
      min: "2012-01-01T00:00",
      type: "ansidate"
    },
    {
      name: "Ensemble"
      min: 0,
      type: "number"
      //optional, default is number
    }
  ],
  [
    {
      name: "Lat",
      min: 0,
      max: 720
    },
    {
      name: "Long",
      min: 0,
      max: 360
    },
    {
      name: "Ansi"
      min: "2012-01-01T00:00",
      type: "ansidate"
    },
    {
      name: "Ensemble"
      min: 1,
      type: "number"
      //optional, default is number
    }
  ],
  [
    {
      name: "Lat",
      min: 0,
      max: 720
    },
    {
      name: "Long",
      min: 0,
      max: 360
    },
    {
      name: "Ansi"
      min: "2012-01-01T06:00",
      type: "ansidate"
    },
    {
      name: "Ensemble"
      min: 0,
      type: "number"
      //optional, default is number
    }
  ],
]

rasdaman

Petascope should send to rasdaman:

UPDATE myCoverage AS m SET m[0:720,0:360,0:1, 0:1] ASSIGN VALUES inv_grib($1, "#messages")

#messages should be as follows:

{
  "messageDomains": [
    "[0:0,0:0,0:719,0:360]",
    "[0:0,1:1,0:719,0:360]",
    "[0:0,2:2,0:719,0:360]",
    ..
  ]
}

The messageDomains should be ordered to match the message order in the GRIB file.

The X/Y are required to be the last dimensions as this is efficient and simple (no need to reorder stuff further in rasdaman, besides row-major → column major for each message).

Note: See TracWiki for help on using the wiki.