BUFR code

Document Sample
BUFR code Powered By Docstoc
					           Introduction à BUFR
                              FM 94 BUFR



Version française: Benjamin SACLIER (METEO-France- International)
                   Gilles Gelly (METEO-France)

                          Organisation Météorologique Mondiale
          Qu’est-ce que BUFR?
• Binary Universal Form for the Representation
  of Meteorological Data
• Utilisé pour des données qui ne sont pas sur une grille
régulière telles que les observations
• Conceptuellement équivalent à CREX, mais le format
est binaire et non alphanumérique
A quoi ressemble un message BUFR ?
01000010010101010100011001010010000000000000000000110100000000110000000000000000
00010010000000000000000000111000000000000000000000000000000000000000100100000001
00000001000001000001110100001100000000000000000000000000000000000000111000000000
00000000000000011000000000000001000000010000000100000010000011000000010000000000
00000000000000000000100000000000100100001111010111011100010000000011011100110111
0011011100110111


(En d’autres mots , juste une rangée de 0 et 1 distribués au
   hasard!?)
    Sections d’un message BUFR
•   0   Section Indicatrice
•   1   Section d’identification
•   2   (Section facultative)
•   3   Section de Description des données
•   4   Section des données
•   5   Section de fin

Chaque section contient toujours un nombre pair d’octets,
des bits mis à zéro étant ajoutés le cas échéant
   Section 0 – Section Indicatrice
Cette section contient:

• Le champ de caractères “BUFR” qui
  indique le début du message
• La longueur totale du message
• Le numéro de l’édition de BUFR utilisée
  (important si l’on veut traiter des archives)
          Section 0 - Détails
• Longueur toujours de 8 octets (1 octet = 8 bits)
• Octets 1-4 “BUFR” (en alphabet CCITT IA5)
Binaire 01000010 01010101 01000110 01010010
• Octets 5-7 : Longueur totale du message en octets
  (y compris la section 0)
  3octets : 224-1 = 16 777 215 octets
• Octet 8 : Numéro d’édition BUFR
                    (actuellement 3)
  Section 1 – section d’identification
Cette section contient:
• La version des tables (locales et OMM) utilisées
  dans le message.
• D’autres descriptions sur le contenu du message :
   –   Le centre d’origine et secondaire
   –   La catégorie et la sous catégorie des données
   –   Une date et une heure représentatives des données
   –   Présence ou non de la section facultative.
                  Section 1 - Détails
Taille d’au moins 18 octets
• Octets 1-3 Longueur de la section, en octets
• Octet 4         Table principale du code BUFR (0=OMM)
• Octet 5-6 Centre d’origine de production
• Octet 7-8 Centre secondaire d’origine de production
                  (défini si nécessaire par le centre principal)
• Octet 9         Numéro de mis à jour du message
• Octet 10 Flag. Bit 1 = 1 section 2 incluse
• Octets 11 Catégorie des données (Table A)
• Octets 12 Sous-catégorie internationale des données
• Octets 13 Sous-catégorie locale des données
• Octets 14-15 N° de version tables principales (3 actuellement ) et locales
• Octets 16-22 Date et heure caractérisant le message
• Octets 23-?? Réserve pour des besoins locaux
  Section 2 – section facultative
Cette section est réservée et définie pour les
besoins locaux des centres de traitement des
données.
• Un exemple type d’utilisation est celui du contexte
  d’une base de données.
   – Database keys, pour faciliter la recherche de données
     spécifiques sans décoder l’ensemble du message.
   – Domaine géographique des séries de données
• Toute autre chose qu’ un centre de traitement peut
  trouver utile.
Section 3 – Description des données
Cette section contient:
 • Le nombre de sous-séries de données dans le
   message, chaque séries du message sont toutes du
   même format. Très utilisé.
 • Un Flag indiquant si les données sont codées en
   utilisant la compression ou non.
 • Un autre flag pour préciser si ce sont des données
   observées ou prévues.
 • Une liste de descripteur qui définissent la forme et
   le contenu de chaque sous-série de la section des
   données.
            Section 3 - Détails
