|
|
|
|
using System;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
|
|
|
|
namespace Dat2Bin
|
|
|
|
|
{
|
|
|
|
|
public struct MTEMFreqFile
|
|
|
|
|
{
|
|
|
|
|
public byte No;//0-29
|
|
|
|
|
public ushort CycleLen;//
|
|
|
|
|
public ushort CycleNum;//
|
|
|
|
|
public int WaveStyle;//
|
|
|
|
|
public float SampleRate;//
|
|
|
|
|
public sbyte pro;//
|
|
|
|
|
public byte OutCurrent;//
|
|
|
|
|
public float Time;//
|
|
|
|
|
public float Freq;//。
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
|
|
|
|
public struct MTEM_TInfo
|
|
|
|
|
{
|
|
|
|
|
public short day; // 日
|
|
|
|
|
public short month; // 月
|
|
|
|
|
public short year; // 年 2001-2999
|
|
|
|
|
public short hour; // 时
|
|
|
|
|
public short minute; // 分
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
|
|
|
|
|
public string geo; // 工作地区 - 地名
|
|
|
|
|
public byte sec; // 秒
|
|
|
|
|
public byte met; // 记录方法代码:
|
|
|
|
|
//0-31
|
|
|
|
|
public short end_year; // 年 2001-2999
|
|
|
|
|
public short end_month; // 月
|
|
|
|
|
public short end_day; // 日
|
|
|
|
|
public short end_hour; // 时
|
|
|
|
|
public short end_minute; // 分
|
|
|
|
|
public byte end_sec; // 秒
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
|
|
|
|
|
public string standby1; // 备用
|
|
|
|
|
public sbyte pro; // ADC量化代码:
|
|
|
|
|
public byte kan; // number of channels 通道数
|
|
|
|
|
public byte valid; // 该记录是否有效
|
|
|
|
|
public short ab1; // 发射源AB的第一个电极的位置
|
|
|
|
|
public short ab2; //发射源AB的第二个电极的位置
|
|
|
|
|
public short ab3; // 发射机的位置
|
|
|
|
|
public short res; // 接地电阻
|
|
|
|
|
public float Tok; // 发射电流 I(A)
|
|
|
|
|
public float Voltage; // 发射电压 V(V)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//32-71
|
|
|
|
|
|
|
|
|
|
public byte Tgu; // 发射波形: 1-doubling
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
|
|
|
|
|
public string standby5; // 备用
|
|
|
|
|
public int Nom; // record of number 记录号与文件名相对应
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]
|
|
|
|
|
public string standby6; // 备用
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
|
|
|
|
|
public string Fam; // surname of the operator 操作员
|
|
|
|
|
|
|
|
|
|
// 72-119
|
|
|
|
|
|
|
|
|
|
public int Lps; // number of points in record 记录的数据点数
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]
|
|
|
|
|
public string standby7; // 备用
|
|
|
|
|
|
|
|
|
|
public short Nst; // MeterNum 仪器号
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 通道号
|
|
|
|
|
/// </summary>
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
|
|
|
|
|
public string standby8; // 备用,临时改为通道号ch01-ch03
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
|
|
|
|
|
public string Com;
|
|
|
|
|
// string of the comment 注释行
|
|
|
|
|
|
|
|
|
|
//120-199
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 90)]
|
|
|
|
|
public short[] Isw;
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)]
|
|
|
|
|
public string standby9;
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
|
|
|
|
|
public ChInfo[] channel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
|
|
|
|
public struct HEADInfo
|
|
|
|
|
{
|
|
|
|
|
public short day; // 日
|
|
|
|
|
public short month; // 月
|
|
|
|
|
public short year; // 年 2001-2999
|
|
|
|
|
public short hour; // 时
|
|
|
|
|
public short minute; // 分
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
|
|
|
|
|
public string geo; // 工作地区 - 地名
|
|
|
|
|
public byte sec; // 秒
|
|
|
|
|
public byte met; // 记录方法代码:
|
|
|
|
|
//0-31
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]
|
|
|
|
|
public string standby1; // 备用
|
|
|
|
|
public sbyte pro; // ADC量化代码:
|
|
|
|
|
public byte kan; // number of channels 通道数
|
|
|
|
|
public byte standby2; // 备用
|
|
|
|
|
public short ab1; // Lab(meters) length of ab1, 发射源AB的长度 发射极距
|
|
|
|
|
public short ab2; // number AB 发射点号
|
|
|
|
|
public short ab3; //
|
|
|
|
|
public short standby3; // 备用
|
|
|
|
|
public float Tok; // 发射电流 I(A)
|
|
|
|
|
public uint standby4; // 备用
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//32-71
|
|
|
|
|
|
|
|
|
|
public byte Tgu; // 发射波形: 1-doubling
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
|
|
|
|
|
public string standby5; // 备用
|
|
|
|
|
public int Nom; // record of number 记录号与文件名相对应
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]
|
|
|
|
|
public string standby6; // 备用
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
|
|
|
|
|
public string Fam; // surname of the operator 操作员
|
|
|
|
|
|
|
|
|
|
// 72-119
|
|
|
|
|
|
|
|
|
|
public int Lps; // number of points in record 记录的数据点数
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]
|
|
|
|
|
public string standby7; // 备用
|
|
|
|
|
|
|
|
|
|
public short Nst; // MeterNum 仪器号
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
|
|
|
|
|
public string standby8; // 备用
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
|
|
|
|
|
public string Com;
|
|
|
|
|
// string of the comment 注释行
|
|
|
|
|
|
|
|
|
|
//120-199
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 90)]
|
|
|
|
|
public short[] Isw;
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)]
|
|
|
|
|
public string standby9;
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
|
|
|
|
|
public ChInfo[] channel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 406-511
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
|
|
|
|
|
public struct ChInfo
|
|
|
|
|
{
|
|
|
|
|
public byte Idk; //
|
|
|
|
|
public byte standby0;
|
|
|
|
|
public sbyte Uko; //
|
|
|
|
|
public byte Ufl; // 测站号
|
|
|
|
|
public short Pkt; // 测点号
|
|
|
|
|
public short Prf; // 测线号
|
|
|
|
|
public short ab; // 电极距
|
|
|
|
|
public short datatype; // 数据类型
|
|
|
|
|
//1)数据类型:
|
|
|
|
|
// 1- Hall
|
|
|
|
|
// 2- 电极
|
|
|
|
|
// 4- 接收
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
|
|
|
|
|
public string standby1;
|
|
|
|
|
|
|
|
|
|
public float X; //coordinate 'x' (not use)
|
|
|
|
|
public float Y; //coordinate 'y' (not use)
|
|
|
|
|
public float Z; //coordinate 'z' (not use)
|
|
|
|
|
public float Ecs; // LSB
|
|
|
|
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 28)]
|
|
|
|
|
public string standby2;
|
|
|
|
|
} // 64*24=1536
|
|
|
|
|
public struct FreqFileHead
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public MTEMFreqFile[] MTEMfreqfile;
|
|
|
|
|
public int totalpoint ; //用于总采样点数label_totsize
|
|
|
|
|
public float totaltime ; //采集总时间
|
|
|
|
|
public string SafeFileName;
|
|
|
|
|
public string FileName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
|
|
|
|
|
public struct SEGYFileHead
|
|
|
|
|
{
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3200)]
|
|
|
|
|
public byte[] ASCIIByte;
|
|
|
|
|
public secPartSEGYFileHead secPartSEGYFileHead;///
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
|
|
|
|
|
public struct secPartSEGYFileHead
|
|
|
|
|
{
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
|
|
|
|
public byte[] standby;//Not use
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] channelNumber;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] standby2;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] sampleGap;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] standby3;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] samplePointerNumber;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] standby5;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] codeStyle;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)]
|
|
|
|
|
public byte[] standby4;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] measureFormat;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 344)]
|
|
|
|
|
public byte[] standby6;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
|
|
|
|
|
public struct SEGYChannelHead
|
|
|
|
|
{
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
|
|
|
|
public byte[] fileNumber;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
|
|
|
|
public byte[] channelNumber;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
|
|
|
|
public byte[] origNumber;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
|
|
|
|
public byte[] standby;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] channelObject;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)]
|
|
|
|
|
public byte[] standby1;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
|
|
|
|
public byte[] xScale;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
|
|
|
|
public byte[] yScale;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] scaleObject;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
|
|
|
|
|
public byte[] standby2 ;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] channelSamplePointer;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] channelSampleGap;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 38)]
|
|
|
|
|
public byte[] standby3;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] year;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] day;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] hour;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] mins;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] second;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
|
|
|
|
|
public byte[] UTC;
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 72)]
|
|
|
|
|
public byte[] standby4 ;
|
|
|
|
|
}
|
|
|
|
|
}
|