Run Parameters
Run parameters are set as key value pairs for the WSModelObject.new_run
method, called on the asset group in which the run is being created.
The run parameters used for ICM Exchange broadly correspond to those in the user interface run dialog. The list below therefore includes the field’s location in the run dialog and its sub-dialogs, and its description in the user interface if the difference is noteworthy.
InfoWorks Run Parameters
Name | Data Type | Location in UI | Description in UI | Notes | Default | Nil | Range |
---|---|---|---|---|---|---|---|
Always Use Final State | Boolean | Main page col 2 | Always use state without initialization | ||||
Buildup Time | Long Integer | Water Quality Form | Can either be nil (in which case it is not used) or a value between 1 and 1000000 | ||||
CheckPumps | Boolean | Timestep Control Sheet - Control Page | |||||
Comment | String | Tree object property page | |||||
ConcentrationWarning | Double | Diagnostics Form | Concentration | ||||
Depth | Double | 2D Sheet, Tolerance Tab | Must be less then Innundation Map Dept hThreshold | 0.001 | 0 - 99999999 | ||
Depth_threshold | Double | 2d Sheet, Steady State Tab | Threshold for 1-hour change in depth | ||||
DontApplyRainfallSmoothing | Boolean | Main Page col 2 | This is the opposite sense to the check box on the dialog | TRUE | |||
DontLogModeSwitches | Boolean | Diagnostics Form | This is the opposite sense to the check box on the dialog | ||||
DontLogRTCRuleChanges | Boolean | Diagnostics Form | This is the opposite sense to the check box on the dialog | ||||
DontOutputRTCState | Boolean | Diagnostics Form | This is the opposite sense to the check box on the dialog | ||||
Duration | Long Integer | Main Page col 1 | Duration of simulation, in units used in duration unit | 60 | |||
DurationUnit | String | Main Page col 1 | The DurationType field must be nil or one of the strings: 'Minutes', 'Hours', 'Days', 'Weeks', 'Years'. It is important to realise that the value of this field does NOT affect the meaning of the Duration field, which is always in minutes, it merely affects the way the duration is displayed e.g. to run a simulation for a day, and have the time in the run view displayed as '1 day' you should enter the values 1440 in the Duration fields and 'Days' in the DurationType field. |
||||
DWFDefinition | String | Timestep Control Sheet - RTC Page | DWF Mode Definition | ||||
DWFModeResults | Boolean | Timestep Control Sheet - Control Page | Store results when in DWF mode | ||||
DWFMultiplier | Long Integer | Timestep Control Sheet - Control Page | Must be a power of 2 | 32 | 1 - 2048 | ||
End Duration | Boolean | Main Page col 1 | True for time/date, false for duration | ||||
End Time | Double / DateTime | Main Page col 1 | See Notes | ||||
EveryNode | Boolean | Timestep Control Sheet - Node Page | True = Total flow into system, False = flow at each node | FALSE | |||
EveryOutflow | Boolean | Timestep Control Sheet - Outflows Page | True = Total flow from system, False = flow at each outfall | FALSE | |||
EverySubcatchment | Boolean | Timestep Control Sheet - Subcatchment Page | True = Total flow into system, False = flow at each subcatchment | FALSE | |||
ExitOnFailedInit | Boolean | Main Page col 2 | Exit if initialization fails | ||||
ExitOnFailedInitCompletion | Boolean | Main Page col 2 | Exit if initialization complete in (mins) | If the ExitOnFailedInitCompletion field is set to true, the InitCompletionMinutes field must be set to a value between 1 and 99999999 | |||
GaugeMultiplier | Long Integer | Main Page col 1 | Gauge timestep multiplier | 1 | 0 - 99999 | ||
Gauges | Index | Main Page col 1 | Additional links to be gauged | A selection list object | |||
GetStartTimeFromRainEvent | Boolean | Main Page col 2 | |||||
Ground Infiltration | Index | Main Page col 3 | Ground Infiltration object used for simulation | ||||
IncludeBaseFlow | Boolean | Timestep Control Sheet - Subcatchments Page | Include Base Flow | FALSE | |||
IncludeLevel | Boolean | Timestep Control Sheet - Level Page | Check for levels | FALSE | |||
IncludeNode | Boolean | Timestep Control Sheet - Node Page | Check for inflows | FALSE | |||
IncludeOutflow | Boolean | Timestep Control Sheet - Outflows Page | Check for ouflows | FALSE | |||
IncludeRainfall | Boolean | Timestep Control Sheet - Rainfall Page | Check for rainfall | FALSE | |||
IncludeRTC | Boolean | Timestep Control Sheet - RTC Page | Check RTC | ||||
IncludeRunoff | Boolean | Timestep Control Sheet - Subcatchments Page | Include Runoff | FALSE | |||
Inflow | Index | Main Page col 3 | Inflow object used for simulation | ||||
InitCompletionMinutes | Long Integer | Main page col 2 | |||||
Initial Conditions 2D | Index | Main Page col 3 | 2D Initial conditions object used for simulation | ||||
InundationMapDepthThreshold | Double | 2D Sheet, Advanced Tab | See Depth | 0.01 | 0 - inf | ||
Level | Index | Main Page col 3 | Level object used for simulation | ||||
LevelLag | Long Integer | Timestep Control Sheet - Level Page | 0 | ||||
LevelThreshold | Double | Timestep Control Sheet - Level Page | 0 | 0 - 99999999 | |||
MaxVelocity | Double | 2D Sheet, Advanced Tab | 10 | 0 - 99999999 | |||
Minor Timestep 2D | Boolean | 2D Sheet, Advanced Tab | Link 1D-2D calculations at minor timestep | ||||
Momentum | Double | 2D Sheet, Tolerance Tab | 0.01 | 0 - 99999999 | |||
NodeLag | Long Integer | Timestep Control Sheet - Node Page | 0 | ||||
NodeThreshold | Double | Timestep Control Sheet - Node Page | 0 | ||||
OutflowLag | Long Integer | Timestep Control Sheet - Outflows Page | 0 | ||||
OutflowThreshold | Double | Timestep Control Sheet - Outflows Page | 0 | ||||
Pipe Sediment Data | Index | Main Page col 3 | Pipe sediment data object used fo simulation | ||||
Pollutant Graph | Index | Main Page col 3 | Pollutant graph object used for simulation | ||||
QM Dependent Fractions | Boolean | Water Quality Form | Dependent Sediment Fractions | ||||
QM Hydraulic Feedback | Boolean | Water Quality Form | Erosion Deposition Affects Hydraulics | ||||
QM Model Macrophytes | Boolean | Water Quality Form | |||||
QM Multiplier | Long Integer | Water Quality Form | 0 - 10 | ||||
QM Native Washoff Routing | Boolean | Water Quality Form | |||||
QM Oxygen Demand | Text | Water Quality Form | BOD | ||||
QM Pollutant Enabled | Array | This is an array of strings | |||||
RainfallLag | Long Integer | Timestep Control Sheet - Rainfall Page | 0 | ||||
RainfallThreshold | Double | Timestep Control Sheet - Rainfall Page | 0 | ||||
RainType | Boolean | 2D Sheet, Advanced Tab | Ignore rain falling on dry elements | FALSE | |||
ReadSubeventNAPIAndAntecedDepth | Boolean | Main Page col 2 | Read subevent NAPI and Antecdent Depth | ||||
ReadSubeventParams | Boolean | Main Page col 2 | Read subevent UCWI & Evaporation | ||||
Regulator | Index | Main Page col 2 | Regulator object used for simulation | ||||
ResultsMultiplier | Long Integer | Main Page col 1 | 6 | Results timestep multiplier | 0 - 99999 | ||
RTCLag | Long Integer | Timestep Control Sheet - RTC Page | 0 | 0 - 99999999 | |||
RTCRulesOverride | Boolean | Main Page col 2 | RTC rules override pump on levels | Restrictions as in UI | |||
RunoffOnly | Boolean | Main Page col 2 | Restrictions as in UI | ||||
Save Final State | Boolean | Main Page col 2 | |||||
Sediment Fraction Enabled | Array | This parameter must be an array of 2 Boolean values, true if you want that sediment fraction and false if you don't | |||||
Sim | Index | Main Page col 2 | Sim object used for the initial state | ||||
SpillCorrection | Boolean | 2D Sheet, Advanced Tab | Adjust bank levels based on adjacent element ground levels | TRUE | |||
Start Time | Double / DateTime | Main Page col 1 | See notes | 0 | |||
StopOnEndOfTimeVaryingData | Boolean | Timestep Control Sheet - Control Page | Stop simulation at the end of tim varying data | ||||
StorePRN | Boolean | Main Page col 2 | Summary (PRN) results | ||||
StormDefinition | String | Timestep Control Sheet - RTC Page | Storm Mode Condition | ||||
SubcatchmentLag | Long Integer | Timestep Control Sheet - Subcatchments Page | 0 | ||||
SubcatchmentThreshold | Double | Timestep Control Sheet - Subcatchments Page | 0 | ||||
Theta | Double | 2D Sheet, Advanced Tab | 0.9 | 0 - 99999999 | |||
Time_lag | Double | 2d Sheet, Steady State Tab | 60 | ||||
TimeStep | Long Integer | Main Page col 1 | Timestep (s) | 60 | 1 - 99999 | ||
timestep_stability_control | Double | 2D Sheet, Advanced Tab | 0.95 | 0 - 1 | |||
TimestepLog | Boolean | Diagnostics Form | |||||
Trade Waste | Index | Main Page col 3 | Trade Waste object used for simulation | ||||
Use_local_steady_state | Boolean | 2d Sheet, Steady State Tab | Deactivate steady state areas | ||||
UseGPU | Boolean | Main Page col 3 | 0 or nil = never, 1 = if available, 2 = always | ||||
UseQM | Boolean | Main Page col 3 | |||||
Velocity | Double | 2D Sheet, Tolerance Tab | 0.01 | 0 - 99999999 | |||
Velocity_threshold | Double | 2d Sheet, Steady State Tab | Threshold for 1-hour change in velocity | ||||
VelocityWarning | Double | Diagnostics Form | Velocity | ||||
VolumeBalanceWarning | Double | Diagnostics Form | Volume balance | ||||
WarningBag | Hash | Warning thresholds for water priority parameters. It is a hash from strings to floating point numbers. The keys are as described in the 'QM Pollutant Enabled' key, and as with that key the best way to understand this parameter is to set up values in the UI and export them in a script. | |||||
Waste Water | Index | Main Page col 3 | Waste Water object used for simulation | ||||
Working | Boolean | Main Page col 1 | Allow re-runs using updated network | Must be set to tru before the update_to_latest method may be used. |
SWMM Run Parameters
Name | Data Type | Location in UI | Description in UI | Notes | Default | Range |
---|---|---|---|---|---|---|
climatology | Index | Main page col 3 | SWMM climatology | SWMM Climatology object used in simulation | ||
date_time_end_date | DateTime | Timestep Control Sheet - Dates Page | End analysis | Current date + 1 day at time 00:00:00 | ||
date_time_end_sweep | DateTime | Timestep Control Sheet - Dates Page | End sweeping | The year and time are ignored | 31 Dec | |
date_time_report_start | DateTime | Timestep Control Sheet - Dates Page | Start reporting | Current date at time 00:00:00 | ||
date_time_start_date | DateTime | Timestep Control Sheet - Dates Page | Start analysis | Current date at time 00:00:00 | ||
date_time_start_sweep | DateTime | Timestep Control Sheet - Dates Page | Start sweeping | The year and time are ignored | 01 Jan | |
dry_days | Float | Timestep Control Sheet - Dates Page | Antecedent dry days | Must be zero or a positive float value. | 0.0 | |
dyn_wave_length_step | Float | Main Page col 4 - Dynamic wave group box | Conduit lengthening timestep | 0.0 | ||
dyn_wave_minimum_step | Float | Main Page col 4 - Dynamic wave group box | Minimum timestep | 0.5 | ||
dyn_wave_use_var_step | Boolean | Main Page col 4 - Dynamic wave group box | Adjust variable timesteps by (%) - checkbox | TRUE | ||
dyn_wave_variable_step | Float | Main Page col 4 - Dynamic wave group box | Adjust variable timesteps by (%) - edit box | 75.0 | 10.0 – 200.0 | |
inflow | Index | Main Page col 2 | Inflow | Inflow object used in simulation | ||
initial_state_sim | Index | Main Page col 1 | Sim providing initial state | The simulation object that provides the initial state to host-start the simulation. The simulation providing state must have saved its state and its simulation succeeded. | ||
level | Index | Main Page col 2 | Level | Level object used in simulation | ||
name | String | Top of main Page | Run title | If the name is Nil then one is randomly generated | ||
network | Index | Main Page col 1 - Network group box | SWMM network | Network object used in simulation | ||
network_commit_id | Long Integer | Main Page col 1 - Network group box | SWMM network | Network commit ID or version number used in simulation that appears in parenthesis following the network name | ||
pollutographs | Array of Index | Main Page col 3 | SWMM pollutograph | |||
proc_parm_gw | Boolean | Options Sheet - Processes Page | Groundwater | TRUE | ||
proc_parm_rain | Boolean | Options Sheet - Processes Page | Rainfall / runoff | TRUE | ||
proc_parm_rdii | Boolean | Options Sheet - Processes Page | Rainfall dependent I/I | TRUE | ||
proc_parm_route | Boolean | Options Sheet - Processes Page | Flow routing | TRUE | ||
proc_parm_snow | Boolean | Options Sheet - Processes Page | Snowmelt | TRUE | ||
proc_parm_wq | Boolean | Options Sheet - Processes Page | Water quality | TRUE | ||
rainfall | Index | Main Page col 2 | Rainfall event / Flow survey | Rainfall or flow survey object used in simulation | ||
regulator | Index | Main Page col 2 | Regulator | Regulator object used in simulation | ||
rpt_parm_averages | Boolean | Main Page col 4 - Reporting group box | Average results | FALSE | ||
rpt_parm_continue | Boolean | Main Page col 4 - Reporting group box | Continuity checks | TRUE | ||
rpt_parm_controls | Boolean | Main Page col 4 - Reporting group box | Control actions | FALSE | ||
rpt_parm_det_obj_id | Array of Index | Main Page col 4 - Reporting group box | Objects for detailed reporting - Selection list | |||
rpt_parm_flow_stats | Boolean | Main Page col 4 - Reporting group box | Summary flow statistics | TRUE | ||
rpt_parm_input | Boolean | Main Page col 4 - Reporting group box | Input summary | FALSE | ||
save_state_at_end | Boolean | Main Page col 1 | Save state at end of simulation | FALSE | ||
scenarios | Array of String | Main Page col 1 - Network group box | Scenarios | |||
stdy_flow_lat_tol | Float | Timestep Control Sheet - Timesteps Page - Steady flow periods group box | Lateral flow tolerance (%) | 5.0 | ||
stdy_flow_skip_stdy_state | Boolean | Timestep Control Sheet - Timesteps Page - Steady flow periods group box | Skip steady flow periods | FALSE | ||
stdy_flow_sys_tol | Float | Timestep Control Sheet - Timesteps Page - Steady flow periods group box | System flow tolerance (%) | 5.0 | ||
surcharge_method_type | String | Options Sheet - Surcharge Method Page | Surcharge Method | Must be either 'Extran' or 'Slot'. | ||
time_pattern | Index | Main Page col 3 | SWMM time patterns | SWMM time pattern object used for simulation. | ||
time_step_control | Float | Timestep control sheet - Timesteps Page | Control rule step | Relative time in seconds. Must be a negative value. | 0.0 | |
time_step_dry | Float | Timestep control sheet - Timesteps Page | Dry weather runoff step | Relative time in seconds. Must be a negative value. | -3600.0 | |
time_step_report | Float | Timestep control sheet - Timesteps Page | Reporting timestep | Relative time in seconds that timesteps are reported. Must be a negative value. | -900.0 | |
time_step_route | Float | Timestep control sheet - Timesteps Page | Routing timestep (s) | Unlike other time_steps, this is an explicit number of seconds. | 30.0 | |
time_step_wet | Float | Timestep control sheet - Timesteps Page | Wet weather runoff step | Relative time in seconds. Must be a negative value. | -300.0 | |
working | Boolean | Main Page col 1 | Allow re-runs using updated network | Must be set to true before the update_to_latest method may be used. | FALSE |
Notes
The keys are all strings, the values are different types as specified.
Where values have units, they must always be specified in S.I units.
When the run is created, several run parameters are supplied with default values. For example, if you create a run and use an empty parameters hash, then use the []
method on the run to inspect the values, you would see that several fields have default values set.
Other fields will use a nil value by default. For a number of fields a nil value is treated as a particular default value for that field as specified in the detailed notes for the fields in question.
Where the name of the field contains spaces or underscores, the spaces or underscores must be used when setting the value in the hash.
The percentage volume balance is not available from ICM Exchange.
Time
As ICM Exchange does not have a Ruby data time to represent the use of times in ICM simulations, in which both relative times and absolute times are used, the following convention is used for the start time and end time:
- Absolute times are represented as a DateTime object
- Relative times as a negative double – a time in seconds
Therefore to set a relative time, negate the number of seconds and set the field to this value, to set an absolute time use a ruby DateTime object as described earlier in this document.
When reading a value from the database to determine whether the start time is relative of absolute you will want to use code like this:
start_time = working['Start Time']
if start_time.nil?
puts "nil"
elsif start_time.kind_of?(DateTime)
puts format("Absolute: %i/%i/%i", start_time.year, start_time.month, start_time.day)
elsif start_time.kind_of(Float)
puts format("Relative: %f seconds", start_time)
else
puts "Unexpected type"
end