Click or drag to resize

DHI.Mike1D.ResultDataAccess Namespace

The DHI.Mike1D.ResultDataAccess component provides common access to a variety of network file formats. It is the main data access component for the MIKE 1D result files, having the .res1d extension. It does also provide support for reading result files from MIKE 11 and MIKE URBAN/MOUSE.
Classes
  ClassDescription
Public classAscii1Bridge
The Ascii1 bridge is a result data write bridge that is capable of writing the results of a result data object to a specific ascii file.

The Ascii1 bridge only stores reach data. All other data items are ignored.

Public classAscii2Bridge
The Ascii2 bridge is a result data write bridge that is capable of writing the results of a result data object to an ascii file.

The Ascii2 bridge only stores reach data. All other data items are ignored.

Public classAsciiBridge
Common class for ascii bridge data
Public classAsciiBridgeData
Ascii file format data, defining how and what is put in the ascii file
Protected classAsciiBridgeDataItemInstance
Class where one dynamic item corresponds to one element value in one data item
Public classAsciiBridgeFactory
Factory for creating Ascii Bridge
Public classCrfBridge
Bridge for reading MOUSE CRF files.
Public classCrfBridgeCrfCatchmentConnection
Catchment connection information as read from .crf file
Public classCrfBridgeFactory
Factory for creating CRF Bridge
Public classDataItem
Public classDataItemFilterName
A class that can filter on names
Public classDataItemFilterQuantity
A class that can filter on quantities
Public classDataItems
Class implementing a list of IDataItem's Required for generic list COM interop
Public classDataItemTimeSingleProxySource
A IDataItem that can update itself based on an IDoubleTimeVectorGetter
Public classDataItemValueTimeInterpolator
Class for interpolating data item values in time, for a data item with just a single value.
Public classDataReaderLazy
Data reader that utilizes the IResultRandomReadBridge and adds lazy reading capabilities. Times for timestep and timesteps are only read on request. Filtering on quantities are respected if the bridge respects it, though filtering on time steps are disregarded.

At most BufferSize time steps are stored in the result data object, hence if reading more than BufferSize number of time steps, the first read time step are removed again (based on reading, not on access).

Public classDataReaderLazyTimeStepDataLazyListT
Lazy list of data item values. Data is stored in a dictionary, key'ed by the time step index
Public classDataReaderLazyTimeStepSingleDataLazyList
Lazy list of data item values, where data is stored as a list of doubles Data is stored in a dictionary, key'ed by the time step index
Public classDfs0Bridge
The Dfs0 bridge is a result data write bridge that is capable of writing the results of a result data object to a dfs0 file.

The Dfs0 bridge only stores reach data. All other data items are ignored.

Public classDfs0BridgeFactory
Factory for creating dfs0 Bridge
Public classFilter
Filter allowing user to specify a subset of the data set. It contains a list of IDataItemFilter that must all accept a dataitem before it is accepted by this filter.
Public classListTimeStepData
Class implementing a list of double[]'s Required for generic list COM interop
Public classLTSQuantities
Default quantities and result quantities used by LTS module.
Public classLTSResultQuantity
Result quantity for LTS simulation
Public classM11FfBlockReader
Class for reading the generic blocks of the original MIKE 11 file format, that is currently only used by MOUSE. File extensions that indicate a file in MIKE 11 file format: .PRF, .CRF,

After connecting to the file, use the GetNextBlockType to quiery the block type, and then any of the ReadBlock methods or the SkipBlock to read/skip the next block. At end-of-file, GetNextBlockType returns EndOfFile.

Public classM11FfBridgeBase
Base class for a bridge reading files in the old MIKE 11 File Format
Protected classM11FfBridgeBaseDataItemIndex
For a channel, holds the data item and the index where to store channel values.
Public classPeriod
Describes a period in time. The period is described through Start- and End- Time.
Public classPeriods
Class implementing a list of IPeriod's Required for generic list COM interop
Public classPredefinedQuantityDataLTS
Static class containing the PredefinedQuantityTableLTS.
Public classPredefinedQuantityLTSProperties
Properties for PredefinedQuantityLTS.
Public classPredefinedQuantityTableLTS
Dictionary from PredefinedQuantityLTS to PredefinedQuantityLTSProperties used by LTSResultQuantity.Create() to create various Quantities for LTS module.
Public classPrfBridge
Bridge for reading MOUSE PRF files.

