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: 19.0.0.0 (11.1.1.1111)
Syntax
public abstract class Catchment : ICatchment, 
	IDoubleProxy, IQuantityProxy, IDoubleTimeProxy, ICalibratable, ICatchmentSWQ, 
	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 propertyBoundarySourceRainfall
Rainfall boundary source
Public propertyCatchmentGeometry
Get and set the list of coordinates of the catchment
Public propertyCatchmentName
A overall data interface for cathcment data, containing data properties that are common for all catchments.

This interface contains data and parameters for setting up a catchment model, and represents as such only setup data. Computational variables and methods are not included in this interface. It can be used to explore data and parameters required when setting up the catchment model.

Public propertyCenterPoint
Get and set the central point of the catchment
Public propertyCheckPoints
A set of check points in time that must be hit by the catchments.
Public propertyClientName
Public propertyCurrentTime
Current time of catchment
Public 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 propertyEffectiveTimeStep
Time step used in the simulation, it may change. It is set initially in Prepare to TimeStep, and can be updated by individual catchment models when required, i.e. it may differ from TimeStep.
Public propertyEndTime
Return the end time of the catchment simulation. This is set during prepare, and the catchment must make sure not to run beyond this time.
Public propertyMaximumFlow
Maximum runoff flow
Public propertyMinimumFlow
Minimum runoff flow
Public propertyMinTime Obsolete.
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
A overall data interface for cathcment data, containing data properties that are common for all catchments.

This interface contains data and parameters for setting up a catchment model, and represents as such only setup data. Computational variables and methods are not included in this interface. It can be used to explore data and parameters required when setting up the catchment model.

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 propertyRunoff
Total runoff from catchment at present time step. Unit: [m^3/s]
Public propertyRuntimeDiagnostics
Get the Diagnostics instance for a Catchment. Used during runtime.
Public propertyStartTime Obsolete.
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 propertyVolumeOnGroundAdded
Volume of water added to catchment after a time step. This water will be eventually routed.
Public propertyYearlyRunoff
Return dictionary of runoff as a function of year
Public propertyYearlyStatistics
Dictionary of statistics as a function of year
Top
Methods
  NameDescription