• La taille est d’au moins 10 octets
• Octets 1-3      Longueur de la section, octets
• Octet 4         Mis à zéro
• Octets 5-6      Nombre de sous-séries
• Octet 7         Bit1 = 1 observées 0 autres
                  Bit2 = 1 comprimées 0 non
• Octets 8-?? Liste des descripteurs
• Chaque descripteur 2 bits F, 6 bits X, 8 bits Y
  Section 4 – Section des données
Cette section contient:

• L’ensemble des données comme spécifiées
  dans la section 3.
• Un des deux formats est utilisé:
   – Compressé
   – Non-compressé
          Section 4 - Détails

• Octets 1-3     Longueur de la section
• Octet 4        Mis à zéro
• Octets 5-?? Données binaires telles
  qu’elles sont définies par les descripteurs de
  la section 3.
       Section 5 – section de fin
Cette section contient:

• La chaîne de caractère “7777” indiquant la
  fin du message.
• La vérification de cet indicateur permet de
  détecter une erreur des données (en
  particulier octets absents dans le reste du
  message) en fonction de la taille totale
  connue dans la section 0.
      Maintenant, regardons encore le message
                      BUFR!
                ‘B’      ‘U’       ‘F’     ‘R’                  end of section 0  +
octet number     1    |   2   |   3 |    4   |    5   |   6   |     7    |     8   | 1 |  2   |
binary string 01000010010101010100011001010010000000000000000000110100000000110000000000000000



octet number     3    |   4   |   5 |    6   |    7   |   8   |   9   |  10 |    11 | 12      |
binary string 00010010000000000000000000111000000000000000000000000000000000000000100100000001

                                              end of section 1  +
octet number     13   |  14 |     15 | 16 | 17         | 18      | 1  |   2   |   3   |   4 |
binary string 00000001000001000001110100001100000000000000000000000000000000000000111000000000

                                                                              end of section 3  +
octet number     5    |   6   |   7 |    8   |    9   | 10    |  11 |    12 |     13 | 14 |
binary string 00000000000000011000000000000001000000010000000100000010000011000000010000000000

                                                                end of section 4  + ‘7’   ‘7’
octet number     1    |   2   |   3 |    4   |    5   |   6   |     7    |     8   | 1   | 2 |
binary string 00000000000000000000100000000000100100001111010111011100010000000011011100110111

                ‘7’      ‘7’  +  end of section 5
octet number     3    |    4  |
binary string 0011011100110111
                   Exemple Section 0
OCTET NO.        1        2        3        4        5        6        7         8
BINARY        01000010 01010101 01000110 01010010 00000000 00000000 00110100 00000010
HEXADECIMAL    4       2   5       5   4       6    5 2   0   0   0   0   3 4   0       2
DECODED            B           U           F         R                    52        2


                           Longueur du message
                                en octets

                                                   Bufr edition
             Exemple section 1(Edition 3)
OCTET NO.                 1         2       3        4        5        6        7        8
BINARY                 00000000 00000000 00010010 00000000 00000000 00111000 00000000 00000000
HEXADECIMAL             0    0    0   0 1      2   0   0     0 0      3 A      0 0
DECODED                                     18       0                 58

   length of section
                       standard BUFR tables
                                 originating center (US Navy - FNOC)      Section 2 not included

OCTET NO.                 9          10        11        12          13      14     15      16
BINARY               00000010 00000000 00000010 00000001 01011101 00000100 00011101 00001100
HEXADECIMAL            0     2   0      0    0 2        0 1        5    D  0    4 1    D 0     C
DECODED                   2         0          2           1         94       4     29      12
   data category
          data category sub-type
                     version of master tables
                                version of local tables
                                                         year of century  month
                                                                                   day     hour
OCTET NO.                 17        18
BINARY                00000000 00000000
HEXADECIMAL             0     0   0     0
DECODED                    0          0   minute             local use
                       Exemple Section 3