The bridge can also handle other type of MOUSE result files that has the same structure as PRF file. Some of these PRF-like files are missing the full network definition, and if loaded as a stand-alone file, network is not complete. To get complete network, data must be added to an existing "primary" file, by merging in the data items. Different types of MOUSE results that are supported, are listed below:

  • PRF: HD primary result output.
  • PRF: HD result selection output. Must be added to primary PRF file
  • XRF: HD additional output. Must be added to primary PRF file
  • TRF: AD data. Should be added to primary PRF file, can load standalone with some definitions missing

Public classPrfBridgeFactory
Factory for creating PRF Bridge
Public classRes11BridgeFactory
Factory for creating Res11 Bridge
Public classRes11BridgeLazyFactory
Factory for creating Res11 lazy Bridge
Public classRes1DAbstractDataSet
Abstract class holding the basic constituents for a Res1D data set
Public classRes1DBasin
Basin node
Public classRes1DBridge
Public classRes1DBridgeAppendFactory
Factory for creating Res1d append Bridge
Public classRes1DBridgeFactory
Factory for creating Res1dBridge
Public classRes1DBridgeLazyFactory
Factory for creating Res1d lazy Bridge reader
Public classRes1DBridgeOldFactory
Factory for creating Res1d old format Bridge
Public classRes1DCatchment
Data desription and time step data for a catchment.
Public classRes1DCatchments
Class implementing a list of IRes1DCatchment's Required for generic list COM interop
Public classRes1DCircularCrossSection
Data model for circular cross section. To be able draw circular sections a postprocessing tool (for instance MIKE VIEW) needs to know ID, Centerlevel and Diameter.
Public classRes1DClosedPolygonCrossSection
Interface for a closed cross section defined as a polygon in x-z plane
Public classRes1DCrossSectionPoint
X-Z Point in a tabulated cross section.
Public classRes1DCrossSectionPoints
Class implementing a list of IRes1DCrossSectionPoint's Required for generic list COM interop
Public classRes1DDataSetTimeProxy
Class wrapping an IRes1DDataSet into the IDoubleTimeProxy. It requires a ResultDataTimeInterpolator for doing temporal interplation.

When TimeValueGetter(Int32) is called, a TimeDataValueGetter is returned.

Public classRes1DEggshapedCrossSection
Result meta data for describing egg-shaped circular cross section
Public classRes1DExtensions
Class containing extension methods for Res1D classes
Public classRes1DFactory
A factory class (abstract factory pattern) for creating Res1D objects
Public classRes1DGlobalData
Global data. Global data are data that is not specific to the topology or parts of the topology (network, catchments ..). Global data could be time step used in model, wind field valid for entire domain etc.
Public classRes1DGridPoint
Abstract base class for gridpoints.
Public classRes1DGridPoints
Class implementing a list of IRes1DGridPoint's Required for generic list COM interop
Public classRes1DHGridPoint
Specialized H gridpoint class extending Res1DGridPoint
Public classRes1DInterpolatedCrossSection
Class for an interpolated cross section. An interpolated cross section only contains processed data, and needs other data from elsewhere
Public classRes1DManhole
Access to ManHole data from Res1D data access.
Public classRes1DNetworkDataInterpolatorWrapper
Public classRes1DNetworkDataSetWrapper
Network value set for a Res1D file, based on a given time in the file.

The Res1DNetworkDataSetWrapper provides temporal and spatial interpolation of data from a IResultData.

