/// <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); }
/// <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; }
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); }
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); }
/// <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); }
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); }