用于水域磁法数据精细化处理的小程序
前言
三分量磁力仪每秒采集20+~200+个数据,一个水域工程80km的测线,往往采集数据量达到300万,后期资料整理非常繁琐。在研究水域磁法工作原理及数据处理流程的基础上,编写了几个小程序用于简化数据处理流程(附源代码)。
1、水域磁法数据压缩程序
由于磁力仪采样率较高,每秒采集数据量并不相等,因此以秒为单位将所有数据取平均值,对数据进行压缩。数据压缩程序如下:
close all
clear
clc
% 磁法勘探数据处理
% 此程序功能是压缩磁法数据,将1秒内采集的多个数据取平均值
% shangxiang 20240712
% 读取数据,打开数据所在文件夹,读取数据
[inFileName,PathName] = uigetfile('*.xlsx',...
'选择磁法数据文件','MultiSelect','on');
filename = strcat(PathName,inFileName);
% 导入数据
data_old = readtable(filename);
% 将时间转换为秒
time_old = 86400*data_old.Var3;
% 将磁法数据转换为矩阵
data_m_old = table2array(data_old(:,4:8));
n = length(time_old);
% 对秒数取整
time_old = floor(time_old);
k = 1;
count = 1;
data_m_new = [];
while k < n
if time_old(k) ~= time_old(k+1)
data_m_one = mean(data_m_old(count:k,:));
data_m_new = [data_m_new;data_m_one];
count = k+1;
end
k = k+1;
end
data_m_new = [data_m_new;mean(data_m_old(count:end,:))];
time_new = unique(time_old);
% data_num = [1:1:length(time_new)]';
% 将压缩后的数据合并成一个大矩阵
data_new = [time_new,data_m_new];
采用此程序计算后,数据量减小了20多倍。
2、水域磁法数据与测量坐标匹配程序
磁力仪采集的数据是一个单独的文件夹,GPS测量的数据也是一个单独的文件夹,后期成图时需要两种数据(坐标数据、磁法数据)同在一个文件,并且时间需要对应。因此以两个文件夹数据记录的时间为基准,将两种数据合并为一个,代码如下:
close all
clear
clc
% 水域磁法勘探数据处理
% 此程序功能是匹配磁法数据与坐标,以时间为基准进行匹配
% shangxiang 20240801
% 读取数据,打开数据所在文件夹,读取数据
[inFileName,PathName] = uigetfile('*.xlsx',...
'选择磁法数据文件','MultiSelect','on');
filename = strcat(PathName,inFileName);
data_M_old = xlsread(filename,'磁法数据');
data_T_old = xlsread(filename,'测线数据');
[C,ia,ib] = intersect(data_M_old(:,2:3),data_T_old(:,2:3),'rows','stable');
data_M_new = data_M_old(ia,:);
data_T_new = data_T_old(ib,:);
data_all = [data_M_new,data_T_new];
xlswrite(filename,data_all,'测线数据加坐标');
3、原始数据成图
采用上述程序计算后,即可对原始数据初步成图。未做日变校正、化极、延拓等处理手段,成图如下。
4、数据导入CAD
将原始数据直接导入到CAD中(未做任何处理)。