📄 segy.h
字号:
#define SEGY_EBCDIC_HDR_SIZE 3200#define SEGY_REEL_HDR_SIZE 400#define SEGY_TRACE_HDR_SIZE 240#ifndef UINT8_T#define UINT8_Ttypedef unsigned char uint8_t;#endif#ifndef INT16_T#define INT16_T typedef short int16_t;#endif#ifndef INT32_T#define INT32_T typedef long int32_T;#endiftypedef struct segy_ebcdic_hdr { uint8_t buffer[SEGY_EBCDIC_HDR_SIZE];} segy_ebcdic_hdr;typedef struct segy_reel_hdr { int32_T job_id_number; int32_T line_number; int32_T reel_number; int16_t traces_per_record; int16_t aux_traces_per_record; int16_t sample_data_interval_ms; int16_t original_data_interval_ms; int16_t samples_per_trace; int16_t original_samples_per_trace; int16_t data_sample_format_code; int16_t CDP_fold; int16_t trace_sorting_code; int16_t vertical_sum_code; int16_t sweep_frequency_start_hz; int16_t sweep_frequency_end_hz; int16_t sweep_length_ms; int16_t sweep_type_code; int16_t trace_number_of_sweep_channel; int16_t sweep_trace_taper_length_start_ms; int16_t sweep_trace_taper_length_end_ms; int16_t taper_type_code; int16_t correlated_data_traces_flag; int16_t binary_gain_recovered_flag; int16_t amplitude_recovery_method_code; int16_t measurement_system; int16_t impulse_signal_polarity; int16_t vibratory_polarity_code; uint8_t buffer[340]; // 12 bytes + 12 bytes + 36 bytes + 340 buffer bytes = REEL_HDR_SIZE} segy_reel_hdr;typedef struct segy_trace_hdr { int32_T trace_sequence_number_within_line; int32_T trace_sequence_number_within_reel; int32_T original_field_record_number; int32_T trace_sequence_number_within_original_field_record; int32_T energy_source_point_number; int32_T cdp_ensemble_number; int32_T trace_sequence_number_within_cdp_ensemble; int16_t trace_identification_code; int16_t number_of_vertically_summed_traces_yielding_this_trace; int16_t number_of_horizontally_stacked_traced_yielding_this_trace; int16_t data_use; int32_T distance_from_source_point_to_receiver_group; int32_T receiver_group_elevation; int32_T surface_elevation_at_source; int32_T source_depth_below_surface; int32_T datum_elevation_at_receiver_group; int32_T datum_elevation_at_source; int32_T water_depth_at_source; int32_T water_depth_at_receiver_group; int16_t scalar_for_elevations_and_depths; int16_t scalar_for_coordinates; int32_T x_source_coordinate; int32_T y_source_coordinate; int32_T x_receiver_group_coordinate; int32_T y_receiver_group_coordinate; int16_t coordinate_units; int16_t weathering_velocity; int16_t subweathering_velocity; int16_t uphole_time_at_source; int16_t uphole_time_at_group; int16_t source_static_correction; int16_t group_static_correction; int16_t total_static_applied; int16_t lag_time_a; int16_t lag_time_b; int16_t delay_according_time; int16_t brute_time_start; int16_t mute_time_end; int16_t samples_in_this_trace; int16_t sample_intervall; int16_t gain_type_instruments; uint8_t buffer[120];} segy_trace_hdr;typedef struct SegyDim3s{ float XDIM,YDIM,ZDIM;} SegyDim3s;class SegyReader{public: static float * getSegyDataAndChar(SegyDim3s &dim,char *fileName);};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -