地波雷达质控与同化模块

沈阳地波雷达资料转化程序

将地波雷达资料处理为little_r格式,按10m风观测同化进入系统即可:

#!/usr/bin/env python

#----------------------------------------------------------------------------

if __name__ == '__main__':
    import sys
    import datetime
    import argparse
    import fortranformat as ff
    parser = argparse.ArgumentParser(description='Example of usage')
    parser.add_argument('-d', '--date',
                        dest='start_date',
                        default=None,
                        required=True,
                        help='date in format "YYMMDDHHmm"')
    args = parser.parse_args()
    start_date_object = args.start_date
    filename = start_date_object + '.000'

    datetime = '20'+start_date_object
    # Constants
    rpt_format =  ff.FortranRecordWriter ('( 2f20.5, 2a40, 2a40, 1f20.5, 5i10, 3L10, 2i10, a20, 13( f13.5 , i7 ) ) ')
    mesa_format = ff.FortranRecordWriter ('( 10( f13.5 , i7 ) )')
    end_format = ff.FortranRecordWriter (' ( 3 ( i7 ) ) ')

    lr_missing  = -888888
    lr_end_data = -777777.0
    lr_missing_r = lr_missing

    platform  = "FM-12 SYNOP                             "

    # Counter
    counter = 1

    print("Reading " + filename)
    with open(filename) as lndradar:
        for row in lndradar:
            [id, lon, lat, wdir, wspd] = map(float, row.split())

            print(rpt_format.write([lat           , lon           , ""               , ""          ,
                        platform         , 'ShenYang Land Radar'       , 0.          , 6           ,
                        0                , 0                , counter          , 0           ,
                        False            , False            , False            , lr_missing  ,
                        lr_missing       , datetime         , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0           ,
                        lr_missing_r     , 0                , lr_missing_r     , 0]))
            print(mesa_format.write([lr_missing_r        , 0 , 0.                  , 0 , lr_missing_r        , 0 ,
                                     lr_missing_r        , 0 , wspd                , 0 , wdir                , 0 ,
                                     lr_missing_r        , 0 , lr_missing_r        , 0 , lr_missing_r        , 0 , lr_missing_r , 0
                                    ]))
            print(mesa_format.write([lr_end_data , 0 , lr_end_data , 0 , 1., 0 ,
                                    lr_missing_r , 0 , lr_missing_r , 0 , lr_missing_r , 0 ,
                                    lr_missing_r , 0 , lr_missing_r , 0 , lr_missing_r , 0 ,
                                    lr_missing_r , 0]))
            print(end_format.write([1, 0, 0]))
            counter = counter + 1