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 查看哈希值)