예제 #1
0
        /// <summary>
        /// 读取
        /// </summary>
        /// <returns></returns>
        public Gpt2File1Degree Read()
        {
            if (!File.Exists(path))
            {
                return(null);
            }

            List <Gpt2Value1Degree> Gpt2Info = new List <Gpt2Value1Degree>();
            bool isEnd = true;

            using (StreamReader sr = new StreamReader(path))
            {
                string line = sr.ReadLine();
                //string line = sr.ReadLine();
                while (isEnd)
                {
                    line = sr.ReadLine();
                    if (line == null || line == "")
                    {
                        break;
                    }
                    if (line.Length > 500)
                    {
                        throw new Exception("Line too long");
                    }

                    if (line.Length == 0)
                    {
                        isEnd = false;
                    }

                    string[] values = StringUtil.SplitByBlank(line);
                    double   lat    = double.Parse(values[0]);
                    double   lon    = double.Parse(values[1]);
                    pressure pre    = new pressure();
                    pre.a0 = double.Parse(values[2]);
                    pre.A1 = double.Parse(values[3]);
                    pre.B1 = double.Parse(values[4]);
                    pre.A2 = double.Parse(values[5]);
                    pre.B2 = double.Parse(values[6]);

                    T T = new T();
                    T.a0 = double.Parse(values[7]);
                    T.A1 = double.Parse(values[8]);
                    T.B1 = double.Parse(values[9]);
                    T.A2 = double.Parse(values[10]);
                    T.B2 = double.Parse(values[11]);

                    Q Q = new Q();
                    Q.a0 = double.Parse(values[12]) / 1000;
                    Q.A1 = double.Parse(values[13]) / 1000;
                    Q.B1 = double.Parse(values[14]) / 1000;
                    Q.A2 = double.Parse(values[15]) / 1000;
                    Q.B2 = double.Parse(values[16]) / 1000;

                    dT dT = new dT();
                    dT.a0 = double.Parse(values[17]) / 1000;
                    dT.A1 = double.Parse(values[18]) / 1000;
                    dT.B1 = double.Parse(values[19]) / 1000;
                    dT.A2 = double.Parse(values[20]) / 1000;
                    dT.B2 = double.Parse(values[21]) / 1000;

                    double undu = double.Parse(values[22]);
                    double Hs   = double.Parse(values[23]);

                    ah ah = new ah();
                    ah.a0 = double.Parse(values[24]) / 1000;
                    ah.A1 = double.Parse(values[25]) / 1000;
                    ah.B1 = double.Parse(values[26]) / 1000;
                    ah.A2 = double.Parse(values[27]) / 1000;
                    ah.B2 = double.Parse(values[28]) / 1000;

                    aw aw = new aw();
                    aw.a0 = double.Parse(values[29]) / 1000;
                    aw.A1 = double.Parse(values[30]) / 1000;
                    aw.B1 = double.Parse(values[31]) / 1000;
                    aw.A2 = double.Parse(values[32]) / 1000;
                    aw.B2 = double.Parse(values[33]) / 1000;

                    la la = new la();
                    la.a0 = double.Parse(values[34]);
                    la.A1 = double.Parse(values[35]);
                    la.B1 = double.Parse(values[36]);
                    la.A2 = double.Parse(values[37]);
                    la.B2 = double.Parse(values[38]);

                    Tm Tm = new Tm();
                    Tm.a0 = double.Parse(values[39]);
                    Tm.A1 = double.Parse(values[40]);
                    Tm.B1 = double.Parse(values[41]);
                    Tm.A2 = double.Parse(values[42]);
                    Tm.B2 = double.Parse(values[43]);

                    Gpt2Value1Degree data = new Gpt2Value1Degree(lat, lon, pre, T, Q, dT, undu, Hs, ah, aw, la, Tm);
                    Gpt2Info.Add(data);
                }
                return(new Gpt2File1Degree(Gpt2Info));
            }
        }
예제 #2
0
 public Gpt2Value1Degree(double lat, double lon, pressure pre, T T, Q Q, dT dT, double undu, double Hs, ah ah, aw aw, la la, Tm Tm)
     : base(lat, lon, pre, T, Q, dT, undu, Hs, ah, aw)
 {
     this.Tm = Tm;
     this.la = la;
 }