Description

This example shows: how to read levels from TEMP BUFR messages.


Example BUFR filePraticaTemp.bufr

Source code

 

<pre style='color:#000000;background:#ffffff;'><span style='color:#696969; '>!</span>
<span style='color:#696969; '>!Copyright 2005-2015 ECMWF.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! This software is licensed under the terms of the Apache Licence Version 2.0</span>
<span style='color:#696969; '>!which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by</span>
<span style='color:#696969; '>! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! FORTRAN 90 Implementation: bufr_read_temp</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! Description: how to read levels from TEMP BUFR messages.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! Please note that TEMP reports can be encoded in various ways in BUFR. Therefore the code</span>
<span style='color:#696969; '>! below might not work directly for other types of TEMP messages than the one used in the</span>
<span style='color:#696969; '>! example. It is advised to use bufr_dump first to understand the structure of these messages.</span>
<span style='color:#800000; font-weight:bold; '>program</span> bufr_read_temp
  <span style='color:#800000; font-weight:bold; '>use</span> eccodes
  <span style='color:#800000; font-weight:bold; '>implicit</span> none
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> ifile
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> iret<span style='color:#808030; '>,</span>ierr
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> ibufr
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> i<span style='color:#808030; '>,</span> count<span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
  <span style='color:#800000; font-weight:bold; '>integer</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>4</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span><span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span>  <span style='color:#808030; '>::</span> timePeriod<span style='color:#808030; '>,</span>extendedVerticalSoundingSignificance
  <span style='color:#800000; font-weight:bold; '>integer</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>4</span><span style='color:#808030; '>)</span>  <span style='color:#808030; '>::</span> blockNumber<span style='color:#808030; '>,</span>stationNumber<span style='color:#808030; '>,</span>numberOfLevels
  <span style='color:#800000; font-weight:bold; '>character</span><span style='color:#808030; '>(</span>len<span style='color:#808030; '>=</span><span style='color:#008c00; '>30</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>::</span> str
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span><span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> pressure<span style='color:#808030; '>,</span>airTemperature<span style='color:#808030; '>,</span>dewpointTemperature
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span><span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> geopotentialHeight<span style='color:#808030; '>,</span>latitudeDisplacement<span style='color:#808030; '>,</span>longitudeDisplacement
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span><span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> windDirection<span style='color:#808030; '>,</span>windSpeed
  <span style='color:#800000; font-weight:bold; '>character</span><span style='color:#808030; '>(</span>len<span style='color:#808030; '>=</span><span style='color:#008c00; '>128</span><span style='color:#808030; '>)</span>   <span style='color:#808030; '>::</span> keyName
  <span style='color:#800000; font-weight:bold; '>call</span> codes_open_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'PraticaTemp.bufr'</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'r'</span><span style='color:#808030; '>)</span>
  <span style='color:#696969; '>!call codes_open_file(ifile,'temp.bufr','r')</span>
  <span style='color:#696969; '>! the first bufr message is loaded from file</span>
  <span style='color:#696969; '>! ibufr is the bufr id to be used in subsequent calls</span>
  <span style='color:#800000; font-weight:bold; '>call</span> codes_bufr_new_from_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span>ibufr<span style='color:#808030; '>,</span>iret<span style='color:#808030; '>)</span>
  <span style='color:#800000; font-weight:bold; '>do</span> <span style='color:#800000; font-weight:bold; '>while</span> <span style='color:#808030; '>(</span>iret<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_END_OF_FILE<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#808030; '>*</span><span style='color:#808030; '>)</span> <span style='color:#0000e6; '>'message: '</span><span style='color:#808030; '>,</span>count
    <span style='color:#800000; font-weight:bold; '>call</span> codes_set<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'unpack'</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'timePeriod'</span><span style='color:#808030; '>,</span>timePeriod<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'pressure'</span><span style='color:#808030; '>,</span>pressure<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'extendedVerticalSoundingSignificance'</span><span style='color:#808030; '>,</span>extendedVerticalSoundingSignificance<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'geopotentialHeight'</span><span style='color:#808030; '>,</span>geopotentialHeight<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'latitudeDisplacement'</span><span style='color:#808030; '>,</span>latitudeDisplacement<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'longitudeDisplacement'</span><span style='color:#808030; '>,</span>longitudeDisplacement<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'airTemperature'</span><span style='color:#808030; '>,</span>airTemperature<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'dewpointTemperature'</span><span style='color:#808030; '>,</span>dewpointTemperature<span style='color:#808030; '>)</span>
   <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'windDirection'</span><span style='color:#808030; '>,</span>windDirection<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'windSpeed'</span><span style='color:#808030; '>,</span>windSpeed<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'blockNumber'</span><span style='color:#808030; '>,</span>blockNumber<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'stationNumber'</span><span style='color:#808030; '>,</span>stationNumber<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'station'</span><span style='color:#808030; '>,</span>blockNumber<span style='color:#808030; '>,</span>stationNumber
    <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span>'timePeriod pressure geopotentialHeight latitudeDisplacement &amp;
          &amp;longitudeDisplacement airTemperature windDirection windSpeed significance'
    <span style='color:#800000; font-weight:bold; '>do</span> i<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>windSpeed<span style='color:#808030; '>)</span>
      <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I5,6X,F9.1,2X,F9.2,10X,F8.2,14X,F8.2,16X,F8.2,6X,F8.2,4X,F8.2,4X,I0)'</span><span style='color:#808030; '>)</span> timePeriod<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>pressure<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>&amp;
          &amp;geopotentialHeight<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>latitudeDisplacement<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>&amp;
          &amp;longitudeDisplacement<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>airTemperature<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>windDirection<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>windSpeed<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>extendedVerticalSoundingSignificance<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>enddo</span>
    <span style='color:#696969; '>! free arrays </span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>timePeriod<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>pressure<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>geopotentialHeight<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>latitudeDisplacement<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>longitudeDisplacement<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>airTemperature<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>dewpointTemperature<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>windDirection<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>windSpeed<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>extendedVerticalSoundingSignificance<span style='color:#808030; '>)</span>
    <span style='color:#696969; '>! release the bufr message</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_release<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>)</span>
    <span style='color:#696969; '>! load the next bufr message</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_bufr_new_from_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span>ibufr<span style='color:#808030; '>,</span>iret<span style='color:#808030; '>)</span>
    count<span style='color:#808030; '>=</span>count<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
  <span style='color:#800000; font-weight:bold; '>end</span> <span style='color:#800000; font-weight:bold; '>do</span>
<span style='color:#696969; '>! close file  </span>
  <span style='color:#800000; font-weight:bold; '>call</span> codes_close_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>)</span>

<span style='color:#800000; font-weight:bold; '>end</span> <span style='color:#800000; font-weight:bold; '>program</span> bufr_read_temp
</pre>
<pre style='color:#000000;background:#ffffff;'><span style='color:#696969; '>#</span>
<span style='color:#696969; '># Copyright 2005-2015 ECMWF.</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '># This software is licensed under the terms of the Apache Licence Version 2.0</span>
<span style='color:#696969; '># which can be obtained at </span><span style='color:#5555dd; '>http://www.apache.org/licenses/LICENSE-2.0</span><span style='color:#696969; '>.</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '># In applying this licence, ECMWF does not waive the privileges and immunities</span>
<span style='color:#696969; '># granted to it by virtue of its status as an intergovernmental organisation</span>
<span style='color:#696969; '># nor does it submit to any jurisdiction.</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '># Python implementation: bufr_read_temp</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '># Description: how to read levels from TEMP BUFR</span>
<span style='color:#696969; '># messages.</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '>#</span>
<span style='color:#696969; '># Please note that TEMP reports can be encoded in various ways in BUFR.</span>
<span style='color:#696969; '># Therefore the code below might not work directly for other types of TEMP</span>
<span style='color:#696969; '># messages than the one used in the example. It is advised to use bufr_dump to</span>
<span style='color:#696969; '># understand the structure of the messages.</span>
<span style='color:#696969; '>#</span>
<span style='color:#800000; font-weight:bold; '>import</span> traceback
<span style='color:#800000; font-weight:bold; '>import</span> sys
<span style='color:#800000; font-weight:bold; '>from</span> eccodes <span style='color:#800000; font-weight:bold; '>import</span> <span style='color:#44aadd; '>*</span>
<span style='color:#400000; '>INPUT</span> <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>'PraticaTemp.bufr'</span>
VERBOSE <span style='color:#808030; '>=</span> <span style='color:#008c00; '>1</span>  <span style='color:#696969; '># verbose error reporting</span>

