📄 sacio.h
字号:
#if !defined(AFX_SACIO_H__09B45637_E4A0_451C_8D69_B2F88C0089E0__INCLUDED_)
#define AFX_SACIO_H__09B45637_E4A0_451C_8D69_B2F88C0089E0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdio.h>
#include "../wshm/CFileDataHolder.h"
struct sac_header {
float delta, depmin, depmax, scale, odelta;
float b, e, o, a, internal1;
float t0, t1, t2, t3, t4;
float t5, t6, t7, t8, t9;
float f, resp0, resp1, resp2, resp3;
float resp4, resp5, resp6, resp7, resp8;
float resp9, stla, stlo, stel, stdp;
float evla, evlo, evel, evdp, unused1;
float user0, user1, user2, user3, user4;
float user5, user6, user7, user8, user9;
float dist, az, baz, gcarc, internal2;
float internal3, depmen, cmpaz, cmpinc, unused2;
float unused3, unused4, unused5, unused6, unused7;
float unused8, unused9, unused10, unused11, unused12;
long nzyear, nzjday, nzhour, nzmin, nzsec;
long nzmsec, internal4, internal5, internal6, npts;
long internal7, internal8, unused13, unused14, unused15;
long iftype, idep, iztype, unused16, iinst;
long istreg, ievreg, ievtyp, iqual, isynth;
long unused17, unused18, unused19, unused20, unused21;
long unused22, unused23, unused24, unused25, unused26;
long leven, lpspol, lovrok, lcalda, unused27;
char kstnm[8], kevnm[16];
char khole[8], ko[8], ka[8];
char kt0[8], kt1[8], kt2[8];
char kt3[8], kt4[8], kt5[8];
char kt6[8], kt7[8], kt8[8];
char kt9[8], kf[8], kuser0[8];
char kuser1[8], kuser2[8], kcmpnm[8];
char knetwk[8], kdatrd[8], kinst[8];
};
/* defines for enumerated data types */
#define IREAL 0
#define ITIME 1
#define IRLIM 2
#define IAMPH 3
#define IXY 4
#define IUNKN 5
#define IDISP 6
#define IVEL 7
#define IACC 8
#define IB 9
#define IDAY 10
#define IO 11
#define IA 12
#define IT0 13
#define IT1 14
#define IT2 15
#define IT3 16
#define IT4 17
#define IT5 18
#define IT6 19
#define IT7 20
#define IT8 21
#define IT9 22
#define IRADNV 23
#define ITANNV 24
#define IRADEV 25
#define ITANEV 26
#define INORTH 27
#define IEAST 28
#define IHORZA 29
#define IDOWN 30
#define IUP 31
#define ILLLBB 32
#define IWWSN1 33
#define IWWSN2 34
#define IHGLP 35
#define ISRO 36
#define INUCL 37
#define IPREN 38
#define IPOSTN 39
#define IQUAKE 40
#define IPREQ 41
#define IPOSTQ 42
#define ICHEM 43
#define IOTHER 44
#define IGOOD 45
#define IGLCH 46
#define IDROP 47
#define ILOWSN 48
#define IRLDTA 49
#define IVOLTS 50
#define INIV51 51
#define INIV52 52
#define INIV53 53
#define INIV54 54
#define INIV55 55
#define INIV56 56
#define INIV57 57
#define INIV58 58
#define INIV59 59
#define INIV60 60
class CSacFile: public CFileDataHolder
{
public:
CSacFile(void)
{
m_header = sac_null;
m_header.internal4 = 6;
m_header.internal5 = 0;
m_header.internal6 = 0;
m_header.iftype = ITIME;
m_header.idep = IUNKN;
m_header.iztype = IB;
m_header.ievtyp = IUNKN;
m_header.leven = true;
m_header.lpspol = false;
m_header.lcalda = true;
m_header.unused27 = false;
strcpy(m_strEvtNm , "");
strcpy(m_strStaNm , "");
strcpy(m_strFileName,"");
}
virtual ~CSacFile(void) {
if( NULL != m_pData ) {
try {
delete []m_pData;
}
catch(...) {
printf("Delete memory block 'm_pData' failed\n");
throw;
}
}
}
bool SetFileName( const char *in);
const char * GetFileName(void);
bool ReadHead( const char * filename = NULL );
virtual bool LoadData( const char * filename = NULL );
#if defined(_AFXDLL)
virtual void Draw(CDC &dc, CRect drawRc, bool bShowIASP91 = false);
virtual long GetPhaseDrawPos( int indexPhase = 0 );
virtual CTime & GetTime( CTime & time, double & delta, int scrnOffset = 0 );
virtual void Align2Time( const CTime & time, double delta );
float * GetDataPtrByTime( CTime time ) {
CTime tm;
GetFileBaseTime(tm);
CTimeSpan tmSpan = time - tm;
long index = tmSpan.GetTotalSeconds();
index /= m_delta;
ASSERT( index < m_npts && index >= 0 );
return &m_pData[index];
}
const char * GetEvtNm(void) {
return m_strEvtNm;
}
const char * GetStaNm(void) {
return m_strStaNm;
}
#endif
struct sac_header * GetHead(void) {
return &m_header;
}
private:
struct sac_header m_header;
char m_strFileName[FILENAME_MAX];
char m_strEvtNm[100];
char m_strStaNm[100];
public:
static struct sac_header sac_null;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -