NEMS配置生成
项目描述
NEMSpy
NEMSpy为使用编译的NEMS二进制文件(不包括在内)运行的耦合建模应用程序生成配置文件(nems.configure、config.rc、model_configure、atm_namelist.rc)。
pip install nemspy
NEMS实现了国家统一预测能力(NUOPC),为NEMS构建的配置文件也将适用于大多数NUOPC应用程序。
文档可在https://nemspy.readthedocs.io找到
组织/责任
NEMSpy由美国联邦政府机构国家海洋和大气管理局(NOAA)的海岸海洋建模分支(CMMB)开发。
- Zachary Burnett(《首发》) - zachary.burnett@noaa.gov
- Saeed Moghimi - saeed.moghimi@noaa.gov
- Jaime Calzada(过往)
用法
from datetime import datetime, timedelta
from pathlib import Path
from nemspy import ModelingSystem
from nemspy.model import ADCIRCEntry, AtmosphericForcingEntry, WaveWatch3ForcingEntry
# directory to which configuration files should be written
output_directory = Path(__file__).parent / 'nems_configuration'
# directory containing forcings
forcings_directory = Path(__file__).parent / 'forcings'
# model run time
start_time = datetime(2020, 6, 1)
duration = timedelta(days=1)
end_time = start_time + duration
# returning interval of main run sequence
interval = timedelta(hours=1)
# model entries
ocean_model = ADCIRCEntry(processors=11, Verbosity='max', DumpFields=False)
atmospheric_mesh = AtmosphericForcingEntry(
    filename=forcings_directory / 'wind_atm_fin_ch_time_vec.nc', processors=1
)
wave_mesh = WaveWatch3ForcingEntry(
    filename=forcings_directory / 'ww3.Constant.20151214_sxy_ike_date.nc', processors=1
)
# instantiate model system with model entries
nems = ModelingSystem(
    start_time=start_time,
    end_time=end_time,
    interval=interval,
    ocn=ocean_model,
    atm=atmospheric_mesh,
    wav=wave_mesh,
)
# form connections between models
nems.connect('ATM', 'OCN')
nems.connect('WAV', 'OCN')
# define execution order
nems.sequence = [
    'ATM -> OCN',
    'WAV -> OCN',
    'ATM',
    'WAV',
    'OCN',
]
# write configuration files to the given directory
nems.write(directory=output_directory, overwrite=True, include_version=True)
输出
nems.configure
# `nems.configure` generated with NEMSpy 1.0.0
# EARTH #
EARTH_component_list: ATM WAV OCN
EARTH_attributes::
  Verbosity = off
::
# ATM #
ATM_model:                      atmesh
ATM_petlist_bounds:             0 0
ATM_attributes::
  Verbosity = off
::
# WAV #
WAV_model:                      ww3data
WAV_petlist_bounds:             1 1
WAV_attributes::
  Verbosity = off
::
# OCN #
OCN_model:                      adcirc
OCN_petlist_bounds:             2 12
OCN_attributes::
  Verbosity = max
  DumpFields = false
::
# Run Sequence #
runSeq::
  @3600
    ATM -> OCN   :remapMethod=redist
    WAV -> OCN   :remapMethod=redist
    ATM
    WAV
    OCN
  @
::
model_configure
# `model_configure` generated with NEMSpy 1.0.0
total_member:            1
print_esmf:              .true.
namelist:                atm_namelist.rc
PE_MEMBER01:             13
start_year:              2020
start_month:             6
start_day:               1
start_hour:              0
start_minute:            0
start_second:            0
nhours_fcst:             24
RUN_CONTINUE:            .false.
ENS_SPS:                 .false.
config.rc
# `config.rc` generated with NEMSpy 1.0.0
 atm_dir: ~/forcings
 atm_nam: wind_atm_fin_ch_time_vec.nc
 wav_dir: ~/forcings
 wav_nam: ww3.Constant.20151214_sxy_ike_date.nc
相关项目
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
         nemspy-1.0.8.tar.gz  (20.7 kB 查看哈希值)
      
    构建分发
         nemspy-1.0.8-py3-none-any.whl  (23.1 kB 查看哈希值)