public void ReadTeapotDome3D() { using (SegyReader reader = new SegyReader(teapotDome3DFileInfo)) { var fileTextualHeaders = reader.FileTextualHeaders; CodeContract.Assume(fileTextualHeaders.Length == 1, "There should be at least 1 text file header in the file."); CodeContract.Assume(reader.TraceCount > 0); CodeContract.Assume(reader.FileBinaryHeader.SamplesPerTraceOfFile > 0); var traces = reader.ReadTraces(); var traceCount = traces.Count(); var minmax = reader.GetAmplitudeRange(); CodeContract.Assume(traceCount == reader.TraceCount); } }
public void CopySegyFileAndCompareToOriginal(FileInfo oldFileInfo) { var newFile = oldFileInfo.FullName.Replace(".sgy", "_tmp.sgy"); FileInfo newFileInfo = new FileInfo($@"{newFile}"); using (SegyReader reader = new SegyReader(oldFileInfo)) { using (SegyWriter writer = new SegyWriter(newFileInfo)) { writer.Write(reader.FileTextualHeaders[0]); writer.Write(reader.FileBinaryHeader); writer.Write(reader.ReadTraces()); } } using (SegyReader oldFileReader = new SegyReader(oldFileInfo)) { using (SegyReader newFileReader = new SegyReader(newFile)) { CodeContract.Assume(oldFileReader.FileTextualHeaders[0] == newFileReader.FileTextualHeaders[0]); CodeContract.Assume(oldFileReader.FileBinaryHeader.Equals(newFileReader.FileBinaryHeader)); var oldTraces = oldFileReader.ReadTraces().ToArray(); var newTraces = newFileReader.ReadTraces().ToArray(); CodeContract.Assume(oldTraces.Length == newTraces.Length); var traceCount = oldTraces.Length; for (int i = 0; i < traceCount; i++) { var oldTrace = oldTraces[i]; var newTrace = newTraces[i]; CodeContract.Assume(oldTrace.Equals(newTrace)); } } } newFileInfo.Delete(); }