function [D,H] = ssort(D,H,hw)
%SSORT: Sort data using a header word hw.
%
% [D,H] = ssort(D,H,hw)
%
% IN D,H: Data and Headers in su-segy format
% (read them read_segy.m)
% hw : One of the following words
% 'cdp'
% 'offset'
% 'sx'
% 'gx'
% 'tracl'
% 'tracr'
%
% OUT D,H: Data and headers after sorting
%
% NOTE: This is a poor-man version of what should be an important part
% of SEISMICLAB. Don't try to use this code to sort large data
% sets (use susort!).
%
% Copyright (C) 2008, Signal Analysis and Imaging Group
% For more information: http://www-geo.phys.ualberta.ca/saig/SeismicLab
% Author: M.D.Sacchi
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published
% by the Free Software Foundation, either version 3 of the License, or
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details: http://www.gnu.org/licenses/
%
%
if ( nargin < 3 ); hw = 'cdp'; end;
if strcmp(hw,'cdp'); index = 6; end;
if strcmp(hw,'offset'); index = 12; end;
if strcmp(hw,'sx'); index = 22; end;
if strcmp(hw,'gx'); index = 24; end;
if strcmp(hw,'sy'); index = 23; end;
if strcmp(hw,'gy'); index = 25; end;
if strcmp(hw,'tracl'); index = 1; end;
if strcmp(hw,'tracr'); index = 2; end;
[ns,ntraces] = size(D);
tmp = [H.tracl]; A(1,:) = tmp(:)';
tmp = [H.tracr]; A(2,:) = tmp(:)';
tmp = [H.fldr]; A(3,:) = tmp(:)';
tmp = [H.tracf]; A(4,:) = tmp(:)';
tmp = [H.ep]; A(5,:) = tmp(:)';
tmp = [H.cdp]; A(6,:) = tmp(:)';
tmp = [H.cdpt]; A(7,:) = tmp(:)';
tmp = [H.trid]; A(8,:) = tmp(:)';
tmp = [H.nva]; A(9,:) = tmp(:)';
tmp = [H.nhs]; A(10,:) = tmp(:)';
tmp = [H.duse]; A(11,:) = tmp(:)';
tmp = [H.offset]; A(12,:) = tmp(:)';
tmp = [H.gelev]; A(13,:) = tmp(:)';
tmp = [H.selev]; A(14,:) = tmp(:)';
tmp = [H.sdepth]; A(15,:) = tmp(:)';
tmp = [H.gdel]; A(16,:) = tmp(:)';
tmp = [H.sdel]; A(17,:) = tmp(:)';
tmp = [H.swdep]; A(18,:) = tmp(:)';
tmp = [H.gwdep]; A(19,:) = tmp(:)';
tmp = [H.scalel]; A(20,:) = tmp(:)';
tmp = [H.scalco]; A(21,:) = tmp(:)';
tmp = [H.sx]; A(22,:) = tmp(:)';
tmp = [H.sy]; A(23,:) = tmp(:)';
tmp = [H.gx]; A(24,:) = tmp(:)';
tmp = [H.gy]; A(25,:) = tmp(:)';
tmp = [H.counit]; A(26,:) = tmp(:)';
tmp = [H.wevel]; A(27,:) = tmp(:)';
tmp = [H.swevel]; A(28,:) = tmp(:)';
tmp = [H.sut]; A(29,:) = tmp(:)';
tmp = [H.gut]; A(30,:) = tmp(:)';
tmp = [H.sstat]; A(31,:) = tmp(:)';
tmp = [H.gstat]; A(32,:) = tmp(:)';
tmp = [H.tstat]; A(33,:) = tmp(:)';
tmp = [H.laga]; A(34,:) = tmp(:)';
tmp = [H.lagb]; A(35,:) = tmp(:)';
tmp = [H.delrt]; A(36,:) = tmp(:)';
tmp = [H.muts]; A(37,:) = tmp(:)';
tmp = [H.mute]; A(38,:) = tmp(:)';
tmp = [H.ns]; A(39,:) = tmp(:)';
tmp = [H.dt]; A(40,:) = tmp(:)';
tmp = [H.gain]; A(41,:) = tmp(:)';
tmp = [H.igc]; A(42,:) = tmp(:)';
tmp = [H.igi]; A(43,:) = tmp(:)';
tmp = [H.corr]; A(44,:) = tmp(:)';
tmp = [H.sfs]; A(45,:) = tmp(:)';
tmp = [H.sfe]; A(46,:) = tmp(:)';
tmp = [H.slen]; A(47,:) = tmp(:)';
tmp = [H.styp]; A(48,:) = tmp(:)';
tmp = [H.stas]; A(49,:) = tmp(:)';
tmp = [H.stae]; A(50,:) = tmp(:)';
tmp = [H.tatyp]; A(51,:) = tmp(:)';
tmp = [H.afilf]; A(52,:) = tmp(:)';
tmp = [H.afils]; A(53,:) = tmp(:)';
tmp = [H.nofilf]; A(54,:) = tmp(:)';
tmp = [H.nofils]; A(55,:) = tmp(:)';
tmp = [H.lcf]; A(56,:) = tmp(:)';
tmp = [H.hcf]; A(57,:) = tmp(:)';
tmp = [H.lcs]; A(58,:) = tmp(:)';
tmp = [H.hcs]; A(59,:) = tmp(:)';
tmp = [H.year]; A(60,:) = tmp(:)';
tmp = [H.day]; A(61,:) = tmp(:)';
tmp = [H.hour]; A(62,:) = tmp(:)';
tmp = [H.minute]; A(63,:) = tmp(:)';
tmp = [H.sec]; A(64,:) = tmp(:)';
tmp = [H.timbas]; A(65,:) = tmp(:)';
tmp = [H.trwf]; A(66,:) = tmp(:)';
tmp = [H.grnors]; A(67,:) = tmp(:)';
tmp = [H.grnofr]; A(68,:) = tmp(:)';
tmp = [H.grnlof]; A(69,:) = tmp(:)';
tmp = [H.gaps]; A(70,:) = tmp(:)';
tmp = [H.otrav]; A(71,:) = tmp(:)';
tmp = [H.d1]; A(72,:) = tmp(:)';
tmp = [H.f1]; A(73,:) = tmp(:)';
tmp = [H.d2]; A(74,:) = tmp(:)';
tmp = [H.f2]; A(75,:) = tmp(:)';
tmp = [H.ungpow]; A(76,:) = tmp(:)';
tmp = [H.unscale]; A(77,:) = tmp(:)';
tmp = [H.ntr]; A(78,:) = tmp(:)';
tmp = [H.mark]; A(79,:) = tmp(:)';
% tmp2 = [H.unass] not used in this prog.
% Augmented matrix (data plus headers)
AD = [A' D']';
% Default sorting
% do the sorting
AD = sortrows(AD',index)';
% put back headers into a structure
for k=1:ntraces
H(k).tracl= AD(1,k);
H(k).tracr= AD(2,k);
H(k).fldr=AD(3,k);
H(k).tracf=AD(4,k);
H(k).ep=AD(5,k);
H(k).cdp=AD(6,k);
H(k).cdpt=AD(7,k);
H(k).trid=AD(8,k);
H(k).nva=AD(9,k);
H(k).nhs=AD(10,k);
H(k).duse=AD(11,k);
H(k).offset=AD(12,k);
H(k).gelev=AD(13,k);
H(k).selev=AD(14,k);
H(k).sdepth=AD(15,k);
H(k).gdel=AD(16,k);
H(k).sdel=AD(17,k);
H(k).swdep=AD(18,k);
H(k).gwdep=AD(19,k);
H(k).scalel=AD(20,k);
H(k).scalco=AD(21,k);
H(k).sx=AD(22,k);
H(k).sy=AD(23,k);
H(k).gx=AD(24,k);
H(k).gy=AD(25,k);
H(k).counit=AD(26,k);
H(k).wevel=AD(27,k);
H(k).swevel=AD(28,k);
H(k).sut=AD(29,k);
H(k).gut=AD(30,k);
H(k).sstat=AD(31,k);
H(k).gstat=AD(32,k);
H(k).tstat=AD(33,k);
H(k).laga=AD(34,k);
H(k).lagb=AD(35,k);
H(k).delrt=AD(36,k);
H(k).muts=AD(37,k);
H(k).mute=AD(38,k);
H(k).ns=AD(39,k);
H(k).dt=AD(40,k);
H(k).gain=AD(41,k);
H(k).igc=AD(42,k);
H(k).igi=AD(43,k);
H(k).corr=AD(44,k);
H(k).sfs=AD(45,k);
H(k).sfe=AD(46,k);
H(k).slen=AD(47,k);
H(k).styp=AD(48,k);
H(k).stas=AD(49,k);
H(k).stae=AD(50,k);
H(k).tatyp=AD(51,k);
H(k).afilf=AD(52,k);
H(k).afils=AD(53,k);
H(k).nofilf=AD(54,k);
H(k).nofils=AD(55,k);
H(k).lcf=AD(56,k);
H(k).hcf=AD(57,k);
H(k).lcs=AD(58,k);
H(k).hcs=AD(59,k);
H(k).year=AD(60,k);
H(k).day= AD(61,k);
H(k).hour=A
没有合适的资源?快使用搜索试试~ 我知道了~
地震资料处理中的MATLAB实现 (seismiclab)
共74个文件
m:65个
su:9个
5星 · 超过95%的资源 需积分: 50 217 下载量 173 浏览量
2016-01-25
09:30:25
上传
评论 28
收藏 872KB ZIP 举报
温馨提示
地震资料处理各个环节的MATLAB源代码,是学习地震勘探必不可少的学习资源。唯有通过编程,才能达到对处理数据的真正理解。
资源推荐
资源详情
资源评论
收起资源包目录
SeismicLab.zip (74个子文件)
SeismicLab
codes
spectra
fk_spectra.m 2KB
kl_transform
kl.m 2KB
velan_nmo
stackgather.m 1KB
velan.m 2KB
inmo.m 2KB
parabolic_moveout.m 2KB
nmo.m 2KB
fx
fx_decon.m 4KB
seismic_plots
wigb.m 3KB
pimage.m 1KB
clip.m 1KB
seismic.m 2KB
plot_spectral_attributes.m 2KB
plot_wb.m 1KB
sgray.m 1KB
interpolation
spitz_fx_interpolation.m 5KB
bp_filter
bp_filter.m 2KB
segy
writesegy.m 4KB
segy_struct.m 3KB
extract.m 2KB
make_empty_header.m 3KB
count_struct.m 3KB
make_su_file.m 1KB
header.m 4KB
ssort.m 8KB
readsegy.m 4KB
scaling_tapering
taper.m 1KB
gain.m 2KB
envelope.m 1022B
synthetics
trapezoidal_wavelet.m 2KB
linear_events.m 3KB
gauss_mixture.m 1KB
bernoulli.m 1KB
make_traces.m 2KB
rotated_wavelet.m 2KB
hyperbolic_events.m 3KB
laplace.m 1KB
laplace_mixture.m 2KB
ricker.m 1KB
flat_events.m 2KB
radon_transforms
pradon_demultiple.m 2KB
inverse_radon_freq.m 2KB
forward_radon_freq.m 2KB
dephasing
delay.m 2KB
phase_correction.m 1KB
kurtosis_of_traces.m 1KB
decon
spiking.m 2KB
predictive.m 2KB
zeros_wav.m 941B
smooth_spectrum.m 2KB
kolmog.m 2KB
ls_inv_filter.m 2KB
sparse_decon.m 2KB
polar_plot.m 1KB
contents.m 1KB
SeismicLab_demos
spitz_demo.m 2KB
sparse_decon_demo.m 1KB
radon_demo_1.m 2KB
spiking_decon_demo.m 2KB
syn_cmp_inmo.su 86KB
radon_demo_2.m 2KB
parabolic_moveout_demo.m 2KB
fx_decon_demo.m 1KB
moveout_demo.m 1KB
va_demo.m 1KB
syn_cmp_nmo.su 86KB
SeismicLab_data
gom_cdp_nmo.su 651KB
contents.m 338B
wavelet_for_small_stack.su 420B
syn_cmp_mult.su 203KB
min_phase_wavelet.su 380B
data_with_noise.su 110KB
small_stack.su 20KB
syn_cmp.su 86KB
共 74 条
- 1
资源评论
- 野生程序员vip2019-04-07thanks very much
- 杰骜不逊_6662019-03-05很好用,,谢谢
xqscugb
- 粉丝: 4
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功