Click or drag to resize

CatchmentKinematicWave Class

Class for Kinematic Wave catchment model. See ICatchmentKinematicWaveData for parameters availabel when setting up the model.

In Kinematic Wave model the runoff is computed as flow in an open channel, taking the gravitational and frition forces only. The runoff amount is controlled by the various hydrological losses and the size of the actually contributing area.

Inheritance Hierarchy

Namespace:  DHI.Mike1D.RainfallRunoffModule
Assembly:  DHI.Mike1D.RainfallRunoffModule (in DHI.Mike1D.RainfallRunoffModule.dll) Version: 16.0.0.0 (11.1.1.1111)
Syntax
C#
public class CatchmentKinematicWave : CatchmentAbstractUrban, 
	ICatchmentKinematicWaveData, ICatchmentUrbanData, ICatchmentData

The CatchmentKinematicWave type exposes the following members.

Constructors
  NameDescription
Public methodCatchmentKinematicWave
Constructor for CatchmentKinematicWave class
Top
Properties
  NameDescription
Public propertyAdditionalFlow
Additional constant flow added to the total runoff Unit: [m3/s] Default: 0
(Inherited from Catchment.)
Public propertyApplyEvaporationOnRain
When raining, if true the evaporation is applied at the beginning of the time step, correcting the net rain (in wet periods).

If false, evaporation is applied at the end of the time step on non-empty storages in the catchment.

In dry periods, this is not used. if EvaporationFromTimeSeries is disabled, this is also not used (since the InitialLossRecoveryRate is only applied in dry periods).

Historically MIKE has set this to true and MIKE URBAN to false.

Public propertyApplyInitialLossRecoveryOnlyWhenDry Obsolete.
If true, the InitialLossRecoveryRate is applied only on wetting and storage loss reservoirs, and not in Depth reservoir.

Default false. Historically set true by MIKE URBAN type setups.

Public propertyArea
Total area of catchment Type: Catchment area Unit: [m2] Default: 1e8 (100 km2)
(Inherited from Catchment.)
Protected propertyAreaInSquareKm
Full area of catchment Type: Catchment area Unit: [km2] Default: 100
(Inherited from Catchment.)
Public propertyBoundarySourceEvaporation
Evaporation boundary
(Inherited from CatchmentAbstractUrban.)
Public propertyCatchmentGeometry
Get and set the list of coordinates of the catchment
(Inherited from Catchment.)
Public propertyCatchmentName
Catchment name.

The name is not unique, there may be several catchment models for one catchment, however all catchments with the same name should/must share the same catchment geometry.

(Inherited from Catchment.)
Public propertyCenterPoint
Get and set the central point of the catchment
(Inherited from Catchment.)
Public propertyComponentSources
A Component Source provides info on concentration of various components.
(Inherited from Catchment.)
Public propertyCurrentTime
Current time of catchment
(Inherited from Catchment.)
Protected propertyEffectiveArea
Effective area. The effective area is the area that collects water. Can be smaller than total area, eg for Linear Reservoir or when LIDs are present.
(Inherited from Catchment.)
Public propertyEndTime
End time of catchment data - the latest time for which the catchment can return data
(Inherited from Catchment.)
Public propertyEvaporationFromTimeSeries
True if evaporation is enabled, and an evaporation boundary has been defined.

If set to false the initial recover rate is used during dry periods. Default: False

(Inherited from CatchmentAbstractUrban.)
Public propertyFixedLengthWidthRatio
Flag indicating if the length-width ratio should be fixed.

When fixed, the length and width for each sub-catchment are calculated so that the length/width ratio for each sub-area is kept equal to the length/width ratio of the entire catchment.

When not set, the length of each subcatchment equals the length of the entire catchment, and width of each subcatchment is calculated as the area fraction of the width of the entire catchment.

This is only applicable when the catchment does not specify their length explicitly, see Length.

Default: true

Public propertyGlobalDryDepthLimit
Dry depth used for switching Horton's mode between dry and wet in Kinematic Wave model when InfiltrationAfterRain == true. In this case the switching to regeneration of infiltration capacity is controlled by a low limit of the water depth on the surface. Unit: [m] Default: 1e-6
(Inherited from CatchmentAbstractUrban.)
Public propertyInfiltrationAfterRain
True if infiltration shall occur also after rain Default: True
(Inherited from CatchmentAbstractUrban.)
Public propertyInitialLossMax
Maximum value of InitialLossStorageDepth Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Public propertyInitialLossRecoveryRate
Recovery rate for initial loss capacity. The initial loss capacity is regenerated in dry periods by a linear recovery rate.

