Skip to main content

NEMS configuration generation

Project description

NEMSpy

tests codecov build version license style

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

This version

1.0.3

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.3.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

nemspy-1.0.3-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file nemspy-1.0.3.tar.gz.

File metadata

  • Download URL: nemspy-1.0.3.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for nemspy-1.0.3.tar.gz
Algorithm Hash digest
SHA256 df528601dcb387027492cadb6d4a07e097a94a95b9243367ecc732ca41b79469
MD5 9fdfa153c398ff1574fbc8907b1e2c0f
BLAKE2b-256 47ea23ae098e858757e3eb373318728eaf7058e2267e3daec1e7161df85a4a06

See more details on using hashes here.

Provenance

File details

Details for the file nemspy-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: nemspy-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for nemspy-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f1b4544cb8f730a7bbe302bcccf0bb7cb3a07dc5d41f5dff694a545d7e40da1c
MD5 10371e2dcf52ea775d0e319b8c83f661
BLAKE2b-256 489651246672c06db4171948e8ee6c5f58b62ca2daba4e6f1c7b8575174739c8

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page