小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

在这里插入图片描述

1. 数据下载(ERA5)

参考:批量下载ERA5数据(Python+IDM)

新技能 get!

main idea 是从Climate Data Store https://cds.climate.copernicus.eu/cdsapp#!/home 获取url后通过IDM批量下载

import cdsapi
import calendar
from subprocess import call


def idmDownloader(task_url, folder_path, file_name):
    """
    IDM下载器
    :param task_url: 下载任务地址
    :param folder_path: 存放文件夹
    :param file_name: 文件名
    :return:
    """
    # IDM安装目录
    idm_engine = "C:\\Program Files (x86)\\Internet Download Manager\\IDMan.exe"
    # 将任务添加至队列
    call([idm_engine, '/d', task_url, '/p', folder_path, '/f', file_name, '/a'])
    # 开始任务队列
    call([idm_engine, '/s'])


if __name__ == '__main__':
    c = cdsapi.Client()  # 创建用户

    # 数据信息字典
    dic = {
        'product_type': 'reanalysis',  # 产品类型
        'format': 'grib',  # 数据格式
        'variable':  [
            'geopotential','relative_humidity','specific_humidity',
            'temperature','u_component_of_wind','v_component_of_wind'
        ],  # 变量名称
        'pressure_level': [
            '1','2','3',
           '5','7','10',
           '20','30','50', 
           '70', '100','125', 
           '150', '175',
           '200', '225', '250',
           '300', '350', '400',
           '450', '500', '550',
           '600', '650', '700',
           '750', '775', '800',
           '825', '850', '875',
           '900', '925', '950',
           '975', '1000',
       ],
        'year': '2018',  # 年,设为空
        'month': '05',  # 月,设为空
        'day': [  '01', '02','03','04','05','06','07',],  # 日,设为空
        'time': [  # 小时
             '00:00', '06:00', '12:00',
            '18:00'
        ],
        'area': [90, -180, 45, 180],
    }
    
    # 通过循环批量下载1979年到2020年所有月份数据
    '''
    for y in range(1979, 2021):  # 遍历年
        for m in range(1, 13):  # 遍历月
            day_num = calendar.monthrange(y, m)[1]  # 根据年月,获取当月日数        
            # 将年、月、日更新至字典中
            dic['year'] = str(y)
            dic['month'] = str(m).zfill(2)
            dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]
'''
r = c.retrieve('reanalysis-era5-pressure-levels', dic, )  # 文件
url = r.location  # 获取文件下载地址
path = 'E:\\ERA5\\'  # 存放文件夹
filename = 'pressure'+str(2018) + str(5).zfill(2) + '.grib'  # 文件名
idmDownloader(url, path, filename)  # 添加进IDM中下载

以上是三维数据的下载,单层数据的下载同理:

import cdsapi
import calendar
from subprocess import call


if __name__ == '__main__':
    c = cdsapi.Client()  # 创建用户

    # 数据信息字典
    dic = {
        'product_type': 'reanalysis',  # 产品类型
        'format': 'grib',  # 数据格式
        'variable':  [
            '10m_u_component_of_wind', '10m_v_component_of_wind', '2m_temperature',
            'mean_sea_level_pressure', 'sea_surface_temperature', 'skin_temperature',
            'snow_albedo', 'snow_depth', 'snowfall',
            'soil_temperature_level_1', 'soil_type', 'surface_pressure',
            'total_precipitation','soil_temperature_level_2',
            'soil_temperature_level_3','soil_temperature_level_4',
           'volumetric_soil_water_layer_1','volumetric_soil_water_layer_2',
           'volumetric_soil_water_layer_3', 'volumetric_soil_water_layer_4',
        ],
        'year': '2018',  # 年,设为空
        'month': '05',  # 月,设为空
        'day': [  '01', '02','03','04','05','06','07',],  # 日,设为空
        'time': [  # 小时
             '00:00', '06:00', '12:00',
            '18:00'
        ],
        'area': [90, -180, 45, 180],
    }


    # 通过循环批量下载1979年到2020年所有月份数据
    '''
    for y in range(1979, 2021):  # 遍历年
        for m in range(1, 13):  # 遍历月
            day_num = calendar.monthrange(y, m)[1]  # 根据年月,获取当月日数
            # 将年、月、日更新至字典中
            dic['year'] = str(y)
            dic['month'] = str(m).zfill(2)
            dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]
'''
r = c.retrieve('reanalysis-era5-single-levels', dic, )  # 文件
url = r.location  # 获取文件下载地址
path = 'E:\\ERA5\\'  # 存放文件夹
filename = 'single'+str(2018) + str(5).zfill(2) + '.grib'  # 文件名
idmDownloader(url, path, filename)  # 添加进IDM中下载

2. WPS 前处理

2.1 修改namelist.wps

&share
 wrf_core = 'ARW',
 max_dom =1,
 start_date = '2018-05-01_12:00:00','2019-09-04_12:00:00',  # 模拟开始&结束日期
 end_date   = '2018-05-07_00:00:00','2019-09-04_12:00:00',
 interval_seconds = 21600   # 模拟间隔
/