Used as constant evaporation, when evaporation is not defined explicitly. If evaporation is defined explicitly (see EvaporationFromTimeSeries), this is neglected.

Unit: [m/s] Default: 0.00005 [m/hour] = 1.2 [mm/day]

(Inherited from CatchmentAbstractUrban.)
Public propertyIntegratedHorton
True if the Integrated Horton method is used in the calculation for infiltration. Default: False
(Overrides CatchmentAbstractUrbanIntegratedHorton.)
Public propertyItem
Getter returning data that vary with each surface type.
Public propertyLength
The length of the channel.

The model assumes a prismatic flow chammel with rectangular cross section. The channel bottom width is computed from catchment area and length.

This is only applicable when the catchment does not specify their length explicitly, see Length.

Default: 10 m Unit: [m]

Public propertyLoadPerInhabitant
Load per inhabitant. Unit: [-]
(Inherited from CatchmentAbstractUrban.)
Public propertyLowFlow
Low flow limit for switching to dry period time step. The dry period time step will only be applied when the runoff from the rainfall is below the limit. Unit: [m3/s] Default: 0.0001
Public propertyMaximumFlow
Maximum runoff flow
(Inherited from Catchment.)
Public propertyMinimumFlow
Minimum runoff flow
(Inherited from Catchment.)
Public propertyMinTime
Minimum time the catchment should be able to provide values. The catchment will cache or recalculate values from MinTime to EndTime. MinTime must be updated ("dragged behind" time of calculation) from the caller to allow the catchment to discard cached values.
(Inherited from Catchment.)
Public propertyModelId
Catchment model ID. Unique id.
(Inherited from Catchment.)
Public propertyName Obsolete. (Inherited from Catchment.)
Public propertyObservedData
Observed data. Used for creating calibration plots and for auto-calibration reference data.
(Inherited from Catchment.)
Public propertyPersons
Number of person equivalent in the catchment, used with catchment discharge source boundary
(Inherited from Catchment.)
Public propertyReductionFactor
Hydrological reduction coeeficient. The runoff reduction factor, accounts for water losses caused by e.g evapo-transpiration, imperfect imperviousness, etc. on the contributing area. Unit: [-]
(Inherited from CatchmentAbstractUrban.)
Public propertyRunoff
Runoff.

Unit: [m3/s]

This is a computational variable. Setting this has no effect (apart from when writing initial value to result file)

(Inherited from CatchmentAbstractUrban.)
Public propertyRuntimeDiagnostics
Get the Diagnostics instance for a Catchment. Used during runtime.
(Inherited from Catchment.)
Public propertyStatic memberSkipInitialLossRecoveryOnDepthReservoir Obsolete.
If true, the InitialLossRecoveryRate is applied only on wetting and storage loss reservoirs, and not in Depth reservoir.

Default false. Historically set true by MIKE URBAN type setups.

Public propertySlope
Average slope of the catchment Default: 1 Unit: [-]
Public propertySnowMeltCoefficient
Snow melt coefficient. Note: the snow melt coefficient is not in SI unit, because the temperature is assumed to be in degres Celcius. Unit: [m/degCelcius/s]
(Inherited from CatchmentAbstractUrban.)
Public propertySnowStorage
Snow storage

State variable

Only applicable when UseSnowModule is set.

Unit: [m]