Public classRes1DNetworkDataTimeSetWrapper
Network value set for a Res1D file The Res1DNetworkDataTimeSetWrapper provides temporal and spatial interpolation of data from a IResultData.
Public classRes1DNetworkFilter
An implementation of the IRes1DSpatialFilter containing a positive list of ids of different types that the filter includes
Public classRes1DNetworkFilterAllNodes
An Res1DNetworkFilter that includes all nodes and only user-specified reaches and grid points.
Public classRes1DNetworkHFilter
An Res1DNetworkFilter that one reaches only includes H grid points, otherwise it behaves as the Res1DNetworkFilter.
Public classRes1DNetworkQFilter
An Res1DNetworkFilter that one reaches only includes Q grid points, otherwise it behaves as the Res1DNetworkFilter.
Public classRes1DNode
Provides access to node data via Res1D data access.
Public classRes1DNodes
Class implementing a list of IRes1DNode's Required for generic list COM interop
Public classRes1DOpenCrossSection
Class implementing a simple open cross section
Public classRes1DOutlet
Outlet node
Public classRes1DQGridPoint
Specialized Q gridpoint
Public classRes1DReach
Default implementation of IRes1DReach
Public classRes1DReachConnection
Structure containing reach and which end that it is connected to (start or end)
Public classRes1DReaches
Class implementing a list of IRes1DReach's Required for generic list COM interop
Public classRes1DRectangularCrossSection
Simple implemtation of a rectangular cross section
Public classRes1DRoutingGridPoint
Specialized routing gridpoint
Public classRes1DSewerJunction
Sewer Junction node
Public classRes1DSewerNode
Sewernode is the base class for nodes used in the sewers.
Public classRes1DSpatialFilterAll
A filter that includes all or none of a certain type.
Public classRes1DSpatialFilterAllQPoints
An IRes1DSpatialFilter that includes all Q grid points and excludes anything else
Public classRes1DSpatialFilterSet
An implementation of the IRes1DSpatialFilter containing a positive list of ids of different types that the filter includes
Public classRes1DStreamBridge
Bridge for reading .res1d files.

This class supports reading files from a .NET stream.

Protected classRes1DStreamBridgeDataItemCollectionInfo
Helper class for storing information on a node-dynamic item before the builder is created.
Protected classRes1DStreamBridgeDataItemInstance
Class where one dynamic item corresponds to one data item
Public classRes1DStructure
Data description of structure
Public classRes1DStructureGridPoint
Specialized Q gridpoint
Public classRes1DStructureOutlet
Special kind of outlet: When a structure is discharging directly out of the system, and no outlet has been explicitly specified, the engine will put in a StuctureOutlet downstream of the structure.
Public classRes1DStructureReach
Default implementation of IRes1DStructureReach
Public classRes1DStructures
Class implementing a list of IRes1DStructure's Required for generic list COM interop
Public classRes1DToTimeSeries
Contains static functions to extract time series from result data.
Public classResultBridgeFactories
Contains a number of IResultBridgeFactory's keyed on the bridge name

By default the following bridges are available:

  • res1d
  • dfs0 - only write support
  • res11 - only read support

Public classResultData
The result data access is the class that all producers or users of MIKE 1D results should use. The class is used for recording the results, reading results, hot-starting the Mike1D engine and extracting specific results.
Public classResultDataBuffer

Class that contains a number of resultdata files. In case of more than one component needing access to the same result data file, it should only be opened once (performance/ressource issues). Hence, each component using a result data file should ask this buffer for the file and if it already exist in the buffer, the existing file will be used.

Each result data file is idenfitied by its full filepath name.

Public classResultDataExtensions
Extension class with various extension methods
Public classResultDataFactory
Class to ease reading and writing of result data files.
Public classResultDataHelper
Helper class that extend the functionality of ResultData

Required for certain functions related to COM interop.

Public classResultDataParameters
Base implementation of IResultDataParameters
Public classResultDataQuery
Class for querying results in a ResultData object
Public classResultDataSearch
Class for fast searching in list of nodes, reaches and catchments.
Public classResultDataTimeInterpolator
Class for interpolating ResultData values in time.

This class has some buffer functionality such that results for the same inputs are returned immediately, without a need for searching.

Public classResultDataXmlBridge
Bridge that writes ResultData to XML file using DataContracts
Public classResultSpecification
Specification for writing results: File to output to, time to output, what to output (quantities), and where (spatially) to include output.
Public classSWMM5IntFileBridge
Class for reading SWMM5 Interface File data and populate a ResultData object.

The SWMM5 Interface File contains outlet node flows.

The

asRR
argument to the constructor flags if data is stored as catchment TotalRunOff or node DischargeOutflow.

The "usual" integration in MIKE 1D is to convert the flow to runoff, and attach to MIKE 1D as catchment runoff file. There can be issues with the catchment connections and these must be regenerated.

To integrate node outflow to MIKE 1D, we probably need to introduce a new type of boundary (Runoff Node Inflow), which assigns directly to the node matching the Id.

