Exemplo n.º 1
0
        /// <summary>
        /// Returns a CSV file
        /// </summary>
        /// <returns></returns>
        public CSV_File ToCSVFile()
        {
            CSV_File csv       = new CSV_File();
            string   depthUnit = this.Metric? "m": "ft";

            csv.Channels.Add(ChannelToCSV("Sensor", "unitless", "0"));
            csv.Channels.Add(ChannelToCSV("MD", depthUnit, "0.00"));
            csv.Channels.Add(ChannelToCSV("Northing", depthUnit, "0.00"));
            csv.Channels.Add(ChannelToCSV("Easting", depthUnit, "0.00"));
            csv.Channels.Add(ChannelToCSV("Depth SRD", depthUnit, "0.00"));
            csv.Channels.Add(ChannelToCSV("Active", "unitless", "0"));
            csv.Channels.Add(ChannelToCSV("Type", "unitless", "0"));
            csv.Channels.Add(ChannelToCSV("Gain", "unitless", "0.000"));
            csv.Channels.Add(ChannelToCSV("Sensitivity", "unit/V", "0.000"));
            csv.Channels.Add(ChannelToCSV("Full Scale", "unit", "0.000"));
            csv.Channels.Add(ChannelToCSV("Filter Min", "Hz", "0.0"));
            csv.Channels.Add(ChannelToCSV("Filter Max", "Hz", "0.0"));
            csv.Channels.Add(ChannelToCSV("iN", "unitless", "0.00000"));
            csv.Channels.Add(ChannelToCSV("iE", "unitless", "0.00000"));
            csv.Channels.Add(ChannelToCSV("iD", "unitless", "0.00000"));
            csv.Channels.Add(ChannelToCSV("Polarity", "unitless", "0"));
            csv.Channels.Add(ChannelToCSV("P Static", "s", "0.0000"));
            csv.Channels.Add(ChannelToCSV("S Static", "s", "0.0000"));
            csv.SaveDescriptions = false;
            return(csv);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Loads data from fully qualified CSV file
        /// Exceptions are thrown if the column names are wrong
        /// </summary>
        /// <param name="?"></param>
        public void FromCSVFile(CSV_File csv)
        {
            SensorDescriptionFile sdf   = new SensorDescriptionFile();
            CSV_Channel           index = csv.GetIndex();

            if (index == null)
            {
                throw new Exception("File contains no valid data");
            }
            CSV_Channel MD                 = CSVToChannel(csv, "MD");
            CSV_Channel Northing           = CSVToChannel(csv, "Northing");
            CSV_Channel Easting            = CSVToChannel(csv, "Easting");
            CSV_Channel DepthSRD           = CSVToChannel(csv, "Depth SRD");
            CSV_Channel IsActive           = CSVToChannel(csv, "Active");
            CSV_Channel Type               = CSVToChannel(csv, "Type");
            CSV_Channel Gain               = CSVToChannel(csv, "Gain");
            CSV_Channel Sensitivity        = CSVToChannel(csv, "Sensitivity");
            CSV_Channel FullScale          = CSVToChannel(csv, "Full Scale");
            CSV_Channel LowFrequency       = CSVToChannel(csv, "Filter Min");
            CSV_Channel HighFrequency      = CSVToChannel(csv, "Filter Max");
            CSV_Channel iN                 = CSVToChannel(csv, "iN");
            CSV_Channel iE                 = CSVToChannel(csv, "iE");
            CSV_Channel iD                 = CSVToChannel(csv, "iD");
            CSV_Channel Polarization       = CSVToChannel(csv, "Polarity");
            CSV_Channel PStationCorrection = CSVToChannel(csv, "P Static");
            CSV_Channel SStationCorrection = CSVToChannel(csv, "S Static");

            sdf.Metric = !DepthSRD.Unit.ToUpper().Contains("F");
            for (int i = 0; i < index.Data.Count; i++)
            {
                SensorDescription sd = new SensorDescription();
                sd.ChannelNumber      = i + 1;
                sd.MD                 = MD.Data[i];
                sd.Northing           = Northing.Data[i];
                sd.Easting            = Easting.Data[i];
                sd.DepthSRD           = DepthSRD.Data[i];
                sd.IsActive           = IsActive.Data[i] > 0.0;
                sd.Type               = Type.Data[i].ToString("0").PadLeft(5, '0');
                sd.Gain               = Gain.Data[i];
                sd.Sensitivity        = Sensitivity.Data[i];
                sd.FullScale          = FullScale.Data[i];
                sd.LowFrequency       = LowFrequency.Data[i];
                sd.HighFrequency      = HighFrequency.Data[i];
                sd.iN                 = iN.Data[i];
                sd.iE                 = iE.Data[i];
                sd.iD                 = iD.Data[i];
                sd.Polarization       = (Polarization.Data[i] < 0.0) ? -1 : 1;
                sd.PStationCorrection = PStationCorrection.Data[i];
                sd.SStationCorrection = SStationCorrection.Data[i];
                sdf.Sensors.Add(sd);
            }
            if (sdf.Sensors.Count <= 0)
            {
                throw new Exception("CSV file contains no data.");
            }
            this.Sensors.Clear();
            this.Metric  = sdf.Metric;
            this.Sensors = sdf.Sensors;
            m_Modified   = true;
        }
Exemplo n.º 3
0
 public static Oilfield_File OpenData(string filename)
 {
     if (!File.Exists(filename))
     {
         return(null);
     }
     if (CSV_File.IsCSVFile(filename))
     {
         return(new CSV_File(filename));
     }
     if (SEGY_File.IsSEGYFile(filename))
     {
         return(new SEGY_File(filename));
     }
     if (LAS_File.IsLASFile(filename))
     {
         return(new LAS_File(filename, true));
     }
     if (Petrolog_File.IsPetrologFile(filename))
     {
         Petrolog_File pf = new Petrolog_File(filename);
         //Petrolog_Channel index = pf.GetIndex();
         //index.LoadData();
         pf.CreateIndexMetric();
         return(pf);
     }
     return(null);
 }
Exemplo n.º 4
0
        private CSV_Channel CSVToChannel(CSV_File csv, string name)
        {
            CSV_Channel c = csv.GetChannel(name);

            if (c == null)
            {
                throw new Exception("File does not contain channel " + name + ".");
            }
            return(c);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Returns a chort CSV file for FM loading
        /// </summary>
        /// <returns></returns>
        public CSV_File ToCSVFMFile()
        {
            CSV_File csv = new CSV_File();

            //Chan,Inst,Axis,MD,iN,iE,iD
            csv.Channels.Add(ChannelToCSV("Chan", "", "0"));
            csv.Channels.Add(ChannelToCSV("Inst", "", "0"));
            csv.Channels.Add(ChannelToCSV("Axis", "", "0"));
            csv.Channels.Add(ChannelToCSV("MD", "", "0"));
            csv.Channels.Add(ChannelToCSV("iN", "", "0.00000"));
            csv.Channels.Add(ChannelToCSV("iE", "", "0.00000"));
            csv.Channels.Add(ChannelToCSV("iD", "", "0.00000"));
            csv.SaveUnits        = false;
            csv.SaveDescriptions = false;
            return(csv);
        }
Exemplo n.º 6
0
 public static Oilfield_File OpenHeader(string filename)
 {
     if (!File.Exists(filename))
     {
         return(null);
     }
     if (CSV_File.IsCSVFile(filename))
     {
         return(new CSV_File(filename));
     }
     if (SEGY_File.IsSEGYFile(filename))
     {
         return(new SEGY_File(filename));
     }
     if (LAS_File.IsLASFile(filename))
     {
         return(new LAS_File(filename, false));
     }
     if (Petrolog_File.IsPetrologFile(filename))
     {
         return(new Petrolog_File(filename));
     }
     return(null);
 }