17
CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1 SECTION 2 SECTION 3 SECTION 4 SECTION 5

CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

Embed Size (px)

Citation preview

Page 1: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

CODE FORM

SECTION 0 INDICATOR SECTION

PRODUCT IDENTIFICATION SECTION

GRID DESCRIPTION SECTION

BIT-MAP SECTION

BINARY DATA SECTION

END SECTION

SECTION 1

SECTION 2

SECTION 3

SECTION 4

SECTION 5

Page 2: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

SEC 0 SEC 1 SEC 2 SEC 3 SEC 4 SEC 5

8 octets 29-40 octets 32-52 octets 7-nn octets 12-nn octets 4 octets

FM 92-XI GRIB EDITION 1

BINARY DATAGRIB 7777

GRIB 77770000110101010011111000 ...........,,,.......... 10101010101010101011

Page 3: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

¨ Approved for operational use in 1989

¨ The representation of data by means of series of bits is independent of any particular machine representation.

¨ Can be used to store data also

¨ It is not suitable for visual data recognition

¨ It consist of continuos bit-stream made of a sequence of octets (1 octet = 8 bits)

INTRODUCTION

OCTET = 00000001BIT 1 BIT 8

Page 4: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

¨ Each of the sections of a BUFR message is made up of a series of octets. The term octet means 8 bits.

¨ An individual section always consists of an even number of octets, with extrabits added on and set to zero when necessary.

¨ Within each section, octets are numbered 1, 2, 3, etc., starting at the beginning of each section.

¨ Bit positions within octets are referred to as bit 1 to bit 8, where bit 1 is the most significant, leftmost, or high order bit. An octet with only bit 8 set would have the integer value 1.

OCTET = 00000001BIT 1 BIT 8

Page 5: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1
Page 6: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1
Page 7: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

INDICATOR SECTION    

Seção 0 OCTETO CONTEUDO HEX DECIMAL  01-04 GRIB 47 52 49 42 GRIB  05-07 Tamanho total da mensagem 00 28 EE 10.478  08 Edição do GRIB 01 1

END SECTION    

Seção 5 OCTETO CONTEUDO  HEX   DECIMAL

  01-04 7777 37 37 37 37  7777

1 | 2 | 3 | 4 |00110111 00110111 00100111 00110111 --> BINARY 3 7 3 7 3 7 3 7 --> HEXADECIMAL 7 7 7 7 --> ASCII

1 | 2 | 3 | 4 |01000111 01010010 01001001 01000010 --> BINARY 4 7 5 2 4 9 4 2 --> HEXADECIMAL G R I B --> ASCII

Page 8: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

PRODUCT DEFINITION SECTION - PDS    

Seção 1 OCTETO CONTEUDO HEX   DECIMAL  01-03 Tamanho da Seção 00 00 1C 28  04 Versão das tabelas 01 1  05 Centro de Origem 55 85  06 Identificação do processo D3 211  07 Definição da grade FF 255  08 Flag (tabela de código no. 1) 80 128  09 Indicador do parâmetro (Tabela 2) 0B 11  10 Indicador do tipo do nível (Tabela 3) 64 100  11-12 Altura, Pressão, etc. (Tabela 3) 00 FA 250  13 Ano Século 0F 15  14 Mês 01 1  15 Dia 04 4  16 Hora 0C 12  17 Minuto 00 00

Page 9: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

PRODUCT DEFINITION SECTION - PDS    

Seção 1 OCTETO CONTEUDO HEX   DECIMAL  18 Indicador da faixa de unidade de tempo (Tabela 4) 01 1  19 P1 - Período de tempo (número de unidades de tempo) 

0=análise 48 72

  20 P2 - Período de tempo (número de unidades de tempo) ou intervalo de tempo 00 0

  21 Indicador da faixa de tempo (Tabela 5) 00 0  22-23 N - número incluído para o cálculo quando o octeto 21 - 

Tabela 5 se refere a um processo estatístico 00 00 0

  24 Número de faltantes no cálculo em caso de processo estatístico 00 0

  25 Século de referência para a data 15 25  26 Sub-centro (Tabela comum C-1) 00 0  27-28 Unidades decimais do fator de escala (D) 00 00 0  29-40 Reservada: Não precisa estar presente   41-nn Reservada para uso do centro de origem

