[[PageOutline]]
= 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 [https://software.ecmwf.int/wiki/display/GRIB/Home libgrib_api] library must be installed; this library transparently supports both GRIB 1 and 2 and there are official packages for most Linux distributions.
== inv_grib (rasql) ==
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")
}}}
The format of #messages is as follows:
{{{#!javascript
{
"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 transposing the X and Y of each message).
== WCSTImport ==
WCSTImport will send this information to Petascope:
{{{#!xml
0, 0, 0, 0
720, 360, 1, 1
{{rangeParameters}}
]]>
{{mimetype}}
}}}
rangeParameters:
{{{#!javascript
[
[
{
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
}
],
]
}}}