Version 16 (modified by 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 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:
{ "messageDomains": [ { "msgId": 1, "domain": "[0:0,0:0,0:719,0:360]" }, { "msgId": 2, "domain": "[0:0,1:1,0:719,0:360]" }, { "msgId": 3, "domain": "[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:
<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 } ], ]