地波雷达质控与同化模块¶
沈阳地波雷达资料转化程序¶
将地波雷达资料处理为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