mirror of https://github.com/ecmwf/eccodes.git
650 lines
45 KiB
HTML
650 lines
45 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
|
<title>grib_api: grib_debug</title>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
|
</head><body>
|
|
<!-- Generated by Doxygen 1.5.3 -->
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="examples.html"><span>Examples</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<h1><a class="anchor" name="grib_debug">grib_debug</a></h1><h2><a class="anchor" name="DESCRIPTION">
|
|
DESCRIPTION</a></h2>
|
|
Dump the content of a grib file in debug mode.<h2><a class="anchor" name="USAGE">
|
|
USAGE</a></h2>
|
|
grib_debug [options] grib_file grib_file ...<h2><a class="anchor" name="OPTIONS">
|
|
OPTIONS</a></h2>
|
|
-V <br>
|
|
Version. <br>
|
|
<br>
|
|
<h2><a class="anchor" name="grib_debug_examples">
|
|
grib_debug examples</a></h2>
|
|
Dumping in a WMO documentation style with hexadecimal octet values (-H)<br>
|
|
and with the aliases of each key listed in square brackets (-a).<br>
|
|
<br>
|
|
grib_dump -Ha ../data/reduced_gaussian_model_level.grib1<br>
|
|
<div class="fragment"><pre class="fragment">
|
|
***** FILE: ../data/reduced_gaussian_model_level.grib1
|
|
====================== MESSAGE 1 ( length=10142 ) ======================
|
|
====================== SECTION_0 ( length=0, padding=0 ) ======================
|
|
1-4 identifier = GRIB
|
|
5-7 totalLength = 10142 ( 0x00 0x27 0x9E )
|
|
8 editionNumber = 1 ( 0x01 ) [ls.edition]
|
|
====================== SECTION_1 ( length=52, padding=0 ) ======================
|
|
1-3 section1Length = 52 ( 0x00 0x00 0x34 )
|
|
4 gribTablesVersionNo = 128 ( 0x80 ) [table2Version]
|
|
5 identificationOfOriginatingGeneratingCentre = 98 ( 0x62 ) [European Center for Medium-Range Weather Forecasts (grib1/0.table) ] [ls.centre, identificationOfCentre, originatingCentre]
|
|
6 generatingProcessIdentifier = 128 ( 0x80 ) [generatingProcessIdentificationNumber, process]
|
|
7 gridDefinition = 255 ( 0xFF )
|
|
8 section1Flags = 128 [10000000]
|
|
9 indicatorOfParameter = 130 ( 0x82 ) [T Temperature K (grib1/2.98.128.table) ]
|
|
10 indicatorOfTypeOfLevel = 109 ( 0x6D ) [Hybrid level level number (2 octets) (grib1/3.table) ] [ls.levelType, typeOfLevel, typeOfFirstFixedSurface, mars.levtype]
|
|
11-12 lev = 1 ( 0x00 0x01 ) [topLevel, bottomLevel, ls.level, mars.levelist]
|
|
13 yearOfCentury = 7 ( 0x07 )
|
|
14 month = 3 ( 0x03 )
|
|
15 day = 18 ( 0x12 )
|
|
16 hour = 12 ( 0x0C )
|
|
17 minute = 0 ( 0x00 )
|
|
18 indicatorOfUnitOfTimeRange = 1 ( 0x01 ) [Hour (grib1/4.table) ]
|
|
19 periodOfTime = 0 ( 0x00 ) [P1]
|
|
20 periodOfTimeIntervals = 0 ( 0x00 ) [P2]
|
|
21 timeRangeIndicator = 0 ( 0x00 ) [Forecast product valid at reference time + P1 (P1>0) (grib1/5.table) ]
|
|
22-23 numberIncludedInAverage = 0 ( 0x00 0x00 )
|
|
24 numberMissingFromAveragesOrAccumulations = 0 ( 0x00 )
|
|
25 centuryOfReferenceTimeOfData = 21 ( 0x15 )
|
|
26 identificationOfOriginatingGeneratingSubCentre = 0 ( 0x00 ) [Absent (grib1/0.table) ] [subCentre]
|
|
27-28 decimalScaleFactor = 2 ( 0x00 0x02 )
|
|
29-40 reservedNeedNotBePresent = 12 {
|
|
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
|
|
} # pad reservedNeedNotBePresent
|
|
41 localDefinitionNumber = 1 ( 0x01 )
|
|
42 marsClass = 1 ( 0x01 ) [Operational archive (mars/class.table) ] [mars.class]
|
|
43 marsType = 2 ( 0x02 ) [Analysis (mars/type.table) ] [ls.dataType, mars.type]
|
|
44-45 marsStream = 1025 ( 0x04 0x01 ) [Atmospheric model (mars/stream.table) ] [mars.stream]
|
|
46-49 experimentVersionNumber = 0001 [mars.expver]
|
|
50 perturbationNumber = 0 ( 0x00 )
|
|
51 numberOfForecastsInEnsemble = 0 ( 0x00 )
|
|
52 padding_local1_1 = 1 {
|
|
00
|
|
} # pad padding_local1_1
|
|
====================== SECTION_2 ( length=896, padding=0 ) ======================
|
|
1-3 section2Length = 896 ( 0x00 0x03 0x80 )
|
|
4 numberOfVerticalCoordinateValues = 184 ( 0xB8 ) [NV, numberOfCoordinatesValues]
|
|
5 pvlLocation = 33 ( 0x21 )
|
|
6 dataRepresentationType = 4 ( 0x04 ) [Gaussian Latitude/Longitude Grid (grib1/6.table) ]
|
|
7-8 numberOfPointsAlongAParallel = MISSING ( 0xFF 0xFF ) [geography.Ni]
|
|
9-10 numberOfPointsAlongAMeridian = 64 ( 0x00 0x40 ) [geography.Nj]
|
|
11-13 latitudeOfFirstGridPoint = 87864 ( 0x01 0x57 0x38 ) [La1]
|
|
14-16 longitudeOfFirstGridPoint = 0 ( 0x00 0x00 0x00 ) [Lo1]
|
|
17 resolutionAndComponentFlags = 0 [00000000]
|
|
18-20 latitudeOfLastGridPoint = -87864 ( 0x81 0x57 0x38 ) [La2]
|
|
21-23 longitudeOfLastGridPoint = 357188 ( 0x05 0x73 0x44 ) [Lo2]
|
|
24-25 iDirectionIncrement = MISSING ( 0xFF 0xFF ) [Di]
|
|
26-27 numberOfParallelsBetweenAPoleAndTheEquator = 32 ( 0x00 0x20 )
|
|
28 scanningMode = 0 [00000000]
|
|
29-32 padding_grid4_1 = 4 {
|
|
00, 00, 00, 00
|
|
} # pad padding_grid4_1
|
|
33-768 pv = (184,736) {
|
|
0, 2.00004, 3.98083, 7.38719, 12.9083, 21.4136, 33.9529, 51.7466,
|
|
76.1677, 108.716, 150.986, 204.637, 271.356, 352.824, 450.686, 566.519,
|
|
701.813, 857.946, 1036.17, 1237.59, 1463.16, 1713.71, 1989.87, 2292.16,
|
|
2620.9, 2976.3, 3358.43, 3767.2, 4202.42, 4663.78, 5150.86, 5663.16,
|
|
6199.84, 6759.73, 7341.47, 7942.93, 8564.62, 9208.3, 9873.56, 10558.9,
|
|
11262.5, 11982.7, 12713.9, 13453.2, 14192, 14922.7, 15638.1, 16329.6,
|
|
16990.6, 17613.3, 18191, 18717, 19184.5, 19587.5, 19919.8, 20175.4,
|
|
20348.9, 20434.2, 20426.2, 20319, 20107, 19785.4, 19348.8, 18798.8,
|
|
18141.3, 17385.6, 16544.6, 15633.6, 14665.6, 13653.2, 12608.4, 11543.2,
|
|
10471.3, 9405.22, 8356.25, 7335.16, 6353.92, 5422.8, 4550.21, 3743.46,
|
|
3010.15, 2356.2, 1784.85, 1297.66, 895.194, 576.314, 336.772, 162.043,
|
|
54.2083, 6.57563, 0.00316, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0
|
|
... 84 more values
|
|
} # ibmfloat pv
|
|
769-896 pl = (64,128) {
|
|
20, 27, 36, 40, 45, 50, 60, 64,
|
|
72, 75, 80, 90, 90, 96, 100, 108,
|
|
108, 120, 120, 120, 128, 128, 128, 128,
|
|
128, 128, 128, 128, 128, 128, 128, 128,
|
|
128, 128, 128, 128, 128, 128, 128, 128,
|
|
128, 128, 128, 128, 120, 120, 120, 108,
|
|
108, 100, 96, 90, 90, 80, 75, 72,
|
|
64, 60, 50, 45, 40, 36, 27, 20
|
|
} # unsigned pl
|
|
====================== SECTION_4 ( length=9182, padding=0 ) ======================
|
|
1-3 section4Length = 9182 ( 0x00 0x23 0xDE )
|
|
4 dataFlag = 0 [00000000]
|
|
5-6 binaryScaleFactor = 0 ( 0x00 0x00 )
|
|
7-10 referenceValue = 17402.8
|
|
11 numberOfBitsContainingEachPackedValue = 12 ( 0x0C ) [nbp, numberOfBits, bitsPerValue]
|
|
12-9182 values = (6114,9171) {
|
|
203.778, 203.468, 202.958, 202.348, 201.758, 201.278, 200.888, 200.558,
|
|
200.268, 200.078, 200.068, 200.318, 200.808, 201.458, 202.138, 202.758,
|
|
203.248, 203.588, 203.798, 203.878, 205.968, 205.418, 204.438, 203.218,
|
|
202.008, 201.128, 200.708, 200.598, 200.478, 200.228, 199.908, 199.528,
|
|
199.108, 198.708, 198.528, 198.748, 199.458, 200.488, 201.548, 202.478,
|
|
203.358, 204.178, 204.808, 205.198, 205.508, 205.838, 206.068, 207.338,
|
|
206.488, 205.198, 203.798, 202.548, 201.528, 200.848, 200.638, 200.818,
|
|
201.028, 200.888, 200.308, 199.638, 199.228, 199.018, 198.738, 198.328,
|
|
197.868, 197.358, 196.928, 196.858, 197.348, 198.368, 199.638, 200.758,
|
|
201.538, 202.288, 203.338, 204.438, 205.158, 205.558, 205.938, 206.438,
|
|
207.008, 207.468, 207.638, 207.178, 206.658, 205.398, 203.788, 202.468,
|
|
201.338, 200.298, 199.938, 200.318, 200.608, 200.478, 200.008, 199.208,
|
|
198.278, 197.708, 197.558, 197.318
|
|
... 6014 more values
|
|
} # data_g1simple_packing values
|
|
====================== SECTION_5 ( length=4, padding=0 ) ======================
|
|
1-4 7777 = 7777
|
|
</pre></div><br>
|
|
<br>
|
|
<br>
|
|
How to obtain all the key names available in a grib file.<br>
|
|
<br>
|
|
grib_dump -D ../data/regular_latlon_surface.grib1 <div class="fragment"><pre class="fragment">
|
|
***** FILE: ../data/regular_latlon_surface.grib1
|
|
====================== MESSAGE 1 ( length=1100 ) ======================
|
|
0-0 constant oneConstant = 1
|
|
0-0 constant oneMillionConstant = 1000000
|
|
0-0 offset_file offset = 0
|
|
0-0 count_file count = 1
|
|
0-0 count_total countTotal = 1
|
|
0-0 lookup kindOfProduct = 1196575042 [GRIB 1196575042 0-4]
|
|
0-0 lookup GRIBEditionNumber = 1 [? 1 7-1]
|
|
======> section GRIB (1100,1100,0)
|
|
0-0 constant grib1divider = 1000
|
|
0-0 constant ieeeFloats = 0
|
|
0-0 transient dummy = 1
|
|
======> section section_0 (0,0,0)
|
|
----> label empty
|
|
<===== section section_0
|
|
0-4 ascii identifier = GRIB
|
|
4-7 g1_message_length totalLength = 1100
|
|
7-8 unsigned editionNumber = 1 [ls.edition]
|
|
======> section section_1 (52,52,0)
|
|
8-8 constant ECMWF = 98
|
|
8-8 position offsetSection1 = 8
|
|
8-11 section_length section1Length = 52
|
|
11-12 unsigned gribTablesVersionNo = 128 [table2Version]
|
|
12-13 codetable identificationOfOriginatingGeneratingCentre = 98 [European Center for Medium-Range Weather Forecasts (grib1/0.table) ] [ls.centre, identificationOfCentre, originatingCentre]
|
|
13-14 unsigned generatingProcessIdentifier = 128 [generatingProcessIdentificationNumber, process]
|
|
14-15 unsigned gridDefinition = 255
|
|
15-16 codeflag section1Flags = 128 [10000000:(1=1) Section 2 included;(2=0) Section 3 omited:grib1/1.table]
|
|
16-17 codetable indicatorOfParameter = 167 [2T 2 metre temperature K (grib1/2.98.128.table) ]
|
|
17-17 sprintf marsParam = 167.128 [mars.param, ls.param]
|
|
17-18 codetable indicatorOfTypeOfLevel = 1 [Surface (of the Earth, which includes sea surface) (grib1/3.table) ] [ls.levelType, typeOfLevel, typeOfFirstFixedSurface, mars.levtype]
|
|
18-20 unsigned lev = 0 [topLevel, bottomLevel, ls.level, mars.levelist]
|
|
20-21 unsigned yearOfCentury = 7
|
|
21-22 unsigned month = 3
|
|
22-23 unsigned day = 18
|
|
23-24 unsigned hour = 12
|
|
24-25 unsigned minute = 0
|
|
25-25 constant second = 0
|
|
25-26 codetable indicatorOfUnitOfTimeRange = 1 [Hour (grib1/4.table) ]
|
|
26-27 unsigned periodOfTime = 0 [P1]
|
|
27-28 unsigned periodOfTimeIntervals = 0 [P2]
|
|
28-29 codetable timeRangeIndicator = 0 [Forecast product valid at reference time + P1 (P1>0) (grib1/5.table) ]
|
|
29-31 unsigned numberIncludedInAverage = 0
|
|
31-32 unsigned numberMissingFromAveragesOrAccumulations = 0
|
|
32-33 unsigned centuryOfReferenceTimeOfData = 21
|
|
33-34 codetable identificationOfOriginatingGeneratingSubCentre = 0 [Absent (grib1/0.table) ] [subCentre]
|
|
34-36 signed decimalScaleFactor = 0
|
|
36-36 transient setLocalDefinition = 0
|
|
36-48 pad reservedNeedNotBePresent = 12 {
|
|
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
|
|
} # pad reservedNeedNotBePresent
|
|
48-48 g1date dataDate = 20070318 [mars.date, ls.date]
|
|
48-48 evaluate year = 2007
|
|
48-48 g1monthlydate monthlyDate = 20070301
|
|
48-48 time dataTime = 1200 [mars.time]
|
|
48-48 g1startstep marsStartStep = 0 [mars.startStep]
|
|
48-48 g1endstep marsEndStep = 0 [mars.endStep]
|
|
48-48 g1step marsStep = 0 [mars.step, ls.step, forecastTime]
|
|
48-48 g1verificationdate verificationDate = 20070318
|
|
48-48 g1monthlydate monthlyVerificationDate = 20070301
|
|
48-48 g1day_of_the_year_date dayOfTheYearDate = 2007-078
|
|
48-48 constant wrongPadding = 0
|
|
48-48 constant localUsePresent = 1
|
|
48-48 g1param parameter = 167
|
|
48-49 unsigned localDefinitionNumber = 1
|
|
======> section localDefinition (11,11,0)
|
|
======> section mars_labeling (8,8,0)
|
|
49-50 codetable marsClass = 1 [Operational archive (mars/class.table) ] [mars.class]
|
|
50-51 codetable marsType = 2 [Analysis (mars/type.table) ] [ls.dataType, mars.type]
|
|
51-53 codetable marsStream = 1025 [Atmospheric model (mars/stream.table) ] [mars.stream]
|
|
53-57 ksec1expver experimentVersionNumber = 0001 [mars.expver]
|
|
57-57 constant SimulationsOf30Days = s3
|
|
57-57 constant TYPE_S3 = 22
|
|
<===== section mars_labeling
|
|
57-58 unsigned perturbationNumber = 0
|
|
58-59 unsigned numberOfForecastsInEnsemble = 0
|
|
59-60 pad padding_local1_1 = 1 {
|
|
00
|
|
} # pad padding_local1_1
|
|
<===== section localDefinition
|
|
60-60 transient centreForTableNumber = 98
|
|
60-60 section_padding localExtensionPadding = 0 {}
|
|
60-60 section_padding section1Padding = 0 {}
|
|
60-60 padtoeven evenpadding_sec1 = 0 {}
|
|
60-60 concept grib1_short_name = 2T [ls.short_name]
|
|
60-60 concept grib1_name = 2_metre_temperature [name]
|
|
60-60 concept grib1_units = K [units]
|
|
<===== section section_1
|
|
60-60 bit gridDescriptionSectionPresent = 1 [GDSPresent]
|
|
60-60 bit bitmapPresent = 0 [bitmapSectionPresent]
|
|
======> section section_2 (32,32,0)
|
|
60-60 position offsetSection2 = 60
|
|
60-63 section_length section2Length = 32
|
|
63-64 unsigned numberOfVerticalCoordinateValues = 0 [NV, numberOfCoordinatesValues]
|
|
64-64 constant neitherPresent = 255
|
|
64-65 unsigned pvlLocation = 255
|
|
65-66 codetable dataRepresentationType = 0 [Latitude/Longitude Grid (grib1/6.table) ]
|
|
======> section dataRepresentation (22,22,0)
|
|
66-66 constant gridDefinitionTemplateNumber = 0
|
|
66-68 unsigned numberOfPointsAlongAParallel = 16 [Ni]
|
|
68-70 unsigned numberOfPointsAlongAMeridian = 31 [Nj]
|
|
70-73 signed latitudeOfFirstGridPoint = 60000 [La1]
|
|
73-73 scale latitudeOfFirstGridPointInDegrees = 60 [geography.laFirst]
|
|
73-76 signed longitudeOfFirstGridPoint = 0 [Lo1]
|
|
76-76 scale longitudeOfFirstGridPointInDegrees = 0 [geography.loFirst]
|
|
76-77 codeflag resolutionAndComponentFlags = 128 [10000000:(1=1) Direction increments given;(2=0) Earth assumed spherical with radius = 6367.47 km;(5=0) u and v components resolved relative to easterly and northerly directions:grib1/7.table]
|
|
77-77 bit ijDirectionIncrementGiven = 1 [iDirectionIncrementGiven, jDirectionIncrementGiven, DiGiven, DjGiven]
|
|
77-77 bit earthIsOblate = 0
|
|
77-77 bit resolutionAndComponentFlags3 = 0
|
|
77-77 bit resolutionAndComponentFlags4 = 0
|
|
77-77 bit uvRelativeToGrid = 0
|
|
77-77 bit resolutionAndComponentFlags6 = 0
|
|
77-77 bit resolutionAndComponentFlags7 = 0
|
|
77-77 bit resolutionAndComponentFlags8 = 0
|
|
77-80 signed latitudeOfLastGridPoint = 0 [La2]
|
|
80-80 scale latitudeOfLastGridPointInDegrees = 0 [geography.laLast]
|
|
80-83 signed longitudeOfLastGridPoint = 30000 [Lo2]
|
|
83-83 transient longitudeOfLastGridPointG1to2 = 30000
|
|
83-83 scale longitudeOfLastGridPointInDegrees = 30 [geography.loLast]
|
|
83-85 unsigned iDirectionIncrement = 2000 [Di]
|
|
85-87 unsigned jDirectionIncrement = 2000 [Dj]
|
|
87-88 codeflag scanningMode = 0 [00000000:(1=0) Points scan in +i direction;(2=0) Points scan in -j direction;(3=0) Adjacent points in i direction are consecutive :grib1/8.table]
|
|
88-88 bit iScansNegatively = 0
|
|
88-88 bit jScansPositively = 0
|
|
88-88 bit jPointsAreConsecutive = 0
|
|
88-88 constant iScansPositively = 1
|
|
88-88 bit scanningMode4 = 0
|
|
88-88 bit scanningMode5 = 0
|
|
88-88 bit scanningMode6 = 0
|
|
88-88 bit scanningMode7 = 0
|
|
88-88 bit scanningMode8 = 0
|
|
88-88 latlon_increment jDirectionIncrementInDegrees = 2 [geography.jInc, geography.gridNorthSouth]
|
|
88-88 latlon_increment iDirectionIncrementInDegrees = 2 [geography.iInc, geography.gridWestEast]
|
|
----> iterator ITERATOR
|
|
<===== section dataRepresentation
|
|
88-88 position endGridDefinition = 88
|
|
88-88 transient PVPresent = 0
|
|
88-88 position offsetBeforePV = 88
|
|
88-88 position offsetBeforePL = 88
|
|
88-88 transient PLPresent = 0 [reducedGrid]
|
|
88-92 padto padding_sec2_1 = 4 {
|
|
00, 00, 00, 00
|
|
} # padto padding_sec2_1
|
|
92-92 padtoeven padding_sec2_3 = 0 {}
|
|
<===== section section_2
|
|
92-92 position endOfHeadersMaker = 92
|
|
92-92 transient missingValue = 9999
|
|
92-92 constant tableReference = 0
|
|
======> section section_4 (1004,1004,0)
|
|
92-92 position offsetSection4 = 92
|
|
92-95 g1_section4_length section4Length = 1004
|
|
95-95 g1_half_byte_codeflag halfByte = 8
|
|
95-96 codeflag dataFlag = 8 [00001000:(1=0) Grid-point data;(2=0) Simple packing;(3=0) Floating point values are represented;(4=0) No additional flags at octet 14:grib1/11.table]
|
|
96-98 signed binaryScaleFactor = -10
|
|
98-102 ibmfloat referenceValue = 269.587
|
|
102-103 unsigned numberOfBitsContainingEachPackedValue = 16 [nbp, numberOfBits, bitsPerValue]
|
|
103-103 bit sphericalHarmonics = 0
|
|
103-103 bit complexPacking = 0
|
|
103-103 bit integerPointValues = 0
|
|
103-103 bit additionalFlagPresent = 0
|
|
======> section dataValues (993,993,0)
|
|
103-103 constant dataRepresentationTemplateNumber = 0
|
|
103-103 position offsetBeforeData = 103
|
|
103-103 constant bitMapIndicator = 255
|
|
103-1096 data_g1simple_packing values = (496,993) {
|
|
277.704, 277.797, 278.103, 274.598, 269.587, 278.345, 277.213, 278.19,
|
|
277.853, 276.747, 274.361, 273.636, 274.593, 273.782, 273.016, 274.316,
|
|
278.492, 278.792, 278.836, 278.333, 277.389, 278.525, 278.175, 277.255,
|
|
277.383, 278.047, 277.877, 276.213, 273.99, 278.333, 278.58, 277.642,
|
|
278.865, 278.997, 278.509, 278.983, 279.527, 279.414, 278.8, 278.749,
|
|
278.895, 279.056, 278.699, 278.426, 276.601, 277.491, 279.646, 279.198,
|
|
279.108, 279.156, 279.406, 279.527, 280.344, 280.869, 279.951, 281.621,
|
|
281.221, 280.676, 281.049, 280.354, 279.025, 278.192, 280.05, 280.375,
|
|
280.68, 281.269, 281.406, 281.483, 279.454, 280.641, 282.984, 282.578,
|
|
281.797, 281.542, 281.854, 281.5, 279.917, 280.529, 282.008, 281.102,
|
|
282.223, 282.727, 280.315, 278.539, 280.066, 280.789, 280.517, 282.883,
|
|
283.897, 285.161, 285.779, 285.847, 281.973, 282.869, 281.926, 280.816,
|
|
282.48, 281.894, 281.035, 281.722
|
|
... 396 more values
|
|
} # data_g1simple_packing values
|
|
<===== section dataValues
|
|
1096-1096 size valuesCount = 496
|
|
1096-1096 concept typeOfGrid = regular_ll [ls.gridType]
|
|
1096-1096 concept typeOfPacking = grid_simple [ls.packingType, dataRepresentation]
|
|
1096-1096 padtoeven padding_sec4_1 = 0 {}
|
|
<===== section section_4
|
|
======> section section_5 (4,4,0)
|
|
----> label gribSection5
|
|
1096-1096 position offsetSection5 = 1096
|
|
1096-1100 ascii 7777 = 7777
|
|
<===== section section_5
|
|
<===== section GRIB
|
|
</pre></div><br>
|
|
<br>
|
|
<br>
|
|
How to obtain a C code example from a grib file.<br>
|
|
<br>
|
|
grib_dump -C ../data/regular_latlon_surface.grib1<br>
|
|
<div class="fragment"><pre class="fragment"><span class="preprocessor">#include <<a class="code" href="grib__api_8h.html" title="Copyright 2005-2016 ECMWF.">grib_api.h</a>></span>
|
|
|
|
<span class="comment">/* This code was generated automatically */</span>
|
|
|
|
|
|
<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc,<span class="keyword">const</span> <span class="keywordtype">char</span>** argv)
|
|
{
|
|
<a class="code" href="group__grib__handle.html#g309a5ee24f4c730646d3f80ad0ef5f1b">grib_handle</a> *h = NULL;
|
|
<span class="keywordtype">size_t</span> size = 0;
|
|
<span class="keywordtype">double</span>* v = NULL;
|
|
FILE* f = NULL;
|
|
<span class="keyword">const</span> <span class="keywordtype">char</span>* p = NULL;
|
|
<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer = NULL;
|
|
|
|
<span class="keywordflow">if</span>(argc != 2) {
|
|
fprintf(stderr,<span class="stringliteral">"usage: %s out\n"</span>,argv[0]);
|
|
exit(1);
|
|
}
|
|
|
|
h = <a class="code" href="group__grib__handle.html#g11d247e5afa10bd52fb895dc4296143f" title="Create a handle from a read_only template resource.">grib_handle_new_from_template</a>(NULL,<span class="stringliteral">"GRIB2"</span>);
|
|
<span class="keywordflow">if</span>(!h) {
|
|
fprintf(stderr,<span class="stringliteral">"Cannot create grib handle\n"</span>);
|
|
exit(1);
|
|
}
|
|
|
|
|
|
<span class="comment">/* empty */</span>
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"editionNumber"</span>,1),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"gribTablesVersionNo"</span>,128),0);
|
|
|
|
<span class="comment">/* 98 = European Center for Medium-Range Weather Forecasts (grib1/0.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"identificationOfOriginatingGeneratingCentre"</span>,98),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"generatingProcessIdentifier"</span>,128),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"gridDefinition"</span>,255),0);
|
|
|
|
<span class="comment">/* 128 = 10000000</span>
|
|
<span class="comment"> (1=1) Section 2 included</span>
|
|
<span class="comment"> (2=0) Section 3 omited</span>
|
|
<span class="comment"> See grib1/1.table */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"section1Flags"</span>,128),0);
|
|
|
|
|
|
<span class="comment">/* 167 = 2T 2 metre temperature K (grib1/2.98.128.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"indicatorOfParameter"</span>,167),0);
|
|
|
|
|
|
<span class="comment">/* 1 = Surface (of the Earth, which includes sea surface) (grib1/3.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"indicatorOfTypeOfLevel"</span>,1),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"lev"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"yearOfCentury"</span>,7),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"month"</span>,3),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"day"</span>,18),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"hour"</span>,12),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"minute"</span>,0),0);
|
|
|
|
<span class="comment">/* 1 = Hour (grib1/4.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"indicatorOfUnitOfTimeRange"</span>,1),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"periodOfTime"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"periodOfTimeIntervals"</span>,0),0);
|
|
|
|
<span class="comment">/* 0 = Forecast product valid at reference time + P1 (P1>0) (grib1/5.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"timeRangeIndicator"</span>,0),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberIncludedInAverage"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberMissingFromAveragesOrAccumulations"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"centuryOfReferenceTimeOfData"</span>,21),0);
|
|
|
|
<span class="comment">/* 0 = Absent (grib1/0.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"identificationOfOriginatingGeneratingSubCentre"</span>,0),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"decimalScaleFactor"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"localDefinitionNumber"</span>,1),0);
|
|
|
|
<span class="comment">/* 1 = Operational archive (mars/class.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"marsClass"</span>,1),0);
|
|
|
|
|
|
<span class="comment">/* 2 = Analysis (mars/type.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"marsType"</span>,2),0);
|
|
|
|
|
|
<span class="comment">/* 1025 = Atmospheric model (mars/stream.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"marsStream"</span>,1025),0);
|
|
|
|
p = <span class="stringliteral">"0001"</span>;
|
|
size = strlen(p)+1;
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g78143cc64571b454b0aba14246e9a53a" title="Set a string value from a key.">grib_set_string</a>(h,<span class="stringliteral">"experimentVersionNumber"</span>,p,&size),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"perturbationNumber"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberOfForecastsInEnsemble"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberOfVerticalCoordinateValues"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"pvlLocation"</span>,255),0);
|
|
|
|
<span class="comment">/* 0 = Latitude/Longitude Grid (grib1/6.table) */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"dataRepresentationType"</span>,0),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberOfPointsAlongAParallel"</span>,16),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberOfPointsAlongAMeridian"</span>,31),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"latitudeOfFirstGridPoint"</span>,60000),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"longitudeOfFirstGridPoint"</span>,0),0);
|
|
|
|
<span class="comment">/* 128 = 10000000</span>
|
|
<span class="comment"> (1=1) Direction increments given</span>
|
|
<span class="comment"> (2=0) Earth assumed spherical with radius = 6367.47 km</span>
|
|
<span class="comment"> (5=0) u and v components resolved relative to easterly and northerly directions</span>
|
|
<span class="comment"> See grib1/7.table */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"resolutionAndComponentFlags"</span>,128),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"latitudeOfLastGridPoint"</span>,0),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"longitudeOfLastGridPoint"</span>,30000),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"iDirectionIncrement"</span>,2000),0);
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"jDirectionIncrement"</span>,2000),0);
|
|
|
|
<span class="comment">/* 0 = 00000000</span>
|
|
<span class="comment"> (1=0) Points scan in +i direction</span>
|
|
<span class="comment"> (2=0) Points scan in -j direction</span>
|
|
<span class="comment"> (3=0) Adjacent points in i direction are consecutive </span>
|
|
<span class="comment"> See grib1/8.table */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"scanningMode"</span>,0),0);
|
|
|
|
|
|
<span class="comment">/* ITERATOR */</span>
|
|
|
|
|
|
<span class="comment">/* 8 = 00001000</span>
|
|
<span class="comment"> (1=0) Grid-point data</span>
|
|
<span class="comment"> (2=0) Simple packing</span>
|
|
<span class="comment"> (3=0) Floating point values are represented</span>
|
|
<span class="comment"> (4=0) No additional flags at octet 14</span>
|
|
<span class="comment"> See grib1/11.table */</span>
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"dataFlag"</span>,8),0);
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#g94c33cfe90c3aa887fb8e14f0bd87fe2" title="Set a long value from a key.">grib_set_long</a>(h,<span class="stringliteral">"numberOfBitsContainingEachPackedValue"</span>,16),0);
|
|
size = 496;
|
|
v = (<span class="keywordtype">double</span>*)calloc(size,<span class="keyword">sizeof</span>(<span class="keywordtype">double</span>));
|
|
<span class="keywordflow">if</span>(!v) {
|
|
fprintf(stderr,<span class="stringliteral">"failed to allocate %d bytes\n"</span>,size*<span class="keyword">sizeof</span>(<span class="keywordtype">double</span>));
|
|
exit(1);
|
|
}
|
|
|
|
v[ 0] = 277.704; v[ 1] = 277.797; v[ 2] = 278.103; v[ 3] = 274.598;
|
|
v[ 4] = 269.587; v[ 5] = 278.345; v[ 6] = 277.213; v[ 7] = 278.19;
|
|
v[ 8] = 277.853; v[ 9] = 276.747; v[ 10] = 274.361; v[ 11] = 273.636;
|
|
v[ 12] = 274.593; v[ 13] = 273.782; v[ 14] = 273.016; v[ 15] = 274.316;
|
|
v[ 16] = 278.492; v[ 17] = 278.792; v[ 18] = 278.836; v[ 19] = 278.333;
|
|
v[ 20] = 277.389; v[ 21] = 278.525; v[ 22] = 278.175; v[ 23] = 277.255;
|
|
v[ 24] = 277.383; v[ 25] = 278.047; v[ 26] = 277.877; v[ 27] = 276.213;
|
|
v[ 28] = 273.99; v[ 29] = 278.333; v[ 30] = 278.58; v[ 31] = 277.642;
|
|
v[ 32] = 278.865; v[ 33] = 278.997; v[ 34] = 278.509; v[ 35] = 278.983;
|
|
v[ 36] = 279.527; v[ 37] = 279.414; v[ 38] = 278.8; v[ 39] = 278.749;
|
|
v[ 40] = 278.895; v[ 41] = 279.056; v[ 42] = 278.699; v[ 43] = 278.426;
|
|
v[ 44] = 276.601; v[ 45] = 277.491; v[ 46] = 279.646; v[ 47] = 279.198;
|
|
v[ 48] = 279.108; v[ 49] = 279.156; v[ 50] = 279.406; v[ 51] = 279.527;
|
|
v[ 52] = 280.344; v[ 53] = 280.869; v[ 54] = 279.951; v[ 55] = 281.621;
|
|
v[ 56] = 281.221; v[ 57] = 280.676; v[ 58] = 281.049; v[ 59] = 280.354;
|
|
v[ 60] = 279.025; v[ 61] = 278.192; v[ 62] = 280.05; v[ 63] = 280.375;
|
|
v[ 64] = 280.68; v[ 65] = 281.269; v[ 66] = 281.406; v[ 67] = 281.483;
|
|
v[ 68] = 279.454; v[ 69] = 280.641; v[ 70] = 282.984; v[ 71] = 282.578;
|
|
v[ 72] = 281.797; v[ 73] = 281.542; v[ 74] = 281.854; v[ 75] = 281.5;
|
|
v[ 76] = 279.917; v[ 77] = 280.529; v[ 78] = 282.008; v[ 79] = 281.102;
|
|
v[ 80] = 282.223; v[ 81] = 282.727; v[ 82] = 280.315; v[ 83] = 278.539;
|
|
v[ 84] = 280.066; v[ 85] = 280.789; v[ 86] = 280.517; v[ 87] = 282.883;
|
|
v[ 88] = 283.897; v[ 89] = 285.161; v[ 90] = 285.779; v[ 91] = 285.847;
|
|
v[ 92] = 281.973; v[ 93] = 282.869; v[ 94] = 281.926; v[ 95] = 280.816;
|
|
v[ 96] = 282.48; v[ 97] = 281.894; v[ 98] = 281.035; v[ 99] = 281.722;
|
|
v[ 100] = 279.978; v[ 101] = 284.138; v[ 102] = 287.234; v[ 103] = 287.831;
|
|
v[ 104] = 288.452; v[ 105] = 289.882; v[ 106] = 287.776; v[ 107] = 287.946;
|
|
v[ 108] = 281.466; v[ 109] = 284.771; v[ 110] = 283.343; v[ 111] = 282.477;
|
|
v[ 112] = 284.723; v[ 113] = 280.869; v[ 114] = 285.693; v[ 115] = 284.132;
|
|
v[ 116] = 276.881; v[ 117] = 283.388; v[ 118] = 287.295; v[ 119] = 286.764;
|
|
v[ 120] = 291.798; v[ 121] = 291.607; v[ 122] = 290.086; v[ 123] = 286.769;
|
|
v[ 124] = 284.24; v[ 125] = 280.884; v[ 126] = 286.866; v[ 127] = 284.694;
|
|
v[ 128] = 285.417; v[ 129] = 283.823; v[ 130] = 289.898; v[ 131] = 290.317;
|
|
v[ 132] = 287.031; v[ 133] = 287.949; v[ 134] = 289.263; v[ 135] = 289.869;
|
|
v[ 136] = 289.926; v[ 137] = 289.535; v[ 138] = 289.817; v[ 139] = 287.768;
|
|
v[ 140] = 290.394; v[ 141] = 290.294; v[ 142] = 287.069; v[ 143] = 281.759;
|
|
v[ 144] = 289.132; v[ 145] = 287.316; v[ 146] = 287.548; v[ 147] = 287.181;
|
|
v[ 148] = 287.645; v[ 149] = 289.492; v[ 150] = 288.956; v[ 151] = 286.634;
|
|
v[ 152] = 289.7; v[ 153] = 289.189; v[ 154] = 287.704; v[ 155] = 291.151;
|
|
v[ 156] = 286.208; v[ 157] = 291.093; v[ 158] = 284.818; v[ 159] = 282.097;
|
|
v[ 160] = 289.244; v[ 161] = 288.263; v[ 162] = 289.545; v[ 163] = 290.018;
|
|
v[ 164] = 289.881; v[ 165] = 290.215; v[ 166] = 289.999; v[ 167] = 289.447;
|
|
v[ 168] = 284.105; v[ 169] = 290.686; v[ 170] = 288.128; v[ 171] = 290.241;
|
|
v[ 172] = 289.116; v[ 173] = 289.576; v[ 174] = 291.8; v[ 175] = 286.35;
|
|
v[ 176] = 289.239; v[ 177] = 289.525; v[ 178] = 289.45; v[ 179] = 290.114;
|
|
v[ 180] = 290.301; v[ 181] = 289.429; v[ 182] = 290.005; v[ 183] = 287.195;
|
|
v[ 184] = 289.823; v[ 185] = 290.313; v[ 186] = 290.792; v[ 187] = 286.693;
|
|
v[ 188] = 291.941; v[ 189] = 290.783; v[ 190] = 290.818; v[ 191] = 287.234;
|
|
v[ 192] = 287.001; v[ 193] = 287.49; v[ 194] = 286.791; v[ 195] = 286.71;
|
|
v[ 196] = 287.182; v[ 197] = 290.49; v[ 198] = 290.322; v[ 199] = 289.957;
|
|
v[ 200] = 290.056; v[ 201] = 289.915; v[ 202] = 289.917; v[ 203] = 290.251;
|
|
v[ 204] = 290.502; v[ 205] = 290.782; v[ 206] = 291.367; v[ 207] = 291.025;
|
|
v[ 208] = 290.326; v[ 209] = 285.912; v[ 210] = 290.003; v[ 211] = 294.341;
|
|
v[ 212] = 294.048; v[ 213] = 291.771; v[ 214] = 290.675; v[ 215] = 291.203;
|
|
v[ 216] = 291.478; v[ 217] = 290.939; v[ 218] = 290.555; v[ 219] = 289.821;
|
|
v[ 220] = 290.126; v[ 221] = 291.021; v[ 222] = 291.243; v[ 223] = 290.761;
|
|
v[ 224] = 291.05; v[ 225] = 291.556; v[ 226] = 292.386; v[ 227] = 293.149;
|
|
v[ 228] = 293.301; v[ 229] = 291.821; v[ 230] = 290.157; v[ 231] = 293.427;
|
|
v[ 232] = 292.629; v[ 233] = 292.25; v[ 234] = 294.59; v[ 235] = 296.421;
|
|
v[ 236] = 296.16; v[ 237] = 290.221; v[ 238] = 290.882; v[ 239] = 290.864;
|
|
v[ 240] = 294.69; v[ 241] = 294.224; v[ 242] = 294.332; v[ 243] = 293.917;
|
|
v[ 244] = 292.863; v[ 245] = 293.005; v[ 246] = 292.814; v[ 247] = 295.443;
|
|
v[ 248] = 296.665; v[ 249] = 298.566; v[ 250] = 298.846; v[ 251] = 298.165;
|
|
v[ 252] = 297.105; v[ 253] = 294.729; v[ 254] = 294.968; v[ 255] = 293.305;
|
|
v[ 256] = 298.003; v[ 257] = 296.402; v[ 258] = 295.03; v[ 259] = 295.649;
|
|
v[ 260] = 295.811; v[ 261] = 297.203; v[ 262] = 298.222; v[ 263] = 297.12;
|
|
v[ 264] = 299.167; v[ 265] = 298.919; v[ 266] = 298.372; v[ 267] = 297.932;
|
|
v[ 268] = 296.47; v[ 269] = 295.208; v[ 270] = 294.647; v[ 271] = 294.034;
|
|
v[ 272] = 300.407; v[ 273] = 301.659; v[ 274] = 300.621; v[ 275] = 297.093;
|
|
v[ 276] = 295.676; v[ 277] = 298.434; v[ 278] = 298.906; v[ 279] = 302.369;
|
|
v[ 280] = 300.815; v[ 281] = 299.277; v[ 282] = 298.643; v[ 283] = 298.381;
|
|
v[ 284] = 296.632; v[ 285] = 294.887; v[ 286] = 295.411; v[ 287] = 293.665;
|
|
v[ 288] = 303.051; v[ 289] = 304.741; v[ 290] = 304.555; v[ 291] = 301.901;
|
|
v[ 292] = 301.846; v[ 293] = 300.793; v[ 294] = 302.141; v[ 295] = 300.521;
|
|
v[ 296] = 300.74; v[ 297] = 301.164; v[ 298] = 299.811; v[ 299] = 298.146;
|
|
v[ 300] = 298.443; v[ 301] = 293.905; v[ 302] = 295.545; v[ 303] = 296.185;
|
|
v[ 304] = 306.254; v[ 305] = 307.698; v[ 306] = 307.503; v[ 307] = 304.62;
|
|
v[ 308] = 304.458; v[ 309] = 303.097; v[ 310] = 303.69; v[ 311] = 303.482;
|
|
v[ 312] = 303.514; v[ 313] = 304.001; v[ 314] = 299.346; v[ 315] = 298.529;
|
|
v[ 316] = 297.935; v[ 317] = 295.495; v[ 318] = 295.846; v[ 319] = 296.122;
|
|
v[ 320] = 309.596; v[ 321] = 308.059; v[ 322] = 305.473; v[ 323] = 305.581;
|
|
v[ 324] = 306.11; v[ 325] = 303.994; v[ 326] = 304.602; v[ 327] = 304.286;
|
|
v[ 328] = 304.18; v[ 329] = 305.511; v[ 330] = 300.083; v[ 331] = 299.69;
|
|
v[ 332] = 297.061; v[ 333] = 296.252; v[ 334] = 296.508; v[ 335] = 298.427;
|
|
v[ 336] = 309.837; v[ 337] = 309.568; v[ 338] = 308.175; v[ 339] = 306.983;
|
|
v[ 340] = 307.399; v[ 341] = 303.002; v[ 342] = 303.582; v[ 343] = 303.765;
|
|
v[ 344] = 304.829; v[ 345] = 303.815; v[ 346] = 302.952; v[ 347] = 301.263;
|
|
v[ 348] = 296.397; v[ 349] = 298.184; v[ 350] = 297.765; v[ 351] = 299.807;
|
|
v[ 352] = 311.829; v[ 353] = 309.43; v[ 354] = 307.672; v[ 355] = 307.068;
|
|
v[ 356] = 306.384; v[ 357] = 304.862; v[ 358] = 304.397; v[ 359] = 303.944;
|
|
v[ 360] = 304.673; v[ 361] = 304.326; v[ 362] = 303.948; v[ 363] = 302.827;
|
|
v[ 364] = 297.377; v[ 365] = 296.722; v[ 366] = 298.711; v[ 367] = 300.744;
|
|
v[ 368] = 310.353; v[ 369] = 309.716; v[ 370] = 309.28; v[ 371] = 308.163;
|
|
v[ 372] = 306.711; v[ 373] = 305.75; v[ 374] = 304.74; v[ 375] = 305.384;
|
|
v[ 376] = 304.885; v[ 377] = 305.735; v[ 378] = 307.71; v[ 379] = 303.764;
|
|
v[ 380] = 303.073; v[ 381] = 300.87; v[ 382] = 300.858; v[ 383] = 302.205;
|
|
v[ 384] = 311.264; v[ 385] = 311.085; v[ 386] = 310.432; v[ 387] = 308.94;
|
|
v[ 388] = 305.619; v[ 389] = 307; v[ 390] = 306.413; v[ 391] = 307.649;
|
|
v[ 392] = 308.429; v[ 393] = 309.358; v[ 394] = 309.365; v[ 395] = 307.933;
|
|
v[ 396] = 306.15; v[ 397] = 305.126; v[ 398] = 305.611; v[ 399] = 303.336;
|
|
v[ 400] = 309.947; v[ 401] = 309.562; v[ 402] = 309.339; v[ 403] = 310.316;
|
|
v[ 404] = 308.055; v[ 405] = 307.565; v[ 406] = 310.605; v[ 407] = 308.4;
|
|
v[ 408] = 309.219; v[ 409] = 310.801; v[ 410] = 310.525; v[ 411] = 309.65;
|
|
v[ 412] = 306.611; v[ 413] = 306.033; v[ 414] = 307.988; v[ 415] = 308.941;
|
|
v[ 416] = 308.4; v[ 417] = 307.615; v[ 418] = 307.404; v[ 419] = 308.381;
|
|
v[ 420] = 309.778; v[ 421] = 311.715; v[ 422] = 308.409; v[ 423] = 307.156;
|
|
v[ 424] = 308.715; v[ 425] = 307.201; v[ 426] = 310.448; v[ 427] = 309.24;
|
|
v[ 428] = 306.716; v[ 429] = 307.307; v[ 430] = 309.062; v[ 431] = 309.776;
|
|
v[ 432] = 303.033; v[ 433] = 302.76; v[ 434] = 303.071; v[ 435] = 306.578;
|
|
v[ 436] = 309.819; v[ 437] = 305.046; v[ 438] = 309.764; v[ 439] = 307.857;
|
|
v[ 440] = 301.171; v[ 441] = 302.783; v[ 442] = 301.107; v[ 443] = 300.429;
|
|
v[ 444] = 303.189; v[ 445] = 304.585; v[ 446] = 303.709; v[ 447] = 307.132;
|
|
v[ 448] = 302.315; v[ 449] = 302.922; v[ 450] = 302.593; v[ 451] = 302.476;
|
|
v[ 452] = 302.132; v[ 453] = 305.953; v[ 454] = 300.132; v[ 455] = 301.361;
|
|
v[ 456] = 302.355; v[ 457] = 304.042; v[ 458] = 302.175; v[ 459] = 297.057;
|
|
v[ 460] = 296.072; v[ 461] = 296.644; v[ 462] = 296.895; v[ 463] = 296.22;
|
|
v[ 464] = 300.897; v[ 465] = 300.839; v[ 466] = 300.899; v[ 467] = 301.941;
|
|
v[ 468] = 302.709; v[ 469] = 301.495; v[ 470] = 302.248; v[ 471] = 301.468;
|
|
v[ 472] = 303.598; v[ 473] = 304.599; v[ 474] = 299.779; v[ 475] = 297.9;
|
|
v[ 476] = 295.564; v[ 477] = 296.015; v[ 478] = 293.688; v[ 479] = 294.294;
|
|
v[ 480] = 300.801; v[ 481] = 300.724; v[ 482] = 301.204; v[ 483] = 302.463;
|
|
v[ 484] = 302.885; v[ 485] = 305.413; v[ 486] = 305.523; v[ 487] = 303.672;
|
|
v[ 488] = 304.547; v[ 489] = 303.334; v[ 490] = 301.616; v[ 491] = 298.654;
|
|
v[ 492] = 297.975; v[ 493] = 295.379; v[ 494] = 293.83; v[ 495] = 300.082;
|
|
|
|
GRIB_CHECK(<a class="code" href="group__get__set.html#ga24d87e236a2469309d1176ee5925d77" title="Set a double array from a key.">grib_set_double_array</a>(h,<span class="stringliteral">"values"</span>,v,size),0);
|
|
free(v);
|
|
|
|
<span class="comment">/* gribSection5 */</span>
|
|
|
|
<span class="comment">/* Save the message */</span>
|
|
|
|
f = fopen(argv[1],<span class="stringliteral">"w"</span>);
|
|
<span class="keywordflow">if</span>(!f) {
|
|
perror(argv[1]);
|
|
exit(1);
|
|
}
|
|
|
|
GRIB_CHECK(<a class="code" href="group__handling__coded__messages.html#g9d654bd4fc5f422c161edd0a140ea185" title="getting the message attached to a handle">grib_get_message</a>(h,&buffer,&size),0);
|
|
|
|
<span class="keywordflow">if</span>(fwrite(buffer,1,size,f) != size) {
|
|
perror(argv[1]);
|
|
exit(1);
|
|
}
|
|
|
|
<span class="keywordflow">if</span>(fclose(f)) {
|
|
perror(argv[1]);
|
|
exit(1);
|
|
}
|
|
|
|
<a class="code" href="group__grib__handle.html#g0e4b2585f22247c49b930c1579257677" title="Frees a handle, also frees the message if it is not a user message.">grib_handle_delete</a>(h);
|
|
<span class="keywordflow">return</span> 0;
|
|
}
|
|
</pre></div><br>
|
|
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 22 15:18:22 2009 for grib_api by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
|
</body>
|
|
</html>
|