using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
namespace IStation
|
{
|
public class AnaGlobalParas
|
{
|
|
public static CalcModel.AnaSetting Setting { get; set; }
|
|
public static List<Model.RiverWaterLevelDrop> RiverWaterLevelDropList { get; set; }
|
|
public static List<Model.ReservoirParas> ReservoirParasList { get; set; }
|
|
public static double CalcReservoirLevel(double start_level, double flow)
|
{
|
var _list = ReservoirParasList;
|
|
if (start_level <= _list.First().Level)
|
{
|
double area水库面积 = _list.First().Area;
|
|
if (area水库面积 < 1)
|
{
|
return start_level;
|
}
|
|
|
|
var height = flow / area水库面积 / 10000;
|
|
return Math.Round(start_level + height, 4);
|
}
|
if (start_level >= _list.Last().Level)
|
{
|
double area水库面积 = _list.Last().Area;
|
|
if (area水库面积 < 1)
|
{
|
return start_level;
|
}
|
var height = flow / area水库面积 / 10000;
|
|
return Math.Round(start_level + height, 4);
|
}
|
|
for (int i = 0; i < _list.Count; i++)
|
{
|
if (start_level < _list[i].Level)
|
{
|
double area水库面积 = _list[i].Area;
|
var height = flow / area水库面积 / 10000;
|
|
return Math.Round(start_level + height, 4);
|
}
|
}
|
|
{
|
double area水库面积 = _list.Last().Area;
|
|
if (area水库面积 < 1)
|
{
|
return start_level;
|
}
|
var height = flow / area水库面积 / 10000;
|
|
return Math.Round(start_level + height, 4);
|
}
|
|
}
|
|
}
|
}
|