(Inherited from CatchmentAbstractUrban.)
Public propertyStartTime
Start time of catchment data - the earliest time for which the catchment can return data
(Inherited from Catchment.)
Public propertyStormWaterLIDs
List of Lids
(Inherited from Catchment.)
Public propertySurfaces
List of surfaces
Public propertyTimeOfMaximumFlow
Time of minimum runoff flow
(Inherited from Catchment.)
Public propertyTimeOfMinimumFlow
Time of maximum runoff flow
(Inherited from Catchment.)
Public propertyTimeStep
Time step used by the catchment model
(Inherited from Catchment.)
Public propertyTimeStepDry
Time step used during dry period Default: 12 hours
Public propertyTimeStepDryPeriod Obsolete.
Time step used during dry period Unit: [s] Default: 12 hours
Public propertyTotalAdditionalInflowVolume
Total volume of additional inflow
(Inherited from Catchment.)
Public propertyTotalLossVolume
Total infiltration into this catchment (integrated over time)
(Inherited from Catchment.)
Public propertyTotalRainfallVolume
Total rainfall on this catchment (integrated over time)
(Inherited from Catchment.)
Public propertyTotalRunoffVolume
Total runoff from this catchment (integrated over time)
(Inherited from Catchment.)
Public propertyTSBuffer
Set the TSBuffer to use in this catchment
(Inherited from Catchment.)
Public propertyUseHotStartFile
Flag telling if initial conditions is taken from a hotstart file Default: false
(Inherited from Catchment.)
Public propertyUseSnowModule
True if the snow module is activated. If True, a temperature time series has to be provided for the catchment.
(Inherited from CatchmentAbstractUrban.)
Public propertyYearlyRunoff
Return dictionary of runoff as a function of year
(Inherited from Catchment.)
Top
Methods
  NameDescription
Public methodApplyBoundary(ICatchmentSourceBoundary)
Apply a boundary to this catchment
(Inherited from CatchmentAbstractUrban.)
Public methodApplyBoundary(GlobalSourceBoundaryTypes, GlobalGeoLocatedSource)
Apply a boundary to this catchment
(Inherited from CatchmentAbstractUrban.)
Protected methodApplyBoundaryLIDs(ICatchmentSourceBoundary)
Apply boundary to LID's in catchment
(Inherited from Catchment.)
Protected methodApplyBoundaryLIDs(GlobalSourceBoundaryTypes, GlobalGeoLocatedSource)
Apply boundary to LID's in catchment
(Inherited from Catchment.)
Protected methodApplySnowModule
Apply snow module if activated, and update _actRainDepth.
(Inherited from CatchmentAbstractUrban.)
Public methodBoundaryTypeIsAdditive
Return true if boundaries of the specified type are additive; the contributions of two discharge boundaries add up, while two temperature boundaries do not.
(Inherited from Catchment.)
Protected methodCalculateStatistics
Calculate statistics on catchment. TODO: Consider moving this to individual catchments to increase performance (avoid using _stateVariables). TODO: Consider moving this out of Catchments class and into seperate class, for generic handling of all catchments
(Overrides CatchmentAbstractUrbanCalculateStatistics.)
Protected methodCalculateYearlyStatistics
Update the yearly statistics.

Called at end of every time step.

