20220908 CAMS空品預報下載項目之更新

 

背景

  • 因CAMS長期儲存設備更新工程,自20220908起慢速下載項目暫不提供,因此下載項目需調查更換。
  • 程式之(自動)執行與安排,詳見CAMS預報結果之下載
  • 原程式請參考get_All.py

新舊對照

項目 原程式 新程式 說明
銨鹽 ammonium ammonium_aerosol_mass_mixing_ratio aermr18
硝酸鹽 nitrate nitrate_fine_mode_aerosol_mass_mixing_ratio, nitrate_fine_mode_aerosol_mass_mixing_ratio aermr16~17
石蠟系 paraffins (無替代) 無法取得
烯烴 olefins (無替代) 無法取得
有機硝酸鹽 organic_nitrates (無替代) 無法取得
  • 減少5項,增加3項,因此原來27項,變成25項。

影響範圍及程度

  • 直接影響到
    1. 如不修正,CWBWRF_45k的邊界檔與初始檔會取到舊值。
    2. merge.cs的執行會被中止
    3. grb2bcon.py / grb2icon.py的對照json檔需新增
  • VOCs的邊界與初始值可能會隨之降低。
  • 其他氨鹽及硝酸鹽影響應不會很大

json檔新增

名稱

"MASSMR_P48_L105_GLL0_A62003":"ammonium_aerosol_mass_mixing_ratio",
"MASSMR_P48_L105_GLL0_A65533":"nitrate_coarse_mode_aerosol_mass_mixing_ratio",
"MASSMR_P48_L105_GLL0_A65534":"nitrate_fine_mode_aerosol_mass_mixing_ratio",

粒狀物名稱(nms_part.json)

"MASSMR_P48_L105_GLL0_A62003":["ANH4I", "ANH4J", "ANH4K"],
"MASSMR_P48_L105_GLL0_A65533":["ANO3K"],
"MASSMR_P48_L105_GLL0_A65534":["ANO3I", "ANO3J"]

分子量(mws.json)

"nitrate_coarse_mode_aerosol_mass_mixing_ratio":0.0245,
"nitrate_fine_mode_aerosol_mass_mixing_ratio":0.0245,
"ammonium_aerosol_mass_mixing_ratio":0.0245

get_All.py

  • SPECs為氣狀物,第二行原有5項,刪去ammonium/nitrate/paraffins/olefins等4項成為1項。
  • PARTs為粒狀物,刪去organic nitrates,增加前述3項
#kuang@node03 /nas1/ecmwf/CAMS/CAMS_global_atmospheric_composition_forecasts/2022
$ cat get_All.py
#!/opt/miniconda3/envs/gribby/bin/python
import cdsapi
import sys
dt=sys.argv[1]
hr=sys.argv[2]
nm=sys.argv[3]
c = cdsapi.Client()
kk= ['137', '135', '133', '129', '125', '122', '120', '117', '114', '112', '110', '107', '105',
 '101', '96', '92', '87', '83', '78', '73', '67', '61', '56', '51']
SPECs =['carbon_monoxide','ethane', 'formaldehyde', 'isoprene', 'nitrogen_dioxide', 'nitrogen_monoxide', 'propane', 'sulphur_dioxide' ]
SPECs+=['ozone',]
PARTs =[
        'ammonium_aerosol_mass_mixing_ratio',
        'nitrate_coarse_mode_aerosol_mass_mixing_ratio', 'nitrate_fine_mode_aerosol_mass_mixing_ratio',
        'dust_aerosol_0.03-0.55um_mixing_ratio', 'dust_aerosol_0.55-0.9um_mixing_ratio', 'dust_aerosol_0.9-20um_mixing_ratio',
        'hydrophilic_black_carbon_aerosol_mixing_ratio', 'hydrophilic_organic_matter_aerosol_mixing_ratio',
        'hydrophobic_black_carbon_aerosol_mixing_ratio', 'hydrophobic_organic_matter_aerosol_mixing_ratio',
        'nitric_acid', 'peroxyacetyl_nitrate',
        'sea_salt_aerosol_0.03-0.5um_mixing_ratio', 'sea_salt_aerosol_0.5-5um_mixing_ratio', 'sea_salt_aerosol_5-20um_mixing_ratio',
        'sulphate_aerosol_mixing_ratio',
        ]
All=SPECs+PARTs
i=int(nm)
i1,i2=9*(i-1),min(i*9,len(All))
All=All[i1:i2] #i=1,2,3
c.retrieve(
    'cams-global-atmospheric-composition-forecasts',
    {
        'date': dt+'/'+dt,
        'type': 'forecast',
        'format': 'grib',
        'time': hr,
        'model_level': kk,
        'variable':All,
        'leadtime_hour': [str(i) for i in range(0,121,3)],
        'area': [ 55, 40, -15, 180, ],
    },
    'allEA_'+nm+'.grib')