OCTETNO.            1           2          3         4         5       6         7
BINARY         00000000 00000000 00001110 00000000 00000000 00000001 10000000
HEXADECIMAL      0 0          0 0        0    E    0    0    0 0      0 1
DECODED                                    14        0          0       1
       Longueur de la section
                           En réserve
               Nombre de sous-séries de données
                           flag d’indication de données observée
                                                         Données non compressées

OCTET NO.            8          9      10         11         12        13         14
BINARY             00000001 00000001 00000001 00000010 00001100 00000100 00000000
HEXADECIMAL 0 1               0 1     0 1       0 2        0     C 0 4          0 0
DECODED                0 01 001           0 01 002            0 12 004             0
descripteurs F X Y
                                             Une section est toujours
                                             constituée d’un nombre paire d’octets
             Descripteurs BUFR

• Les descripteurs BUFR sont listés dans la section 3
• Ils décrivent la nature et la structure des données qui
  sont contenues dans la section 4.
• Les descripteurs sont référencés dans les tables du
  Manuel: Tables BUFR B, C et D.
• En utilisant la liste de descripteurs de la section 3, et
  les tables correspondantes du Manuel, il est alors
  possible de décoder les données de la section 4.
    Types de descripteurs BUFR
•   Descripteur d’élément (définis dans la Table B)
•   Descripteur de répétition
•   Descripteur d’opération (définis dans la Table C)
•   Descripteur de séquence (définis dans la Table D)
•   Un descripteur se représente de la manière
    suivante, 3 chiffres sur 16 bits (2 octets) :
    – F: 2 bits 0-3
    – X: 6 bits 0-63
    – Y: 8 bits 0-255
         Descripteur d’élément
• Il est défini par une entrée dans la Table B du
  Manuel.
• F=0
• Chaque descripteur d’élément décrit la manière de
  coder une valeur :
   – La valeur d’un paramètre météorologique: température,
     pression niveau mer, humidité …
   – Le type d’un instrument
   – Des informations sur la position et la date de la mesure
   – Des informations sur les contrôles de qualité
   Descripteur de répétition (1)
• Il définit la répétition d’un seul ou d’un groupe de
  descripteurs un certains nombre de fois.
• Les descripteurs répétés peuvent être des
  descripteurs d’élément, d’opération, de séquence
  ou même de répétition
• Comme dans un message TEMP où un groupe de
  paramètres est répété pour chaque niveau
• Il peut être de 2 types:
   – Fixe – le nombre de répétitions est pré-déterminé et
     sera le même pour toutes les séries de données
   – Variable – le nombre de répétitions varie d’une série a
     l’autre , on parle de répétition différée
    Descripteur de répétition (2)
• F=1
• X est un entier entre 1 et 63, il indique le nombre
  de descripteurs à répéter
• Y est un entier entre 0 et 255; il indique le nombre
  total de répétitions des X descripteurs
   Ex : 101010 012001
   Si Y = 0, il s’agit d’une répétition différée, le descripteur
     d’élément suivant indique alors le nombre de
     répétitions (stocké dans la section des données 4)
   Ex: 101000 031001 012001
   Le nombre de répétition peut donc changer d’une série à
     l’autre.
             Descripteur d’opération
•   Le descripteur d’opération est défini dans la Table C
•   F=2
•   La valeur de X indique un type d’opération
•   La valeur de Y dépend de l’opération
•   Permet de modifier les caractéristiques d’un descripteur
•   Différents type d’opérations existent:
    – Changer l’échelle et/ou le champ de données
    – Ajouter des informations sur la qualité ou des champs
      associés
    – Ajouter des valeurs substituées tout en gardant la valeur
      d’origine
       Descripteur de séquence
• Renvoie à une des entrées de la Table D
• F=3
• Énumère une série de descripteurs d’élément,
  d’opération, et /ou de séquences
• Son utilisation permet de réduire la taille de la
  section 3, contribuant ainsi beaucoup à l’efficacité
  du code BUFR
• Un seul descripteur de séquence peut être présent
  dans la section 3 pour d écrire un type
  d’observation (même complexe)
    Revue des Tables BUFR dans le
               Manuel
Le code BUFR utilise plusieurs types de tables:
• Table A
    – Catégories des données utilisées dans la section 1 (octet 9)
• Table B
    – Descripteurs d’élément, utilisés dans la section 3
• Table C
    – Descripteurs d’opération, utilisés dans la section 3
• Table D
    – Descripteurs de séquence, utilisés dans la section 3
• Tables de Code et d’Indicateurs
    – Il faut alors se reporter à la table de code correspondante pour
      connaître la signification du champ numérique codé.
    – Utilisés dans la section 4
                     Table A
• Définition du type de données représentées dans le
  message BUFR
• Encodé dans la section 1 (octet 9)
• Examples of typical entries:
       Code figure        Meaning
         0                Surface data – land
         1                Surface data – sea
         2                Vertical soundings (non-satellite)
         3                Vertical soundings (satellite)
         …                …
         6                Radar data
         …                …
         10               Radiological data
         12               Surface data (satellite)
         …                …
         31               Oceanographic data
Table B Classification des éléments
• Décrit de quelle manière est codée le paramètre
• Les colonnes sont:
   –   Descripteur
   –   Nom de l’élément
   –   Unité
   –   Échelle
   –   Valeur de référence
   –   Champ de données (en bits)
• L’échelle et le champ de données sont déterminées
  en fonction des valeurs possibles du paramètre pour
  qu’il puisse être stocké dans le BUFR en entier
  positif.
• Le BUFR est ainsi indépendant de la machine
                                  Table B
       • Décrit comment chaque valeur doit être encodée
       • Les descripteurs d’élément sont groupes en classes
         (i.e. la valeur X)
Class Number    Class Name                Class Number   Class Name
  01            Identification              12           Temperature
  02            Instrumentation             13           Hydrological
  …             …                           14           Radiation and radiance
  04            Location (time)             …            …
  05            Location (horizontal-1)     19           Synoptic features
  06            Location (horizontal-2)     20           Observed phenomena
  07            Location (vertical)         21           Radar data
  …             …                           …            …
  11            Wind and turbulence         33           Quality information
            Table B référence
• Les descripteurs sont toujours exprimés sous la
  forme F X Y (2 bits 6 bits 8 bits)
• F = 0 pour un descripteur d’élément
• X est compris entre 0 et 63 qui correspond à une
  classe d’élément
  Ex: classe 12 – classe des températures
• Y est compris entre 0 et 255 qui correspond au
  numéro du descripteur dans la classe
  Ex: 0 12 003 Température du point de rosée
     Class 01 – Identification
                                (extrait)
  TABLE            TABLE                                             DATA
                                                         REFERENCE
REFERENCE         ELEMENT             UNIT       SCALE               WIDTH
                                                           VALUE
 F X Y             NAME                                              (BITS)
0   01 001   WMO block number        Numeric       0         0         7

0   01 002   WMO station number      Numeric       0         0         10

0   01 003   WMO region number      Code table     0         0         3

0   01 005   Buoy/platform           Numeric       0         0         17
             identifier
0   01 006   Aircraft flight        CCITT IA5      0         0         64
             number
0   01 007   Satellite identifier   Code table     0         0         10

0   01 011   Ship or mobile land    CCITT IA5      0         0         72
             station identifier
0   01 015   Station or site name   CCITT IA5      0         0        160

0   01 063   ICAO location          CCITT IA5      0         0         64
             indicator
 Class 11 – vent et turbulence
                                 (extrait)
  TABLE           TABLE                                                 DATA
                                                            REFERENCE
REFERENCE        ELEMENT                UNIT        SCALE               WIDTH
                                                              VALUE
 F X Y            NAME                                                  (BITS)
0   11 001   Wind direction           Degree true     0         0         9

0   11 002   Wind speed                  m s-1        1         0         12