(Inherited from CatchmentAbstractUrban.)
Protected methodCreateOffersBase
Create offers, populating _offers and _offerDelegates
(Inherited from CatchmentAbstractUrban.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Destructor
(Inherited from Catchment.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetRequiredTypes
Get the type of boundary required by this catchment
(Inherited from CatchmentAbstractUrban.)
Public methodGetSurfaceData
Getter returning data that vary with each surface type.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitialize
Initialize Rainfall Runoff model. Sets up static data.
(Overrides CatchmentInitialize(IDiagnostics).)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPerformTimeStep
This procedure forwards the calculation with one time step.
(Inherited from Catchment.)
Public methodPrepare
Prepare Rainfall Runoff model. Sets up dynamic data so that the model is ready for first time step.
(Overrides CatchmentAbstractUrbanPrepare(RRParameters, IDiagnostics).)
Protected methodPrepareSource
Prepare boundary source.
(Inherited from Catchment.)
Protected methodPrepareState
Prepare state, especially time
(Inherited from Catchment.)
Public methodResetBoundaries
Remove boundaries applied in previous runs
(Inherited from Catchment.)
Public methodStateUpdated
When state has been updated, this method can be called to update derived/computational variables

The only update in the subcatchment that requires this to be called, is when the [!:CatchmentSurface.Runoff] is updated.

Protected methodTakeTimeStep
Run the rainfall runoff model for the time step ending at the given time.
(Overrides CatchmentTakeTimeStep.)
Public methodTimeAccepts
List of data types that is accepted and can be used in SetValue
(Inherited from Catchment.)
Public methodTimeOffers
List of data types that is offered and can be used in GetValue
(Inherited from Catchment.)
Public methodTimeOfNextUpdate
Return the time of next update. Used for PostTimeStepEvent event in Catchments. If a catchment uses variable timesteps, then this function must be overridden!!
(Inherited from Catchment.)
Public methodTimeValueGetter(IQuantity)
Get value setter for the specified data quantity
(Inherited from Catchment.)
Public methodTimeValueGetter(IQuantity, IQuantity)
Get value setter for the specified data quantity
(Inherited from Catchment.)
Public methodTimeValueGetterRR
Get value setter for the specified data quantity
(Inherited from CatchmentAbstractUrban.)
Public methodTimeValueSetter
Get value setter for the specified data type
(Inherited from Catchment.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Catchment.)
Protected methodTransferStateToOldBase
Transfer current state to state N. First thing to do when starting a timestep.
(Inherited from CatchmentAbstractUrban.)
Protected methodTriggerPostTimeStepEvent
Trigger the PostTimeStepEvent, called at end of a time step.
(Inherited from Catchment.)
Public methodType
The type of catchment: NAM, Urban A etc
(Overrides CatchmentType.)
Public methodUpdate
Update internal state of catchment to time Time()
(Inherited from Catchment.)
Public methodValidate
Validate that the catchment is set up correctly
(Overrides CatchmentValidate.)
Protected methodValidateLIDs
Validate all LIDs in catchment
(Inherited from Catchment.)
Public methodVolumeInCatchment
Volume of water stored in catchment after previous TakeTimeStep()
(Overrides CatchmentVolumeInCatchment.)
Public methodVolumeInCatchmentAtStart
Volume of water stored in catchment after previous TakeTimeStep()
(Inherited from Catchment.)
Top
Events
  NameDescription
Public eventPostTimeStepEvent
Event that is triggered every time the catchment has finished a new time step
(Inherited from Catchment.)
Top
Fields
  NameDescription
Protected field_actEvaporation
Actual evaporation Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_actEvaporationOld
Actual evaporation at time N, Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_actInfiltration
Actual infiltration, loss. Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_actInfiltrationOld
Infiltration at time N. Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_actRainDepth
Actual rain depth. Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_actRainIntensity
Actual rain intensity. Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_additionalFlow
Additional constant flow added to the total runoff Unit: [m3/s] Default: 0
(Inherited from Catchment.)
Protected field_additionalFlowOld
Additional constant flow at start of time step
(Inherited from Catchment.)
Protected field_applyEvaporationOnRain
When raining, if true the evaporation is applied at the beginning of the time step, correcting the net rain (in wet periods).

If false, evaporation is applied at the end of the time step on non-empty storages in the catchment.

In dry periods, this is not used. if EvaporationFromTimeSeries is disabled, this is also not used (since the InitialLossRecoveryRate is only applied in dry periods).

Historically MIKE has set this to true and MIKE URBAN to false.

Protected field_area
Total area of catchment. Type: Catchment area. Unit: [m2]. Default: 1e8 (100 km2).
(Inherited from Catchment.)
Protected field_bInfiltrationAfterRain
True if infiltration shall occur also after rain, used in Horton infiltration depth calculation from INI file Default: True
(Inherited from CatchmentAbstractUrban.)
Protected field_boundarySourceEvaporation
Evaporation boundary source
(Inherited from Catchment.)
Protected field_boundarySourceRainfall
Rainfall boundary source
(Inherited from Catchment.)
Protected field_boundarySourceTemperature
Temperature boundary source
(Inherited from Catchment.)
Protected field_bSnowModule
True if the snow module is activated.
(Inherited from CatchmentAbstractUrban.)
Protected field_effectiveTimeStep
Time step used in the simulation, it may change. It is set in Prepare to _timeStep, and can be updated by individual catchment models when required, i.e. it may differ from _timeStep.
(Inherited from Catchment.)
Protected field_endTime
Protected end time of catchment data - the latest time for which the catchment can return data
(Inherited from Catchment.)
Protected field_evaporationFromForcing
Evaporation that must be applied during the calculation time step. unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_evaporationFromTS
True if evaporation is enabled, and an evaporation boundary has been defined.

If set to false the initial recover rate is used during dry periods. Default: False

(Inherited from CatchmentAbstractUrban.)
Protected field_globalDepthDryLimit
Global dry depth limit from INI file in Kinematic wave: used when InfiltrationAfterRain == true Default: 1e-6 Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_initialLossMax
Maximum value of InitialLossStorageDepth Unit: [m] Default:
(Inherited from CatchmentAbstractUrban.)
Protected field_initialLossRecoverRate
Initial loss recover rate Unit: [m/s] Default: 5e-5 m/h = 1.2 mm/day
(Inherited from CatchmentAbstractUrban.)
Protected field_initialLossStorageDepth
Initial loss storage depth. Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_initialLossStorageDepthOld
Initial loss storage depth at time N. Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_loss
Loss, other than infiltration which goes into _actInfiltration (in another unit). Unit [m3/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_lossOld
Loss at time N. Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_maximumFlow
Maximum flow
(Inherited from Catchment.)
Protected field_minimumFlow
Minimum flow
(Inherited from Catchment.)
Protected field_minTime
Proteced MinTime
(Inherited from Catchment.)
Protected field_offerDelegates
List of delegates, matching list of _offers
(Inherited from CatchmentAbstractUrban.)
Protected field_offers
List of datatypes offered in GetValue
(Inherited from Catchment.)
Protected field_potentialEvaporation
Potential evaporation Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_potentialEvaporationOld
Potential evaporation at time N. Unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_rainfallFromForcing
Rainfall that must be applied during the calculation time step measured in m/s. unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_rainfallFromForcingOld
Rainfall that must be applied during the calculation time step measured in m/s, at time N. unit: [m/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_redCoeff
Hydrological reduction is the runoff reduction factor, accounts for water losses caused by e.g evapo-transpiration, imperfect imperviousness, etc. on the contributing area. Unit: [-] Default: 0.90
(Inherited from CatchmentAbstractUrban.)
Protected field_runoff
Runoff. Unit: [m3/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_runoffOld
Runoff at time N. Unit: [m3/s]
(Inherited from CatchmentAbstractUrban.)
Protected field_runtimeDiagnostics
Diagnostics instance for a Catchment. Used during runtime.
(Inherited from Catchment.)
Protected field_snowStorage
Snow storage Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_snowStorageOld
Snow storage at time N. Unit: [m]
(Inherited from CatchmentAbstractUrban.)
Protected field_startTime
Protected start time of catchment data - the earliest time for which the catchment can return data
(Inherited from Catchment.)
Protected field_stormwaterLIDs
List of Lids
(Inherited from Catchment.)
Protected field_temperatureFromForcing
Temperature that must be applied during the calculation time step. Note: the temperature is given in degres Celcius, which is not SI unit! unit: [degCelcius]
(Inherited from CatchmentAbstractUrban.)
Protected field_timeNew
Variable holding information on the latest calulated time
(Inherited from Catchment.)
Protected field_timeOfLastUpdate
Last time the state of this catchment was updated (Update(DateTime) was called)
(Inherited from Catchment.)
Protected field_timeOfMaximumFlow
Time of maximum flow
(Inherited from Catchment.)
Protected field_timeOfMinimumFlow
Time of minimum flow
(Inherited from Catchment.)
Protected field_timeOld
Variable holding information on the latest calulated time
(Inherited from Catchment.)
Protected field_timeStep
Time step used in the simulation, or initial time step if the time step can change.
(Inherited from Catchment.)
Protected field_timeUpdateFraction
Fraction of time between prev time and current time for the last call to Update(DateTime). This should be updated everytime _timeOfLastUpdate is updated.
(Inherited from Catchment.)
Protected field_totalAdditionalInflowVolume
Total volume of additional inflow
(Inherited from Catchment.)
Protected field_totalLossVolume
Total volume of loss
(Inherited from Catchment.)
Protected field_totalRainfallVolume
Total volume of rain
(Inherited from Catchment.)
Protected field_totalRunoffVolume
Total volume of runoff
(Inherited from Catchment.)
Protected field_tsBuffer
TSBuffer to use when accessing time series objects Set in Catchments.Add(). If not set, then the inheritors must create a TSBuffer before using it.
(Inherited from Catchment.)
Protected field_useHotStartFile
Flag telling if initial conditions is taken from a hotstart file Default: false
(Inherited from Catchment.)
Protected field_yearlyRunoff
Dictionary of runoff as a function of year
(Inherited from Catchment.)
Public fieldStatic memberUse2016DryTimeStepAlgorithm
Revert to dry-timestep algorithm from Release 2016
Public fieldStatic memberUseReverseDraining Obsolete.
Revert to old draining order (Release 2016 and earlier). Set to true to drain in same order as in MOUSE engine.

Reverse draining drains in order: wetting, storage, depth. Hence, when storages are full, wetting and storage will be drained and not depth, depth will be higher and give more runoff. This is visible in low-flow conditions.

Top
See Also