wpf地震体浏览工具(源码)

时间:2014-11-01 09:41:43
【文件属性】:

文件名称:wpf地震体浏览工具(源码)

文件大小:215KB

文件格式:ZIP

更新时间:2014-11-01 09:41:43

wpf segY

以前用wpf写的地震体浏览工具,还有不完善的地方,借以抛砖引玉。 欢迎交流。 namespace WpfPtest { ///

/// Interaction logic for Window1.xaml /// public partial class Window1 : Window { private CA_SegY.CSegY m_CSegy = new CA_SegY.CSegY(); //private CA_SegY.CSegYScanner m_CSegyScan = new CA_SegY.CSegYScanner(); public Window1() { InitializeComponent(); } private void BtnOpenFile_Click(object sender, RoutedEventArgs e) { OpenFileDialog openSegyFile = new OpenFileDialog(); openSegyFile.ShowDialog(); text_SegyFilePath.Text = openSegyFile.FileName; // string strValue = m_CSegy.GetProtectedStr(); // string strValueTest = m_CSegyScan.GetProtectedStr(); // strValueTest = m_CSegyScan.getValue(); m_CSegy.SetSegyFile(openSegyFile.FileName); m_CSegy.OpenSegyFile(); // m_CSegyScan.SetSegyFile(openSegyFile.FileName); // m_CSegyScan.OpenSegyFile(); ShowSegyFileHeader(); } private void BtnExit_Click(object sender, RoutedEventArgs e) { Close(); } private void ShowSegyFileHeader() { if (null == m_CSegy) { return; } ShowSegyEbcdicHeader(); ShowSegyBinaryHeader(); //ShowSegyTraceInfo(1); } private void ShowSegyEbcdicHeader() { if (null == m_CSegy) { return; } string strEbcdic = ""; strEbcdic = m_CSegy.GetSegyEbcdicHeader(); richTextBox1.AppendText(strEbcdic); } private void ShowSegyBinaryHeader() { if (null == m_CSegy) { return; } CA_SegY.c_SEGYBinary_Header segyBinaryHeader = new CA_SegY.c_SEGYBinary_Header(); segyBinaryHeader = m_CSegy.GetSegyBinaryHeader(); txtSamples.Text = (segyBinaryHeader.hns).ToString();//hns txtSampleRate.Text = (segyBinaryHeader.hdt).ToString() + "ms"; txtTraces.Text = (m_CSegy.GetTracesCount()).ToString(); txtFormatCode.Text = m_CSegy.GetUnitType().ToString(); labelMax.Content = txtTraces.Text; slider1.Maximum = m_CSegy.GetTracesCount(); slider1.Minimum = 1; CoustomSegyBinaryHeader segybinaryheader = new CoustomSegyBinaryHeader(); segybinaryheader.AddInfo("1-4", (segyBinaryHeader.jobid).ToString(), "作业标识号"); segybinaryheader.AddInfo("5-8", (segyBinaryHeader.lino).ToString(), "测线号"); segybinaryheader.AddInfo("9-12", (segyBinaryHeader.reno).ToString(), "卷号"); segybinaryheader.AddInfo("13-14", (segyBinaryHeader.ntrpr).ToString(), "道数"); segybinaryheader.AddInfo("15-16", (segyBinaryHeader.nart).ToString(), "辅助道数"); segybinaryheader.AddInfo("17-18", (segyBinaryHeader.hdt).ToString(), "采样间隔"); segybinaryheader.AddInfo("19-20", (segyBinaryHeader.dto).ToString(), "野外记录间隔"); segybinaryheader.AddInfo("21-22", (segyBinaryHeader.hns).ToString(), "每道样点数"); segybinaryheader.AddInfo("23-24", (segyBinaryHeader.nso).ToString(), "野外记录道的样点数"); segybinaryheader.AddInfo("25-26", (segyBinaryHeader.format).ToString(), "数据格式码"); segybinaryheader.AddInfo("27-28", (segyBinaryHeader.fold).ToString(), "CMP覆盖次数"); segybinaryheader.AddInfo("29-30", (segyBinaryHeader.tsort).ToString(), "道分选码"); segybinaryheader.AddInfo("31-32", (segyBinaryHeader.vscode).ToString(), "垂直叠加码"); segybinaryheader.AddInfo("33-34", (segyBinaryHeader.hsfs).ToString(), "起始扫描频率"); segybinaryheader.AddInfo("35-36", (segyBinaryHeader.hsfe).ToString(), "终止扫描频率"); segybinaryheader.AddInfo("37-38", (segyBinaryHeader.hslen).ToString(), "扫描长度"); segybinaryheader.AddInfo("39-40", (segyBinaryHeader.hstyp).ToString(), "扫描类型码"); segybinaryheader.AddInfo("41-42", (segyBinaryHeader.schn).ToString(), "扫描通道的道号"); segybinaryheader.AddInfo("43-44", (segyBinaryHeader.hstas).ToString(), "有斜坡时,为起始斜坡长度(斜坡起始于时间零,使用时间为该长度)。以 ms 表示。"); segybinaryheader.AddInfo("45-46", (segyBinaryHeader.hstae).ToString(), "终了斜坡长度(终了斜坡起始于扫描长度减终了斜坡长度)。以 ms 表示。"); segybinaryheader.AddInfo("47-48", (segyBinaryHeader.htatyp).ToString(), "斜坡类型"); segybinaryheader.AddInfo("49-50", (segyBinaryHeader.hcorr).ToString(), "相关数据道"); segybinaryheader.AddInfo("51-52", (segyBinaryHeader.bgrcv).ToString(), "二进制增益恢复"); segybinaryheader.AddInfo("53-54", (segyBinaryHeader.rcvm).ToString(), "振幅恢复方式"); segybinaryheader.AddInfo("55-56", (segyBinaryHeader.mfeet).ToString(), "测量系统"); segybinaryheader.AddInfo("57-58", (segyBinaryHeader.polyt).ToString(), "脉冲信号极性"); segybinaryheader.AddInfo("59-60", (segyBinaryHeader.vpol).ToString(), "可控震源 地震信号滞"); segybinaryheader.AddInfo("61-62", (segyBinaryHeader.traceNum).ToString(), "总道数"); segybinaryheader.AddInfo("69-70", (segyBinaryHeader.sampletype).ToString(), "数据域(性质):0-时域,1-振幅,2-相位谱"); segybinaryheader.AddInfo("271-400", "", "没有确定,选择使用 "); ListViewBinary.ItemsSource = segybinaryheader; } private void ShowSegyTraceInfo(int iNo) { if(null == m_CSegy) { return; } CA_SegY.c_SEGYTrace_Info segyTraceHeader = new CA_SegY.c_SEGYTrace_Info(); float[] segyTraceData = new float[m_CSegy.GetTraceSample()]; if (!m_CSegy.getTraceInfo(iNo, ref segyTraceHeader, segyTraceData)) { return; }


【文件预览】:
WpfPSegY
----WpfPtest.suo(31KB)
----WpfPSegY.sln(914B)
----WpfPtest()
--------bin()
--------App.xaml(289B)
--------obj()
--------Window1.xaml(10KB)
--------App.xaml.cs(310B)
--------Window1.xaml.cs(18KB)
--------Service References()
--------WpfPSegY.csproj(4KB)
--------SegYScanner.cs(158B)
--------CSegY.cs(64KB)
--------Properties()
----WpfPSegY.suo(36KB)

网友评论

  • 还是相当有用的。。
  • 很新的技术,值得学习。
  • 还是相当有用的。。