0   11 003   U-component                 m s-1        1       -4096       13

0   11 004   V-component                 m s-1        1       -4096       13

0   11 021   Relative vorticity           s-1         9       -65536      17

0   11 031   Degree of turbulence     Code table      0         0         4

0   11 032   Height of base of            m          -1        -40        16
             turbulence
0   11 033   Height of top of             m          -1        -40        16
             turbulence
0   11 034   Vertical gust velocity      m s-1        1       -1024       11
    Table B nom de l’élément

• Commentaire décrivant la signification de la
  valeur
• Par exemple:
  – Précipitation totale sur les 3 dernières heures
  – Vitesse du vent à 10 mètres
                 Table B unité
• Unités utilisées pour les valeurs:
   – Dans la plupart des cas, des unités de base en SI
     (mètre, Pa, Kelvin …)
   – “CCITT IA5” (the international version of ASCII) est
     utilisé pour les caractères tel que les indicatifs (nom
     d’un navire, nom d’un aéronef)
   – “Table de Code” utilisé pour la communication des
     informations qualitatives où seulement une valeur est
     possible
   – “Table d’indicateurs” utilisé pour la communication
     des informations qualitatives où plusieurs valeurs sont
     possibles
          Exemple table de code et
               d’indicateur
                                             0 20 025
            0 20 024
                                          Obscurcissement
    Intensité du phénomène   Numéro
 Chiffre                     de bit
Du code                      •    1        Brouillard
• 0      Pas de phénomène    •    2        Brouillard glacé
• 1      Léger               •    3        Brouillard d’évaporation
                             •    4-6      En réserve
• 2      Modéré              •    7        Brume
• 3      Fort                •    8        Brume sèche
• 4      Violent             •    9        Fumée
• 5-6 En réserve             •    10       Cendre volcanique
• 7      Valeur manquante    •    11       Poussière
                             •    12       Sable
                             •    13       Neige
                             •    14-20    En réserve
                             •    21       Valeur manquante
              Table B échelle
• Échelle
  – Avant le codage on multiplie la valeur de la donnée par
    10 échelle
  – Elle permet de conserver la précision souhaitée de la
    donnée transmise
  – Une échelle de 2 signifie 2 décimales de précision (ex:
    T° = 273.16 température transmise de l’ordre du
    centième)
  – En revanche, certaines unités (Pa) entraînent la
    transmission de chiffres d’une précision inutile
  – On utilise alors une valeur d’échelle négative (ex:
    échelle –1 ce qui donne une valeur arrondie au multiple
    de 10)
      Table B Valeur de référence
• La valeur de référence est un nombre qui doit être
  soustrait à la donnée, après multiplication par le facteur
  d’échelle, afin que la valeur ne soit en aucun cas
  NEGATIVE
• Exemple, échelle=2, valeur de référence = -9000
  valeur à coder latitude = -35.50:
  -35.50*102 = -3550
  -3550 – (-9000) = 5450 sera la valeur chiffrée dans la
  section 4
• Lors du décodage on retrouve la valeur originale en
  faisant le calcul inverse
       Table B champ de données
• Nombre de bits utilisés pour encoder la valeur après
  multiplication par le facteur d’échelle et soustraction
  de la valeur de référence
• Par convention si tous les bits sont positionnés à 1,
  cela doit être interprété comme valeur manquante
  Valeur de (2n-1) lorsque n est le champ de donnée
• Si l’échelle est s, la valeur de référence r, le champ de
  donnée n, alors la plage de valeur est:
   – Minimum (10-s  r)
   – Maximum (10-s  (2n-2+r))
  et (10-s  (2n-1+r)) pour la valeur manquante.
                                      Table B
De toute évidence sans table B à jour, impossible de décoder le contenu d’un BUFR

Table     Element name                        Unit         Scale   Reference Data
reference                                                          value     width
FXY


0 11 012   Wind speed at 10m                  m s-1        1       0         12


0 13 020   Total precipitation past 3 hours   kg m-2       1       -1        14


