|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
//文件: SegY文件操作类
|
|
|
//主要功能:
|
|
|
//
|
|
|
//程序编写: 2005-12-07
|
|
|
//
|
|
|
//
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#pragma once
|
|
|
#include "sectiontrace.h"
|
|
|
#include ".\sectionmath.h"
|
|
|
|
|
|
class AFX_EXT_CLASS CSectionProcess :
|
|
|
public CSectionTrace
|
|
|
{
|
|
|
public:
|
|
|
CSectionProcess(void);
|
|
|
virtual ~CSectionProcess(void);
|
|
|
|
|
|
CSectionMath sectionMath; //对地震道进行波阻抗反演
|
|
|
virtual void Clear(void);
|
|
|
virtual void operator=(CSectionProcess& sb);
|
|
|
|
|
|
CTraceData m_traceAttribute; //地震剖面数据,属性值,如果显示为时间剖面时,由m_traceData经过属性计算得到,
|
|
|
// 当显示的为深度剖面时,由m_traceDepth经过属性计算得到
|
|
|
int ToAttributeOne(int nIndex); //根据显示的是时间还是深度剖面将其属性值计算出来
|
|
|
void ToAttribute(void);
|
|
|
|
|
|
virtual void ClearTraceData(void);//清除已读取的地震道数据
|
|
|
virtual void Reversal(void);
|
|
|
|
|
|
int m_nFrequency; //提高频1或低频0
|
|
|
BOOL m_bUniform; //是否规一化
|
|
|
int m_SectionViewMode; //剖面显示模式:0原始,1振幅进行平方
|
|
|
int m_nSectionProcessMode; //剖面处理模式:0缺省,1瞬时振幅,2瞬时相位,3瞬时频率
|
|
|
|
|
|
protected:
|
|
|
virtual void InitSection(); //在显示剖面之前,进行初始化操作
|
|
|
virtual void SectionMath(CVector& vt); //对读取的地震道进行处理
|
|
|
|
|
|
UINT *m_pSmoothMode; //对剖面进行数据处理计算的方式,方式定义在CSectionMath中
|
|
|
int m_SmoothNum; //m_pSmoothMode的长度
|
|
|
|
|
|
public:
|
|
|
//对地震剖面进行道间均衡,N是每组的道数,为奇数
|
|
|
//int Equalizer(CString output,int N,int K,int M,double constant);
|
|
|
//double Average(CVector& vector,CVector& value,int K);
|
|
|
|
|
|
void SetSmoothMode(UINT *pMode,int n);
|
|
|
BOOL IsUniform(void);
|
|
|
float* GetTrace(int i);
|
|
|
};
|