There is currently not that much error reporting.

Public classSWMM5IntFileBridgeFactory
Factory for creating SWMM5 Interface File Bridge on the fly
Public classTimeDataCircularValue
Implementation of ITimeData for a single valued item
Public classTimeDataCircularVector
Implementation of ITimeData for a vector item

It stores an array of element values for each time step.

Public classTimeDataValue
Implementation of ITimeData for a single valued item
Public classTimeDataValueGetter
Class providing temporal interpolation of values in an ITimeData, using an ResultDataTimeInterpolator for doing the interpolation.

The ResultDataTimeInterpolator can be used by several instances of this class, in case temporal interpolation is required by more than one data item at the same times.

Public classTimeDataVector
Implementation of ITimeData for a vector item

It stores an array of element values for each time step.

Public classTimeDataVectorTS
Implementation of ITimeData for a vector item.

For each element it stores a list of time steps.

Structures
  StructureDescription
Public structureM11FfBlockReaderChannelDescriptor
Channel descriptor block

In the CHANNEL descripter part information is stored about each specific data series in the data part of the file. In the ITEM descripter part there could as an example be one record describing "water level in nodes". In the CHANNEL description part there must be one record for each node. The record can hold individual information about the node shuch as top and bottom level.

Additional information about each CHANNEL may be placed in a number of extra records just after the CHANNEL descripter record.

ONE channel descriptor record must exist for each channel.

CHANNEL descripter records MUST appear in the same order as the data they represent appears in the logical data record.

Public structureM11FfBlockReaderItemDescriptor
Item Descriptor block

The ITEM descripter part contains one ITEM descripter record for each type of data channel. Examples of ITEMs are "water level" and "flow". If data channels with values for water level as a funtion of time is to be devided into groups e.g. "water level in nodes" and "water level in pipes" then there must exist an ITEM descripter record for each of the groups.

Each item descripter record may represent several data channels of the described ITEM.

In this part of the file no extra records are allowed. Note in particular that ITEM descripter records for data channels with time values must be defined too

ONE item descirptor record for each type of data channel.

No extra records allowed in this part

Public structureM11FfBlockReaderMiscDescriptor
Misc descriptor block
Public structureM11FfBlockReaderTimeDescriptor
Time descriptor block

The TIME descripter part must start with one and only one TIME descripter record. This record contains information about the type of time data in the file. The type of time data ranges from information about an offset time and a constant time step which applies for all data channels, to individual time data for each data value in each data channel.

The individual information is added in a number of extra records after the TIME descripter record. The number of extra records must be specified in the TIME descripter record in variable NR_XREC. If there are no extra records, NR_XREC is defined as zero.

For rectype 1 and 2, the following values are present

DivReal[0] : Number of time steps/values in each data channel
DivReal[1] : Time between first and last value, time span of file

For constant time steps, the time step size can be calculated by:

double timestepSize = DivReal[1] / (DivReal[0]-1.0);

Protected structureM11FfBridgeBaseItemTypeData
Item type data
Protected structureM11FfBridgeBaseUnitConversionFactors
Public structureRes1DStructureLocation
Location of structure
Public structureSerializerCoordsSurrogate
Surrogated class for DHI.Generic.MikeZero.DFS.Coords
Interfaces
  InterfaceDescription
Public interfaceIDataItem

An IDataItem contains data for one quantity and for a number of time steps and elements. For each set of time data there is an array of data element values.