0 20 003   Present weather                    Code table   0       0         9


0 08 001   Vertical sounding significance     Flag table   0       0         7
       Table B exemples – (1)
• 0 11 012 – vitesse du vent à 10m
• Échelle = 1, Référence = 0, Champ = 12
• Précision au dixième (ie. 0.1 m s-1)
• Valeur Minimum représentable :
      (10-1×0) = 0.0 m s-1
• Valeur Maximum représentable :
      (10-1×(212-2+0)) = 409.4 m s-1
• Valeur manquante “Missing” :
      (10-1×(212-1+0)) = 409.5 m s-1
       Table B exemples – (2)
• 0 13 020 – Précipitation totale sur 3 heures
• Échelle=1, Référence =-1, Champ=14
• Précision en dixième (ie. 0.1 kg m-2)
• Pour ce descripteur, -0.1 kg m-2 est une valeur
  spéciale pour indiquer les « traces » (voir note
  dans la Table B)
• Valeur Minimum :
      (10-1×-1) = -0.1 kg m-2 (= trace)
• Valeur Maximum :
      (10-1×(214-2-1)) = 1638.1 kg m-2
• Valeur manquante “Missing”:
      (10-1×(214-1-1)) = 1638.2 kg m-2
        Table B exemples – (3)
• 0 20 003 – Temps présent
• Échelle=0, Référence =0, Champ=9 bits
• Les valeurs codées sont entières: Échelle=0
• Valeur Minimum :
       (100×0) = 0
• Valeur Maximum :
       (100×(29-2+0)) = 510
• Valeur manquante “Missing” :
       (100×(29-1+0)) = 511
• Il faut alors se référer à la table de Code 0 20 003
  pour connaître le type de temps présent
  correspondant à la valeur codée.
                    Table C
• Descripteurs d’opérations
• Utilisée pour redéfinir temporairement les
  caractéristiques de la tables B, ou ajouter des
  champs associés, ou ajouter des chaînes de
  caractères
• F=2
• X = un entier entre 0 et 63
• Y = Opérande, un entier entre 0 et 255
• Nom de l’opérateur: décrivant le type d’opération
• Définition de l’opération: description détaillée de
  l’opération et de ses effets
           Table C exemple (1)
• Référence F=2 X=01
• Opérande, dans ce cas représentée par Y
• Nom de l’Opérateur “Changer de champ de données”
• Définition: « Ajouter (Y-128) bits au champ de
  données indiqué pour chaque élément de données de
  la table B, autre que des données CCITT IA5 , une
  table de code ou une table d’indicateurs »
• Pour supprimer la valeur redéfinie on inclus
  l’opérande appropriée avec Y = 000 ou à la fin de
  chaque sous-série de données. Ex : 2 01 000
           Table C exemple – (2)
L’opérateur “Changer de champ de données” (2 01 Y) permet
de coder des valeurs sur un plage de bits plus grande (ou plus
petite) que celle qui est donnée par défaut dans la table B:
    • Encoder des valeurs trop grandes pour être représentées
    avec le nombre de bits usuel (table B) et éviter ainsi de
    créer une nouvelle entrée dans la table B.
    Dans ce cas Y > 128
    • Réduire le champ de données (réduire ainsi la taille du
    BUFR) pour coder des valeurs plus petites et pour
    lesquelles on sait qu’on n’utilisera jamais la totalité du
    champ défini dans la table B
    Dans ce cas Y < 128
         Table C exemple – (3)
Un descripteur classique pour coder la hauteur est le 0 07 007
avec unité= m, échelle=0, référence=-1000 et champ de
donnée =17, permet de coder des valeurs comprises entre –
1000 m et 130070 m.
Si on veut coder une valeur plus grande que 130070 m (ex:
hauteur d’un satellite) il faudra utiliser le descripteur
d’opération 2 01 Y pour augmenter le nombre de bits du
champ de données.
Ex: descripteur d’opération 2 01 130 suivi de 0 07 007 pour
augmenter le champ de données de 2 bits, ainsi on pourra
coder des valeurs sur un champ de 19 bits (soit la valeur
maximum de 523286 m).
                                                Table C
  TABLE
