Exemplo n.º 1
0
Arquivo: EGRID.cs Projeto: dorzhi/She
        public EGRID(string filename)
        {
            FileReader br = new FileReader();

            br.OpenBinaryFile(filename);

            while (br.Position < br.Length - 24)
            {
                br.ReadHeader();
                System.Diagnostics.Debug.WriteLine("EGRID:  " + br.header.keyword + " (" + br.header.count + ") " + br.header.type);

                if (br.header.keyword == "FILEHEAD")
                {
                    FILEHEAD   = br.ReadIntList();
                    GRIDTYPE   = FILEHEAD[4];
                    DUALPORO   = FILEHEAD[5];
                    FORMATDATA = FILEHEAD[6];
                    continue;
                }

                if (br.header.keyword == "MAPUNITS")
                {
                    br.ReadBytes(4);
                    MAPUNITS = br.ReadString(8);
                    br.ReadBytes(4);
                    continue;
                }

                if (br.header.keyword == "MAPAXES")
                {
                    br.ReadBytes(4);
                    XENDYAXIS = br.ReadFloat();
                    YENDYAXIS = br.ReadFloat();
                    XORIGIN   = br.ReadFloat();
                    YORIGIN   = br.ReadFloat();
                    XENDXAXIS = br.ReadFloat();
                    YENDXAXIS = br.ReadFloat();
                    br.ReadBytes(4);
                    continue;
                }

                if (br.header.keyword == "GRIDHEAD")
                {
                    GRIDHEAD = br.ReadIntList();
                    NX       = GRIDHEAD[1];
                    NY       = GRIDHEAD[2];
                    NZ       = GRIDHEAD[3];
                    continue;
                }

                if (br.header.keyword == "COORD")
                {
                    COORD = br.ReadFloatList(6 * (NY + 1) * (NX + 1));
                    continue;
                }

                if (br.header.keyword == "ZCORN")
                {
                    ZCORN = br.ReadBigList((ulong)(8 * NX * NY * NZ));
                    continue;
                }

                br.SkipEclipseData();
            }
            br.CloseBinaryFile();
        }