Page 10: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

GRID DEFINITION SECTION - GDS    

Seção 2 OCTETO CONTEUDO  HEX  DECIMAL  01-03 Tamanho da Seção  00 00 20 32  04 Número de parâmetros de coordenadas vertical 00   05 PV - Localização (octeto) da lista de parâmetros da 

coordenada vertical FF   06 Tipo da representação dos dados (Tabela 6) 00   07-32 Definição da grade (de acordo com o tipo do dado do 

octeto acima)   33-44 Extensão da definição da grade para visão espacial -   33-52 Extensão da definição da grade para visão espacial -   PV Tamanho = NV * 4. Se presente, então PL = 4NV + PV

  PLlista de número de pontos em cada fila (tamanho = NROWS * 2 octetos) onde NROWS é o total de filas definidas dentro da descrição da grade

Page 11: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

BIT-MAP SECTION    

Seção 3 OCTETO CONTEUDO  HEX  DECIMAL  01-03 Tamanho da Seção   04 Número de bits não utilizados no final da seção 3

  05-06Tabela de referencia. Se o octeto contem zero, então segue o bit-map. Se o octeto contém um número, ele se refere a um bit-map predeterminado pelo centro

  07Bit-map (bits contiguos com um bit de dado correspondendo a um dado, ordenado como definido pela difinição da grade)

Page 12: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

BINARY DATA SECTION    

Seção 4 OCTETO CONTEUDO HEX   DECIMAL  01-03 Tamanho da Seção 00 28 A6 10.412  04 Flag (tabela 11), primeiros 4 bits. Número de bits não 

utilizados no final da seção 4 (últimos 4 bits) 00 0  05-06 Fator de escala (E) 80 04 -4  07-10 Valor de referência (menor valor armazenado) 42 CA F1 20 202.942  11 Número de bits contido em cada valor armazenado 0A 10  12- Variável. Depende do valor do flag no octeto 4 3C 8E F3 ....

Y x 10D = R + X x 2E

R= (-1)S x 2(-24) x B x 16(A-

64)

Page 13: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

In the byte 7-10 example:  01000010 11001010 11110001 00100000Which should be read as:  0 1000010 110010101111000100100000S (leading sign bit) = 0A (7-bit characteristic) = 66 B (24-bit binary fraction) = 13300000 

 

R= (-1)S x 2(-24) x B x 16(A-

64)

In GRIB Edition 1 the "Reference value" in Byte 7-10 is "a single precision floating point number, consisting of a leading sign bit, a 7-bit characteristic and a 24-bit binary fraction" (see. Regulations 92.6.4)

Page 14: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

R = (-1)(0) x 2(-24) x B x 16(66-64)

R = 1 x 2(-24) x 16(2) x BR = 2(-24) x 2(8) X BR = 2(-16) x BR = 2(-16) x 110010101111000100100000R = 2(-16) x 0,110010101111000100100000 x 2(24)

R = 0,110010101111000100100000 x 2(8)

R = 11001010.1111000100100000R = 202 + 0.94189453125R = 202.942

 

R= (-1)S x 2(-24) x B x 16(A-64)

Page 15: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

With this and the information of 10 bits (Octet 11) for each packed value it is possible to get at least the first point. (regulation 92.6.3).

The next 10 bit from byte 12… are 0011110010. This is a positive integer (=242) and the decimal scale factor from section 1 (Byte 27-28) was 0.

Y = 100 x 202.942 + 0011110010 x 2(-4)

Y = 202.942 + 0.11110010 x 2(8) x 2(-4)

Y = 202.942 + 0.11110010 x 2(4)

Y = 202.942 + 1111.0010Y = 202.942 + 15+0.125Y = 202.942 + 15.125Y = 218.067

Y x 10D = R + X x 2E

Page 16: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

