354 lines
15 KiB
C
354 lines
15 KiB
C
|
|
/**
|
|||
|
|
* @file Property.h
|
|||
|
|
* @brief 定义Property类, 提供属性信息获取, 包括Project, Survey, Seis, VelModel,Grid, Job,
|
|||
|
|
* VelPair, Geometry 类型的属性
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifndef PAI_FRAME_IOSERVICE_PROPERTY_H
|
|||
|
|
#define PAI_FRAME_IOSERVICE_PROPERTY_H
|
|||
|
|
#include "Turtle.h"
|
|||
|
|
#include <vector>
|
|||
|
|
#include <string>
|
|||
|
|
#include "Const.h"
|
|||
|
|
namespace pai {
|
|||
|
|
namespace ios {
|
|||
|
|
namespace property {
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Common
|
|||
|
|
*/
|
|||
|
|
const std::string LAST_MODIFYED = "Last Modified By";
|
|||
|
|
const std::string DISK_PATH = "Disk Path";
|
|||
|
|
const std::string SIZE = "Data Size";
|
|||
|
|
const std::string CREATE_BY = "Creator";
|
|||
|
|
const std::string CREATE_TIME = "Created";
|
|||
|
|
const std::string LAST_ACCESS_TIME = "Last Accessed";
|
|||
|
|
const std::string MODIFY_TIME = "Modified";
|
|||
|
|
const std::string INLINE_COUNT = "Inline Count";
|
|||
|
|
const std::string MAX_INLINE = "Max Inline";
|
|||
|
|
const std::string MIN_INLINE = "Min Inline";
|
|||
|
|
const std::string XLINE_COUNT = "Crossline Count";
|
|||
|
|
const std::string MAX_XLINE = "Max Crossline";
|
|||
|
|
const std::string MIN_XLINE = "Min Crossline";
|
|||
|
|
const std::string INLINE_INTERVEL = "Inline Intervel";
|
|||
|
|
const std::string XLINE_INTERVEL = "Crossline Intervel";
|
|||
|
|
|
|||
|
|
const std::string CMP_COUNT = "CMP Count";
|
|||
|
|
const std::string MAX_CMP = "Max CMP";
|
|||
|
|
const std::string MIN_CMP = "Min CMP";//TODO:统计了最大采样值和最小采样值
|
|||
|
|
|
|||
|
|
const std::string PICK_GATHERS = "Pick Gathers";
|
|||
|
|
const std::string PICK_TRACE = "Pick Traces";
|
|||
|
|
const std::string DATA_NAME = "Data Name";
|
|||
|
|
const std::string COMMENT = "Comment";
|
|||
|
|
|
|||
|
|
const std::string FILE_COUNT = "File Count";///<指定文件夹下该种类型数据的个数
|
|||
|
|
/**
|
|||
|
|
* @brief type
|
|||
|
|
*/
|
|||
|
|
const std::string TYPE = "Type";
|
|||
|
|
const std::string TYPE_PROJECT = "Project";
|
|||
|
|
const std::string TYPE_SURVEY = "Survey";
|
|||
|
|
const std::string TYPE_SEISMIC = "Data";
|
|||
|
|
const std::string TYPE_GEOMETRY = "Geometry";
|
|||
|
|
const std::string TYPE_GRID = "Grid";
|
|||
|
|
const std::string TYPE_VELMODEL = "Vel-Model";
|
|||
|
|
const std::string TYPE_VELANALYSIS = "Vel-Analysis";
|
|||
|
|
const std::string TYPE_VELPAIR = "VelPair";
|
|||
|
|
const std::string TYPE_FIRSTARRIVAL = "FirstArrival";
|
|||
|
|
const std::string TYPE_MUTE = "Mute";
|
|||
|
|
const std::string TYPE_TRACEEDIT = "TraceEdit";
|
|||
|
|
const std::string TYPE_STATICS = "Statics";
|
|||
|
|
const std::string TYPE_HORIZON = "Horizon";
|
|||
|
|
const std::string TYPE_MODELING = "Modeling";
|
|||
|
|
const std::string TYPE_ATTRIBUTE = "Attribute";
|
|||
|
|
const std::string TYPE_OPERATION = "Operation";
|
|||
|
|
const std::string TYPE_VELDATATYPE = "Vel Type";
|
|||
|
|
const std::string TYPE_PARAMETERSETFOLDER = "Parameter Set";
|
|||
|
|
const std::string TYPE_VELOCITYFOLDER = "Velocity";
|
|||
|
|
const std::string TYPE_VELPAIRFOLDER = "Vel-Pairs";
|
|||
|
|
const std::string TYPE_WORKFLOW = "Workflow";
|
|||
|
|
const std::string TYPE_JOB = "Job";
|
|||
|
|
const std::string TYPE_JOBLOG = "Log";
|
|||
|
|
const std::string TYPE_GRIDPROPERTY = "Grid Property";
|
|||
|
|
/**
|
|||
|
|
* @brief Seis
|
|||
|
|
*/
|
|||
|
|
const std::string DATA_TYPE = "Data Type";
|
|||
|
|
const std::string INDEX_INFO = "Index Info";
|
|||
|
|
const std::string GATHER_TYPE = "Gather Type";
|
|||
|
|
const std::string GATHER_COUNT = "Gather Count";
|
|||
|
|
const std::string TRACE_COUNT = "Trace Count";
|
|||
|
|
const std::string MAX_SHOTNO = "Max Shot_num";
|
|||
|
|
const std::string Min_SHOTNO = "Min Shot_num";
|
|||
|
|
const std::string RECEIVER_COUNT = "Receiver Count";///<TODO:目前没有统计这个字段
|
|||
|
|
const std::string MAX_RECEIVER = "Max Receiver";///<TODO:目前没有统计这个字段
|
|||
|
|
const std::string MIN_RECEIVER = "Min Receiver";///<TODO:目前没有统计这个字段
|
|||
|
|
const std::string MAX_OFFSET = "Max Abs Offset";///<TODO:目前没有统计这个字段
|
|||
|
|
const std::string Min_OFFSET = "Min Abs Offset";///<TODO:目前没有统计这个字段
|
|||
|
|
/**
|
|||
|
|
//const std::string INLINE_COUNT = "Inline Count:";//TODO:目前没有统计这个字段
|
|||
|
|
//const std::string MIN_CMP = "Min CMP";//TODO:统计了最大采样值和最小采样值
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Grid
|
|||
|
|
*/
|
|||
|
|
const std::string GRID_NAME = "Grid Name";
|
|||
|
|
const std::string GRID_TYPE = "Grid Type";
|
|||
|
|
const std::string GRID_CORNER = "Grid Corner";
|
|||
|
|
const std::string P1 = "P1";
|
|||
|
|
const std::string P2 = "P2";
|
|||
|
|
const std::string P3 = "P3";
|
|||
|
|
const std::string P4 = "P4";
|
|||
|
|
const std::string CELL = "Cell";
|
|||
|
|
const std::string INLINE_INCREMENT = "Inline Inc";
|
|||
|
|
const std::string XLINE_INCREMENT = "Crossline Inc";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Geometry
|
|||
|
|
*/
|
|||
|
|
const std::string SOURCE_LINE_COUNT = "Source Line Count";
|
|||
|
|
const std::string SOURCE_POINT_COUNT = "Source Point Count";
|
|||
|
|
const std::string RECEIVER_LINE_COUNT = "Receiver Line Count";
|
|||
|
|
const std::string RECEIVER_POINT_COUNT = "Receiver Point Count";
|
|||
|
|
const std::string FIELD_CHANNEL_COUNT = "Field Channel Count";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief VelModel
|
|||
|
|
*/
|
|||
|
|
const std::string VELMODEL_NAME = "VelModel Name";
|
|||
|
|
const std::string VELMODEL_TYPE = "VelModel Type";
|
|||
|
|
const std::string SEISMIC_DOMAIN = "Domain";
|
|||
|
|
const std::string BINNING = "Binning";///<TODO:目前没有统计这个字段
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief VelPair
|
|||
|
|
*/
|
|||
|
|
const std::string VELPAIR_NAME = "VelPair Name";
|
|||
|
|
const std::string VELPAIR_TYPE = "VelPair Type";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Job
|
|||
|
|
*/
|
|||
|
|
const std::string SUBMITTE_TIME = "Submite";
|
|||
|
|
const std::string ELAPSED_TIME = "Elapsed";
|
|||
|
|
const std::string RUNNING_TIME = "Running";
|
|||
|
|
const std::string STATUS = "Status";
|
|||
|
|
const std::string PRIORITY = "Priority";
|
|||
|
|
const std::string JOB_NAME = "Job Name";
|
|||
|
|
const std::string WORKFLOW_NAME = "Wordflow Name";
|
|||
|
|
const std::string RUN = "Run";
|
|||
|
|
const std::string ERRORS = "Errors";
|
|||
|
|
const std::string SUBMITTED_BY = "Submitted By";
|
|||
|
|
const std::string STATUS_UPDATED_TIME = "Status Update Time";
|
|||
|
|
const std::string TOTAL_CPU_TIME = "Total Cpu/Gpu Time";
|
|||
|
|
const std::string TRACE_IN = "Trace In";
|
|||
|
|
const std::string TRACE_OUT = "Trace Out";
|
|||
|
|
const std::string TRACE_DIFF = "Trace Diff";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Project
|
|||
|
|
*/
|
|||
|
|
const std::string SURVEY_COUNT = "Survey Count";
|
|||
|
|
const std::string REGION = "Region";
|
|||
|
|
const std::string SIZE_OF_THE_PROJECT = "Size of the project";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Survey
|
|||
|
|
*/
|
|||
|
|
const std::string AREA = "Area";
|
|||
|
|
const std::string STANDARD = "Standard";
|
|||
|
|
const std::string ACTUALPROCESSING = "Actual Processing";
|
|||
|
|
const std::string SURVEY_TYPE = "Survey Type";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Value
|
|||
|
|
*/
|
|||
|
|
const std::string VALUE_TIME = "Time";
|
|||
|
|
const std::string VALUE_DEPTH = "Depth";
|
|||
|
|
const std::string VELOCITY_MODEL = "Velocity model";
|
|||
|
|
const std::string VALUE_STACKTYPE = "Stack"; ///<速度对叠加数据
|
|||
|
|
const std::string VALUE_RMS = "RMS"; ///<速度模型均方根
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Horizon
|
|||
|
|
*/
|
|||
|
|
const std::string HORIZON_NUM = "Horizon Num";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Seis_Folder
|
|||
|
|
*/
|
|||
|
|
const std::string TOTAL_SIZE = "Total Size";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Job_Folder
|
|||
|
|
*/
|
|||
|
|
const std::string JOB_COUNT = "Job Count";
|
|||
|
|
const std::string SUCCESS_RATE = "Success Rate";
|
|||
|
|
const std::string RUNNING = "Running";
|
|||
|
|
const std::string PAUSE = "Pause";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Geometry_Folder
|
|||
|
|
*/
|
|||
|
|
const std::string GEOMETRY_COUNT = "Geometry Count";
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Operation
|
|||
|
|
*/
|
|||
|
|
const std::string OPERATION_NAME = "Operation Name";
|
|||
|
|
const std::string OPERATION_TYPE = "Operation Type";
|
|||
|
|
const std::string OPERATION_STARTTIME = "Start Time";
|
|||
|
|
const std::string OPERATION_ENDTIME = "End Time";
|
|||
|
|
|
|||
|
|
const int DIGITS = 2; ///<属性的数据小数点后的精度位
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 属性Item类型
|
|||
|
|
*/
|
|||
|
|
typedef enum
|
|||
|
|
{
|
|||
|
|
DATE, ///<时间
|
|||
|
|
STRING, ///<string
|
|||
|
|
FLOAT, ///<float
|
|||
|
|
NUMBER ///<number
|
|||
|
|
}ItemType;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 属性Item单位
|
|||
|
|
*/
|
|||
|
|
typedef PAI_IOSERVICE_EXPORT enum
|
|||
|
|
{
|
|||
|
|
NOUNIT,
|
|||
|
|
Byte, ///<字节
|
|||
|
|
KB,
|
|||
|
|
MB,
|
|||
|
|
GB,
|
|||
|
|
TB,
|
|||
|
|
PB,
|
|||
|
|
|
|||
|
|
g, ///<克
|
|||
|
|
kg, ///<千克
|
|||
|
|
|
|||
|
|
MM, ///<毫米
|
|||
|
|
CM, ///<厘米
|
|||
|
|
M, ///< 米
|
|||
|
|
KM, ///< 千米
|
|||
|
|
|
|||
|
|
SQUAREMETER, ///< 平方米
|
|||
|
|
CUBICMETER, ///< 立方米
|
|||
|
|
|
|||
|
|
SQUAREKILOMETERS ///< 平方千米
|
|||
|
|
}ItemUnit;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 工区类型
|
|||
|
|
*/
|
|||
|
|
typedef PAI_IOSERVICE_EXPORT enum
|
|||
|
|
{
|
|||
|
|
DIM2 = 2, ///< 2D
|
|||
|
|
DIM3 = 3, ///< 3D
|
|||
|
|
DIM4 = 4, ///< 4D
|
|||
|
|
DIM5 = 5, ///< Depth
|
|||
|
|
DIM6 = 6, ///< Other Rank
|
|||
|
|
|
|||
|
|
LAND = 10, ///< land
|
|||
|
|
SEA = 11, ///< sea bed
|
|||
|
|
MARINE = 12, ///< marine
|
|||
|
|
TRANSITION = 13, ///<transition zone
|
|||
|
|
OTHER = 14 ///< other
|
|||
|
|
}SurveyType;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 信息结构
|
|||
|
|
*/
|
|||
|
|
class PAI_IOSERVICE_EXPORT PropertyItem
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
PropertyItem ();
|
|||
|
|
~PropertyItem ();
|
|||
|
|
std::string GetPropertyName() const;
|
|||
|
|
std::string GetPropertyValue() const;
|
|||
|
|
ItemType GetType() const;
|
|||
|
|
ItemUnit GetUnit() const;
|
|||
|
|
void SetPropertyName(const std::string & PropertyName);
|
|||
|
|
void SetPropertyValue(const std::string & PropertyValue);
|
|||
|
|
void SetType(const ItemType Type);
|
|||
|
|
void SetUnit(const ItemUnit Unit);
|
|||
|
|
private:
|
|||
|
|
std::string m_PropertyName; ///<属性名
|
|||
|
|
std::string m_PropertyValue; ///<属性值
|
|||
|
|
ItemType m_Type; ///<属性类型
|
|||
|
|
ItemUnit m_Unit; ///<属性单位
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* @class Property
|
|||
|
|
* @brief 提供属性信息获取,包括Project, Survey, Seis, VelModel,
|
|||
|
|
* VelPair, Geometry 类型的属性
|
|||
|
|
*/
|
|||
|
|
class PAI_IOSERVICE_EXPORT Property
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @brief 根据id 和类型,获得相应的属性
|
|||
|
|
* @param[in] id 如果应用数据,此ID即为数据ID
|
|||
|
|
* 如果是文件夹数据,此ID即为工区ID
|
|||
|
|
* @param[in] type 数据类型
|
|||
|
|
* @param[out] itemgroup 获取到的属性值
|
|||
|
|
*/
|
|||
|
|
void GetProperty (const long long id, const pai::ios::DATA_TYPE type, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
private:
|
|||
|
|
void GetProjectProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetSurveyProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetSeisProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetGeometryProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetGridProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelModelProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelPairProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetFirstArrivalProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetMuteProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetTraceEditProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetStaticsProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetHorizonProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetModelingProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetOperationProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelAnalysisProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetLaterProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetShotProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetWorkflowProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetJobProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetJobLogProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetGridPropertyProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
/**
|
|||
|
|
* @brief 获取文件夹属性
|
|||
|
|
*/
|
|||
|
|
void GetWorkflowFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetSeisFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetJobFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetGridFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetGeometryFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetParamFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetFirstArrivalFolderProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetMuteFolderProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetTraceEditFolderProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetStaticsFolderProperty(const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetHorizonFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelocityFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelPairFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelModelFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetModelingFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetVelAnaFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
void GetAttributeFolderProperty (const long long id, std::vector<std::vector<PropertyItem> > & itemgroup);
|
|||
|
|
|
|||
|
|
std::string GetSurveyTypeString(const SurveyType& type);
|
|||
|
|
void ChangeFileSizeUnit(long long size,std::string &realsize,pai::ios::property::ItemUnit & itemUnit,pai::ios::property::ItemUnit defaultUnit = Byte);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif
|