ࡱ>  =bjbjFF .$$5%qqqqq8,)"'''x)z)z)z)z)z)z)*-z)qz)~qq'')4~~~ >q'q'x)~x)~~:",qq#SH6" $#T)<)"R7.~7.#~q# 7:   Marine BUFR Templates Overview WMO has mandated that the use of Traditional Alphanumeric Codes (TACs) on the GTS will cease by about 2012. In the marine environment, the codes that are implicated are SHIP, BUOY, TRACKOB, BATHY, TESAC and WAVEOB. The strategy in managing this transition has been to prepare what are called BUFR templates to accommodate the contents of each of these TACs, with additional information if needed, as transformed into approved BUFR data forms (e.g. generally only SI units are allowed in BUFR). Presently templates exist for each of the data types that can be transmitted in these TACs though really only the BUOY template is in use. The Argo program has started to send data in BUFR with their own template that is specific to their needs and different from any existing TAC. Generally it appears the currently available BUFR templates were developed separately and mimicked the organization and content of the original TACs, thus leading to a large degree of inconsistency in how data and information on the same variables are reported across the templates. For example, a temperature profile for the water column can appear in BATHY, TESAC, and BUOY, but the contents of the template, most importantly in the metadata, are quite different. As well, there is a paucity of instrument metadata for almost every measurement with inconsistency in reporting data and information about the same variable in different codes forms. To address this, JCOMM DMPA organized a cross-cutting Task Team on Table Driven Codes (TT-TDC) to review existing templates to examine this inconsistency, but also considering intrinsic characteristics of original data forms and reporting procedures, and to develop a new generation of templates. At the same time, the opportunity has been taken to improve the metadata that accompanies the data. The results of their work are presented here. Coding Perspectives One approach to address the issue is to look to reproduce with expanded metadata, the content of the individual TACs. There is a certain degree of this represented in the present templates but there is still a large degree of inconsistency. Another approach is to look at the observing strategy as a way to organize the templates. In the marine environment there are measurements made as a platform steams along a specified course, or as it drifts with currents or winds, or from fixed platforms. There are observations of vertical profiles of water properties, sometimes from moving and sometimes from fixed platforms. The TACs effectively mimic a platform-centric view. Another perspective is to deal in variables measured. For this view the idea is to collect together for each variable the relevant data and information about sensors and package these as discrete bundles. It is necessary to locate in space and time where the variables are measured, and some information is needed about the platform. Taking this approach, it is possible to mix and match variables attached to a platform and to adjust easily to changes in the instrument package. A BUFR Primer For the sake of understanding the approach taken for these new templates, examples will be shown of what they look like to reproduce the TACs. In doing this, it will become obvious how new configurations can be built, how updates can be made to information and what are the benefits of this approach. To understand the presentation, it is useful to understand something about BUFR. BUFR is a Table Driven Code form that has been developed by WMO (GRIB is another). There are 4 kinds of BUFR tables but only 2 are of importance to explain here. The first, Table B, is a list of every variable measured or every metadata field that anyone wants to transmit in a GTS message. It contains an entry for water temperature, for latitude, for wind speed, for platform identifier, for method of observation and so on. Each entry, or descriptor, is defined by the units of the reported value, the number of bits required to send the information, and other detailed characteristics required to unpack each binary data field. There are a number of different tables, called classes, in Table B that partition the information into logical groupings. So there is a class for reporting latitude and all the different variants of this, a class for oceanographic measurements, and so on. There are presently a total of 40 of these classes. The second table of importance is Table D. This is a table, again with a number of classes, that lists collections of Table B descriptors represented by a single Table D descriptor. Table D descriptors are also known as sequences. Sequences are a shorthand for reporting information that often comes together. For example, when reporting a time of observation, information about the year, month, day, hour and minute are frequently reported together. These five Table B descriptors are composited together under a single Table D descriptor or sequence. A BUFR message is composed of a number of sections but two of these are important to describe here. The first of these, the data description section, provides a list of descriptors, either Table B or Table D or a mix of the two. The following section, the data section, provides the actual BUFR data fields in the same order as the list of descriptors. BUFR was designed to be completely self documenting. But a general decoder is complicated because it has to deal with managing the entire suite of BUFR descriptors and accommodate them appearing in any order in a BUFR message. To simplify this, templates were developed. Templates are used to replace the data description section of the BUFR message (the list of descriptors). If the template lists a particular descriptor, but no such data are available, then that position in the data section is filled with all bits set (an indicator of missing data in BUFR). A general BUFR message would just leave the missing variable out of both the list and data sections, but the decoder for a template is simpler because the list of descriptors is known and values, real or fill, are present for every entry in the template. New Templates Annex 1 presents in simple form what new templates for all of the above TACs could look like. It is not suggested they should all be built like this, since there are strong similarities between, for example, BATHY and TESAC (thus it might make better sense to develop a single template merging both sets of requirements), but the templates are shown to illustrate how they have been built from common building blocks. Using this building block technique, for example, if wave sensors are placed on surface drifters, the template used can be expanded simply by adding the appropriate wave data blocks. At the end of each of the new templates is an as yet unnamed block that could be used to report data in older codes if desired. For example, suppose that data are prepared at sea in the current SHIP code (i.e. FM 13) and sent ashore that way. On shore they would be converted to BUFR with necessary unit conversions of values to match BUFR units. To protect against loss of information, the data provider may wish to send the FM 13 coded data as part of the BUFR message. The last block in each table provides a way to do this. As yet, details have not been worked out (but NOAA/NCEP for example has already implemented such a scheme in their current BUFR format, by simply dividing the input TAC data into a sequence of 8-byte ASCII fields collectively called the raw report string, together with a separate field indicating the number of such strings). It is possible that for any particular message certain blocks may have no content to be transmitted. Rather than send a block with all fields set to the fill value, there are means within BUFR to indicate that a particular block, though described in the template, is not actually present in a particular message. Implications of using this scheme The advantages of assembling data into BUFR messages by using these blocks are: There is a uniformity of reporting not only the data but also the metadata that describes how the data were collected. This helps to ensure consistency. It is readily extensible both to describe new variables measured from existing platforms as well as accommodating variables never reported before. Encode and decode software for a given template can potentially take advantage of shared code libraries, to handle the same information block across different templates. Software changes are isolated to the blocks that deal with the particular variable for which information has been changed. This formulation is more in line with the principles of BUFR being highly flexible and self describing. The disadvantages are: Encode and decode software must be able to deal with the presence or absence of the Table D descriptors for each block, no matter what is the declared kind of data. This is more complicated than dealing with present templates. As true for any template scheme, certain information may not always be present and so fill values must be used where information is missing. Annex 1: Mapping of TACs into new templates SHIP (Report of surface observation from a sea station): Table D descriptorInformation3-01-20Ship information ((IMO ID, call sign, ship motion, ship loading)3-01-202Location information (lat, long, quality flag, sounding)3-01-203Date and time information (year, month, day, hour, minute, quality flag)3-06-200Air pressure data (instrument, placement, reduced to MSL, tendency)3-02-201Air temperature data instrument, placement, type of temperature, relative humidity, maxs and mins)3-02-202Cloud data (instrument, coverage, types, heights)3-02-203Horizontal visibility data (instrument, placement, visibility, obscuration and phenomenon)3-02-204Wind data (instrument, placement, direction, speed, gusts, relative, adjustments to 10m)3-02-205Wave property data (instrument, height, period direction of wind, swell)3-06-200Surface water temperature data (instrument, method, depth of sample, temperature)3-02-206Weather data (present and past)3-02-207Precipitation data (instrument, placement, total precipitation, water equivalent, type, time period)3-02-208Ice and snow data (deposits, rate, type, development)x-xx-xxxPreservation block for original data forms (included if applicable) BUOY (Report of a buoy observation): Table D descriptorInformation3-01-204Buoy / platform information (identification, type, drogue)3-01-202Location information (see SHIP)3-01-203Date and time information (see SHIP)3-06-200Air pressure data (see SHIP)3-02-201Air temperature data (see SHIP)3-02-204Wind data (see SHIP)3-02-205Wave property data (see SHIP)3-06-200 3-06-201Surface water temperature data (see SHIP) OR Water temperature profile data (instrument, methods, depth, temperature quality flags)3-06-202 3-06-203Surface salinity data (instrument, method, depth of sample, salinity) OR Salinity profile data (instrument, methods, depth, salinity quality flags)3-06-204 3-06-205Surface water current data (measurement method, depth (near surface), averaging, speed, direction) OR Water current profile data (instrument, methods, depth, speed, direction quality flags)x-xx-xxxPreservation block for original data forms (included if applicable) TRACKOB (Report of marine surface observation along a ships track): Table D descriptorInformation3-01-200Ship information (see SHIP)3-01-202Location information (see SHIP)3-01-203Date and time information (see SHIP)3-06-200Surface water temperature data (see SHIP)3-06-202Surface salinity data (see BUOY)3-06-204Surface water current data (see BUOY)x-xx-xxxPreservation block for original data forms (included if applicable) BATHY (Report of bathythermal observation): Table D descriptorInformation3-01-200Ship information (see SHIP)3-01-202Location information (see SHIP)3-01-203Date and time information (see SHIP)3-02-201Air temperature data (instrument, placement, type of temperature, relative humidity, maxs and mins)3-02-204Wind data (see SHIP)3-06-204Surface water current data (see BUOY)3-06-201Water temperature profile data (see BUOY)x-xx-xxxPreservation block for original data forms (included if applicable) TESAC (Temperature, salinity and current report from a sea station): Table D descriptorInformation3-01-200 3-01-201Ship information (see SHIP) OR Float information (identifier, type, data collection system, cycle, profile direction)3-01-202Location information (see SHIP)3-01-203Date and time information (see SHIP)3-02-204Wind data (see SHIP)3-02-201Air temperature data (see SHIP)3-06-201Water temperature profile data (see BUOY)3-06-203Salinity profile data (see BUOY)3-06-205Water current profile data (see BUOY)x-xx-xxxPreservation block for original data forms (included if applicable) WAVEOB (Report of spectral wave information from a sea station [or from a remote platform (aircraft or satellite)]): Table D descriptorInformation3-01-204 3-01-200Buoy / platform information (identifier, type) OR Ship information (see SHIP)3-01-202Location information (see SHIP)3-01-203Date and time information (see SHIP)3-02-209Wave statistical data (instrument, computation method, SWH, PP, maximum and average WH, direction, spread)3-02-210Wave spectral data (instrument, computation method, sampling, bands, frequency or wave number, spectral density, peak direction and spread by frequency or wave numberx-xx-xxxPreservation block for original data forms (included if applicable)     PAGE  PAGE 1 \$$$$$$%%% %k%u%%%++++++',(,*,J,,,,,3-E-q0y0z0000пЮЮЮЮЮЮЮxgggggg h{h&CJOJQJ^JaJ#h{h&5CJOJQJ^JaJ#hFh&5CJOJQJ^JaJ#hWh&5CJOJQJ^JaJ h[Yh&CJOJQJ^JaJ hU h&CJOJQJ^JaJh&CJOJQJ^JaJ#hv&h&5CJOJQJ^JaJh&5CJOJQJ^JaJ( !- . stz{*+  IJ>?MNyyz    !!y"z"%%''1'2''(I & FEƀF.gd&((X))k!I & FEƀF.gd&I & FEƀF.gd&I & FEƀF.gd&);*<*S*6+fI & FEƀF.gd&gd&I & FEƀF.gd&6++++*,=,I, $Ifgd&gd&I & FEƀF.gd&I,J,R,,~~ $Ifgd&xkd$$Ifl0t"X t0"644 la,,,,~~ $Ifgd&xkd$$Ifl0t"X t0"644 la,,,)-~~ $Ifgd&xkd$$Ifl0t"X t0"644 la)-*-3-w-~~ $Ifgd&xkd$$Ifl0t"X t0"644 law-x---|| $Ifgd&zkd4$$IflF0t"X t0"644 la--- .|| $Ifgd&zkd$$IflF0t"X t0"644 la .!.*..|| $Ifgd&zkdV$$IflF0t"X t0"644 la....|| $Ifgd&zkd$$IflF0t"X t0"644 la...;/|| $Ifgd&zkdx$$IflF0t"X t0"644 la;/<{{ $Ifgd&zkd# $$Ifl0t"X t0"644 la><?<H<<{{ $Ifgd&zkd $$Ifl0t"X t0"644 la<<<d={{ $Ifgd&zkdG!$$Ifl0t"X t0"644 lad=e=n==yy $Ifgd&|kd!$$IflF0t"X t0"644 la=============}{{{{{{{{om &`#$gd&gd&|kdo"$$IflF0t"X t0"644 la ====================== h[3@h&h&0JmHnHu h&0Jjh&0JUh&jh&U=======gd& &`#$gd&,1h/ =!"#$% $$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5/ $$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V l t0"65X5$$If!vh5X5#vX#v:V lF t0"65X5$$If!vh5X5#vX#v:V lF t0"65X56666666662 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~_HmH nH sH tH @`@ NormalCJ_HaJmH sH tH DA`D Default Paragraph FontRi@R  Table Normal4 l4a (k (No List jj  Table Grid7:V04 @4 `Footer  !BB ` Footer CharCJaJmH sH tH .)@!. ` Page NumberD2D ` Balloon TextCJOJQJaJVAV `Balloon Text CharCJOJQJaJmH sH tH B'QB `Comment ReferenceCJaJ4b4 ` Comment TextNqN `Comment Text CharCJaJmH sH tH HjabH `Comment Subject5CJ\aJFrF `Comment Subject Char5\PK![Content_Types].xmlj0 u$Nwc$ans@8JbVKS(.Y$8MVgLYS]"(U֎_o[gv; f>KH|;\XV!]օ Oȥsh]Hg3߶PK!֧6 _rels/.relsj0 }Q%v/C/}(h"O = C?hv=Ʌ%[xp{۵_Pѣ<1H0ORBdJE4b$q_6LR7`0̞O,En7Lib/SeеPK!kytheme/theme/themeManager.xml M @}w7c(EbˮCAǠҟ7՛K Y, e.|,H,lxɴIsQ}#Ր ֵ+!,^$j=GW)E+& 8PK!\theme/theme/theme1.xmlYOoE#F{o'NDuر i-q;N3' G$$DAč*iEP~wq4;{o?g^;N:$BR64Mvsi-@R4Œ mUb V*XX! cyg$w.Q "@oWL8*Bycjđ0蠦r,[LC9VbX*x_yuoBL͐u_. DKfN1엓:+ۥ~`jn[Zp֖zg,tV@bW/Oټl6Ws[R?S֒7 _כ[֪7 _w]ŌShN'^Bxk_[dC]zOլ\K=.:@MgdCf/o\ycB95B24S CEL|gO'sקo>W=n#p̰ZN|ӪV:8z1f؃k;ڇcp7#z8]Y / \{t\}}spķ=ʠoRVL3N(B<|ݥuK>P.EMLhɦM .co;əmr"*0#̡=6Kր0i1;$P0!YݩjbiXJB5IgAФ޲a6{P g֢)҉-Ìq8RmcWyXg/u]6Q_Ê5H Z2PU]Ǽ"GGFbCSOD%,p 6ޚwq̲R_gJSbj9)ed(w:/ak;6jAq11_xzG~F<:ɮ>O&kNa4dht\?J&l O٠NRpwhpse)tp)af] 27n}mk]\S,+a2g^Az )˙>E G鿰L7)'PK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-![Content_Types].xmlPK-!֧6 /_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!\theme/theme/theme1.xmlPK-! ѐ' theme/theme/_rels/themeManager.xml.relsPK] 5 $$$'059== 5EUfy()6+I,,,)-w-- ...;///00p001J1t11112;22{3M445,5V55556b6667/7777 8n88_9999:5:`::::;<><<d====!"#$%&'()*+,-./012346789:;<=>?@ABCDFGHIJKLMNOPQRSTVWXYZ[\]^_`abcdeg  '!!8@0(  B S  ?55__abfim tt%%rrfj;;''||""####%%%%(())))d,d,,,+.+.v..////70702222{5{5555555555555555555y7 q(y(++N,V,..!0)02293c3d3v3e5m555555555555555555579 :R =h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH. :R79                  &#*$=$I$J$R$$$$$$$)%*%3%w%x%%%%% &!&*&&&&&&&;'<'E'''''''0(1(:(p(q(z(((((()))J)K)T)t)u)~))))))))))***;*<*O****{+|++M,N,W,,,,,,---,---6-V-W-`----------...b.c.e.........// ///0/9////////// 0!0*0n0o0q000000_1`1i111111111122 25262?2`2a2j22222293d3w3333333444>4?4H4444d5e5n5555555555@5`@UnknownScott WoodruffGTimes New Roman5Symbol3 ArialC: Lucida Grande"hGG䆁FH,^-aI&4da65j 2qHX ?[3@2Marine BUFR Templates Robert KeeleyKristin de Lichtervelde   Oh+'0 0< ` l x 'Marine BUFR TemplatesRobert Keeley Normal.dotmKristin de Lichtervelde2Microsoft Macintosh Word@F#@l$@@H, ՜.+,0 hp  'DFO-NCR^a6 Marine BUFR Templates Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz|}~Root Entry F