Public methodAccepts
Public methodAddToOffers
Public methodApplyBoundary(ICatchmentSourceBoundary)
Apply a boundary to this catchment
Public methodApplyBoundary(CatchmentSourceBoundaryTypes, IBoundarySource)
Apply a boundary to this catchment
Public methodApplyBoundary(GlobalSourceBoundaryTypes, GlobalGeoLocatedSource)
Apply a boundary to this catchment
Protected methodApplyBoundaryLIDs(GlobalGeoLocatedSource)
Apply boundary to LID's in catchment
Protected methodApplyBoundaryLIDs(ICatchmentSourceBoundary)
Apply boundary to LID's in catchment
Protected methodApplyBoundaryLIDs(CatchmentSourceBoundaryTypes, IBoundarySource)
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.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Destructor
(Overrides ObjectFinalize.)
Protected methodFinalizeTimeStep
Finalizes the time step for the catchment.
Public methodGetHashCode
Serves as the default hash function.
(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.)
Protected methodGetYearlyStat
Get or create a RRYearlyStat object for the specified year.
Public methodInitialize
Initialize Rainfall Runoff model. Sets up static data.
Public methodInitializePlugins
Initializes the cathcment plugins.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodOffers
List of data types that is offered and can be used in GetValue
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 methodPrepareForTimeStep
Prepares the catchment for the time step.
Public methodPreparePlugins
Prepares the cathcment plugins.
Protected methodPrepareSource
Prepare boundary source.
Protected methodPrepareState
Prepare state, especially time
Protected methodReadPluginStates
Write current state of plugins
Public methodReset
Reset the catchment and set the current time.
Public methodResetBoundaries
Remove boundaries applied in previous runs
Public methodStateUpdated
If state has been updated from outside, call this method to recalculate state dependent parameters.
Protected methodTakeTimeStep
This procedure is the one actually calculating the new time step.
Public methodTimeOffers
List of data types that is offered and can be used in GetValue
Public methodTimeOfNextUpdate Obsolete.
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
Get value getter for the specified data quantity
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()
Protected methodUpdateCheckPointTime
Updates check point time.
Protected methodUpdateRouting
Updates the routing for the catchment.
Protected methodUpdateStorage
Updates the storage for the catchment.
Protected methodUpdateTime
Update time, setting _timeNew to _timeOld + _effectiveTimeStep. This method will assue that _timeNew does not go beyond _endTime, by modifying _effectiveTimeStep. Before calling UpdateTime, be sure that _effectiveTimeStep is set.
Protected methodUpdateTimeStepUsingCheckPoint
Updates the present time if it is greater than the check point time.
Public methodValidate
Validate that the catchment is set up correctly
Protected methodValidateLIDs
Validate all LIDs in catchment
Public methodValueGetter
Get value setter for the specified data quantity
Public methodValueSetter
Public methodVolumeInCatchment
Volume of water stored in catchment after previous time step.
Public methodVolumeInCatchmentAtStart
Volume of water stored in catchment after previous time step.
Protected methodWritePluginStates
Write current state of plugins
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_checkPointTime
The most recent check point time.
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
Return the end time of the catchment simulation. This is set during prepare, and the catchment must make sure not to run beyond this time.
Protected field_maximumFlow
Maximum flow
Protected field_minimumFlow
Minimum flow
Protected field_minTime
Proteced MinTime
Protected field_offerDelegates
List of delegates, matching list of _offers
Protected field_offers
List of datatypes offered in GetValue
Protected field_runoff
Total runoff from catchment at present time step. Unit: [m^3/s]
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 calculated 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 calculated time
Protected field_timeStep
Time step used in the simulation, or initial time step if the time step can change.
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_volumeOnGroundAdded
Volume on ground added after UpdateStorage
Protected field_volumeOnGroundAfterRouting
Volume on ground after routing
Protected field_volumeOnGroundBeforeRouting
Volume on ground before routing
Protected field_yearlyStatistics
Dictionary of statistics as a function of year
Public fieldCatchmentPlugins
List of catchment plugins
Protected fieldStatic memberconversionFromMmHourMeterSec
Protected fieldStatic memberconversionFromMmToMeter
Public fieldValueBuffer
Top
Extension Methods
  NameDescription
Public Extension MethodGetter(IQuantity)Overloaded.

From the proxy, return an FuncTResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.

(Defined by ProxyExtensions.)
Public Extension MethodGetter(IQuantity, IQuantity)Overloaded.

From the proxy, return an FuncTResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.

(Defined by ProxyExtensions.)
Public Extension MethodGetters
Returns a set of FuncTResult for the quantity. We can return several quantities with the same id (usually they will differ in their description). If the quantity is not offerent, an empty list is returned.
(Defined by ProxyExtensions.)
Public Extension MethodGettersFraction
Returns a set of FuncT, TResult for the quantity. We can return several quantities with the same id (usually they will differ in their description). If the quantity is not offerent, an empty list is returned.
(Defined by ProxyExtensions.)
Public Extension MethodGetterUnboxed

From the proxy, return an FuncTResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.

(Defined by ProxyExtensions.)
Public Extension MethodNTSGeometry
Create an NTS geometry from the CatchmentGeometry.

Depending on the coordinates, the returned IGeometry is either a NTS Polygon or NTS MultiPolygon.

(Defined by RRExtensions.)
Public Extension MethodSetter

From the proxy, return an IDoubleGetSet for the specified quantity.

It returns the first quantity of that type that is accepted, and null if the quantity is not accepted.

(Defined by ProxyExtensions.)
Public Extension MethodTimeValueGetter

From the proxy, return an FuncT, TResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.

(Defined by ProxyExtensions.)
Top
See Also