Exemplo n.º 1
0
        private void Convert45To60()
        {
            CRainfall rainfall   = new CRainfall();
            CRainfall rainfall2  = new CRainfall();
            int       nValues    = this.m_NValues;
            short     fileNumber = (short)FileSystem.FreeFile();

            FileSystem.FileOpen(fileNumber, this.m_OutputFile, OpenMode.Binary, OpenAccess.Default, OpenShare.Default, -1);
            rainfall.ReadRainfallFromBinFile(ref fileNumber, ref 0.0);
            FileSystem.FileClose(new int[] { fileNumber });
            rainfall2.Init(ref (int)Math.Round((double)(((double)(rainfall.TimeSteps * 3)) / 4.0)));
            int index     = 1;
            int timeSteps = rainfall.TimeSteps;
            int num2      = 1;

            while (true)
            {
                int num8 = timeSteps;
                if (num2 > num8)
                {
                    FileSystem.FileClose(new int[0]);
                    rainfall2.PrintRainfall(ref this.m_OutputFile, ref this.m_StartDate, ref 60);
                    return;
                }
                rainfall2.set_Rainfall(index, rainfall.get_Rainfall(num2) + ((float)(0.33333333333333331 * rainfall.get_Rainfall(num2 + 1))));
                index++;
                rainfall2.set_Rainfall(index, (float)(0.66666666666666663 * (rainfall.get_Rainfall(num2 + 1) + rainfall.get_Rainfall(num2 + 2))));
                index++;
                rainfall2.set_Rainfall(index, ((float)(rainfall.get_Rainfall(num2 + 2) * 0.33333333333333331)) + rainfall.get_Rainfall(num2 + 3));
                index++;
                num2 += 4;
            }
        }
Exemplo n.º 2
0
        private void Convert15To24()
        {
            CRainfall rainfall   = new CRainfall();
            CRainfall rainfall2  = new CRainfall();
            CRainfall rainfall3  = new CRainfall();
            int       nValues    = this.m_NValues;
            short     fileNumber = (short)FileSystem.FreeFile();

            FileSystem.FileOpen(fileNumber, this.m_OutputFile, OpenMode.Binary, OpenAccess.Default, OpenShare.Default, -1);
            rainfall.ReadRainfallFromBinFile(ref fileNumber, ref 0.0);
            FileSystem.FileClose(new int[] { fileNumber });
            rainfall3.Init(ref rainfall.TimeSteps * 5);
            int index     = 1;
            int timeSteps = rainfall.TimeSteps;
            int num2      = 1;

            while (true)
            {
                int num11 = timeSteps;
                if (num2 > num11)
                {
                    rainfall2.Init(ref (int)Math.Round((double)(((double)rainfall3.TimeSteps) / 8.0)));
                    index = 1;
                    int num9 = rainfall3.TimeSteps - 1;
                    num2 = 1;
                    while (num2 <= num9)
                    {
                        int num10 = num2 + 7;
                        int num4  = num2;
                        while (true)
                        {
                            num11 = num10;
                            if (num4 > num11)
                            {
                                index++;
                                num2 += 8;
                                break;
                            }
                            rainfall2.set_Rainfall(index, rainfall2.get_Rainfall(index) + rainfall3.get_Rainfall(num4));
                            num4++;
                        }
                    }
                    FileSystem.FileClose(new int[0]);
                    rainfall2.PrintRainfall(ref this.m_OutputFile, ref this.m_StartDate, ref 0x5a0);
                    return;
                }
                rainfall3.set_Rainfall(index, rainfall.get_Rainfall(num2) / 5f);
                index++;
                rainfall3.set_Rainfall(index, rainfall.get_Rainfall(num2) / 5f);
                index++;
                rainfall3.set_Rainfall(index, rainfall.get_Rainfall(num2) / 5f);
                index++;
                rainfall3.set_Rainfall(index, rainfall.get_Rainfall(num2) / 5f);
                index++;
                rainfall3.set_Rainfall(index, rainfall.get_Rainfall(num2) / 5f);
                index++;
                num2++;
            }
        }
Exemplo n.º 3
0
        public void ComputeP(ref CRainfall CurrRainfall, ref CRainfall NewRainfall)
        {
            short[]   numArray3 = new short[9];
            short[]   numArray2 = new short[9];
            short[]   numArray  = new short[9];
            short     grp       = 1;
            CRainfall rainfall  = CurrRainfall;
            int       timeSteps = rainfall.TimeSteps;
            int       index     = 1;

            while (true)
            {
                int num5 = timeSteps;
                if (index > num5)
                {
                    grp = 1;
                    grp = 1;
                    while (true)
                    {
                        if (Operators.ConditionalCompareObjectGreater(this.NEvents(ref grp), 0, false))
                        {
                            this.m_Pxx[grp] = Conversions.ToSingle(Operators.DivideObject(numArray3[grp], this.NEvents(ref grp)));
                            this.m_P10[grp] = Conversions.ToSingle(Operators.DivideObject(numArray2[grp], this.NEvents(ref grp)));
                            this.m_P01[grp] = Conversions.ToSingle(Operators.DivideObject(numArray[grp], this.NEvents(ref grp)));
                        }
                        grp = (short)(grp + 1);
                        short num6 = 8;
                        if (grp > num6)
                        {
                            rainfall = null;
                            return;
                        }
                    }
                }
                if (this.m_Groups[grp] > 0)
                {
                    if ((rainfall.get_Rainfall(index) == 0f) & (rainfall.get_Rainfall(index + 1) > 0f))
                    {
                        numArray[this.m_Groups[grp]] = (short)(numArray[this.m_Groups[grp]] + 1);
                    }
                    else if ((rainfall.get_Rainfall(index) > 0f) & (rainfall.get_Rainfall(index + 1) == 0f))
                    {
                        numArray2[this.m_Groups[grp]] = (short)(numArray2[this.m_Groups[grp]] + 1);
                    }
                    else if ((rainfall.get_Rainfall(index) > 0f) & (rainfall.get_Rainfall(index + 1) > 0f))
                    {
                        numArray3[this.m_Groups[grp]] = (short)(numArray3[this.m_Groups[grp]] + 1);
                    }
                    else
                    {
                        short num;
                        num = (short)(num + 1);
                    }
                }
                grp    = (short)(grp + 1);
                index += 2;
            }
        }
