NEMS configuration generation
Project description
NEMSpy
NEMSpy generates configuration files (nems.configure
, config.rc
, model_configure
, atm_namelist.rc
)
for coupled modeling applications run with a compiled NEMS binary (not included).
NEMS implements the National Unified Operational Prediction Capability (NUOPC), and configuration files built for NEMS will also work for most NUOPC applications.
Usage:
from datetime import datetime, timedelta
from pathlib import Path
from nemspy import ModelingSystem
from nemspy.model import ADCIRCEntry, AtmosphericMeshEntry, WaveWatch3MeshEntry
# 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 = AtmosphericMeshEntry(
filename=forcings_directory / 'wind_atm_fin_ch_time_vec.nc', processors=1
)
wave_mesh = WaveWatch3MeshEntry(
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)
Output:
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
Related:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nemspy-1.0.1.tar.gz
(20.7 kB
view details)
Built Distribution
nemspy-1.0.1-py3-none-any.whl
(23.2 kB
view details)
File details
Details for the file nemspy-1.0.1.tar.gz
.
File metadata
- Download URL: nemspy-1.0.1.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f72618f12a1b6ef487b6baa5f95160cec557f93ec22c1ac04b5183c9c68e6d1d |
|
MD5 | 14506b3ec62bd7bda1d152e520d2b7c6 |
|
BLAKE2b-256 | 3c9f88d636ca2a0db112df0b1def6c2b1f792337bfe55c0245a41e1beed17726 |
Provenance
File details
Details for the file nemspy-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: nemspy-1.0.1-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4f9295975a23b4cce5d7a2da8a5509f44dcfb906d1c0698f50ea91adc1658ed |
|
MD5 | d358f4c5b9b80d7b08fae08323148685 |
|
BLAKE2b-256 | 4503818425518301d2e625a2b7f062e6f68fa9b22ab8f89cf9c9d39e68618fc4 |