Click or drag to resize

Catchment Class

Abstract catchment class.
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 abstract class Catchment : ICatchment, 
	IDoubleTimeProxy, ICatchmentData

The Catchment type exposes the following members.

Constructors
  NameDescription
Protected methodCatchment(String)
Catchment constructor
Protected methodCatchment(String, String)
Catchment constructor
Top
Properties
  NameDescription
Public propertyAdditionalFlow
Additional constant flow added to the total runoff Unit: [m3/s] Default: 0
Public propertyArea
Total area of catchment Type: Catchment area Unit: [m2] Default: 1e8 (100 km2)
Protected propertyAreaInSquareKm
Full area of catchment Type: Catchment area Unit: [km2] Default: 100
Public propertyCatchmentGeometry
Get and set the list of coordinates of the 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.

Public propertyCenterPoint
Get and set the central point of the catchment
Public propertyComponentSources
A Component Source provides info on concentration of various components.
Public propertyCurrentTime
Current time of 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.
Public propertyEndTime
End time of catchment data - the latest time for which the catchment can return data
Public propertyMaximumFlow
Maximum runoff flow
Public propertyMinimumFlow
Minimum runoff flow
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.
Public propertyModelId
Catchment model ID. Unique id.
Public propertyName Obsolete.
Public propertyObservedData
Observed data. Used for creating calibration plots and for auto-calibration reference data.
Public propertyPersons
Number of person equivalent in the catchment, used with catchment discharge source boundary
Public propertyRuntimeDiagnostics
Get the Diagnostics instance for a Catchment. Used during runtime.
Public propertyStartTime
Start time of catchment data - the earliest time for which the catchment can return data
Public propertyStormWaterLIDs
List of Lids
Public propertyTimeOfMaximumFlow
Time of minimum runoff flow
Public propertyTimeOfMinimumFlow
Time of maximum runoff flow
Public propertyTimeStep
Time step used by the catchment model
Public propertyTotalAdditionalInflowVolume
Total volume of additional inflow
Public propertyTotalLossVolume
Total infiltration into this catchment (integrated over time)
Public propertyTotalRainfallVolume
Total rainfall on this catchment (integrated over time)
Public propertyTotalRunoffVolume
Total runoff from this catchment (integrated over time)
Public propertyTSBuffer
Set the TSBuffer to use in this catchment
Public propertyUseHotStartFile
Flag telling if initial conditions is taken from a hotstart file Default: false
Public propertyYearlyRunoff
Return dictionary of runoff as a function of year
Top
Methods
  NameDescription
Public methodApplyBoundary(ICatchmentSourceBoundary)
Apply a boundary to this catchment
Public methodApplyBoundary(GlobalSourceBoundaryTypes, GlobalGeoLocatedSource)
Apply a boundary to this catchment
Protected methodApplyBoundaryLIDs(ICatchmentSourceBoundary)
Apply boundary to LID's in catchment
Protected methodApplyBoundaryLIDs(GlobalSourceBoundaryTypes, GlobalGeoLocatedSource)
Apply boundary to LID's in catchment
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.
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
Protected methodCalculateYearlyStatistics
Update the yearly statistics.

Called at end of every time step.

Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Destructor
(Overrides ObjectFinalize.)
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
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitialize
Initialize Rainfall Runoff model. Sets up static data.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPerformTimeStep
This procedure forwards the calculation with one time step.
Public methodPrepare
Prepare Rainfall Runoff model. Sets up dynamic data so that the model is ready for first time step.
Protected methodPrepareSource
Prepare boundary source.
Protected methodPrepareState
Prepare state, especially time
Public methodResetBoundaries
Remove boundaries applied in previous runs
Protected methodTakeTimeStep
This procedure is the one actually calculating the new time step.
Public methodTimeAccepts
List of data types that is accepted and can be used in SetValue
Public methodTimeOffers
List of data types that is offered and can be used in GetValue
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!!
Public methodTimeValueGetter(IQuantity)
Get value setter for the specified data quantity
Public methodTimeValueGetter(IQuantity, IQuantity)
Get value setter for the specified data quantity
Public methodTimeValueGetterRR
Get value setter for the specified data quantity
Public methodTimeValueSetter
Get value setter for the specified data type
Public methodToString
Returns a string that represents the current object.
(Overrides ObjectToString.)
Protected methodTriggerPostTimeStepEvent
Trigger the PostTimeStepEvent, called at end of a time step.
Public methodType
The type of catchment: NAM, Urban A etc
Public methodUpdate
Update internal state of catchment to time Time()
Public methodValidate
Validate that the catchment is set up correctly
Protected methodValidateLIDs
Validate all LIDs in catchment
Public methodVolumeInCatchment
Volume of water stored in catchment after previous TakeTimeStep()
Public methodVolumeInCatchmentAtStart
Volume of water stored in catchment after previous TakeTimeStep()
Top
Events
  NameDescription
Public eventPostTimeStepEvent
Event that is triggered every time the catchment has finished a new time step
Top
Fields
  NameDescription
Protected field_additionalFlow
Additional constant flow added to the total runoff Unit: [m3/s] Default: 0
Protected field_additionalFlowOld
Additional constant flow at start of time step
Protected field_area
Total area of catchment. Type: Catchment area. Unit: [m2]. Default: 1e8 (100 km2).
Protected field_boundarySourceEvaporation
Evaporation boundary source
Protected field_boundarySourceRainfall
Rainfall boundary source
Protected field_boundarySourceTemperature
Temperature boundary source
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.
Protected field_endTime
Protected end time of catchment data - the latest time for which the catchment can return data
Protected field_maximumFlow
Maximum flow
Protected field_minimumFlow
Minimum flow
Protected field_minTime
Proteced MinTime
Protected field_offers
List of datatypes offered in GetValue
Protected field_runtimeDiagnostics
Diagnostics instance for a Catchment. Used during runtime.
Protected field_startTime
Protected start time of catchment data - the earliest time for which the catchment can return data
Protected field_stormwaterLIDs
List of Lids
Protected field_timeNew
Variable holding information on the latest calulated time
Protected field_timeOfLastUpdate
Last time the state of this catchment was updated (Update(DateTime) was called)
Protected field_timeOfMaximumFlow
Time of maximum flow
Protected field_timeOfMinimumFlow
Time of minimum flow
Protected field_timeOld
Variable holding information on the latest calulated time
Protected field_timeStep
Time step used in the simulation, or initial time step if the time step can change.
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.
Protected field_totalAdditionalInflowVolume
Total volume of additional inflow
Protected field_totalLossVolume
Total volume of loss
Protected field_totalRainfallVolume
Total volume of rain
Protected field_totalRunoffVolume
Total volume of runoff
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.
Protected field_useHotStartFile
Flag telling if initial conditions is taken from a hotstart file Default: false
Protected field_yearlyRunoff
Dictionary of runoff as a function of year
Top
See Also