{
"title": "SchismCSIROConfig",
"type": "object",
"properties": {
"model_type": {
"const": "schismcsiro",
"default": "schismcsiro",
"description": "The model type for SCHISM.",
"title": "Model Type",
"type": "string"
},
"template": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/rompy/templates/schismcsiro",
"description": "The path to the model template",
"title": "Template"
},
"checkout": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "main",
"description": "The git branch to use if the template is a git repo",
"title": "Checkout"
},
"grid": {
"$ref": "#/$defs/SCHISMGrid",
"description": "The model grid"
},
"data": {
"$ref": "#/$defs/SCHISMData",
"description": "Model inputs"
},
"project": {
"default": "WAXA",
"description": "TODO",
"title": "Project",
"type": "string"
},
"utc_start": {
"default": 0,
"description": "TODO",
"title": "Utc Start",
"type": "integer"
},
"time_step": {
"default": 120.0,
"description": "TODO",
"title": "Time Step",
"type": "number"
},
"msc2": {
"default": 36,
"description": "same as msc in .nml ... for consitency check between SCHISM and WWM",
"title": "Msc2",
"type": "integer"
},
"mdc2": {
"default": 36,
"description": "same as mdc in .nml",
"title": "Mdc2",
"type": "integer"
},
"ihfskip": {
"default": 720,
"description": "stack spool; every ihfskip steps will be put into 1_*, 2_*, etc... use 22320.0 for 31 days; 5040 for 7 days; 21600 for 30 days; 20880 for 29 days",
"title": "Ihfskip",
"type": "number"
},
"icou_elfe_wwm": {
"default": 1,
"description": "If WWM is used, set coupling/decoupling flag. Not used if USE_WWM is distabled in Makefile. 0: decoupled so 2 models will run independently; 1: full coupled (elevation, vel, and wind are all passed to WWM); 2: elevation and currents in wwm, no wave force in SCHISM; 3: no elevation and no currents in wwm, wave force in SCHISM; 4: elevation but no currents in wwm, wave force in SCHISM; 5: elevation but no currents in wwm, no wave force in SCHISM; 6: no elevation but currents in wwm, wave force in SCHISM; 7: no elevation but currents in wwm, no wave force in SCHISM; Note that all these parameters must be present in this file (even though not used).",
"title": "Icou Elfe Wwm",
"type": "integer"
},
"nstep_wwm": {
"default": 3,
"description": "call WWM every this many time steps. If /=1, consider using quasi-steady mode in WWM",
"title": "Nstep Wwm",
"type": "integer"
},
"deltc": {
"default": 360,
"description": "TODO",
"title": "Deltc",
"type": "integer"
},
"h1_bcc": {
"default": 50.0,
"description": "Baroclinicity calculation in off/nearshore with iunder_deep=ibc=0. The 'below-bottom' gradient is zeroed out if h>=h2_bcc (i.e. like Z) or uses const extrap (i.e. like terrain-following) if h<=h1_bcc(<h2_bcc) (and linear transition in between based on local depth)",
"title": "H1 Bcc",
"type": "number"
},
"h2_bcc": {
"default": 100.0,
"description": "Baroclinicity calculation in off/nearshore with iunder_deep=ibc=0. The 'below-bottom' gradient is zeroed out if h>=h2_bcc (i.e. like Z) or uses const extrap (i.e. like terrain-following) if h<=h1_bcc(<h2_bcc) (and linear transition in between based on local depth)",
"title": "H2 Bcc",
"type": "number"
},
"h_bcc1": {
"default": 100.0,
"description": "Cut-off depth for cubic spline interpolation near bottom when computing horizontal gradients",
"title": "H Bcc1",
"type": "number"
},
"thetai": {
"default": 0.8,
"description": "Implicitness factor (0.5<thetai<=1).",
"title": "Thetai",
"type": "number"
},
"iwbl": {
"default": 0,
"description": "wave boundary layer formulation (used only if USE_WMM and icou_elfe_wwm/=0 and nchi=1. If icou_elfe_wwm=0, set iwbl=0): 1-modified Grant-Madsen formulation; 2-Soulsby (1997)",
"title": "Iwbl",
"type": "integer"
},
"slam0": {
"default": 120.0,
"description": "Reference latitude for beta-plane approximation when ncor=1 (not used if ics=2)",
"title": "Slam0",
"type": "number"
},
"sfea0": {
"default": -29.0,
"description": "Reference latitude for beta-plane approximation when ncor=1 (not used if ics=2)",
"title": "Sfea0",
"type": "number"
},
"nchi": {
"default": -1,
"description": "bottom friction",
"title": "Nchi",
"type": "integer"
},
"dzb_decayYN": {
"default": "!",
"description": "TODO",
"title": "Dzb Decayyn",
"type": "string"
},
"rlatitude": {
"default": -29,
"description": "if ncor=-1",
"title": "Rlatitude",
"type": "number"
},
"ic_elev": {
"default": 0,
"description": "elevation initial condition flag for cold start only",
"title": "Ic Elev",
"type": "integer"
},
"inv_atm_bnd": {
"default": 1,
"description": "TODO",
"title": "Inv Atm Bnd",
"type": "integer"
},
"ibtrack_openbndYN": {
"default": "!",
"description": "TODO",
"title": "Ibtrack Openbndyn",
"type": "string"
},
"iwindoffYN": {
"default": "!",
"description": "TODO",
"title": "Iwindoffyn",
"type": "string"
},
"iwind_form": {
"default": 1,
"description": "Needed if nws/=0 !usually use -1, trialling -2 to see if makes a difference",
"title": "Iwind Form",
"type": "integer"
},
"sav_cdYN": {
"default": "!",
"description": "Save current direction (T/F)",
"title": "Sav Cdyn",
"type": "string"
},
"iout_sta": {
"default": 0,
"description": "Station output option",
"title": "Iout Sta",
"type": "integer"
},
"lindsprdeg": {
"default": "F",
"description": "Linear interpolation of directional spread (T/F)",
"title": "Lindsprdeg",
"type": "string"
},
"wbdm": {
"default": 90,
"description": "Wave boundary data mode (1-4)",
"title": "Wbdm",
"type": "integer"
},
"extrapYN": {
"default": "!",
"description": "Extrapolation of wave boundary data (T/F)",
"title": "Extrapyn",
"type": "string"
},
"extrap": {
"default": "T",
"description": "Extrapolation of wave boundary data (T/F)",
"title": "Extrap",
"type": "string"
},
"windYN": {
"default": "!",
"description": "Wind data (T/F)",
"title": "Windyn",
"type": "string"
},
"filewind": {
"default": "wind.dat",
"description": "Name of the wind data file",
"title": "Filewind",
"type": "string"
},
"currYN": {
"default": "!",
"description": "Current data (T/F)",
"title": "Curryn",
"type": "string"
},
"walvYN": {
"default": "!",
"description": "Wave-induced current data (T/F)",
"title": "Walvyn",
"type": "string"
},
"mesin": {
"default": 1,
"description": "Input message level (0-2)",
"title": "Mesin",
"type": "integer"
},
"mesbf": {
"default": 2,
"description": "Output message level (0-2)",
"title": "Mesbf",
"type": "integer"
},
"fricc": {
"default": 0.11,
"description": "Bottom friction factor",
"title": "Fricc",
"type": "number"
},
"ibreak": {
"default": 1,
"description": "Wave breaking parameterization (1-3)",
"title": "Ibreak",
"type": "integer"
},
"brcrYN": {
"default": "",
"description": "Wave breaking parameterization (T/F)",
"title": "Brcryn",
"type": "string"
},
"melim": {
"default": 1,
"description": "Wave energy limit (1-3)",
"title": "Melim",
"type": "integer"
},
"limfak": {
"default": 0.1,
"description": "Wave energy limit factor",
"title": "Limfak",
"type": "number"
},
"lsourceswam": {
"default": "F",
"description": "Source term for SWAN (T/F)",
"title": "Lsourceswam",
"type": "string"
},
"deltc_out": {
"default": 3600,
"description": "Output time step (s)",
"title": "Deltc Out",
"type": "integer"
},
"definetc": {
"default": -1,
"description": "Definition of output time step (1-3)",
"title": "Definetc",
"type": "integer"
},
"outstyle": {
"default": "NC",
"description": "Output style (NC/WW3)",
"title": "Outstyle",
"type": "string"
},
"wwm1": {
"default": 1,
"description": "sig. height (m) {sigWaveHeight} 2D",
"title": "Wwm1",
"type": "integer"
},
"wwm2": {
"default": 1,
"description": "Mean average period (sec) - TM01 {meanWavePeriod} 2D",
"title": "Wwm2",
"type": "integer"
},
"wwm3": {
"default": 0,
"description": "Zero down crossing period for comparison with buoy (s) - TM02 {zeroDowncrossPeriod} 2D",
"title": "Wwm3",
"type": "integer"
},
"wwm4": {
"default": 0,
"description": "Average period of wave runup/overtopping - TM10 {TM10} 2D",
"title": "Wwm4",
"type": "integer"
},
"wwm5": {
"default": 0,
"description": "Mean wave number (1/m) {meanWaveNumber} 2D",
"title": "Wwm5",
"type": "integer"
},
"wwm6": {
"default": 0,
"description": "Mean wave length (m) {meanWaveLength} 2D",
"title": "Wwm6",
"type": "integer"
},
"wwm7": {
"default": 0,
"description": "Mean average energy transport direction (degr) - MWD in NDBC? {meanWaveDirection} 2D",
"title": "Wwm7",
"type": "integer"
},
"wwm8": {
"default": 1,
"description": "Mean directional spreading (degr) {meanDirSpreading} 2D",
"title": "Wwm8",
"type": "integer"
},
"wwm9": {
"default": 1,
"description": "Discrete peak period (sec) - Tp {peakPeriod} 2D",
"title": "Wwm9",
"type": "integer"
},
"wwm10": {
"default": 0,
"description": "Continuous peak period based on higher order moments (sec) {continuousPeakPeriod} 2D",
"title": "Wwm10",
"type": "integer"
},
"wwm11": {
"default": 0,
"description": "Peak phase vel. (m/s) {peakPhaseVel} 2D",
"title": "Wwm11",
"type": "integer"
},
"wwm12": {
"default": 0,
"description": "Peak n-factor {peakNFactor} 2D",
"title": "Wwm12",
"type": "integer"
},
"wwm13": {
"default": 0,
"description": "Peak group vel. (m/s) {peakGroupVel} 2D",
"title": "Wwm13",
"type": "integer"
},
"wwm14": {
"default": 0,
"description": "Peak wave number {peakWaveNumber} 2D",
"title": "Wwm14",
"type": "integer"
},
"wwm15": {
"default": 0,
"description": "Peak wave length {peakWaveLength} 2D",
"title": "Wwm15",
"type": "integer"
},
"wwm16": {
"default": 1,
"description": "Peak (dominant) direction (degr) {dominantDirection} 2D",
"title": "Wwm16",
"type": "integer"
},
"wwm17": {
"default": 1,
"description": "Peak directional spreading {peakSpreading} 2D",
"title": "Wwm17",
"type": "integer"
},
"wwm18": {
"default": 1,
"description": "Discrete peak direction (radian?) {discretePeakDirectio} 2D",
"title": "Wwm18",
"type": "integer"
},
"wwm19": {
"default": 0,
"description": "Orbital vel. (m/s) {orbitalVelocity} 2D",
"title": "Wwm19",
"type": "integer"
},
"wwm20": {
"default": 0,
"description": "RMS Orbital vel. (m/s) {rmsOrbitalVelocity} 2D",
"title": "Wwm20",
"type": "integer"
},
"wwm21": {
"default": 0,
"description": "Bottom excursion period (sec?) {bottomExcursionPerio} 2D",
"title": "Wwm21",
"type": "integer"
},
"wwm22": {
"default": 0,
"description": "Bottom wave period (sec) {bottomWavePeriod} 2D",
"title": "Wwm22",
"type": "integer"
},
"wwm23": {
"default": 0,
"description": "Uresell number based on peak period {UresellNumber} 2D",
"title": "Wwm23",
"type": "integer"
},
"wwm24": {
"default": 0,
"description": "Friction velocity (m/s?) {frictionalVelocity} 2D",
"title": "Wwm24",
"type": "integer"
},
"wwm25": {
"default": 0,
"description": "Charnock coefficient {CharnockCoeff} 2D",
"title": "Wwm25",
"type": "integer"
},
"wwm26": {
"default": 0,
"description": "Rougness length {rougnessLength} 2D",
"title": "Wwm26",
"type": "integer"
},
"wwm27": {
"default": 0,
"description": "Roller energy dissipation rate (W/m\u00b2) @nodes {Drol} 2D",
"title": "Wwm27",
"type": "integer"
},
"wwm28": {
"default": 0,
"description": "Total wave energy dissipation rate by depth-induced breaking (W/m\u00b2) @nodes {wave_sbrtot} 2D",
"title": "Wwm28",
"type": "integer"
},
"wwm29": {
"default": 0,
"description": "Total wave energy dissipation rate by bottom friction (W/m\u00b2) @nodes {wave_sbftot} 2D",
"title": "Wwm29",
"type": "integer"
},
"wwm30": {
"default": 0,
"description": "Total wave energy dissipation rate by whitecapping (W/m\u00b2) @nodes {wave_sdstot} 2D",
"title": "Wwm30",
"type": "integer"
},
"wwm31": {
"default": 0,
"description": "Total wave energy dissipation rate by vegetation (W/m\u00b2) @nodes {wave_svegtot} 2D",
"title": "Wwm31",
"type": "integer"
},
"wwm32": {
"default": 0,
"description": "Total wave energy input rate from atmospheric forcing (W/m\u00b2) @nodes {wave_sintot} 2D",
"title": "Wwm32",
"type": "integer"
},
"wwm33": {
"default": 0,
"description": "WWM_energy vector {waveEnergyDirX,Y} 2D vector",
"title": "Wwm33",
"type": "integer"
},
"wwm34": {
"default": 0,
"description": "Vertical Stokes velocity (m.s-1) @sides and whole levels {stokes_wvel} 3D",
"title": "Wwm34",
"type": "integer"
},
"wwm35": {
"default": 0,
"description": "Wave force vector (m.s-2) computed by wwm @side centers and whole levels {waveForceX,Y} 3D vector",
"title": "Wwm35",
"type": "integer"
},
"wwm36": {
"default": 0,
"description": "Horizontal Stokes velocity (m.s-1) @nodes and whole levels {stokes_hvel} 3D vector",
"title": "Wwm36",
"type": "integer"
},
"wwm37": {
"default": 0,
"description": "Roller contribution to horizontal Stokes velocity (m.s-1) @nodes and whole levels {roller_stokes_hvel} 3D vector",
"title": "Wwm37",
"type": "integer"
},
"wwm31YN": {
"default": "!",
"description": "Total wave energy dissipation rate by vegetation (W/m2) @nodes {wave_svegtot} 2D",
"title": "Wwm31Yn",
"type": "string"
},
"wwm32YN": {
"default": "!",
"description": "Total wave energy input rate from atmospheric forcing (W/m2) @nodes {wave_sintot} 2D",
"title": "Wwm32Yn",
"type": "string"
},
"wwm33YN": {
"default": "!",
"description": "WWM_energy vector {waveEnergyDirX,Y} 2D vector",
"title": "Wwm33Yn",
"type": "string"
},
"wwm34YN": {
"default": "!",
"description": "Vertical Stokes velocity (m.s-1) @sides and whole levels {stokes_wvel} 3D",
"title": "Wwm34Yn",
"type": "string"
},
"wwm35YN": {
"default": "!",
"description": "Wave force vector (m.s-2) computed by wwm @side centers and whole levels {waveForceX,Y} 3D vector",
"title": "Wwm35Yn",
"type": "string"
},
"wwm36YN": {
"default": "!",
"description": "Horizontal Stokes velocity (m.s-1) @nodes and whole levels {stokes_hvel} 3D vector",
"title": "Wwm36Yn",
"type": "string"
},
"wwm37YN": {
"default": "!",
"description": "Roller contribution to horizontal Stokes velocity (m.s-1) @nodes and whole levels {roller_stokes_hvel} 3D vector ",
"title": "Wwm37Yn",
"type": "string"
},
"HS": {
"default": "T",
"description": "significant wave height",
"title": "Hs",
"type": "string"
},
"TM01": {
"default": "T",
"description": "mean period",
"title": "Tm01",
"type": "string"
},
"TM02": {
"default": "F",
"description": "zero-crossing mean period",
"title": "Tm02",
"type": "string"
},
"DM": {
"default": "T",
"description": "mean wave direction",
"title": "Dm",
"type": "string"
},
"DSPR": {
"default": "T",
"description": "directional spreading",
"title": "Dspr",
"type": "string"
},
"TPP": {
"default": "T",
"description": "peak period",
"title": "Tpp",
"type": "string"
},
"TPPD": {
"default": "T",
"description": "direaction of the peak ... check source code",
"title": "Tppd",
"type": "string"
},
"CPP": {
"default": "F",
"description": "peak phase velocity",
"title": "Cpp",
"type": "string"
},
"WNPP": {
"default": "F",
"description": "peak wave number",
"title": "Wnpp",
"type": "string"
},
"CGPP": {
"default": "F",
"description": "peak group speed",
"title": "Cgpp",
"type": "string"
},
"KPP": {
"default": "F",
"description": "peak wave number",
"title": "Kpp",
"type": "string"
},
"LPP": {
"default": "F",
"description": "peak wave length",
"title": "Lpp",
"type": "string"
},
"PEAKD": {
"default": "T",
"description": "peak direction",
"title": "Peakd",
"type": "string"
},
"DPEAK": {
"default": "T",
"description": "peak direction",
"title": "Dpeak",
"type": "string"
},
"PEAKDSPR": {
"default": "T",
"description": "peak directional spreading",
"title": "Peakdspr",
"type": "string"
},
"UBOT": {
"default": "F",
"description": "bottom exc. velocity",
"title": "Ubot",
"type": "string"
},
"ORBITAL": {
"default": "F",
"description": "bottom orbital velocity",
"title": "Orbital",
"type": "string"
},
"iouts": {
"default": 15,
"title": "Iouts",
"type": "string"
},
"nouts": {
"default": "'AWAC_in','AWAC_mid','AWAC_off','SPOT_1002','SPOT_1011','SPOT_1018','SPOT_1026'",
"description": "TODO",
"title": "Nouts",
"type": "string"
},
"xouts": {
"default": "115.6208687,115.5941886,115.58077,115.5942931,115.5830497,115.5807825,115.5960683",
"description": "TODO",
"title": "Xouts",
"type": "string"
},
"youts": {
"default": "-32.611605,-32.611605,-32.613682,-32.6253914,-32.6135870,-32.6294226,-32.6096741",
"description": "TODO",
"title": "Youts",
"type": "string"
},
"lsp2d": {
"default": "T",
"description": "TODO",
"title": "Lsp2D",
"type": "string"
},
"ac": {
"default": "T",
"description": "TODO",
"title": "Ac",
"type": "string"
},
"drampwafo": {
"default": 1.0,
"description": "TODO",
"title": "Drampwafo",
"type": "number"
},
"nadv": {
"default": 1,
"description": "TODO",
"title": "Nadv",
"type": "integer"
},
"drampwind": {
"default": 1.0,
"description": "TODO",
"title": "Drampwind",
"type": "number"
},
"dramp": {
"default": 1.0,
"description": "TODO",
"title": "Dramp",
"type": "number"
},
"wwminput_history_DEP": {
"default": "F",
"description": "TODO",
"title": "Wwminput History Dep",
"type": "string"
},
"wwminput_history_TAUW": {
"default": "F",
"description": "TODO",
"title": "Wwminput History Tauw",
"type": "string"
},
"wwminput_history_TAUHF": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Tauhf",
"type": "string"
},
"wwminput_history_TAUTOT": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Tautot",
"type": "string"
},
"wwminput_history_STOKESSURFX": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Stokessurfx",
"type": "string"
},
"wwminput_history_STOKESSURFY": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Stokessurfy",
"type": "string"
},
"wwminput_history_STOKESBAROX": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Stokesbarox",
"type": "string"
},
"wwminput_history_STOKESBAROY": {
"default": "T",
"description": "TODO",
"title": "Wwminput History Stokesbaroy",
"type": "string"
},
"wwminput_station_DEP": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Dep",
"type": "string"
},
"wwminput_station_TAUW": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Tauw",
"type": "string"
},
"wwminput_station_TAUHF": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Tauhf",
"type": "string"
},
"wwminput_station_TAUTOT": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Tautot",
"type": "string"
},
"wwminput_station_STOKESSURFX": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Stokessurfx",
"type": "string"
},
"wwminput_station_STOKESSURFY": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Stokessurfy",
"type": "string"
},
"wwminput_station_STOKESBAROX": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Stokesbarox",
"type": "string"
},
"wwminput_station_STOKESBAROY": {
"default": "T",
"description": "TODO",
"title": "Wwminput Station Stokesbaroy",
"type": "string"
},
"wwminput_station_OUTSTYLE": {
"default": "NO",
"description": "'NO' no output 'STE' classic station output (default) 'NC' for netcdf output",
"title": "Wwminput Station Outstyle",
"type": "string"
},
"wwminput_LHOTF": {
"default": "F",
"description": "wwminput Write hotfile",
"title": "Wwminput Lhotf",
"type": "string"
},
"param_nhot": {
"default": 0,
"description": "use 1 to write out hotstart: output *_hotstart every 'hotout_write' steps",
"title": "Param Nhot",
"type": "integer"
},
"param_nhot_writeYN": {
"default": "!",
"description": "enables or disables (!) the nhot write field",
"title": "Param Nhot Writeyn",
"type": "string"
},
"param_nhot_write": {
"default": 22320.0,
"description": "if enabled when nhot and nhotwriteYN enabled then must be a multiple of ihfskip if nhot=1",
"title": "Param Nhot Write",
"type": "number"
},
"wwminput_LHOTR": {
"default": "F",
"description": "Use hotstart file (see &HOTFILE section)",
"title": "Wwminput Lhotr",
"type": "string"
},
"wwminput_LINID": {
"default": "T",
"description": " Initial condition; F for default; use T if using WW3 as i.c. etc",
"title": "Wwminput Linid",
"type": "string"
},
"param_iof_hydro1": {
"default": 1,
"description": "output 0: off; 1: on - elev. [m] {elev} 2D - Default 1",
"title": "Param Iof Hydro1",
"type": "integer"
},
"param_iof_hydro2": {
"default": 0,
"description": "output 0: off; 1: on - air pressure [Pa] {air_pressure} 2D - Default 0",
"title": "Param Iof Hydro2",
"type": "integer"
},
"param_iof_hydro3": {
"default": 0,
"description": "output 0: off; 1: on - air temperature [C] {air_temperature} 2D - Default 0",
"title": "Param Iof Hydro3",
"type": "integer"
},
"param_iof_hydro4": {
"default": 0,
"description": "output 0: off; 1: on - Specific humidity [-] {specific_humidity} 2D - Default 0",
"title": "Param Iof Hydro4",
"type": "integer"
},
"param_iof_hydro5": {
"default": 0,
"description": "output 0: off; 1: on - solar (shortwave) radiation [W/m/m] {solar_radiation} 2D - Default 0",
"title": "Param Iof Hydro5",
"type": "integer"
},
"param_iof_hydro6": {
"default": 0,
"description": "output 0: off; 1: on - sensible flux (positive upward) [W/m/m] {sensible_flux} 2D - Default 0",
"title": "Param Iof Hydro6",
"type": "integer"
},
"param_iof_hydro7": {
"default": 0,
"description": "output 0: off; 1: on - latent heat flux (positive upward) [W/m/m] {latent_heat} 2D - Default 0",
"title": "Param Iof Hydro7",
"type": "integer"
},
"param_iof_hydro8": {
"default": 0,
"description": "output 0: off; 1: on - upward longwave radiation (positive upward) [W/m/m] {upward_longwave} 2D - Default 0",
"title": "Param Iof Hydro8",
"type": "integer"
},
"param_iof_hydro9": {
"default": 0,
"description": "output 0: off; 1: on - downward longwave radiation (positive downward) [W/m/m] {downward_longwave} 2D - Default 0",
"title": "Param Iof Hydro9",
"type": "integer"
},
"param_iof_hydro10": {
"default": 0,
"description": "output 0: off; 1: on - total flux=-flsu-fllu-(radu-radd) [W/m/m] {total_heat_flux} 2D - Default 0",
"title": "Param Iof Hydro10",
"type": "integer"
},
"param_iof_hydro11": {
"default": 0,
"description": "output 0: off; 1: on - evaporation rate [kg/m/m/s] {evaporation} 2D - Default 0",
"title": "Param Iof Hydro11",
"type": "integer"
},
"param_iof_hydro12": {
"default": 0,
"description": "output 0: off; 1: on - precipitation rate [kg/m/m/s] {precipitation} 2D - Default 0",
"title": "Param Iof Hydro12",
"type": "integer"
},
"param_iof_hydro13": {
"default": 0,
"description": "output 0: off; 1: on - Bottom stress vector [kg/m/s^2(Pa)] {bottom_stress} 2D vector - Default 0",
"title": "Param Iof Hydro13",
"type": "integer"
},
"param_iof_hydro14": {
"default": 0,
"description": "output 0: off; 1: on - wind velocity vector [m/s] {wind_speed} 2D vector - Default 0",
"title": "Param Iof Hydro14",
"type": "integer"
},
"param_iof_hydro15": {
"default": 0,
"description": "output 0: off; 1: on - wind stress vector [m^2/s/s] {wind_stress} 2D vector - Default 0",
"title": "Param Iof Hydro15",
"type": "integer"
},
"param_iof_hydro16": {
"default": 1,
"description": "output 0: off; 1: on - depth-averaged vel vector [m/s] {dahv} 2D vector - Default 1",
"title": "Param Iof Hydro16",
"type": "integer"
},
"param_iof_hydro17": {
"default": 0,
"description": "output 0: off; 1: on - vertical velocity [m/s] {vertical_velocity} 3D - Default 0",
"title": "Param Iof Hydro17",
"type": "integer"
},
"param_iof_hydro18": {
"default": 0,
"description": "output 0: off; 1: on - water temperature [C] {temp} 3D - Default 0",
"title": "Param Iof Hydro18",
"type": "integer"
},
"param_iof_hydro19": {
"default": 0,
"description": "output 0: off; 1: on - water salinity [PSU] {salt} 3D - Default 0",
"title": "Param Iof Hydro19",
"type": "integer"
},
"param_iof_hydro20": {
"default": 0,
"description": "output 0: off; 1: on - water density [kg/m^3] {water_density} 3D - Default 0",
"title": "Param Iof Hydro20",
"type": "integer"
},
"param_iof_hydro21": {
"default": 0,
"description": "output 0: off; 1: on - eddy diffusivity [m^2/s] {diffusivity} 3D - Default 0",
"title": "Param Iof Hydro21",
"type": "integer"
},
"param_iof_hydro22": {
"default": 0,
"description": "output 0: off; 1: on - eddy viscosity [m^2/s] {viscosity} 3D - Default 0",
"title": "Param Iof Hydro22",
"type": "integer"
},
"param_iof_hydro23": {
"default": 0,
"description": "output 0: off; 1: on - turbulent kinetic energy {TKE} 3D - Default 0",
"title": "Param Iof Hydro23",
"type": "integer"
},
"param_iof_hydro24": {
"default": 0,
"description": "output 0: off; 1: on - turbulent mixing length [m] {mixing_length} 3D - Default 0",
"title": "Param Iof Hydro24",
"type": "integer"
},
"param_iof_hydro25": {
"default": 0,
"description": "output 0: off; 1: on - horizontal vel vector [m/s] {hvel} 3D vector - Default 0",
"title": "Param Iof Hydro25",
"type": "integer"
},
"param_iof_hydro26": {
"default": 0,
"description": "output 0: off; 1: on - horizontal vel vector defined @side [m/s] {hvel_side} 3D vector - Default 0",
"title": "Param Iof Hydro26",
"type": "integer"
},
"param_iof_hydro27": {
"default": 0,
"description": "output 0: off; 1: on - vertical vel. @elem [m/s] {wvel_elem} 3D vector - Default 0",
"title": "Param Iof Hydro27",
"type": "integer"
},
"param_iof_hydro28": {
"default": 0,
"description": "output 0: off; 1: on - T @prism centers [C] {temp_elem} 3D - Default 0",
"title": "Param Iof Hydro28",
"type": "integer"
},
"param_iof_hydro29": {
"default": 0,
"description": "output 0: off; 1: on - S @prism centers [PSU] {salt_elem} 3D - Default 0",
"title": "Param Iof Hydro29",
"type": "integer"
},
"param_iof_hydro30": {
"default": 0,
"description": "output 0: off; 1: on - Barotropic pressure gradient force vector (m.s-2) @side centers {pressure_gradient} 2D vector - Default 0",
"title": "Param Iof Hydro30",
"type": "integer"
},
"wwminput_history_OUTSTYLE": {
"default": "NC",
"description": "'output option - use 'NO' for no output",
"title": "Wwminput History Outstyle",
"type": "string"
},
"param_nspool_sta": {
"default": 30,
"description": "needed if iout_sta/=0; mod(nhot_write,nspool_sta) must=0 defaults to 30",
"title": "Param Nspool Sta",
"type": "integer"
},
"ihot": {
"default": 0,
"description": "hotstart 0: off; 1: on - whether to expect hotstarts - Default - 0-",
"title": "Ihot",
"type": "integer"
},
"wwminput_hotfile_DELTC": {
"default": 0,
"description": "hotfile time in UNITC (typically seconds) when hotfile should be written, defaults to 3600",
"title": "Wwminput Hotfile Deltc",
"type": "integer"
},
"wwminput_station_DELTC": {
"default": 3600,
"description": "Time step for output; if smaller than simulation time step, the latter is used (output every step for better 1D 2D spectra analysis)",
"title": "Wwminput Station Deltc",
"type": "integer"
},
"wwminput_history_DELTC": {
"default": 3600,
"description": "Time step for output; if smaller than simulation time step, the latter is used (output every step for better 1D 2D spectra analysis)",
"title": "Wwminput History Deltc",
"type": "integer"
}
},
"$defs": {
"BoundarySetupWithSource": {
"additionalProperties": false,
"description": "Enhanced boundary setup that includes data sources.\n\nThis class extends BoundarySetup to provide a unified configuration\nfor both boundary conditions and their data sources.",
"properties": {
"elev_type": {
"default": 5,
"description": "Elevation boundary type (0-5)",
"title": "Elev Type",
"type": "integer"
},
"vel_type": {
"default": 5,
"description": "Velocity boundary type (-4, -1, 0-5)",
"title": "Vel Type",
"type": "integer"
},
"temp_type": {
"default": 0,
"description": "Temperature boundary type (0-4)",
"title": "Temp Type",
"type": "integer"
},
"salt_type": {
"default": 0,
"description": "Salinity boundary type (0-4)",
"title": "Salt Type",
"type": "integer"
},
"const_elev": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Constant elevation value (for type 2)",
"title": "Const Elev"
},
"const_flow": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Constant flow value (for type 2)",
"title": "Const Flow"
},
"const_temp": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Constant temperature value (for type 2)",
"title": "Const Temp"
},
"const_salt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Constant salinity value (for type 2)",
"title": "Const Salt"
},
"inflow_relax": {
"default": 0.5,
"description": "Relaxation factor for inflow (0-1)",
"title": "Inflow Relax",
"type": "number"
},
"outflow_relax": {
"default": 0.1,
"description": "Relaxation factor for outflow (0-1)",
"title": "Outflow Relax",
"type": "number"
},
"temp_nudge": {
"default": 1.0,
"description": "Temperature nudging factor (0-1)",
"title": "Temp Nudge",
"type": "number"
},
"salt_nudge": {
"default": 1.0,
"description": "Salinity nudging factor (0-1)",
"title": "Salt Nudge",
"type": "number"
},
"temp_th_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to temperature time history file (for type 1)",
"title": "Temp Th Path"
},
"temp_3d_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to 3D temperature file (for type 4)",
"title": "Temp 3D Path"
},
"salt_th_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to salinity time history file (for type 1)",
"title": "Salt Th Path"
},
"salt_3d_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to 3D salinity file (for type 4)",
"title": "Salt 3D Path"
},
"flow_th_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to flow time history file (for type 1)",
"title": "Flow Th Path"
},
"elev_st_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to space-time elevation file (for types 2/4)",
"title": "Elev St Path"
},
"vel_st_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to space-time velocity file (for types 2/4)",
"title": "Vel St Path"
},
"mean_elev": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Mean elevation for Flather boundaries",
"title": "Mean Elev"
},
"mean_flow": {
"anyOf": [
{
"items": {
"items": {
"type": "number"
},
"type": "array"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Mean flow for Flather boundaries",
"title": "Mean Flow"
},
"elev_source": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SCHISMDataBoundary"
},
{
"type": "null"
}
],
"default": null,
"description": "Data source for elevation boundary condition",
"title": "Elev Source"
},
"vel_source": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SCHISMDataBoundary"
},
{
"type": "null"
}
],
"default": null,
"description": "Data source for velocity boundary condition",
"title": "Vel Source"
},
"temp_source": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SCHISMDataBoundary"
},
{
"type": "null"
}
],
"default": null,
"description": "Data source for temperature boundary condition",
"title": "Temp Source"
},
"salt_source": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SCHISMDataBoundary"
},
{
"type": "null"
}
],
"default": null,
"description": "Data source for salinity boundary condition",
"title": "Salt Source"
}
},
"title": "BoundarySetupWithSource",
"type": "object"
},
"DataBlob": {
"additionalProperties": false,
"description": "Data source for model ingestion.\n\nGeneric data source for files that either need to be copied to the model directory\nor linked if `link` is set to True.",
"properties": {
"model_type": {
"default": "data_blob",
"description": "Model type discriminator",
"enum": [
"data_blob",
"data_link"
],
"title": "Model Type",
"type": "string"
},
"id": {
"default": "data",
"description": "Unique identifier for this data source",
"title": "Id",
"type": "string"
},
"source": {
"description": "URI of the data source, either a local file path or a remote uri",
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
}
},
"required": [
"source"
],
"title": "DataBlob",
"type": "object"
},
"DataBoundary": {
"additionalProperties": false,
"properties": {
"model_type": {
"const": "boundary",
"default": "data_boundary",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"description": "Unique identifier for this data source",
"title": "Id",
"type": "string"
},
"source": {
"description": "Source reader, must return an xarray gridded dataset in the open method",
"discriminator": {
"mapping": {
"csv": "#/$defs/SourceTimeseriesCSV",
"datamesh": "#/$defs/SourceDatamesh",
"file": "#/$defs/SourceFile",
"intake": "#/$defs/SourceIntake",
"wavespectra": "#/$defs/SourceWavespectra"
},
"propertyName": "model_type"
},
"oneOf": [
{
"$ref": "#/$defs/SourceTimeseriesCSV"
},
{
"$ref": "#/$defs/SourceDatamesh"
},
{
"$ref": "#/$defs/SourceFile"
},
{
"$ref": "#/$defs/SourceIntake"
},
{
"$ref": "#/$defs/SourceWavespectra"
}
],
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Subset of variables to extract from the dataset",
"title": "Variables"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filter from Time object if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 0.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
0
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
},
"spacing": {
"anyOf": [
{
"type": "number"
},
{
"const": "parent",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Spacing between points along the grid boundary to retrieve data for. If None (default), points are defined from the the actual grid object passed to the `get` method. If 'parent', the resolution of the parent dataset is used to define the spacing.",
"title": "Spacing"
},
"sel_method": {
"default": "sel",
"description": "Xarray method to use for selecting boundary points from the dataset",
"enum": [
"sel",
"interp"
],
"title": "Sel Method",
"type": "string"
},
"sel_method_kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments for sel_method",
"title": "Sel Method Kwargs",
"type": "object"
}
},
"required": [
"id",
"source"
],
"title": "DataBoundary",
"type": "object"
},
"DataGrid": {
"additionalProperties": false,
"description": "Data object for gridded source data.\n\nGeneric data object for xarray datasets that with gridded spatial dimensions\n\nNote\n----\nThe fields `filter_grid` and `filter_time` trigger updates to the crop filter from\nthe grid and time range objects passed to the get method. This is useful for data\nsources that are not defined on the same grid as the model grid or the same time\nrange as the model run.",
"properties": {
"model_type": {
"const": "grid",
"default": "grid",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"default": "data",
"description": "Unique identifier for this data source",
"title": "Id",
"type": "string"
},
"source": {
"description": "Source reader, must return an xarray gridded dataset in the open method",
"discriminator": {
"mapping": {
"csv": "#/$defs/SourceTimeseriesCSV",
"datamesh": "#/$defs/SourceDatamesh",
"file": "#/$defs/SourceFile",
"intake": "#/$defs/SourceIntake",
"wavespectra": "#/$defs/SourceWavespectra"
},
"propertyName": "model_type"
},
"oneOf": [
{
"$ref": "#/$defs/SourceTimeseriesCSV"
},
{
"$ref": "#/$defs/SourceDatamesh"
},
{
"$ref": "#/$defs/SourceFile"
},
{
"$ref": "#/$defs/SourceIntake"
},
{
"$ref": "#/$defs/SourceWavespectra"
}
],
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Subset of variables to extract from the dataset",
"title": "Variables"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filters from Grid and Time objects if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 0.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
0
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
}
},
"required": [
"source"
],
"title": "DataGrid",
"type": "object"
},
"DatasetCoords": {
"additionalProperties": false,
"description": "Coordinates representation.",
"properties": {
"t": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "time",
"description": "Name of the time coordinate",
"title": "T"
},
"x": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "longitude",
"description": "Name of the x coordinate",
"title": "X"
},
"y": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "latitude",
"description": "Name of the y coordinate",
"title": "Y"
},
"z": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of the z coordinate",
"title": "Z"
},
"s": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of the site coordinate",
"title": "S"
}
},
"title": "DatasetCoords",
"type": "object"
},
"Filter": {
"additionalProperties": false,
"properties": {
"sort": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Sort"
},
"subset": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Subset"
},
"crop": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Crop"
},
"timenorm": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Timenorm"
},
"rename": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Rename"
},
"derived": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": {},
"title": "Derived"
}
},
"title": "Filter",
"type": "object"
},
"GR3Generator": {
"additionalProperties": false,
"properties": {
"model_type": {
"const": "gr3_generator",
"default": "gr3_generator",
"description": "Model discriminator",
"title": "Model Type",
"type": "string"
},
"hgrid": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to hgrid.gr3 file",
"title": "Hgrid"
},
"gr3_type": {
"description": "Type of gr3 file. Must be one of 'albedo', 'diffmin', 'diffmax', 'watertype', 'windrot_geo2proj'",
"title": "Gr3 Type",
"type": "string"
},
"value": {
"default": null,
"description": "Constant value to set in gr3 file",
"title": "Value",
"type": "number"
},
"crs": {
"default": "epsg:4326",
"description": "Coordinate reference system",
"title": "Crs",
"type": "string"
}
},
"required": [
"hgrid",
"gr3_type"
],
"title": "GR3Generator",
"type": "object"
},
"GridLinker": {
"additionalProperties": false,
"properties": {
"hgrid": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to hgrid.gr3 file",
"title": "Hgrid"
},
"gridtype": {
"description": "Type of grid to link",
"title": "Gridtype",
"type": "string"
}
},
"required": [
"hgrid",
"gridtype"
],
"title": "GridLinker",
"type": "object"
},
"HotstartConfig": {
"additionalProperties": false,
"description": "Configuration for generating SCHISM hotstart files.\n\nThis class specifies parameters for creating hotstart.nc files from\ntemperature and salinity data sources already configured in boundary conditions.",
"properties": {
"enabled": {
"default": false,
"description": "Whether to generate hotstart file",
"title": "Enabled",
"type": "boolean"
},
"temp_var": {
"default": "temperature",
"description": "Name of temperature variable in source dataset",
"title": "Temp Var",
"type": "string"
},
"salt_var": {
"default": "salinity",
"description": "Name of salinity variable in source dataset",
"title": "Salt Var",
"type": "string"
},
"time_offset": {
"default": 0.0,
"description": "Offset to add to source time values (in days)",
"title": "Time Offset",
"type": "number"
},
"time_base": {
"default": "2000-01-01T00:00:00",
"description": "Base time for source time values",
"format": "date-time",
"title": "Time Base",
"type": "string"
},
"output_filename": {
"default": "hotstart.nc",
"description": "Name of the output hotstart file",
"title": "Output Filename",
"type": "string"
}
},
"title": "HotstartConfig",
"type": "object"
},
"SCHISMData": {
"additionalProperties": false,
"description": "This class is used to gather all required input forcing for SCHISM",
"properties": {
"data_type": {
"const": "schism",
"default": "schism",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"atmos": {
"anyOf": [
{
"$ref": "#/$defs/SCHISMDataSflux"
},
{
"type": "null"
}
],
"default": null,
"description": "atmospheric data"
},
"wave": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SCHISMDataWave"
},
{
"type": "null"
}
],
"default": null,
"description": "wave data",
"title": "Wave"
},
"boundary_conditions": {
"anyOf": [
{
"$ref": "#/$defs/SCHISMDataBoundaryConditions"
},
{
"type": "null"
}
],
"default": null,
"description": "unified boundary conditions (replaces tides and ocean)"
}
},
"title": "SCHISMData",
"type": "object"
},
"SCHISMDataBoundary": {
"additionalProperties": false,
"description": "This class is used to extract ocean boundary data from a griddd dataset at all open\nboundary nodes.",
"properties": {
"model_type": {
"const": "boundary",
"default": "data_boundary",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"choices": [
"elev2D",
"uv3D",
"TEM_3D",
"SAL_3D",
"bnd"
],
"default": "bnd",
"description": "SCHISM th id of the source",
"title": "Id",
"type": "string"
},
"source": {
"description": "Source reader, must return an xarray gridded dataset in the open method",
"discriminator": {
"mapping": {
"csv": "#/$defs/SourceTimeseriesCSV",
"datamesh": "#/$defs/SourceDatamesh",
"file": "#/$defs/SourceFile",
"intake": "#/$defs/SourceIntake",
"wavespectra": "#/$defs/SourceWavespectra"
},
"propertyName": "model_type"
},
"oneOf": [
{
"$ref": "#/$defs/SourceTimeseriesCSV"
},
{
"$ref": "#/$defs/SourceDatamesh"
},
{
"$ref": "#/$defs/SourceFile"
},
{
"$ref": "#/$defs/SourceIntake"
},
{
"$ref": "#/$defs/SourceWavespectra"
}
],
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"description": "variable name in the dataset",
"items": {
"type": "string"
},
"title": "Variables",
"type": "array"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filter from Time object if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 0.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
1
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
},
"spacing": {
"anyOf": [
{
"type": "number"
},
{
"const": "parent",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Spacing between points along the grid boundary to retrieve data for. If None (default), points are defined from the the actual grid object passed to the `get` method. If 'parent', the resolution of the parent dataset is used to define the spacing.",
"title": "Spacing"
},
"sel_method": {
"default": "interp",
"description": "Xarray method to use for selecting boundary points from the dataset",
"enum": [
"sel",
"interp"
],
"title": "Sel Method",
"type": "string"
},
"sel_method_kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments for sel_method",
"title": "Sel Method Kwargs",
"type": "object"
},
"data_type": {
"const": "boundary",
"default": "boundary",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"data_grid_source": {
"anyOf": [
{
"$ref": "#/$defs/DataGrid"
},
{
"type": "null"
}
],
"default": null,
"description": "DataGrid source for boundary data"
}
},
"required": [
"source"
],
"title": "SCHISMDataBoundary",
"type": "object"
},
"SCHISMDataBoundaryConditions": {
"additionalProperties": false,
"description": "This class configures all boundary conditions for SCHISM including tidal,\nocean, river, and nested model boundaries.\n\nIt provides a unified interface for specifying boundary conditions and their\ndata sources, replacing the separate tides and ocean configurations.",
"properties": {
"data_type": {
"const": "boundary_conditions",
"default": "boundary_conditions",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"tidal_data": {
"anyOf": [
{
"$ref": "#/$defs/TidalDataset"
},
{
"type": "null"
}
],
"default": null,
"description": "Tidal forcing dataset"
},
"boundaries": {
"additionalProperties": {
"$ref": "#/$defs/BoundarySetupWithSource"
},
"description": "Boundary configuration by boundary index",
"title": "Boundaries",
"type": "object"
},
"setup_type": {
"anyOf": [
{
"enum": [
"tidal",
"hybrid",
"river",
"nested"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Predefined boundary setup type",
"title": "Setup Type"
},
"hotstart_config": {
"anyOf": [
{
"$ref": "#/$defs/HotstartConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for hotstart file generation"
}
},
"title": "SCHISMDataBoundaryConditions",
"type": "object"
},
"SCHISMDataSflux": {
"properties": {
"data_type": {
"const": "sflux",
"default": "sflux",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"air_1": {
"anyOf": [
{},
{
"type": "null"
}
],
"default": null,
"description": "sflux air source 1",
"title": "Air 1"
},
"air_2": {
"anyOf": [
{},
{
"type": "null"
}
],
"default": null,
"description": "sflux air source 2",
"title": "Air 2"
},
"rad_1": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SfluxRad"
},
{
"type": "null"
}
],
"default": null,
"description": "sflux rad source 1",
"title": "Rad 1"
},
"rad_2": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SfluxRad"
},
{
"type": "null"
}
],
"default": null,
"description": "sflux rad source 2",
"title": "Rad 2"
},
"prc_1": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SfluxPrc"
},
{
"type": "null"
}
],
"default": null,
"description": "sflux prc source 1",
"title": "Prc 1"
},
"prc_2": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/SfluxPrc"
},
{
"type": "null"
}
],
"default": null,
"description": "sflux prc source 2",
"title": "Prc 2"
}
},
"title": "SCHISMDataSflux",
"type": "object"
},
"SCHISMDataWave": {
"additionalProperties": false,
"description": "This class is used to write wave spectral boundary data. Spectral data is extracted\nfrom the nearest points along the grid boundary",
"properties": {
"model_type": {
"const": "boundary",
"default": "data_boundary",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"description": "Unique identifier for this data source",
"title": "Id",
"type": "string"
},
"source": {
"description": "Dataset source reader, must return a wavespectra-enabled xarray dataset in the open method",
"discriminator": {
"mapping": {
"csv": "#/$defs/SourceTimeseriesCSV",
"datamesh": "#/$defs/SourceDatamesh",
"file": "#/$defs/SourceFile",
"intake": "#/$defs/SourceIntake",
"wavespectra": "#/$defs/SourceWavespectra"
},
"propertyName": "model_type"
},
"oneOf": [
{
"$ref": "#/$defs/SourceTimeseriesCSV"
},
{
"$ref": "#/$defs/SourceDatamesh"
},
{
"$ref": "#/$defs/SourceFile"
},
{
"$ref": "#/$defs/SourceIntake"
},
{
"$ref": "#/$defs/SourceWavespectra"
}
],
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Subset of variables to extract from the dataset",
"title": "Variables"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filter from Time object if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 2.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
1
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
},
"spacing": {
"anyOf": [
{
"type": "number"
},
{
"const": "parent",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Spacing between points along the grid boundary to retrieve data for. If None (default), points are defined from the the actual grid object passed to the `get` method. If 'parent', the resolution of the parent dataset is used to define the spacing.",
"title": "Spacing"
},
"sel_method": {
"default": "nearest",
"description": "Method for selecting boundary points",
"enum": [
"idw",
"nearest"
],
"title": "Sel Method",
"type": "string"
},
"sel_method_kwargs": {
"additionalProperties": true,
"default": {
"unique": true
},
"description": "Keyword arguments for sel_method",
"title": "Sel Method Kwargs",
"type": "object"
},
"grid_type": {
"const": "boundary_wave_station",
"default": "boundary_wave_station",
"description": "Model type discriminator",
"title": "Grid Type",
"type": "string"
},
"data_type": {
"const": "wave",
"default": "wave",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
}
},
"required": [
"id",
"source"
],
"title": "SCHISMDataWave",
"type": "object"
},
"SCHISMGrid": {
"additionalProperties": false,
"description": "SCHISM grid in geographic space.",
"properties": {
"grid_type": {
"const": "schism",
"default": "schism",
"description": "Model descriminator",
"title": "Grid Type",
"type": "string"
},
"hgrid": {
"$ref": "#/$defs/DataBlob",
"description": "Path to hgrid.gr3 file"
},
"vgrid": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/VgridGenerator"
},
{
"$ref": "#/$defs/VGrid"
},
{
"type": "null"
}
],
"description": "Path to vgrid.in file",
"title": "Vgrid"
},
"drag": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to drag.gr3 file",
"title": "Drag"
},
"rough": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to rough.gr3 file",
"title": "Rough"
},
"manning": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to manning.gr3 file",
"title": "Manning"
},
"hgridll": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "integer"
},
{
"$ref": "#/$defs/GridLinker"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to hgrid.ll file",
"title": "Hgridll"
},
"diffmin": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": 1e-06,
"description": "Path to diffmax.gr3 file or constant value",
"title": "Diffmin"
},
"diffmax": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": 1.0,
"description": "Path to diffmax.gr3 file or constant value",
"title": "Diffmax"
},
"albedo": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": 0.15,
"description": "Path to albedo.gr3 file or constant value",
"title": "Albedo"
},
"watertype": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "integer"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": 1,
"description": "Path to watertype.gr3 file or constant value",
"title": "Watertype"
},
"windrot_geo2proj": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"type": "number"
},
{
"$ref": "#/$defs/GR3Generator"
},
{
"type": "null"
}
],
"default": 0.0,
"description": "Path to windrot_geo2proj.gr3 file or constant value",
"title": "Windrot Geo2Proj"
},
"hgrid_WWM": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/GridLinker"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to hgrid_WWM.gr3 file",
"title": "Hgrid Wwm"
},
"wwmbnd": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"$ref": "#/$defs/WWMBNDGR3Generator"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to wwmbnd.gr3 file",
"title": "Wwmbnd"
},
"crs": {
"default": "epsg:4326",
"description": "Coordinate reference system",
"title": "Crs",
"type": "string"
}
},
"required": [
"hgrid"
],
"title": "SCHISMGrid",
"type": "object"
},
"SfluxPrc": {
"description": "This is a single variable source for and sflux input",
"properties": {
"model_type": {
"const": "grid",
"default": "grid",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"default": "sflux_source",
"description": "id of the source",
"title": "Id",
"type": "string"
},
"source": {
"default": null,
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Subset of variables to extract from the dataset",
"title": "Variables"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filters from Grid and Time objects if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 0.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
1
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
},
"data_type": {
"const": "sflux_prc",
"default": "sflux_rad",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"relative_weight": {
"default": 1.0,
"description": "relative weight of the source file if two files are provided",
"title": "Relative Weight",
"type": "number"
},
"max_window_hours": {
"default": 120.0,
"description": "maximum number of hours (offset from start time in each file) in each file of set 1",
"title": "Max Window Hours",
"type": "number"
},
"fail_if_missing": {
"default": true,
"description": "Fail if the source file is missing",
"title": "Fail If Missing",
"type": "boolean"
},
"prate_name": {
"default": null,
"description": "name of precipitation rate variable in source",
"title": "Prate Name",
"type": "string"
}
},
"title": "SfluxPrc",
"type": "object"
},
"SfluxRad": {
"description": "This is a single variable source for and sflux input",
"properties": {
"model_type": {
"const": "grid",
"default": "grid",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"id": {
"default": "sflux_source",
"description": "id of the source",
"title": "Id",
"type": "string"
},
"source": {
"default": null,
"title": "Source"
},
"link": {
"default": false,
"description": "Whether to create a symbolic link instead of copying the file",
"title": "Link",
"type": "boolean"
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/Filter"
},
{
"type": "null"
}
],
"description": "Optional filter specification to apply to the dataset"
},
"variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Subset of variables to extract from the dataset",
"title": "Variables"
},
"coords": {
"anyOf": [
{
"$ref": "#/$defs/DatasetCoords"
},
{
"type": "null"
}
],
"default": {
"t": "time",
"x": "longitude",
"y": "latitude",
"z": null,
"s": null
},
"description": "Names of the coordinates in the dataset"
},
"crop_data": {
"default": true,
"description": "Update crop filters from Grid and Time objects if passed to get method",
"title": "Crop Data",
"type": "boolean"
},
"buffer": {
"default": 0.0,
"description": "Space to buffer the grid bounding box if `filter_grid` is True",
"title": "Buffer",
"type": "number"
},
"time_buffer": {
"default": [
0,
1
],
"description": "Number of source data timesteps to buffer the time range if `filter_time` is True",
"items": {
"type": "integer"
},
"title": "Time Buffer",
"type": "array"
},
"data_type": {
"const": "sflux_rad",
"default": "sflux_rad",
"description": "Model type discriminator",
"title": "Data Type",
"type": "string"
},
"relative_weight": {
"default": 1.0,
"description": "relative weight of the source file if two files are provided",
"title": "Relative Weight",
"type": "number"
},
"max_window_hours": {
"default": 120.0,
"description": "maximum number of hours (offset from start time in each file) in each file of set 1",
"title": "Max Window Hours",
"type": "number"
},
"fail_if_missing": {
"default": true,
"description": "Fail if the source file is missing",
"title": "Fail If Missing",
"type": "boolean"
},
"dlwrf_name": {
"default": null,
"description": "name of downward long wave radiation variable in source",
"title": "Dlwrf Name",
"type": "string"
},
"dswrf_name": {
"default": null,
"description": "name of downward short wave radiation variable in source",
"title": "Dswrf Name",
"type": "string"
}
},
"title": "SfluxRad",
"type": "object"
},
"SourceDatamesh": {
"additionalProperties": false,
"description": "Source dataset from Datamesh.\n\nDatamesh documentation: https://docs.oceanum.io/datamesh/index.html",
"properties": {
"model_type": {
"const": "datamesh",
"default": "datamesh",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"datasource": {
"description": "The id of the datasource on Datamesh",
"title": "Datasource",
"type": "string"
},
"token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Datamesh API token, taken from the environment if not provided",
"title": "Token"
},
"kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments to pass to `oceanum.datamesh.Connector`",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"datasource",
"token"
],
"title": "SourceDatamesh",
"type": "object"
},
"SourceFile": {
"additionalProperties": false,
"description": "Source dataset from file to open with xarray.open_dataset.",
"properties": {
"model_type": {
"const": "file",
"default": "file",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"uri": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to the dataset",
"title": "Uri"
},
"kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments to pass to xarray.open_dataset",
"title": "Kwargs",
"type": "object"
},
"variable": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Variable to select from the dataset",
"title": "Variable"
}
},
"required": [
"uri"
],
"title": "SourceFile",
"type": "object"
},
"SourceIntake": {
"additionalProperties": false,
"description": "Source dataset from intake catalog.\n\nnote\n----\nThe intake catalog can be prescribed either by the URI of an existing catalog file\nor by a YAML string defining the catalog. The YAML string can be obtained from\ncalling the `yaml()` method on an intake dataset instance.",
"properties": {
"model_type": {
"const": "intake",
"default": "intake",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"dataset_id": {
"description": "The id of the dataset to read in the catalog",
"title": "Dataset Id",
"type": "string"
},
"catalog_uri": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The URI of the catalog to read from",
"title": "Catalog Uri"
},
"catalog_yaml": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The YAML string of the catalog to read from",
"title": "Catalog Yaml"
},
"kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments to define intake dataset parameters",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"dataset_id"
],
"title": "SourceIntake",
"type": "object"
},
"SourceTimeseriesCSV": {
"additionalProperties": false,
"description": "Timeseries source class from CSV file.\n\nThis class should return a timeseries from a CSV file. The dataset variables are\ndefined from the column headers, therefore the appropriate read_csv kwargs must be\npassed to allow defining the columns. The time index is defined from column name\nidentified by the tcol field.",
"properties": {
"model_type": {
"const": "csv",
"default": "csv",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to the csv file",
"title": "Filename"
},
"tcol": {
"default": "time",
"description": "Name of the column containing the time data",
"title": "Tcol",
"type": "string"
},
"read_csv_kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments to pass to pandas.read_csv",
"title": "Read Csv Kwargs",
"type": "object"
}
},
"required": [
"filename"
],
"title": "SourceTimeseriesCSV",
"type": "object"
},
"SourceWavespectra": {
"additionalProperties": false,
"description": "Wavespectra dataset from wavespectra reader.",
"properties": {
"model_type": {
"const": "wavespectra",
"default": "wavespectra",
"description": "Model type discriminator",
"title": "Model Type",
"type": "string"
},
"uri": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to the dataset",
"title": "Uri"
},
"reader": {
"description": "Name of the wavespectra reader to use, e.g., read_swan",
"title": "Reader",
"type": "string"
},
"kwargs": {
"additionalProperties": true,
"default": {},
"description": "Keyword arguments to pass to the wavespectra reader",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"uri",
"reader"
],
"title": "SourceWavespectra",
"type": "object"
},
"TidalDataset": {
"description": "This class is used to define the tidal dataset to use from an available pyTMD tidal database.\nCustom databases can be configured by providing a database.json file in the tidal database directory.\nsee https://pytmd.readthedocs.io/en/latest/getting_started/Getting-Started.html",
"properties": {
"tidal_database": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to pyTMD tidal database directory. If None, defaults to pyTMD default.",
"title": "Tidal Database"
},
"tidal_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "FES2014",
"description": "Name of the pyTMD tidal model to use (e.g., 'FES2014')",
"title": "Tidal Model"
},
"mean_dynamic_topography": {
"anyOf": [
{
"$ref": "#/$defs/DataBoundary"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0.0,
"description": "Path or value of mean dynamic topography file. Writes to z0 constituent.",
"title": "Mean Dynamic Topography"
},
"constituents": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
}
],
"description": "Tidal constituents to include",
"title": "Constituents"
},
"tidal_potential": {
"default": false,
"description": "Apply Earth tidal potential loading to the model. The coefficients used any selected constituents with species 0, 1, 2.",
"title": "Tidal Potential",
"type": "boolean"
},
"cutoff_depth": {
"default": 50.0,
"description": "Cutoff depth for Earth tidal potential loading to the model",
"title": "Cutoff Depth",
"type": "number"
},
"nodal_corrections": {
"default": false,
"description": "Apply nodal corrections to tidal constituents",
"title": "Nodal Corrections",
"type": "boolean"
},
"tide_interpolation_method": {
"default": "bilinear",
"description": "Method for tidal interpolation. see https://pytmd.readthedocs.io/en/latest/api_reference/interpolate.html.",
"title": "Tide Interpolation Method",
"type": "string"
},
"extrapolate_tides": {
"default": false,
"description": "Extrapolate tidal constituents outside the domain. If False, will raise an error if any constituent is outside the domain.",
"title": "Extrapolate Tides",
"type": "boolean"
},
"extrapolation_distance": {
"default": 50.0,
"description": "Distance in kilometre to extrapolate tidal constituents outside the tidal model. Only used if extrapolate_tides is True.",
"title": "Extrapolation Distance",
"type": "number"
},
"extra_databases": {
"anyOf": [
{
"items": {
"format": "path",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"description": "Extra tidal databases loaded from database.json if present",
"title": "Extra Databases"
}
},
"title": "TidalDataset",
"type": "object"
},
"VGrid": {
"description": "Base class for SCHISM vertical grid generation.\nThis class directly mirrors the PyLibs create_schism_vgrid API.",
"properties": {
"model_type": {
"const": "schism_vgrid",
"default": "schism_vgrid",
"description": "Model discriminator",
"title": "Model Type",
"type": "string"
},
"ivcor": {
"default": 1,
"description": "Vertical coordinate type (1=LSC2, 2=SZ)",
"title": "Ivcor",
"type": "integer"
},
"nvrt": {
"default": 2,
"description": "Number of vertical layers",
"title": "Nvrt",
"type": "integer"
},
"zlevels": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "number"
}
],
"default": -1000000.0,
"description": "Z levels or transition depth (h_s)",
"title": "Zlevels"
},
"h_c": {
"default": 10.0,
"description": "Critical depth for SZ coordinate",
"title": "H C",
"type": "number"
},
"theta_b": {
"default": 0.5,
"description": "Bottom theta parameter for SZ",
"title": "Theta B",
"type": "number"
},
"theta_f": {
"default": 1.0,
"description": "Surface theta parameter for SZ",
"title": "Theta F",
"type": "number"
}
},
"title": "VGrid",
"type": "object"
},
"VgridGenerator": {
"additionalProperties": false,
"description": "Generate vgrid.in using the unified VGrid class from rompy.schism.vgrid.\nThis class directly uses the VGrid API which mirrors the create_schism_vgrid function from PyLibs.",
"properties": {
"model_type": {
"const": "vgridgenerator",
"default": "vgridgenerator",
"description": "Model discriminator",
"title": "Model Type",
"type": "string"
},
"vgrid_type": {
"default": "2d",
"description": "Type of vertical grid to generate (2d, lsc2, or sz)",
"title": "Vgrid Type",
"type": "string"
},
"nvrt": {
"default": 10,
"description": "Number of vertical layers for 3D grids",
"title": "Nvrt",
"type": "integer"
},
"hsm": {
"default": 1000.0,
"description": "Transition depth for LSC2 vertical grid",
"title": "Hsm",
"type": "number"
},
"h_c": {
"default": 10.0,
"description": "Critical depth for SZ vertical grid",
"title": "H C",
"type": "number"
},
"theta_b": {
"default": 0.5,
"description": "Bottom theta parameter for SZ vertical grid",
"title": "Theta B",
"type": "number"
},
"theta_f": {
"default": 1.0,
"description": "Surface theta parameter for SZ vertical grid",
"title": "Theta F",
"type": "number"
}
},
"title": "VgridGenerator",
"type": "object"
},
"WWMBNDGR3Generator": {
"additionalProperties": false,
"properties": {
"model_type": {
"const": "wwmbnd_generator",
"default": "wwmbnd_generator",
"description": "Model discriminator",
"title": "Model Type",
"type": "string"
},
"hgrid": {
"anyOf": [
{
"$ref": "#/$defs/DataBlob"
},
{
"format": "path",
"type": "string"
}
],
"description": "Path to hgrid.gr3 file",
"title": "Hgrid"
},
"bcflags": {
"default": null,
"description": "List of boundary condition flags. This replicates the functionality of the gen_wwmbnd.in file. Must be the same length as the number of open boundaries in the hgrid.gr3 file. If not specified, it is assumed that all open hgrid files are open to waves",
"items": {
"type": "integer"
},
"title": "Bcflags",
"type": "array"
}
},
"required": [
"hgrid"
],
"title": "WWMBNDGR3Generator",
"type": "object"
}
},
"additionalProperties": true,
"required": [
"grid",
"data"
]
}