Python wrapper for the NOAA Environmental Modeling System
Project description
NEMSpy
Python wrapper for the NOAA Environmental Modeling System
This repository implements the National Unified Operational Prediction Capability (NUOPC).
Usage:
from datetime import datetime, timedelta
from nemspy import ModelingSystem
from nemspy.model import ADCIRC, AtmosphericMesh, NationalWaterModel, WaveMesh
# returning interval of main run sequence
start_time = datetime(2020, 6, 1)
duration = timedelta(days=1)
interval = timedelta(hours=1)
output_directory = '~/nems_configuration/'
# model entries
ocean_model = ADCIRC(processors=300, verbose=True, DumpFields=False)
wave_mesh = WaveMesh('~/ww3.Constant.20151214_sxy_ike_date.nc')
atmospheric_mesh = AtmosphericMesh('~/wind_atm_fin_ch_time_vec.nc')
hydrological_model = NationalWaterModel(processors=769, DebugFlag=0)
# instantiate model system with a specified order of execution
nems = ModelingSystem(start_time, duration, interval,
ocean=ocean_model, wave=wave_mesh,
atmospheric=atmospheric_mesh,
hydrological=hydrological_model)
# form connections between models using `.connect()`
nems.connect('atmospheric', 'ocean')
nems.connect('wave', 'ocean')
nems.connect('atmospheric', 'hydrological')
nems.connect('wave', 'hydrological')
nems.connect('ocean', 'hydrological')
# write configuration to file
nems.write(output_directory)
Output:
nems.configure
#############################################
#### NEMS Run-Time Configuration File #####
#############################################
# EARTH #
EARTH_component_list: ATM WAV OCN HYD
EARTH_attributes::
Verbosity = min
::
# OCN #
OCN_model: adcirc
OCN_petlist_bounds: 0 299
OCN_attributes::
Verbosity = max
DumpFields = false
::
# WAV #
WAV_model: ww3data
WAV_petlist_bounds: 300 300
WAV_attributes::
Verbosity = min
::
# ATM #
ATM_model: atmesh
ATM_petlist_bounds: 301 301
ATM_attributes::
Verbosity = min
::
# HYD #
HYD_model: nwm
HYD_petlist_bounds: 302 1070
HYD_attributes::
Verbosity = min
DebugFlag = 0
::
# Run Sequence #
runSeq::
@3600
ATM -> OCN :remapMethod=redist
WAV -> OCN :remapMethod=redist
ATM -> HYD :remapMethod=redist
WAV -> HYD :remapMethod=redist
OCN -> HYD :remapMethod=redist
OCN
WAV
ATM
HYD
@
::
config.rc
atm_dir: ~
atm_nam: wind_atm_fin_ch_time_vec.nc
wav_dir: ~
wav_nam: ww3.Constant.20151214_sxy_ike_date.nc
model_configure
core: gfs
print_esmf: .true.
nhours_dfini=0
#nam_atm +++++++++++++++++++++++++++
nlunit: 35
deltim: 900.0
fhrot: 0
namelist: atm_namelist
total_member: 1
grib_input: 0
PE_MEMBER01: 782
PE_MEMBER02
PE_MEMBER03
PE_MEMBER04
PE_MEMBER05
PE_MEMBER06
PE_MEMBER07
PE_MEMBER08
PE_MEMBER09
PE_MEMBER10
PE_MEMBER11
PE_MEMBER12
PE_MEMBER13
PE_MEMBER14
PE_MEMBER15
PE_MEMBER16
PE_MEMBER17
PE_MEMBER18
PE_MEMBER19:
PE_MEMBER20:
PE_MEMBER21:
# For stochastic perturbed runs - added by Dhou and Wyang
--------------------------------------------------------
# ENS_SPS, logical control for application of stochastic perturbation scheme
# HH_START, start hour of forecast, and modified ADVANCECOUNT_SETUP
# HH_INCREASE and HH_FINAL are fcst hour increment and end hour of forecast
# ADVANCECOUNT_SETUP is an integer indicating the number of time steps between integration_start and the time when model state is saved for the _ini of the GEFS_Coupling, currently is 0h.
HH_INCREASE: 600
HH_FINAL: 600
HH_START: 0
ADVANCECOUNT_SETUP: 0
ENS_SPS: .false.
HOUTASPS: 10000
#ESMF_State_Namelist +++++++++++++++
RUN_CONTINUE: .false.
#
dt_int: 900
dt_num: 0
dt_den: 1
start_year: 2020
start_month: 6
start_day: 1
start_hour: 0
start_minute: 0
start_second: 0
nhours_fcst: 24
restart: .false.
nhours_fcst1: 24
im: 192
jm: 94
global: .true.
nhours_dfini: 0
adiabatic: .false.
lsoil: 4
passive_tracer: .true.
dfilevs: 64
ldfiflto: .true.
num_tracers: 3
ldfi_grd: .false.
lwrtgrdcmp: .false.
nemsio_in: .false.
#jwstart added quilt
###############################
#### Specify the I/O tasks ####
###############################
quilting: .false. #For asynchronous quilting/history writes
read_groups: 0
read_tasks_per_group: 0
write_groups: 1
write_tasks_per_group: 3
num_file: 3 #
filename_base: 'SIG.F' 'SFC.F' 'FLX.F'
file_io_form: 'bin4' 'bin4' 'bin4'
file_io: 'DEFERRED' 'DEFERRED' 'DEFERRED' 'DEFERRED' #
write_dopost: .false. # True--> run do on quilt
post_gribversion: grib1 # True--> grib version for post output files
gocart_aer2post: .false.
write_nemsioflag: .TRUE. # True--> Write nemsio run history files
nfhout: 3
nfhout_hf: 1
nfhmax_hf: 0
nsout: 0
io_recl: 100
io_position: ' '
io_action: 'WRITE'
io_delim: ' '
io_pad: ' '
#jwend
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-0.2.4.tar.gz
(13.4 kB
view details)
Built Distribution
nemspy-0.2.4-py3-none-any.whl
(14.9 kB
view details)
File details
Details for the file nemspy-0.2.4.tar.gz
.
File metadata
- Download URL: nemspy-0.2.4.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc1050990065255bf4bfa50a1c336454f5d103d3a7ff3b417712e442190ef4a |
|
MD5 | 18c287bdea356f69ab251914ee799bfd |
|
BLAKE2b-256 | 24df5eaca9d6475f5b00e42ffce394c58f117a0ffb9092a4c1b857129d79ff1b |
Provenance
File details
Details for the file nemspy-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: nemspy-0.2.4-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc1507f07dc4fb6120a5016904afff1ea948334151952f623b313b04b3070250 |
|
MD5 | 218c7de3a4b717888d64a96658bdd907 |
|
BLAKE2b-256 | e2aa201c1ed422a7d36b0580833da2b91894f25b2048c51bb464097e24de09ce |