private double GetFlowLateralMultiplier(
            Cell cell,
            FlowLateralMultiplierMap map,
            int flowGroupId,
            int iteration,
            int timestep)
        {
            Debug.Assert(this.m_IsSpatial);
            Debug.Assert(this.m_FlowLateralMultipliers.Count > 0);

            FlowLateralMultiplier m = map.GetFlowLateralMultiplier(flowGroupId, iteration, timestep);

            if (m == null)
            {
                return(1.0);
            }

            if (!this.m_FlowLateralMultiplierRasters.ContainsKey(m.FileName))
            {
                return(1.0);
            }

            StochasticTimeRaster raster = this.m_FlowLateralMultiplierRasters[m.FileName];
            double v = raster.DblCells[cell.CollectionIndex];

            if ((v < 0.0) || (MathUtils.CompareDoublesEqual(v, raster.NoDataValue, double.Epsilon)))
            {
                return(1.0);
            }
            else
            {
                return(v);
            }
        }
예제 #2
0
        internal void CreateLateralFlowMultiplierMap()
        {
            if (this.m_FlowLateralMultipliers.Count > 0)
            {
                Debug.Assert(this.m_FlowLateralMultiplierMap == null);

                this.m_FlowLateralMultiplierMap = new FlowLateralMultiplierMap(
                    this.m_Scenario, this.m_FlowLateralMultipliers);
            }
        }
예제 #3
0
 internal void ClearFlowLateralMultiplierMap()
 {
     this.m_FlowLateralMultipliers.Clear();
     this.m_FlowLateralMultiplierMap = null;
 }