<span style='color:#800000; font-weight:bold; '>def</span> example<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
    <span style='color:#696969; '># open bufr file</span>
    f <span style='color:#808030; '>=</span> <span style='color:#400000; '>open</span><span style='color:#808030; '>(</span><span style='color:#400000; '>INPUT</span><span style='color:#808030; '>)</span>
    cnt <span style='color:#808030; '>=</span> <span style='color:#008c00; '>0</span>
    <span style='color:#696969; '># loop for the messages in the file</span>
    <span style='color:#800000; font-weight:bold; '>while</span> <span style='color:#008c00; '>1</span><span style='color:#808030; '>:</span>
        <span style='color:#696969; '># get handle for message</span>
        bufr <span style='color:#808030; '>=</span> codes_bufr_new_from_file<span style='color:#808030; '>(</span>f<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>if</span> bufr <span style='color:#800000; font-weight:bold; '>is</span> <span style='color:#074726; '>None</span><span style='color:#808030; '>:</span>
            <span style='color:#800000; font-weight:bold; '>break</span>
        <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#0000e6; '>"message: %s"</span> <span style='color:#44aadd; '>%</span> cnt
        <span style='color:#696969; '># we need to instruct ecCodes to expand all the descriptors</span>
        <span style='color:#696969; '># i.e. unpack the data section</span>
        codes_set<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>'unpack'</span><span style='color:#808030; '>,</span> <span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
        <span style='color:#696969; '>#get all the timePeriods</span>
        timePeriod <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"timePeriod"</span><span style='color:#808030; '>)</span>
        pressure <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"pressure"</span><span style='color:#808030; '>)</span>
        extendedVerticalSoundingSignificance <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"extendedVerticalSoundingSignificance"</span><span style='color:#808030; '>)</span>
        geopotentialHeight <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"geopotentialHeight"</span><span style='color:#808030; '>)</span>
        latitudeDisplacement <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"latitudeDisplacement"</span><span style='color:#808030; '>)</span>
        longitudeDisplacement <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"longitudeDisplacement"</span><span style='color:#808030; '>)</span>
        airTemperature <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"airTemperature"</span><span style='color:#808030; '>)</span>
        dewpointTemperature <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"dewpointTemperature"</span><span style='color:#808030; '>)</span>
        windDirection <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"windDirection"</span><span style='color:#808030; '>)</span>
        windSpeed <span style='color:#808030; '>=</span> codes_get_array<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"windSpeed"</span><span style='color:#808030; '>)</span>
        blockNumber <span style='color:#808030; '>=</span> codes_get<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"blockNumber"</span><span style='color:#808030; '>)</span>
        stationNumber <span style='color:#808030; '>=</span> codes_get<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>,</span> <span style='color:#0000e6; '>"stationNumber"</span><span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#0000e6; '>'station %d%d'</span> <span style='color:#44aadd; '>%</span> <span style='color:#808030; '>(</span>blockNumber<span style='color:#808030; '>,</span>stationNumber<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#0000e6; '>'timePeriod pressure geopotentialHeight latitudeDisplacement longitudeDisplacement airTemperature windDirection windSpeed significance'</span>
        <span style='color:#800000; font-weight:bold; '>for</span> i <span style='color:#800000; font-weight:bold; '>in</span> <span style='color:#400000; '>range</span><span style='color:#808030; '>(</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>,</span><span style='color:#400000; '>len</span><span style='color:#808030; '>(</span>windSpeed<span style='color:#808030; '>)</span><span style='color:#44aadd; '>-</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
          <span style='color:#800000; font-weight:bold; '>print</span> timePeriod<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>pressure<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>geopotentialHeight<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>latitudeDisplacement<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>longitudeDisplacement<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>airTemperature<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>windDirection<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>windSpeed<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span>extendedVerticalSoundingSignificance<span style='color:#808030; '>[</span>i<span style='color:#808030; '>]</span>
        cnt <span style='color:#44aadd; '>+</span><span style='color:#808030; '>=</span> <span style='color:#008c00; '>1</span>
        <span style='color:#696969; '># delete handle</span>
        codes_release<span style='color:#808030; '>(</span>bufr<span style='color:#808030; '>)</span>
    <span style='color:#696969; '># close the file</span>
    f<span style='color:#808030; '>.</span>close<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span>

<span style='color:#800000; font-weight:bold; '>def</span> main<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
    <span style='color:#800000; font-weight:bold; '>try</span><span style='color:#808030; '>:</span>
        example<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>except</span> CodesInternalError<span style='color:#808030; '>,</span> err<span style='color:#808030; '>:</span>
        <span style='color:#800000; font-weight:bold; '>if</span> VERBOSE<span style='color:#808030; '>:</span>
            traceback<span style='color:#808030; '>.</span>print_exc<span style='color:#808030; '>(</span><span style='color:#400000; '>file</span><span style='color:#808030; '>=</span>sys<span style='color:#808030; '>.</span>stderr<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>else</span><span style='color:#808030; '>:</span>
            <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#44aadd; '>>></span>sys<span style='color:#808030; '>.</span>stderr<span style='color:#808030; '>,</span> err<span style='color:#808030; '>.</span>msg
        <span style='color:#800000; font-weight:bold; '>return</span> <span style='color:#008c00; '>1</span>
<span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#074726; '>__name__</span> <span style='color:#44aadd; '>==</span> <span style='color:#0000e6; '>"__main__"</span><span style='color:#808030; '>:</span>
    sys<span style='color:#808030; '>.</span>exit<span style='color:#808030; '>(</span>main<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
</pre>