Public interfaceIDataItemFilter
Interface for implementing filtering of data items.
Public interfaceIDataItemFilterQuantity
Interface for DataItemFilterQuantity
Public interfaceIDataItems
Interface for a list of IDataItem's Required for generic list COM interop
Public interfaceIFilter
Filter allowing user to specify a subset of the data set.
Public interfaceIListTimeStepData
Interface for a list of Double's Required for generic list COM interop
Public interfaceIPeriod
Describes a period in time. The period id described through Start- and End- Time.
Public interfaceIPeriods
Interface for a list of IPeriod's Required for generic list COM interop
Public interfaceIRes1DBasin
Data model for a Basin. The basin is a specialisation of a sewer node.
Public interfaceIRes1DCatchment
Data desription and time step data for a catchment.
Public interfaceIRes1DCatchments
Interface for a list of IRes1DCatchment's Required for generic list COM interop
Public interfaceIRes1DCircularCrossSection
Result meta data for describing circular cross section
Public interfaceIRes1DClosedCrossSection
Base interface for closed cross sections in the result data access. Basically it simply defines that all closed cross sections must have a height.
Public interfaceIRes1DClosedPolygonCrossSection
Interface for a closed cross section defined as a polygon in x-z plane
Public interfaceIRes1DCrossSection
Base interface for cross sections in the result data access. Basically it simply defines that all cross sections must have an identification string.
Public interfaceIRes1DCrossSectionPoint
X-Z point in tabulated cross section
Public interfaceIRes1DCrossSectionPoints
Interface for a list of IRes1DCrossSectionPoint's Required for generic list COM interop
Public interfaceIRes1DDataSet
Interface for a general dataset, containing timestep data.
Public interfaceIRes1DEggshapedCrossSection
Result meta data for describing egg-shaped circular cross section
Public interfaceIRes1DFactory
A factory interface (abstract factory pattern) for creating Res1D objects
Public interfaceIRes1DGlobalData
Global data. Global data are data that is not specific to the topology or parts of the topology (network, catchments ..). Global data could be time step used in model, wind filed valid for entire domain etc.
Public interfaceIRes1DGridPoint
Data model for the generalized gridpoint. Actual grid points are specilizations of IRes1dGridPoint
Public interfaceIRes1DGridPoints
Interface for a list of IRes1DGridPoint's Required for generic list COM interop
Public interfaceIRes1DHGridPoint
Data description of the H grid point. A H grid point is a grid point with a cross section.
Public interfaceIRes1DInterpolatedCrossSection
Base interface for interpolated cross sections. An interpolated cross section only contains processed data, and needs other data from elsewhere
Public interfaceIRes1DItemData
Data for one data item and one timestep.

Depending on the type of data in the file, this can be cast to a similar IRes1DItemDataT and the Data can be cast to its raw array data type.

This interface is never implemented directly.

Public interfaceIRes1DItemDataT
Data for one item and timestep. This is the generic extension of IRes1DItemData
Public interfaceIRes1DManhole
The circular manhole is a vertical circular cylinder. The cylinder is bounded vertically by invert level and ground level.
Public interfaceIRes1DNode
Interface to a Res1D Node
Public interfaceIRes1DNodes
Interface for a list of IRes1DNode's Required for generic list COM interop
Public interfaceIRes1DOpenCrossSection
Interface to an open cross section
Public interfaceIRes1DOutlet
Interface for a Res1D outlet
Public interfaceIRes1DQGridPoint
Data description of the Q grid point
Public interfaceIRes1DReach
Data desription and time step data for a reach (also sometimes called a branch or a link)
Public interfaceIRes1DReaches
Interface for a list of IRes1DReach's Required for generic list COM interop
Public interfaceIRes1DRectangularCrossSection
Interface for a rectangular cross section
Public interfaceIRes1DRoutingGridPoint
Data description of a routing grid point. A routing grid point is a Q point that can also have a cross section and a water level
Public interfaceIRes1DSewerJunction
Interface for a Res1D sewer junction.
Public interfaceIRes1DSewerNode
Interface for a Res1D sewer node. This is usually specialized further.
Public interfaceIRes1DSpatialFilter
A filter interface that specifies whether a specified Res1D data structure is included or not.
Public interfaceIRes1DStructure
Data description of structure
Public interfaceIRes1DStructureGridPoint
Data description of the Q grid point
Public interfaceIRes1DStructureOutlet
Interface for a Res1D structure outlet which is a pecial kind of outlet: When a structure is discharging directly out of the system, and no outlet has been explicitly specified, the engine will put in a StuctureOutlet downstream of the structure.
Public interfaceIRes1DStructureReach
Data desription and time step data for a reach that only contains a structure
Public interfaceIRes1DStructures
Interface for a list of IRes1DStructure's Required for generic list COM interop
Public interfaceIResultBridge
Interface that is to be implemted by any MIKE 1D result bridge. The interface standardizes the communication between ResultData access and persistant storage.
Public interfaceIResultBridgeFactory
Interface for a result bridge factory
Public interfaceIResultData
The result data access is the class that all producers or users of MIKE 1D results should use. The class is used for recording the results, reading results, hotstarting the Mike1D engine and extracting specific results.
Public interfaceIResultDataHelper
Helper class that extend the functionality of ResultData

