高空数据应该满足如下要求,不然容易报错:
1、高空数据所有时间第一层的高度不能高于地面高度,不然在READ62后的数据会报错:->->->First level in sounding is above surface。
批量修改办法,比如以下面的数据为例:
254 0 31 DEC 2023
1 50001 50001 **.**N***.**E 600 2303
2 500 500 500 40 99999 3
3 HAKJ 99999 ms
9 975 400 104 77 162 7
4 950 616 98 59 146 21
上面第1行600表示数据点的高度,要高于所有的首层数据高度(9 975 400 104 ……中的400)。在高空数据中可以使用正则表达式(VS Code)进行筛选,首先用^\s*先删除所有行开头的空格,然后用^(254.*)$批量删除254为开头的行,让后删除除了高空数据首层的其他所有行,再将剩下的所有的首层数据复制在Excel中然后从大到小筛选就选出首层数据最高的高度。
2、同日数据不得少于2个,且2个之间不得大于12小时。
3、高空数据在用READ62生成后,可能会在.ua文件中有一行“ ->->->Missing/duplicate sounding or time > 12 hours ”。注意需要把这一行删除,不然在运行calmet时会报错:Invalid decimal character s was detected (unit=30)
(the relative position causing an error in a record = 9)
ssing/duplicate sounding or time > 12 hours
?
Error occurs at or near line 24006 of _rdupn_
Called from or near line 4330 of _comp_
Called from or near line 1675 pf _MAIN_
这是由于将->->->Missing/duplicate sounding or time > 12 hours 进行识别了,将该句的第9个字符s识别了。但其实这一行应该是具体的高空数据。
4、注意,高空数据的时间。按照模型要求,高空数据只能是UTC+0时区的值,因此在高空数据预处理中,应注意原始数据的时区。若源数据本身就是0时区的值,预处理后的值也为0时区对应数据(即在CALMET的气象数据输入中,高空数据的时区列应输入0);若源数据就是+8时区的值,则预处理后的值即为+8时区对应数据。
5、根据第4点问题,为了保证对应导则中连续1年的预测数据。建议对于高空数据应获取前1天的值,因为1月1日 00:00 UTC+8对应的是前一年的12月31日 16:00 UTC+0,如果没有12月31日 16:00 UTC+0的数据,CALMET计算过程会报错。