private static HorizonSample[] ReadHorizon(string horizonPath) { var horizonSamples = CsvReading.ReadCsvFromFile <HorizonSample>(horizonPath, "\t") .Where(s => s.Amplitude != NullValue && s.Porosity != NullValue && s.Z != NullValue) .ToArray(); Console.WriteLine($"Read {horizonSamples.Length} horizon samples."); return(horizonSamples); }
private static void Crunch(CrunchOptions opts) { HorizonSample[] horizonSamples = ReadHorizon(opts.HorizonPath); var wells = CsvReading.ReadCsvFromFile <Location>(opts.WellPath) .ToArray(); Console.WriteLine($"Read {wells.Length} well locations."); if (horizonSamples[0].DistanceToNearestWell == 0) { Console.WriteLine("Calculating distances..."); foreach (var sample in horizonSamples) { sample.DistanceToNearestWell = DistanceToNearestWell(sample, wells); } } else { Console.WriteLine("Skipping distance calculation because distance already in horizon file."); } Console.WriteLine("Writing output..."); CsvReading.WriteCsvToFile(opts.OutputPath, horizonSamples); Console.WriteLine("Done."); Console.WriteLine("You're welcome."); }