REFERENCE         OPERAND             OPERATOR NAME                          OPERATOR DEFINITION
   F X
    2   01             Y         Change data width                  Add (Y-128) bits to the data width given for
                                                                    each data element in Table B, other than
                                                                    CCITT IA5, code or flag tables
    2   02             Y         Change scale                       Add (Y-128) to scale in Table B for elements
                                                                    which are not CCITT IA5, code or flag tables

    2   03             Y         Change reference value             Subsequent element descriptors define new
                                                                    reference values for corresponding Table B
                                                                    entries. Each new reference value is
                                                                    represented by Y bits in Section 4…
    2   04             Y         Add associated field               Precede each element with Y bits of
                                                                    information (e.g. quality marker).

    2   05             Y         Signify character                  Y characters from CCITT IA5 are inserted as a
                                                                    field of (Y*8) bits in length.

    2   06             Y         Signify data width for following   Y bits of data are described by the immediately
                                 local descriptor                   following local descriptor from Table B

• This is just an excerpt – there are many other (even more complicated!) operators in Table C.
• There are also many important notes to Table C describing, e.g. how to cancel an operator.
                       Table D
• Descripteurs de séquences
   – F=3
   – X = un entier compris entre 0 et 63 (classe)
   – Y = un entier compris entre 0 et 255
• Séquence de descripteurs
   – La liste des descripteurs, pouvant être des descripteurs
     d’élément (table B), des descripteurs de répétition, des
     descripteurs d’opération (table C) et aussi des
     descripteurs de séquences (table D)
• Nom de l’élément
   – Description sur le type de paramètre
                  Table D exemple
Table     Table        Element name
reference References
FXY
                       (Buoy/platform – fixed)
3 01 033   0 01 005    Buoy/platform identifier
           0 02 001    Type of station
           3 01 011    Date
           3 01 012    Time
           3 01 021    Latitude and longitude (high accuracy)
         Table D exemple – (1)
• Dans cet exemple la séquence comporte 5
  descripteurs
• Deux sont des descripteurs d’élément (table B)
• Les 3 autres sont des descripteurs de séquences
  (table D) qui représentent eux-même une liste
  d’éléments
• Toutefois ce n’est pas récursif ! Un descripteur de
  séquence ne peut pas faire référence à lui-même.
                Table D categories
• Categories correspond to the X value of the underlying sequence descriptor.

  Category number            Category name
        01                   Location and identification sequences
        02                   Sequences common to surface data
        03                   Sequences common to vertical soundings data
        04                   Sequences common to satellite observations
        05                   Sequences common to hydrological observations
        06                   Sequences common to oceanographic observations
        07                   Surface report sequences (land)
        08                   Surface report sequences (sea)
        …                    …
        18                   Radiological report sequences
        21                   Radar report sequences
   Category 01 – Location and
Identification Sequences (excerpt)
TABLE REFERENCE   TABLE REFERENCES                ELEMENT NAME
    3   01 001       0   01 001      WMO block number
                     0   01 002      WMO station number
    3   01 011       0   04 001      Year
                     0   04 002      Month
                     0   04 003      Day
   3    01 012       0   04 004      Hour
                     0   04 005      Minute
   3    01 024       0   05 002      Latitude (coarse accuracy)
                     0   06 002      Longitude (coarse accuracy)
                     0   07 001      Height of station
                                     (Land station for vertical soundings)
   3    01 038       3   01   001    WMO block and station number
                     0   02   011    Radiosonde type
                     0   02   012    Radiosonde computational method
                     3   01   011    Date
                     3   01   012    Time
                     3   01   024    Lat/long (coarse accuracy), height of station
                  Table D example
Table     Table        Element name
reference References
FXY
                       (Buoy/platform – fixed)
