logplus/Workflow/WFEngine/IOService/include/Const.h

452 lines
20 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file Const.h
* @brief
*
*/
#ifndef PAI_FRAME_IOSERVICE_CONST_H
#define PAI_FRAME_IOSERVICE_CONST_H
#include "Turtle.h"
#include <string>
const long long PAI_LONG_LONG_MAX = 9223372036854775807;
/**
* @brief
*/
const int CONST_OFFSET_SCALAR = 10U; ///<关键字OFFSET的赋值因子 (默认道头里是 -10 计算要取绝对值)
const int CONST_SPEED_SCALAR = 1000U; ///<关键字风化层速度的赋值因子 (默认道头里是 -1000 计算要取绝对值)
const int CONST_ELEV_SCALAR = 10U; ///<关键字CDP高程CDP 浮动基准面的高程 的赋值因子 (默认道头里是 -10 计算要取绝对值)
const int CONST_TIME_SCALAR = 10U; ///<关键字静校正量的赋值因子 (默认道头里是 -10 计算要取绝对值)
const int CONST_Coor_SCALAR = 10U; ///<真实坐标值的赋值因子 (默认道头里是 -10 计算要取绝对值)
const int CONST_POINT_SCALAR = 10U; ///<关键字炮点线号、炮点桩号的赋值因子 (默认道头里是 -10 计算要取绝对值)
const int CONST_AMP_SCALAR = 1000U; ///<关键字采样振幅Amp值的赋值因子 (默认道头里是 -1000 计算要取绝对值)
const int CONST_NONEWENTRY_SCALAR = 10U; ///<炮点号的赋值因子 (默认道头里是 -1000 计算要取绝对值)
const int CONST_ANGLE_SCALAR = 1000U; ///<入射角,方位角 的赋值因子 (默认道头里是 -1000 计算要取绝对值)
/**
* @brief
*/
const int CONST_SEISMIC_DATATYPE_CODE = 1U; ///<地震数据数据标识
const int CONST_VELMODEL_DATATYPE_CODE = 2U; ///<速度场数据标识
const int CONST_SPECTRUM_DATATYPE_CODE = 3U; ///<速度谱数据标识
const int CONST_IMAGEGATHER_DATATYPE_CODE = 5U; ///<成像道集数据标识
const int CONST_TIMEMIGRATION_DATATYPE_CODE = 6U; ///<偏移剖面数据标识
const int CONST_REFLECTION_DENSITY_DATATYPE_CODE = 7U; ///<反射密度数据标识
const int CONST_AVO_COMPREHENSIVE_AZIMUTH_P_PROPERTY_CODE = 8U; ///<AVO全方位方位角P属性数据标识
const int CONST_AVO_COMPREHENSIVE_AZIMUTH_G_PROPERTY_CODE = 10U; ///<AVO全方位方位角G属性数据标识
const int CONST_AVO_COMPREHENSIVE_AZIMUTH_C_PROPERTY_CODE = 11U; ///<AVO全方位方位角C属性数据标识
const int CONST_AVO_COMPREHENSIVE_ANGLE_P_PROPERTY_CODE = 12U; ///<AVO全方位入射角P属性数据标识
const int CONST_AVO_COMPREHENSIVE_ANGLE_G_PROPERTY_CODE = 13U; ///<AVO全方位入射角G属性数据标识
const int CONST_AVO_COMPREHENSIVE_ANGLE_C_PROPERTY_CODE = 14U; ///<AVO全方位入射角C属性数据标识
const int CONST_AVO_HALF_AZIMUTH_P_PROPERTY_CODE = 15U; ///<AVO半方位方位角P属性数据标识
const int CONST_AVO_HALF_AZIMUTH_G_PROPERTY_CODE = 16U; ///<AVO半方位方位角G属性数据标识
const int CONST_AVO_HALF_AZIMUTH_C_PROPERTY_CODE = 17U; ///<AVO半方位方位角C属性数据标识
const int CONST_AVO_HALF_ANGLE_P_PROPERTY_CODE = 18U; ///<AVO半方位入射角P属性数据标识
const int CONST_AVO_HALF_ANGLE_G_PROPERTY_CODE = 19U; ///<AVO半方位入射角G属性数据标识
const int CONST_AVO_HALF_ANGLE_C_PROPERTY_CODE = 20U; ///<AVO半方位入射角C属性数据标识
const int CONST_AVAZ_A1_PROPERTY_CODE = 21U; ///<AVAZ属性体A1属性数据标识
const int CONST_AVAZ_V_PROPERTY_CODE = 22U; ///<AVAZ属性体V属性数据标识
const int CONST_AVAZ_A2_PROPERTY_CODE = 23U; ///<AVAZ属性体A2属性数据标识
const int CONST_AVAZ_Z_PROPERTY_CODE = 24U; ///<AVAZ属性体Z属性数据标识
const int CONST_AZIMUTH_ILLUMINATION_GATHER_CODE = 25U; ///<方位角照明道集数据标识
const int CONST_AZIMUTH_AZIMUTH_GATHER_CODE = 26U; ///<方位角度地震数据道集数据标识
const int CONST_TIMEDEPTH_DATATYPE_CODE = 27U; ///<时深关系体数据标识
const int CONST_SEISMODEL_DATATYPE_CODE = 28U; ///<模型属性数据标识
const int CONST_NSVELMODEL_DATATYPE_CODE = 29U; ///<近地表速度模型标识
const int CONST_THREE_COMPONENT_DATATYPE_XYZ_CODE=93U; ///<三分量数据标识
const int CONST_THREE_COMPONENT_DATATYPE_X_CODE=931U; ///<三分量X分量数据标识
const int CONST_THREE_COMPONENT_DATATYPE_Y_CODE=932U; ///<三分量Y分量数据标识
const int CONST_THREE_COMPONENT_DATATYPE_Z_CODE=933U; ///<三分量Z分量数据标识
const int CONST_SEISMIC_FILE_HEADER_UNASS = 404U; ///<原文件头保留字段位置
const int CONST_SEISMIC_FILE_HEADER_EXTEND_UNASS = 1552U;
const int CONST_SEISMIC_TRACE_HEADER_UNASS = 460U; ///<道头保留字段位置
const int CONST_SEISMIC_FORMAT = 5U; ///<内部格式编码格式
const int CONST_SPECTRUM_INFO_SIZE = 100U; ///<SpectrumInfo文件头除了 字段 vector m_ToH, m_Vlc之后的大小
const int CONST_SEISMIC_DOMAIN_TIME = 0U; ///<数据为时间域
const int CONST_SEISMIC_DOMAIN_DEPTH = 1U; ///<数据为深度域
const int CONST_SEISMIC_TEXTUAL_HEADER_LENGTH = 3200U; ///<文本头长度
const int CONST_SEISMIC_BIN_HEADER_LENGTH = 1436U; ///<二进制文件头长度
const int CONST_SEISMIC_BIN_HEADER_LENGTH_NEW = 7040U; ///<二进制文件头新增字段长度
const int CONST_SEISMIC_TRACE_HEADER_LENGTH = 1024U; ///<道头长度
const int CONST_PAI_PROPERTY_LENGTH = 10240U; ///<属性文件长度
const int CONST_TRACESNUMBER_ONCE_READ = 1000U; ///<默认一次读取道数
const int CONST_TRACESNUMBER_ONCE_WRITE = 1000U; ///<默认一次写入道数
//const int CONST_GATHER_MAX_NUMBER = 50000; //能获取最大道集道数 TODO 此参数于2013-12-2 移动到 pai.confHDFS_GATHER_BUFFER_SIZE
const int CONST_MULTIKEYS_TRACESORTCODE=0; ///<非常规道集类型时TraceSortCode的值,默认0
const int CONST_MULTIKEYS_IDXSORTINGCODE=10000; ///<非常规道集类型时idxSortingCode的值,默认10000
const std::string CONST_SEISMIC_FILE_HEADER_EXTENSION = ".hdr"; ///<文件头文件后缀
const std::string CONST_SEISMIC_TRACE_HEADER_EXTENSION = ".info"; ///<道头文件后缀
const std::string CONST_SEISMIC_TRACE_DATA_EXTENSION = ".dat"; ///<道数据文件后缀
const std::string CONST_FILESYSTEM_SCHEME_HDFS = "hdfs"; ///<HDFS文件系统
const std::string CONST_INDEX_FILE_SUFFIX = ".idx"; ///<索引文件后缀
const std::string CONST_SEISMIC_HISTORY_EXTENSION = ".his"; ///<数据历史文件后缀
const std::string CONST_PROPERTY_FILE_SUFFIX = ".property"; ///<属性信息文件后缀
const std::string CONST_SPATIALPROPERTY_FILE_SUFFIX = ".SpatialProperty"; ///<空间属性文件后缀
const std::string DB_ENCODING = "UTF8"; ///<数据库编码
const std::string DEFAULT_INDEXFILEMAP_FILE = "DEFAULT_INDEXFILEMAP_FILE"; ///<索引映射文件
//如果有中间索引和切片的临时文件
const std::string CONST_SEISMIC_FILE_SPLIT_TMP_EXTENSION = ".split-tmp"; ///<切片临时文件
const std::string CONST_SEISMIC_FILE_HEADER_TMP_EXTENSION = ".hdr-tmp"; ///<文件头临时文件
const std::string CONST_SEISMIC_FILE_IDX_TMP_EXTENSION = ".idx-tmp"; ///<索引临时文件
const std::string CONST_SEISMIC_FILE_LIST_EXTENSION_OLD = ".LIST"; ///<索引临时文件
const std::string CONST_SEISMIC_FILE_DISTRIBUTION_EXTENSION_OLD = ".DISTRIBUTION"; ///<索引临时文件
const std::string CONST_SEISMIC_FILE_LIST_EXTENSION = ".list"; ///<索引临时文件
const std::string CONST_SEISMIC_FILE_DISTRIBUTION_EXTENSION = ".Distribution"; ///<索引临时文件
const std::string CONST_PROPERTY_FILE_SUFFIX_TXT = ".property.txt"; ///<索引临时文件
const std::string CONST_VEL_MODEL_NODE_PATH = "/Vel-Model"; ///<速度场在工区下的节点路径
const std::string CONST_TMP = ".tmp"; ///<占位文件
const std::string CONST_IDX_FINAL = ".idx-final"; ///<占位文件
const std::string SPLIT_SUFFIX = ".split"; ///<占位文件
/**目录分隔符号*/
const char DIRECTORY_SEPARATOR = '/';
const char INNER_SPLIT=',';
//const std::string DOT =".";
const char KEYS_SPLIT=';';
const char KEY_SEPARATOR = '_';
const std::string FILENAME_SUFFIX_SPERATOR = ".";
//const std::string UNDERLINE="_";
//const std::string DOT_SUFFIX=".split";
//const std::string INLINE_XLINE="INLINE,XLINE";
//const std::string XLINE_INLINE="XLINE,INLINE";
//const std::string INLINE_XLINE="Inline_Num,Crossline_Num";
//const std::string XLINE_INLINE="Crossline_Num,Inline_Num";
//索引中存关键字数组的长度
const int MAX_KEYWORD_LENGTH = 32; ///<索引中存关键字数组的长度
//索引中存文件名的数据长度
const int FILE_NAME_LENGTH = 512; ///<索引中存文件名的数据长度
//时间换算单位, 系统中单位时间为微妙,需要除去此数
const unsigned long long DIVISOR = 1000000; ///<时间换算单位, 系统中单位时间为微妙,需要除去此数
//地震数据编码格式,文件头 m_DataFormat, 及采样值的编码格式
const std::string CONST_SEISMIC_DATAFORMAT_IEEE = "IEEE"; ///<地震数据编码格式,文件头 m_DataFormat, 及采样值的编码格式“IEEE”
const std::string CONST_SEISMIC_DATAFORMAT_IBM = "IBM"; ///<地震数据编码格式,文件头 m_DataFormat, 及采样值的编码格式“IBM”
const std::string CONST_SEISMIC_DATAFORMAT_SHORTINT = "SHORT INT"; ///<地震数据编码格式,文件头 m_DataFormat, 及采样值的编码格式“SHORT INT”
/**
* @brief
*
*/
enum EDataType
{
DATA_TYPE_NULL = 0, ///<空
DATA_TYPE_GATHER = 1, ///<道集数据
DATA_TYPE_VELOCITY = 2, ///<速度模型数据
DATA_TYPE_VEL_SPECTRUM = 3, ///<速度谱数据
DATA_TYPE_VEL_SCAN = 7 ///<常速扫描数据
};
/**
* @brief
*/
typedef enum
{
IMPORT_CREATE = 0, ///<导入数据
WORKFLOW_CREATE = 1, ///<工作流数据
GRID_VP_DEFINE_CREATE = 2, ///<网格速度对交互生成数据
GRIDVELMODELING_CREATE = 3, ///<网格建模生成数据
HORIZON_VP_DEFINE_CREATE = 4, ///<层位速度对交互生成数据
LATERVELMODELING_CREATE = 5, ///<沿层建模生成数据
DEFINE_ACTION = 6, ///<普通交互操作,如另存为的数据
DEFAULT = -1 ///<默认类型
} CREATE_TYPE;
namespace pai
{
namespace ios
{
/**
* @brief
* 使
* PAI统一标准经过和开发人员确定,
* 便
* 1~100 101200 200300 UNKNOW位置类型
*/
typedef enum
{
SEIS = 0, ///<地震数据,对应字符串 “SEISMIC”
GEOMETRY = 1, ///<SPS数据对应字符串 “SPS”
GRID = 2, ///<Grid数据对应字符串 “GRID”
VELOCITY_MODEL = 3, ///<速度模型数据,对应字符串 “VELOCITYMODEL”
VELOCITY_PAIR = 4, ///<速度对数据,对应字符串 “VELOCITYPAIR”
FIRSTARRIVAL = 5, ///<初置数据,对应字符串 “FIRSTARRIVAL”
MUTE = 6, ///<切除数据,对应字符串 “MUTE”
TRACE_EDIT = 7, ///<道编辑数据,对应字符串 “TRACEEDIT”
STATICS_COMPUTE= 8, ///<静校正计算数据,对应字符串 “STATICS”
HORIZON = 9, ///<层位数据,对应字符串 “HORIZON”
MODELING = 10,///<网格速度建模数据,对应字符串 “GRIDMODELING”
LATERAL = 11,///<沿层速度建模数据,对应字符串 “LATERALMODELING”
SPECTRUMDATA = 12,///<速度谱数据,对应字符串 “SPECTRUMDATA”
SHOTPROPERTY = 13,///<炮属性信息数据,对应字符串 “SHOTPROPERTY”
WORKFLOW = 14,///<工作流数据,对应字符串 “WORKFLOW”
JOB = 15,///<作业数据,对应字符串 “JOB”
JOBLOG = 16,///<作业日志数据,对应字符串 “JOBLOG”
GRIDPROPERTY = 17,///<网格属性数据,对应字符串 “GRIDPROPERTY”
//文件夹属性
PROJECT_FOLDER = 101, ///<项目
SURVEY_FOLDER = 102, ///<工区
WORKFLOW_FOLDER = 103, ///<工作流
SEISMICDATA_FOLDER = 104, ///<地震数据
JOB_FOLDER = 105, ///<作业
GRID_FOLDER = 106, ///<网格
GEOMETRY_FOLDER = 107, ///<观测系统
PARAMETERSET_FOLDER = 108, ///<交互数据
FIRSTARRIVAL_FOLDER = 109, ///<道初至
MUTE_FOLDER = 110, ///<道切除
TRACEEDIT_FOLDER = 111, ///<道编辑
STATICS_FOLDER = 112, ///<静校正量
HORIZON_FOLDER = 113, ///<层位
VELOCITY_FOLDER = 114, ///<速度数据
VELPAIR_FOLDER = 115, ///<速度对
VELMODEL_FOLDER = 116, ///<速度模型
VELANA_FOLDER = 117, ///<速度谱
MODELING_FOLDER = 118, ///<速度建模
ATTRIBUTE_FOLDER = 119, ///<炮属性
//其他属性
OPER = 201,///<数据历史操作
UNKNOW ///<未知数据类型
}DATA_TYPE;
const std::string CONST_DATATYPE_SEISMIC = "SEISMIC"; ///<对应DATA_TYPE中的数字 0
const std::string CONST_DATATYPE_GEOMETRY = "SPS"; ///<对应DATA_TYPE中的数字 1
const std::string CONST_DATATYPE_GRID = "GRID"; ///<对应DATA_TYPE中的数字 2
const std::string CONST_DATATYPE_VELOCITY_MODEL = "VELOCITYMODEL"; ///<对应DATA_TYPE中的数字 3
const std::string CONST_DATATYPE_VELOCITY_PAIR = "VELOCITYPAIR"; ///<对应DATA_TYPE中的数字 4
const std::string CONST_DATATYPE_FIRSTARRIVAL = "FIRSTARRIVAL"; ///<对应DATA_TYPE中的数字 5
const std::string CONST_DATATYPE_MUTE = "MUTE"; ///<对应DATA_TYPE中的数字 6
const std::string CONST_DATATYPE_TRACE_EDIT = "TRACEEDIT"; ///<对应DATA_TYPE中的数字 7
const std::string CONST_DATATYPE_STATICS_COMPUTE = "STATICS"; ///<对应DATA_TYPE中的数字 8
const std::string CONST_DATATYPE_HORIZON = "HORIZON"; ///<对应DATA_TYPE中的数字 9
const std::string CONST_DATATYPE_GRIDMODELING = "MODELING"; ///<对应DATA_TYPE中的数字 10
const std::string CONST_DATATYPE_LATERALMODELING = "LATERAL"; ///<对应DATA_TYPE中的数字 11
const std::string CONST_DATATYPE_SPECTRUMDATA = "SPECTRUMDATA"; ///<对应DATA_TYPE中的数字 12
const std::string CONST_DATATYPE_SHOTPROPERTY = "SHOTPROPERTY"; ///<对应DATA_TYPE中的数字 13
const std::string CONST_DATATYPE_WORKFLOW = "WORKFLOW"; ///<对应DATA_TYPE中的数字 14
const std::string CONST_DATATYPE_JOB = "JOB"; ///<对应DATA_TYPE中的数字 15
const std::string CONST_DATATYPE_JOBLOG = "JOBLOG"; ///<对应DATA_TYPE中的数字 16
const std::string CONST_DATATYPE_GRIDPROPERTY = "GRIDPROPERTY"; ///<对应DATA_TYPE中的数字 17
/**
* @brief
*/
typedef enum
{
HDFS = 1, ///<存储于HDFS
DB, ///<存储于数据库
HDFS_DB ///<存储于
}STORE_TYPE;
/**
* @brief
*/
typedef enum
{
INVALID, ///<无效(处理中)
VALID, ///<有效(处理完成)
REMOVED, ///<已经删除LAZYDELETE
}STATE;
/**
* @brief
* @param[in] type,
* @return
*/
std::string PAI_IOSERVICE_EXPORT DataTypeToString (const DATA_TYPE type);
/**
* @brief
* @param[in] string,
* @return
*/
DATA_TYPE PAI_IOSERVICE_EXPORT StringToDataType (const std::string & str);
/**
* @brief
* @param[in] type,
* @return
*/
STORE_TYPE PAI_IOSERVICE_EXPORT GetStoreType(const DATA_TYPE type);
/**
* @brief
*/
const std::string strTraceHeader[] = {
"FFID", ///<0
"Channel_Num", ///<1
"Shot_Num", ///<2
"Inline_Num", ///<3
"Crossline_Num", ///<4
"Station_Num_CMP", ///<5
"CMP_Num", ///<6
"Trace_Num", ///<7
"Offset", ///<8
"Elev_Source", ///<9
"Elev_Receiver", ///<10
"Elev_CMP", ///<11
"Elev_Datum_Source", ///<12
"Elev_Datum_Receiver", ///<13
"Elev_CMP-Datum", ///<14
"Depth_Source", ///<15
"Water_Depth_Source", ///<16
"Water_Depth_Receiver", ///<17
"Uphole_Time_Source", ///<18
"Uphole_Time_Receiver", ///<19
"Weath_Velocity", ///<20
"SubWeath_Velocity", ///<21
"Statics_Source", ///<22
"Statics_Receiver", ///<23
"Statics_Total_App", ///<24
"Statics_CMP", ///<25
"Statics_CMP_App", ///<26
"Statics_Hi_Receiver", ///<27
"Statics_Hi_Receiver_App", ///<28
"Statics_Hi_Source", ///<29
"Statics_Hi_Source_App", ///<30
"XCoord_Source", ///<31
"YCoord_Source", ///<32
"XCoord_Receiver", ///<33
"YCoord_Receiver", ///<34
"XCoord_CMP", ///<35
"YCoord_CMP", ///<36
"Source_Line", ///<37
"Point_Num_Source", ///<38
"Station_Num_Source", ///<39
"Source_Point_Index", ///<40
"Source_Point_Code", ///<41
"Statics_Source_Field", ///<42
"Source_Time", ///<43
"Receiver_Line", ///<44
"Point_Num_Receiver", ///<45
"Station_Num_Receiver", ///<46
"Receiver_Point_Index", ///<47
"Receiver_Point_Code", ///<48
"Statics_Receiver_Field", ///<49
"Receiver_Time", ///<50
"Field_Tape_Num", ///<51
"FFID_Inc", ///<52
"Instrument Code", ///<53
"Max_Amp_Trace", ///<54
"Min_Amp_Trace", ///<55
"Samp_Num_Trace", ///<56
"Samp_Int_Trace", ///<57
"Spread_Flag", ///<58
"Line_Int", ///<59
"TraceInterval", ///<60
"Mute_Time_S", ///<61
"Mute_Time_E", ///<62
"VS_Num", ///<63
"Fold", ///<64
"Lag_Time_A", ///<65
"Lag_Time_B", ///<66
"Delay_Time", ///<67
"Unit_Coord", ///<68
"Shot_Num_NE", ///<69
"Trace_Seque_Line", ///<70
"Trace_Seque_Uniform", ///<71
"Trace_Code", ///<72
"Data_Use", ///<73
"Gain_Type", ///<74
"Instrument_Gain_Const", ///<75
"Instrument_Gain_Ini", ///<76
"Correlated", ///<77
"Sweep_Freq_Start_Trace", ///<78
"Sweep_Freq_End_Trace", ///<79
"Sweep_Length_Tracc", ///<80
"Sweep_Type_Trace", ///<81
"Sweep_Taper_Start_Trace", ///<82
"Sweep_Taper_End_Trace", ///<83
"Taper_Type_Trace", ///<84
"Station_Num_CMP", ///<85
"Notch_Freq", ///<86
"Trace_Num", ///<87
"Notch_Slope", ///<88
"Low_Cut_Freq", ///<89
"High_Cut_Freq", ///<90
"Low_Cut_Slope", ///<91
"High_Cut_Slope", ///<92
"Year", ///<93
"Day", ///<94
"Hour", ///<95
"Minute", ///<96
"Second", ///<97
"Time_Basis", ///<98
"Trace_Weight_Factor", ///<99
"GeoGroup_Roll-Switch-One", ///<100
"GeoGroup_First-Trc_Field", ///<101
"GeoGroup_Last-Trc_Field", ///<102
"Gap_Size", ///<103
"Over_Travel", ///<104
"Trace_Measure_Unit", ///<105
"Trans_Const", ///<106
"Trans_Const_Pow", ///<107
"Trans_Unit", ///<108
"Device_ID", ///<109
"Source_Type", ///<110
"OrientationDirection", ///<111
"EnergyDirection", ///<112
"Source_Measure_Mantissa", ///<113
"Source_Measure_Pow", ///<114
"Source_Measure_Unit", ///<115
"XCoord_Midpoint", ///<116
"YCoord_Midpoint", ///<117
"Depth_Receiver", ///<118
"Statics_Source_Resid", ///<119
"Statics_Receiver_Resid", ///<120
"Statics_Source_Resid_App", ///<121
"Statics_Receiver_Resid_App" ///<122
"Azimuth" ///<123
"Angle" ///<124
};
/**
* @brief
* @param[in] key
* @return
*/
std::string SortKeyNumToStr(int key);
/**
* @brief
* @param[in] key
* @return
*/
int SortKeyStrToNum(std::string &key);
}
}
const std::string HBASE_FILENAME_MANAGE_TABLE = "HBASE0FILENAME0MANAGE0TABLE"; //HBase 文件名管理 ///<占位文件
#endif