Exemplo n.º 4
0
        public CRainfall Add(ref string sKey = "")
        {
            CRainfall item = new CRainfall();

            if (Strings.Len((string)sKey) == 0)
            {
                this.mCol.Add(item, null, null, null);
            }
            else
            {
                this.mCol.Add(item, sKey, null, null);
            }
            return(null);
        }
Exemplo n.º 5
0
        public void ComputeW1AndW2(ref CRainfall lower, ref CRainfall upper)
        {
            int   index     = 1;
            short valno     = (short)index;
            int   timeSteps = lower.TimeSteps;
            int   num       = 1;

            while (true)
            {
                int num5 = timeSteps;
                if (num > num5)
                {
                    this.ComputeWAverages();
                    return;
                }
                if ((lower.get_Rainfall(num) > 0f) & (lower.get_Rainfall(num + 1) > 0f))
                {
                    this.set_w1(this.get_WeightGroup(index), valno, lower.get_Rainfall(num) / upper.get_Rainfall(index));
                    this.set_W2(this.get_WeightGroup(index), valno, lower.get_Rainfall(num + 1) / upper.get_Rainfall(index));
                }
                valno = (short)(index + 1);
                num  += 2;
            }
        }
Exemplo n.º 6
0
        public void DetermineWeightGroups(ref CRainfall Rainfall)
        {
            this.m_Groups = new short[Rainfall.TimeSteps + 1];
            float     num2      = Rainfall.get_MeanRainfall(false);
            CRainfall rainfall  = Rainfall;
            int       timeSteps = rainfall.TimeSteps;

            if (timeSteps == 1)
            {
                this.m_Groups[1] = 1;
            }
            else
            {
                this.m_Groups[1] = (rainfall.get_Rainfall(2) != 0f) ? ((rainfall.get_Rainfall(1) != 0f) ? ((rainfall.get_Rainfall(1) >= num2) ? ((short)1) : ((short)2)) : ((short)1)) : ((rainfall.get_Rainfall(1) != 0f) ? ((rainfall.get_Rainfall(1) >= num2) ? ((short)7) : ((short)8)) : ((short)(-1)));
                int num4  = timeSteps - 1;
                int index = 2;
                while (true)
                {
                    int num5 = num4;
                    if (index > num5)
                    {
                        if (rainfall.get_Rainfall(timeSteps - 1) == 0f)
                        {
                            if (rainfall.get_Rainfall(index) == 0f)
                            {
                                this.m_Groups[index] = -1;
                            }
                            else
                            {
                                this.m_Groups[timeSteps] = (rainfall.get_Rainfall(timeSteps) <= num2) ? ((short)8) : ((short)7);
                            }
                        }
                        else if (rainfall.get_Rainfall(index) == 0f)
                        {
                            this.m_Groups[index] = -1;
                        }
                        else
                        {
                            this.m_Groups[timeSteps] = (rainfall.get_Rainfall(timeSteps) <= num2) ? ((short)6) : ((short)5);
                        }
                        break;
                    }
                    if ((rainfall.get_Rainfall(index - 1) == 0f) & (rainfall.get_Rainfall(index + 1) == 0f))
                    {
                        this.m_Groups[index] = (rainfall.get_Rainfall(index) != 0f) ? ((rainfall.get_Rainfall(index) <= num2) ? ((short)8) : ((short)7)) : ((short)(-1));
                    }
                    else if ((rainfall.get_Rainfall(index - 1) == 0f) & (rainfall.get_Rainfall(index + 1) > 0f))
                    {
                        this.m_Groups[index] = (rainfall.get_Rainfall(index) != 0f) ? ((rainfall.get_Rainfall(index) <= num2) ? ((short)2) : ((short)1)) : ((short)(-1));
                    }
                    else if ((rainfall.get_Rainfall(index - 1) > 0f) & (rainfall.get_Rainfall(index + 1) == 0f))
                    {
                        this.m_Groups[index] = (rainfall.get_Rainfall(index) != 0f) ? ((rainfall.get_Rainfall(index) <= num2) ? ((short)6) : ((short)5)) : ((short)(-1));
                    }
                    else if ((rainfall.get_Rainfall(index - 1) > 0f) & (rainfall.get_Rainfall(index + 1) > 0f))
                    {
                        this.m_Groups[index] = (rainfall.get_Rainfall(index) != 0f) ? ((rainfall.get_Rainfall(index) <= num2) ? ((short)4) : ((short)3)) : ((short)(-1));
                    }
                    index++;
                }
            }
            rainfall = null;
        }