rec 1:25:date 2015010412 TMP kpds5=11 kpds6=100 kpds7=250 levels=(0,250) grid=255 250 mb 72hr fcst: TMP=Temp. [K] timerange 0 P1 72 P2 0 TimeU 1 nx 126 ny 66 GDS grid 0 num_in_ave 0 missing 0 center 85 subcenter 0 process 211 Table 1 scan: WE:NS winds(N/S) latlon: lat 75.000000 to 10.000000 by 1.000000 nxny 8316 long -60.000000 to 65.000000 by 1.000000, (126 x 66) scan 0 mode 128 bdsgrid 1

PDS(1..28)= 1: 00 00 1c 01 55 d3 ff 80 0b 64 00 fa 0f 01 04 0c 00 01 48 00 21: 00 00 00 00 15 00 00 00

GDS(1..32)= 1: 00 00 20 00 ff 00 00 7e 00 42 01 24 f8 80 ea 60 80 00 27 10 21: 00 fd e8 03 e8 03 e8 00 00 00 00 00

min/max data 205.817 233.692 num bits 10 BDS_Ref 202.942 DecScale 0 BinScale -4

126 66218.067 217.879 217.817 217.692 217.442 217.129 216.692 216.442 216.129 215.504 214.942 215.004 215.317 215.004 214.129 213.317 212.817 212.504 212.192 211.817 211.567 211.379 211.192 ......

WGRIB

Page 17: CODE FORM SECTION 0 INDICATOR SECTION PRODUCT IDENTIFICATION SECTION GRID DESCRIPTION SECTION BIT-MAP SECTION BINARY DATA SECTION END SECTION SECTION 1

#==============   MESSAGE 1 ( length=10478 )               ==============GRIB {  editionNumber = 1;  table2Version = 1;  # French Weather Service - Toulouse (grib1/0.table)    centre = 85;  generatingProcessIdentifier = 211;  # T Temperature K (grib1/2.0.1.table)    indicatorOfParameter = 11;  # Isobaric level pressure in hectoPascals  (hPa)  (grib1/3.table)    indicatorOfTypeOfLevel = 100;  level = 250;

Ni = 126;  Nj = 66;  latitudeOfFirstGridPointInDegrees = 75;  longitudeOfFirstGridPointInDegrees = -60;  earthIsOblate = 0;  uvRelativeToGrid = 0;  latitudeOfLastGridPointInDegrees = 10;  longitudeOfLastGridPointInDegrees = 65;  iScansNegatively = 0;  jScansPositively = 0;  jPointsAreConsecutive = 0;  #-READ ONLY- alternativeRowScanning = 0;  jDirectionIncrementInDegrees = 1;  iDirectionIncrementInDegrees = 1;  #-READ ONLY- numberOfDataPoints = 8316;  #-READ ONLY- numberOfValues = 8316;  missingValue = 9999;  #-READ ONLY- binaryScaleFactor = -4;  #-READ ONLY- referenceValue = 202.942;  sphericalHarmonics = 0;  complexPacking = 0;  integerPointValues = 0;  additionalFlagPresent = 0;  packingType = grid_simple;  bitsPerValue = 10; values(8316) =  {  2.1806689453e+02, 2.1787939453e+02, 2.1781689453e+02, 2.1769189453e+02, 2.1744189453e+02,   2.1712939453e+02, 2.1669189453e+02, 2.1644189453e+02, 2.1612939453e+02, 2.1550439453e+02,   2.1494189453e+02, 2.1500439453e+02, 2.1531689453e+02, 2.1500439453e+02, 2.1412939453e+02,   2.1331689453e+02, 2.1281689453e+02, 2.1250439453e+02, 2.1219189453e+02, 2.1181689453e+02,   2.1156689453e+02, 2.1137939453e+02, 2.1119189453e+02, 2.1106689453e+02, 2.1094189453e+02,   2.1081689453e+02, 2.1081689453e+02, 2.1087939453e+02, 2.1094189453e+02, 2.1087939453e+02,   2.1087939453e+02, 2.1087939453e+02, 2.1087939453e+02, 2.1087939453e+02, 2.1081689453e+02,   2.1069189453e+02, 2.1056689453e+02, 2.1037939453e+02, 2.1044189453e+02, 2.1044189453e+02, 

GRIB API