Japan Meteorological Agency (JMA) sub surface temperature decode result and error reports

Ver. 1.01 ( Jan. 20, 1998 - the present )


/*
 * Decode sub surface temperature data
 * Copyright JMA
 *
 * Ver 1.01
 */

1. Introduction
        Sea surface and subsurface temperature data in reports received via GTS or
    internet are decoded and stored in specially prepared files in Comma Separated
    Value (CSV) format. Information on primary quality control (QC) is also prepared
    in other files. The decoded data and QC information include the file name of and
    the position in the original reports, so that users can easily refer the original
    reports.
        The format of the decoded data is CSV. If you have any program package on
    the market that can read CSV, you can easily import these data for these packages.
        Detailed information of the files is explained below.

2. Decoded temperature data file
2.1 Name of the file
    pub/subst/subst.rcvMMMdd

    MMMdd (MMM=Jan,Feb,..., dd=01,02,...) : Month and day that the original
                                            report was recieved at RTDB.

2.2 Format description

    #  Ver 1.01      Copyright JMA 98.1.20
    #
    #  -------------------------------------------------------------------- sequential number (SEQ#)
    #  !       ------------------------------------------------------------ latitude (LAT)
    #  !       !        --------------------------------------------------- longitude (LON)
    #  !       !        !  ------------------------------------------------ day (DAY)
    #  !       !        !  !  --------------------------------------------- month (MON)
    #  !       !        !  !  !    ---------------------------------------- year (YEAR)
    #  !       !        !  !  !    !  ------------------------------------- hour (HOUR)
    #  !       !        !  !  !    !  !  ---------------------------------- minute (MIN)
    #  !       !        !  !  !    !  !  !   ------------------------------ number of the layers (LAY)
    #  !       !        !  !  !    !  !  !   !    ------------------------- depth (unit in m) (DEP)
    #  !       !        !  !  !    !  !  !   !    !     ------------------- temperature (unit in 0.1c) (TEMP)
    #  !       !        !  !  !    !  !  !   !    !     ! ----------------- quality information (QI)
    #  !       !        !  !  !    !  !  !   !    !     ! !        -------- call sign (SGN)
    #  !       !        !  !  !    !  !  !   !    !     ! !        !    --- position in the original file
    #  !       !        !  !  !    !  !  !   !    !     ! !        !    !   (sequential number of record) (REC#)
    #  !       !        !  !  !    !  !  !   !    !     ! !        !    ! - original file name (ORG)
    #  !       !        !  !  !    !  !  !   !    !     ! !        !    ! !
       1,37.90,N,134.50,E,28, 5,1997, 0,99,  1,   0,  157,/,   21002,   1,ship.obsDay28.rcvMay29
       2,37.90,N,134.50,E,28, 5,1997, 6,99,  1,   0,  165,/,   21002,   2,ship.obsDay28.rcvMay29

    remark
        1 If the first character of a line is a '#', the line is a comment line.
        2 "Ver xxxx" indecates supported version of the decoding program.
        3 "99.." indicates that the element is not available with regard to numerical data.
        4 "//.." indicates that the element is not available with regard to text data.
        5 Quality information is not saported in the version 1.01, and it always set as "/".


3. Error information file
3.1 Name of the file
    pub/subst/error.rcvMMMdd

    MMMdd (MMM=Jan,Feb,..., dd=01,02,...) : Month and day that the original
                                            report was recieved at RTDB.

3.2 Quality Control
3.2.1
        Quality control is performed only to detect values out of range by definition
    (see below) for each decode element. If such a value is found, we recognize it as
    an "error" and put the related information into the "error" file.

    a. year   If YEAR>the present year or YEAR<the last year, then YEAR=9999 (error)
    b. month   If MON<1 or MON >12, then MON=99 (error)
    c. day   If DAY<1 or DAY>31, then DAY=99 (error)
    d. hour   If HOUR<0 or HOUR>24,  then HOUR=99 (error)
    e. minute   If MIN<0 or MIN>59, then MIN=99 (error)
    f. latitude   If LAT<0 or LAT>90, then LAT=99.99 (error)
    g. longitude   If LON<0 or LON>180, then LON=999.99 (error)

3.2.2
        If each element satisfies the following value check, we put "warning"
    information into the error information file but the value in the decode temperature
    data file remains as it is.

    a. temperature    If TEMP<-2 or TEMP>32, then put "Warning(TEMP=...)".
    b. call sign    If the length or SGN is less than 3 or SGN includes any character(s)
                    except alphabets (A-Z) or numbers (0-9), then put "Warning(SGN=...)".

3.2.3
        If a non-numeric character is found in temperature, "999" is put in the decoded record.
    However if the last digit in temperature is "/" and the rest are numeric, "/" is replaced by
    "0". In either case, a warning information is put in the error information file.

3.3 Example

    SEQ#=  254 : Warning(TEMP=710),ORG=ship.obsDay28.rcvMay29, REC#=378
    SEQ#=  309 : Warning(TEMP "0/9"->"999"),ORG=ship.obsDay28.rcvMay29, REC#=616
    SEQ#=  386 : Warning(TEMP "08/"->"080"),ORG=ship.obsDay29.rcvMay29, REC#=11
    SEQ#=  396 : Warning(SGN=JGKL/////),ORG=bathy.obsMay27.rcvMay29, REC#=7
    SEQ#=  426 : Error(LON=300),ORG=bathy.obsMay27.rcvMay29, REC#=2
    SEQ#=  427 : Error(YEAR=N),ORG=bathy.obsMay28.rcvMay29, REC#=2
    SEQ#=  437 : Error(MON=-4),ORG=bathy.obsMay28.rcvMay29, REC#=45