3 01 033   0 01 005    Buoy/platform identifier
           0 02 001    Type of station
           3 01 011    Date
           3 01 012    Time
           3 01 021    Latitude and longitude (high accuracy)
       Descripteurs de répétition -
                exemple
• Les 4 descripteurs:
   –   1 03 002 Repeat three descriptors twice
   –   0 22 003 Direction of swell waves
   –   0 22 013 Period of swell waves
   –   0 22 023 Height of swell waves
• Sont équivalents aux 6 descripteurs:
   –   0 22 003 Direction of swell waves
   –   0 22 013 Period of swell waves
   –   0 22 023 Height of swell waves
   –   0 22 003 Direction of swell waves
   –   0 22 013 Period of swell waves
   –   0 22 023 Height of swell waves
      Descripteurs de répétition
         différée - exemple
• Les 3 descripteurs:
   – 1 01 000 Delayed replication of one descriptor
   – 0 31 001 Replication factor (8 bit)
   – 3 03 012 Winds at pressure levels
• sont équivalents à:
   – 3 03 012 Winds at pressure levels
   – 3 03 012 Winds at pressure levels
   – … autant de fois que spécifiée par le descripteur 0 31 001
• Le nombre de répétitions est stocké dans la section 4 ainsi
  chaque sous-série de données peut avoir un nombre de
  répétitions différent
• Suivant la valeur du nombre de répétition, un descripteur
  différent (031000 1bit, 031001 8 bits et 031002 16 bits)
                    Section 4
• La structure des données dans la section 4 dépend
  directement des descripteurs et des flags utilisés
  dans la section 3:
   – Une des principales différences vient de l’utilisation ou
     non du mécanisme de compression.
   – La répétition différée et la compression peuvent être
     combinés, mais seulement dans le cas ou le nombre de
     répétitions est le même dans chaque sous-séries de
     données du message BUFR.
        Section 4 – Données non-
              compressées
• Chaque donnée « occupe » le nombre de bits indiqué par le
  « champ de donnée » de la table B, ajusté en fonction des
  descripteurs d’opérations utilisés.
• N séries avec chacune M paramètres :
   Obs1 value1, Obs1 value2, Obs1 value3, ... Obs1 valueM
   Obs2 value1, Obs2 value2, Obs2 value3, ... Obs2 valueM
   ....
   ObsN value1, ObsN value2, ObsN value3, ... ObsN valueM
Section 4 – Données compressées
• Chaque item d’un type de paramètre est codé par : sa valeur
  minimum parmi toute les séries (en utilisant le champ de
  bits indiqué dans la table B), le nombre de bits utilisés pour
  le codage des incréments (lui-même codé sur 6 bits) et une
  liste d’incréments qui doit être ajouté à la valeur mini pour
  retrouver la valeur initiale.
• N séries avec chacune M paramètres
   Min1, Nbits1, obs1inc1, obs2inc1, … obsNinc1
   Min2, Nbits2, obs1inc2, obs2inc2, … obsNinc2
   …
   MinM, NbitsM, obs1incM, obs2incM, … obsNincM
                 Conclusion
• BUFR est d’utilisation souple et déterminé par des
  tables
• BUFR peut représenter un large éventail de données
• BUFR est auto-descriptif
• La méthode de répétition et les séquences de
  descripteurs peuvent être utilisés pour réduire la
  taille de la section 3
• La compression permet de réduire notablement la
  taille totale du BUFR
                    Remerciements
Référence:
   • WMO No. 306 Manual on Codes, Volume I.2
      (http://www.wmo.int/web/www/DPS/NewCodesTables/WMO306vol-I-2PartB.pdf)

   • Guide to WMO Table-Driven Code Forms
     FM94 BUFR and FM95 CREX
      (http://www.wmo.int/web/www/WDM/Guides/BUFR-CREX-guide.html)


Remerciements:
   • Charles Sanders BOM-Australia
   • Simon Elliott EUMETSAT
   • Joël Martellet WMO

				
DOCUMENT INFO
Categories:
Stats:
views:31
posted:9/15/2011
language:French
pages:60