&geogrid
 parent_id         =   1,
 parent_grid_ratio =   1,
 i_parent_start    =   1,
 j_parent_start    =   1,
 e_we              =  150,
 e_sn              =  150,
 geog_data_res = '10m',
 dx = 45000,
 dy = 45000,
 map_proj = 'polar',
 ref_lat   =  90.00,
 ref_lon   =  0.0,
 truelat1  =  60.0,
 truelat2  =  60.0,
 stand_lon =  0.0,
 geog_data_path = '/public/home/zyh/WRF/Build_WRF/WPS_GEOG/'
/

&ungrib
 out_format = 'WPS',
 prefix = 'FILE',
/

&metgrid
 fg_name = 'FILE'
/
~
geogrid

修改完后在WPS文件夹下执行geogrid.exe

./geogrid.exe

执行成功后会产生geo_em.d01.nc文件

ls -lah geo_em.d01.nc
ungrib

首先创建链接

ln -sf ungrib/Variable_Tables/Vtable.ECMWF  Vtable

随后连接数据

./link_grib.csh ../ERA5/*.grib

成功后出现GRIBFILE.AAA, GRIBFILE.AAB 等文件
之后运行ungrib

./ungrib.exe

成功后出现FILE:2018-05-06_00等文件

metgrid

直接运行metgrid.exe

./metgrid.exe

成功后出现met_em.d01.xxxx-xx-xx_xx:xx:xx.nc 格式的文件

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: wrf-chem数据下载的相关网址链接: 1. NCEP/NCAR Reanalysis I: ftp://ftp.cdc.noaa.gov/Datasets/ncep.reanalysis.dailyavgs/surface/ 2. Chemical Transport Model (CTM) data from the GEOS-Chem group: https://acmg.seas.harvard.edu/geos/ 3. Emissions data from the Emissions Database for Global Atmospheric Research (EDGAR): https://edgar.jrc.ec.europa.eu/ 4. The Community Multi-scale Air Quality (CMAQ) modeling system data: https://www.epa.gov/air-research/community-multiscale-air-quality-cmaq-modeling-system 请注意,不同的数据来源可能需要不同的许可证才能访问,请确保您具有访问所需数据的合法资格。 ### 回答2: WRF-Chem是一种大气化学模型,它用于模拟大气中化学物种的输运和转化过程。在建立WRF-Chem模型之,我们需要收集和处理一些数据,以确保模型的准确性和可靠性。这些数据包括地理信息、排放数据、气象数据和化学初始和边界条件等。 首先,地理信息数据是建立WRF-Chem模型的基础。这些数据包括经纬度、高程和土地覆盖类型等信息,可以用于生成地形和表面辐射强度图。我们可以在https://www.ngdc.noaa.gov/上下载世界各地的地理数据。 其次,排放数据是描述大气中污染物来源和排放速率的关键数据。这些数据包括人工排放和自然排放两种来源。人工排放包括工业、交通和农业等活动产生的污染物,自然排放包括植被的插值和火山喷发等自然事件。各个国家和地区的排放数据可在Emission Database for Global Atmospheric Research (EDGAR) (https://www.sciencedirect.com/science/article/pii/S1352231009003904 )上下载。 第三,气象数据WRF-Chem模型的必需数据。气象数据包括气温、风速、风向和湿度等逐小时或逐分钟的数据。我们可以在National Centers for Environmental Prediction (NCEP) (https://www.ncdc.noaa.gov/data-access/model-data/model-datasets)或European Center for Medium-Range Weather Forecasts (ECMWF) (https://www.ecmwf.int/en/forecasts/datasets)上下载气象数据。 最后,化学初始和边界条件数据是指大气中化学物种的浓度和化学反应速率等信息。这些数据通常由现场观测或其他化学模型得出,可以在全球化学输送模型 (GEOS-Chem) (http://acmg.seas.harvard.edu/geos/)上获取。 总之,WRF-Chem模型的建立需要以上四个基本数据。这些数据可以在相关数据下载网址上获取。但是,这些数据的质量和格式都需要我们认真审查和处理,以确保WRF-Chem模型的准确性和可靠性。 ### 回答3: wrf-chem是一种用于模拟大气物质输运和化学反应的数值模型。在进行wrf-chem模拟时,需要使用许多与气体和颗粒物浓度、化学反应等相关的数据。这些数据可以通过官方网站和其他一些数据平台进行下载。 其中,官方网站是wrf-chem模型最全面的数据源,开发者提供了许多与模型运行相关的数据和工具。这些数据包括了不同时间尺度上的气象模型、气体和颗粒物浓度模型、化学反应模型、辐射强度模型等。此外,网站中还提供了许多工具,例如反求模块、统计模块等,可以用于模型调试和后处理下载方式为直接点击网站上的下载链接,选择相应的数据和工具即可。 另外,还有一些数据平台也可以提供相关数据下载,例如NCAR Data Portal、Earth System Grid、国家气象信息中心等。这些平台通常提供了一些免费的数据下载服务,但需要用户进行注册和认证。同时,有些数据需要进行特定的格式转换,才能够被wrf-chem模型所使用。 总体来说,wrf-chem模型所需的数据比较丰富,但是通过官方网站和其他数据平台的配合,用户可以方便地获取这些数据,并进行相应的分析和后处理
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值