コード例 #1
0
        /// <summary>
        /// Compare result and observed data
        /// </summary>
        /// <param name="result"></param>
        public SWATUnitColumnYearCompareResult(SWATUnitColumnYearResult result)
        {
            if (result == null)
            {
                return;
            }
            SWATUnitColumnYearObservationData observed = result.ObservedData;

            if (observed == null)
            {
                return;
            }

            _result1 = result;
            _data2   = observed;

            _interval = _result1.UnitResult.Interval;
            _chartColumns.Add(_result1.ColumnCompare);
            _chartColumns.Add(_data2.ColumnCompare);

            _tableColumns.Add(_result1.ColumnCompare);
            _tableColumns.Add(_data2.ColumnCompare);
            //_tableColumns.Add("ABSOLUTE");
            //_tableColumns.Add("RELATIVE");

            _statistic = new StatisticCompare(this, SeasonType.WholeYear);
        }
コード例 #2
0
        /// <summary>
        /// Compare two results
        /// </summary>
        /// <param name="result1"></param>
        /// <param name="result2"></param>
        public SWATUnitColumnYearCompareResult(SWATUnitColumnYearResult result1, SWATUnitColumnYearResult result2)
        {
            if (result1 == null || result2 == null)
            {
                return;
            }

            if (result1.UnitResult.Unit.Scenario.Scenario.Name.Equals(result2.UnitResult.Unit.Scenario.Scenario.Name)) //same scenario
            {
                if (result1.UnitResult.Unit.Scenario.ModelType == result2.UnitResult.Unit.Scenario.ModelType)          //same model type
                {
                    return;
                }
            }
            else //different scenario
            {
                if (result1.UnitResult.Unit.Scenario.ModelType != result2.UnitResult.Unit.Scenario.ModelType) //different model type
                {
                    return;
                }
            }

            if (result1.UnitResult.Unit.Type != result2.UnitResult.Unit.Type ||
                result1.UnitResult.Unit.ID != result2.UnitResult.Unit.ID)
            {
                return;                                                           //differnt unit type or id
            }
            if (!result1.UnitResult.Name.Equals(result2.UnitResult.Name) ||
                result1.UnitResult.Interval != result2.UnitResult.Interval)
            {
                return;                                                             //differnt data table or interval
            }
            if (!result1.Column.Equals(result2.Column) || result1.Year != result2.Year)
            {
                return;                                                                         //different data column or year
            }
            _result1 = result1;
            _data2   = result2;

            _interval = _result1.UnitResult.Interval;
            _chartColumns.Add(_result1.ColumnCompare);
            _chartColumns.Add(_data2.ColumnCompare);

            _tableColumns.Add(_result1.ColumnCompare);
            _tableColumns.Add(_data2.ColumnCompare);
            //_tableColumns.Add("ABSOLUTE");
            //_tableColumns.Add("RELATIVE");

            if (_result1.ObservedData != null)
            {
                _chartColumns.Add(_result1.ObservedData.ColumnCompare);
                _tableColumns.Add(_result1.ObservedData.ColumnCompare);
            }

            _statistic = new StatisticCompare(this, SeasonType.WholeYear);
        }
コード例 #3
0
        /// <summary>
        /// Compare two results
        /// </summary>
        /// <param name="result1"></param>
        /// <param name="result2"></param>
        public SWATUnitColumnYearCompareResult(SWATUnitColumnYearResult result1, SWATUnitColumnYearResult result2)
        {
            if(result1 == null || result2 == null) return;

            if (result1.UnitResult.Unit.Scenario.Scenario.Name.Equals(result2.UnitResult.Unit.Scenario.Scenario.Name)) //same scenario
            {
                if (result1.UnitResult.Unit.Scenario.ModelType == result2.UnitResult.Unit.Scenario.ModelType) //same model type
                    return;
            }
            else //different scenario
            {
                if (result1.UnitResult.Unit.Scenario.ModelType != result2.UnitResult.Unit.Scenario.ModelType) //different model type
                    return;
            }

            if (result1.UnitResult.Unit.Type != result2.UnitResult.Unit.Type ||
                result1.UnitResult.Unit.ID != result2.UnitResult.Unit.ID) return; //differnt unit type or id

            if (!result1.UnitResult.Name.Equals(result2.UnitResult.Name) ||
                result1.UnitResult.Interval != result2.UnitResult.Interval) return; //differnt data table or interval

            if (!result1.Column.Equals(result2.Column) || result1.Year != result2.Year) return; //different data column or year

            _result1 = result1;
            _data2 = result2;

            _interval = _result1.UnitResult.Interval;
            _chartColumns.Add(_result1.ColumnCompare);
            _chartColumns.Add(_data2.ColumnCompare);

            _tableColumns.Add(_result1.ColumnCompare);
            _tableColumns.Add(_data2.ColumnCompare);
            //_tableColumns.Add("ABSOLUTE");
            //_tableColumns.Add("RELATIVE");

            if (_result1.ObservedData != null)
            {
                _chartColumns.Add(_result1.ObservedData.ColumnCompare);
                _tableColumns.Add(_result1.ObservedData.ColumnCompare);
            }

            _statistic = new StatisticCompare(this,SeasonType.WholeYear);
        }
コード例 #4
0
        /// <summary>
        /// Compare result and observed data
        /// </summary>
        /// <param name="result"></param>
        public SWATUnitColumnYearCompareResult(SWATUnitColumnYearResult result)
        {
            if (result == null) return;
            SWATUnitColumnYearObservationData observed = result.ObservedData;
            if (observed == null) return;

            _result1 = result;
            _data2 = observed;

            _interval = _result1.UnitResult.Interval;
            _chartColumns.Add(_result1.ColumnCompare);
            _chartColumns.Add(_data2.ColumnCompare);

            _tableColumns.Add(_result1.ColumnCompare);
            _tableColumns.Add(_data2.ColumnCompare);
            //_tableColumns.Add("ABSOLUTE");
            //_tableColumns.Add("RELATIVE");

            _statistic = new StatisticCompare(this,SeasonType.WholeYear);
        }
コード例 #5
0
        private static void copyData(SWATResultIntervalType interval, DataTable combineTable, ColumnYearData data)
        {
            //add new column for result2
            combineTable.Columns.Add(data.ColumnCompare, typeof(double));

            //copy data from result2 to the combine table
            int newColIndex = combineTable.Columns.Count - 1;
            for (int i = 0; i < combineTable.Rows.Count; i++)
            {
                if (data is SWATUnitColumnYearResult)
                {
                    ArcSWAT.RowItem item = new ArcSWAT.RowItem(data.Table.Rows[i]);
                    combineTable.Rows[i][newColIndex] = item.getColumnValue_Double(data.Column);
                }
                else if (data is SWATUnitColumnYearObservationData)
                {
                    //see if the oberved data is missing
                    DateTime d = DateTime.Parse(combineTable.Rows[i][SWATUnitResult.COLUMN_NAME_DATE].ToString());

                    DataRow[] rs = null;
                    if (interval == SWATResultIntervalType.MONTHLY)
                        //in phase I, the monthly data is using day 15 for each month, and I would use day 1 for each month, so here for monthly observed data, use both conditions
                        rs = data.Table.Select(string.Format("{0}='{1:yyyy-MM-01}' or {0}='{1:yyyy-MM-15}'", SWATUnitResult.COLUMN_NAME_DATE, d));
                    else if (interval == SWATResultIntervalType.DAILY)
                        rs = data.Table.Select(string.Format("{0}='{1:yyyy-MM-dd}'", SWATUnitResult.COLUMN_NAME_DATE, d));

                    if (rs != null && rs.Length > 0)
                        combineTable.Rows[i][newColIndex] = double.Parse(rs[0][data.Column].ToString());
                    else
                        combineTable.Rows[i][newColIndex] = ScenarioResultStructure.EMPTY_OBSERVED_VALUE; //missing observed data, shouldn't use 0 as for daily observed data they may be 0
                    //changed to -0.000001 to make the chart better
                }
            }
        }
コード例 #6
0
        private static void copyData(SWATResultIntervalType interval, DataTable combineTable, ColumnYearData data)
        {
            //add new column for result2
            combineTable.Columns.Add(data.ColumnCompare, typeof(double));

            //copy data from result2 to the combine table
            int newColIndex = combineTable.Columns.Count - 1;

            for (int i = 0; i < combineTable.Rows.Count; i++)
            {
                if (data is SWATUnitColumnYearResult)
                {
                    ArcSWAT.RowItem item = new ArcSWAT.RowItem(data.Table.Rows[i]);
                    combineTable.Rows[i][newColIndex] = item.getColumnValue_Double(data.Column);
                }
                else if (data is SWATUnitColumnYearObservationData)
                {
                    //see if the oberved data is missing
                    DateTime d = DateTime.Parse(combineTable.Rows[i][SWATUnitResult.COLUMN_NAME_DATE].ToString());

                    DataRow[] rs = null;
                    if (interval == SWATResultIntervalType.MONTHLY)
                    {
                        //in phase I, the monthly data is using day 15 for each month, and I would use day 1 for each month, so here for monthly observed data, use both conditions
                        rs = data.Table.Select(string.Format("{0}='{1:yyyy-MM-01}' or {0}='{1:yyyy-MM-15}'", SWATUnitResult.COLUMN_NAME_DATE, d));
                    }
                    else if (interval == SWATResultIntervalType.DAILY)
                    {
                        rs = data.Table.Select(string.Format("{0}='{1:yyyy-MM-dd}'", SWATUnitResult.COLUMN_NAME_DATE, d));
                    }

                    if (rs != null && rs.Length > 0)
                    {
                        combineTable.Rows[i][newColIndex] = double.Parse(rs[0][data.Column].ToString());
                    }
                    else
                    {
                        combineTable.Rows[i][newColIndex] = ScenarioResultStructure.EMPTY_OBSERVED_VALUE; //missing observed data, shouldn't use 0 as for daily observed data they may be 0
                    }
                    //changed to -0.000001 to make the chart better
                }
            }
        }