Required for certain functions related to COM interop.

Public interfaceIResultDataIO
TODO: Interface for working the the data in the underlying file format, on a file based manner.
Public interfaceIResultDataParameters
Parameters to use when loading data into an IResultData
Public interfaceIResultDataReader
Interface to connect the IResultData with an IResultReadBridge.

Special kind of read functionality can be required in different scenaries. Examples of read functionality include lazy reading (read only when required), time-filtered reading etc. The data reader implements this special read functionality for the IResultRandomReadBridge bridges.

Public interfaceIResultDataSearch
Utility interface for searching in reaches, nodes, grid points and catchments in the result data object.

Provided for COM interop.

Public interfaceIResultRandomReadBridge
A read bridge that is able to access time step data in random order from a result storage.
Public interfaceIResultReadBridge
Interface that is to be implemted for a bridge that can read data from persistant storage into the ResultData access.
Public interfaceIResultReadWriteBridge
Interface that is to be implemted for a bridge that can read and write between the ResultData access and persistant storage. For detail, see the IResultReadBridge and IResultWriteBridge.
Public interfaceIResultWriteBridge
Interface that is to be implemted for a bridge that can write data from the ResultData access to persistant storage.

The Save method is used for storing the entire content of the result data object to persistant storage. When Save is called, the bridge should initialize and open the persistant storage, write data to the storage and finalise and close the storage.

The methods Prepare(IDiagnostics), Flush(Boolean) and Finish are used for storing data from the result data into persistent storage during a simulation.

The Prepare(IDiagnostics) is called during the prepare phase of the simulation, where all static data is available. The method must initialise the storage, open it for writing and write any required static data (not time dependent data) to the storage.

The Flush(Boolean) method is called regurlarly during the simulation, depending on the SecondsBetweenFileFlush parameter. There can be data for more than one time step in the result data object. The method must store all data present in the result data object. After the flush method, the current data in the result data object is removed. A final call to flush is issued when the simulation is done.

The Finish method will be called when the simulation is done and after the last flush call. It must finalize and close down the persistant storage.

Public interfaceITimeData
Data container, storing a number of time steps and element values.

It has methods for handling as well single valued items (one element) and vector items with several elements.

Protected interfaceRes1DStreamBridgeIDynamicItem
Interface for getting and adding data between a dynamic item and a (set of) data item(s)
Delegates
  DelegateDescription
Public delegateResultDataDoStoreDelegate
Delegate type used to override the build in functionality of when to store results in the result data object.
Public delegateResultTimeStepEvent
Delegate type for hooking up time step notifications
Enumerations
  EnumerationDescription
Public enumerationAsciiBridgeStaticItemTypes
Types of static outputs.
Public enumerationCode exampleDirectionTypes
Direction of data on an axis.
Examples
For velocity data, Positive means that positive velocity value is in positive axis direction, while Negative means that positive velocity value is in the negative axis direction.
Public enumerationEventSortType
LTS sort type, when writing results to PFS file, whether to sort on time or on value.
Public enumerationGridPointTypes
Types of gridpoints
Public enumerationItemTypeGroup
Enumeration that is used to describe whether a certain item is associated with global data, a node or a reach
Public enumerationLoadStatus
Public enumerationLTSCalculatorTypes
LTS calculator types
Public enumerationLTSResultTypes
LTS simulation result types
Public enumerationM11FfBlockReaderBlockType
Type of blocks in MIKE 11 file format
Protected enumerationM11FfBridgeBaseGeometryType
Type of geometry
Public enumerationPredefinedQuantityLTS
Enumeration of predefined quantities for LTS module.
Public enumerationRes1DReachEnd
Enumeration specifying an end of the reach.
Public enumerationRes1DSpatialFilterTypeEnum
Type enum used in Res1DNetworkFilter to specify which grid points on a reach to include in the filter.
Public enumerationResultSpecificationFileMode
How to handle creation of files
Public enumerationResultTypes
Enum specifying unit type of storing frequency
Public enumerationStoringFrequencyUnitTypes
Enum specifying unit type of storing frequency