静力触探数据智能预处理(2)

news2024/12/23 11:28:14

静力触探数据智能预处理(2)

前言

数据处理方式已由手工1.0、计算机辅助2.0到人工智能3.0的趋势发展。现场采集的静力触探数据通常是由仪器厂家开发的数据采集软件保存,将原始数据导入Excel中,数据格式需要花费一定的时间整理,当数据量比较大的时候容易出错。利用matlab开发了静力触探数据快速读取程序,可以实现对原始数据的一键提取并快速分类,非专业编写,代码仅供参考。

文章目录

  • 静力触探数据智能预处理(2)
        • 前言
    • 1、原始数据格式
    • 2、自编函数
      • 2.1、Draw_JT函数
      • 2.2、Draw_xiaosan函数
      • 2.3、Save_excel函数
    • 3、数据提取函数
      • 3.1 多个消散数据提取
      • 3.2、静力触探数据与单个消散数据提取

1、原始数据格式

数据采集仪保存的原始记录是*.kw格式(或者其他格式),可转换成用记事本打开的*.txt格式或者用于excel的*.csv格式,数据处理时要在excel中删除表头或其它符号,比较浪费时间,原始数据格式如下:
在这里插入图片描述
利用matlab编程可以将原始数据读取出来,并转化成标准静力触探数据格式。

2、自编函数

2.1、Draw_JT函数

此函数的功能是将绘制原始静力触探曲线图。

function Draw_JT(jt_data)
% 画静探曲线图
figure(1);
set(gcf,'position',[20 50 800 800]);

subplot(1,3,1),plot(jt_data(:,2),jt_data(:,1),'r');
set(gca,'ydir','reverse');
set(gca,'xaxislocation','top');
xlabel('q_c/mPa','FontWeight','bold');
ylabel('Depth/m','FontWeight','bold');
set(gca,'fontname','times new roman','fontsize',16);

subplot(1,3,2),plot(jt_data(:,3),jt_data(:,1),'b');
set(gca,'ydir','reverse');
set(gca,'xaxislocation','top');
xlabel('f_s/kPa','FontWeight','bold');
% ylabel('深度/m','FontWeight','bold');
set(gca,'fontname','times new roman','fontsize',16);

subplot(1,3,3),plot(jt_data(:,4),jt_data(:,1),'g');
set(gca,'ydir','reverse');
set(gca,'xaxislocation','top');
xlabel('u_2/kPa','FontWeight','bold');
% ylabel('深度/m','FontWeight','bold');
set(gca,'fontname','times new roman','fontsize',16);

成图效果如下:
在这里插入图片描述

2.2、Draw_xiaosan函数

此函数的功能是绘制孔压消散曲线图。

function Draw_xiansan(xs_data)
% 画消散曲线图
figure(2);
set(gcf,'position',[50 50 600 600]);

plot(xs_data(:,1),xs_data(:,4),'r');
% set(gca,'ydir','reverse');
% set(gca,'xaxislocation','top');
ylim([0 1.1*max(xs_data(:,4))]);
ylabel('u_2/kPa','FontWeight','bold');
xlabel('Time/s','FontWeight','bold');
set(gca,'fontname','times new roman','fontsize',16);
title('孔压消散曲线','fontname','宋体');

2.3、Save_excel函数

此函数功能是将静探原始数据保存为excel中,用于后续处理。

function save_xls(jt_data,PathName)
% 将静探数据保存为excel
prompt = {'请输入要保存的文件名:','请输入保存的表格名(sheet):'};
dlgtitle = '保存静探数据为excel';
dims = [1.5 70];
definput = {'JTdata.xls','sheet1'};
answer = inputdlg(prompt,dlgtitle,dims,definput);
filename_jt = strcat(PathName,answer{1});
sheet = answer{2};
xlswrite(filename_jt,jt_data,sheet);

使用此函数时,会自动弹出窗口,确定数据保存的位置以及sheet。

3、数据提取函数

3.1 多个消散数据提取

当原始数据中包含多段消散数据时,使用此程序可快速提取静力触探数据,并将孔压消散数据分类。代码如下:

close all
clear
clc

% 读取静力触探数据并保存为excel

% 程序修改,shangxiang
% 2023年2月6日

% 打开文件所在的文件夹,读取静探数据文件
[inFileName,PathName] = uigetfile('*.kw',...
    '选择静探数据文件','MultiSelect','on');

filename = strcat(PathName,inFileName);

% 将静探数据读取出来
data = importdata(filename);
a = data.data;
n = length(a);

% 提取数据,找出数据起点
for i = 1:n
    b = a(i);
    k = i;
    if b == 0
        break
    end
end

% 判断是否包含消散数据
xiansan = 0;
% 数据格式转换
d = a(k-1:end);
xiansan_begin = 0;
for i = 2:length(d)
    if isnan(d(i))&&isnan(d(i-1))
        xiansan_begin = i;
        fprintf('...这个数据文件中包含消散数据\n消散数据从%d开始...\n',xiansan_begin);
        break;
    end
 end

% 将静探数据与消散数据分离
jt_data_lie = d(1:xiansan_begin-2);
jt_data = reshape(jt_data_lie,6,[]);
jt_data = jt_data';
jt_data = jt_data(:,2:6);
save_xls(jt_data,PathName);

xs_data_lie = d(xiansan_begin:end);
% 将消散数据分离
if xiansan_begin ~= 0,xs_num = 1;end
for i = 2:length(xs_data_lie)
    if isnan(xs_data_lie(i))&&isnan(xs_data_lie(i-2))
        xs_begin(xs_num) = i;
        xs_num = xs_num + 1;
    end
end
xs_begin = [1,xs_begin,length(xs_data_lie)+3];
fprintf('...这个数据文件中包含%d组消散数据...\n',xs_num); 
for i = 2:xs_num+1
    clear xs_data
    xs_data = xs_data_lie(xs_begin(i-1):xs_begin(i)-3);
    xs_data = reshape(xs_data,6,[]);
    xs_data = xs_data';
    xs_data = xs_data(:,2:6);
    save_xls(xs_data,PathName);
end

% 
% % 数据格式说明
% % 一共有五列数据
% % 第一列为深度数据
% % 第二列为锥尖阻力数据
% % 第三列为侧壁摩擦力数据
% % 第四列为孔隙水压力数据
% % 第五列为探头倾角数据
% 
% 
% % 将静探数据保存至excel文件中
% % save_xls(jt_data,PathName);
% 
% % 绘制静探曲线图
Draw_JT(jt_data);
% 
% % 绘制消散曲线图
% % Draw_xiansan(xs_data);
% % save_xls(xs_data,PathName);
% 
% 
% time = xs_data(:,1);
% u2 = xs_data(:,4);
% u2_guiyi = (u2 - min(u2))/(max(u2) - min(u2));
% u2_guiyi_smooth = smoothdata(u2_guiyi,'loess',50);
% figure(11);
% % plot(log(time),u2_guiyi);hold on
% plot(log(time),u2_guiyi_smooth);
% xlabel('log(t)','FontWeight','bold','fontname','times new roman');
% ylabel('归一化u_2','FontWeight','bold');
% set(gca,'fontsize',16);
% title('孔压消散曲线图','fontname','宋体');
% 
% % sheet = inFileName(1:end-3);
% % filename_png = strcat(PathName,sheet,'.png');
% % % 保存曲线图
% % print(gcf, '-dpng', '-r600', filename_png)
% 

3.2、静力触探数据与单个消散数据提取

此程序的功能是将单个孔压消散数据提取出来,并与静力触探数据分离。

close all
clear
clc

% 读取静力触探数据并保存为excel

% 程序修改,shangxiang,2023年8月30日。

% 打开文件所在的文件夹,读取静探数据文件
[inFileName,PathName] = uigetfile('*.kw',...
    '选择静探数据文件','MultiSelect','on');

filename = strcat(PathName,inFileName);

% 将静探数据读取出来
data = importdata(filename);
a = data.data;
n = length(a);

% 提取数据,找出数据起点
for i = 1:n
    b = a(i);
    k = i;
    if b == 0
        break
    end
end

% 判断是否包含消散数据
xiansan = 0;
% 数据格式转换
d = a(k-1:end);
xiansan_begin = 0;
for i = 2:length(d)
    if isnan(d(i))&&isnan(d(i-1))
        xiansan_begin = i;
        fprintf('...这个数据文件中包含消散数据\n消散数据从%d开始...\n',xiansan_begin);
        d(i) = [];
        break;
    end
end

if xiansan_begin == 0
    fprintf('...这个数据文件中不包含消散数据...\n');
    xiansan_begin = length(d) + 2;
end

% 将静探数据与消散数据分离
a_new = reshape(d,6,[]);
a_new_new = a_new';
data_new = a_new_new(:,2:6);
jt_lie = ( xiansan_begin - 2 )/6;
jt_data = data_new(1:jt_lie,:);
xs_data = data_new(jt_lie+1:end,:);

% 数据格式说明
% 一共有五列数据
% 第一列为深度数据
% 第二列为锥尖阻力数据
% 第三列为侧壁摩擦力数据
% 第四列为孔隙水压力数据
% 第五列为探头倾角数据


% 将静探数据保存至excel文件中
save_xls(jt_data,PathName);

% 绘制静探曲线图
Draw_JT(jt_data);

% 绘制消散曲线图
% Draw_xiansan(xs_data);
save_xls(xs_data,PathName);


% time = xs_data(:,1);
% u2 = xs_data(:,4);
% u2_guiyi = (u2 - min(u2))/(max(u2) - min(u2));
% u2_guiyi_smooth = smoothdata(u2_guiyi,'loess',50);
% figure(11);
% % plot(log(time),u2_guiyi);hold on
% plot(log(time),u2_guiyi_smooth);
% xlabel('log(t)','FontWeight','bold','fontname','times new roman');
% ylabel('归一化u_2','FontWeight','bold');
% set(gca,'fontsize',16);
% title('孔压消散曲线图','fontname','宋体');

% sheet = inFileName(1:end-3);
% filename_png = strcat(PathName,sheet,'.png');
% % 保存曲线图
% print(gcf, '-dpng', '-r600', filename_png)

注意,当使用此程序读取其他数据格式时,需要适当的修改代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/950305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git管理本地代码

一、Git配置 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改 – global全局配置 通过 --global 选项可以设置全局配置信息 …

第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验 D5连接喇叭正极,GND连接喇叭负…

推荐一本AI+医疗书:《机器学习和深度学习基础以及医学应用》,附21篇精选综述

当代医学仍然存在许多亟待解决的问题,比如日益增加的成本、医疗服务水平的下降...但近几年AI技术的发展却给医疗领域带来了革命性的变化,因此AI医疗迅速兴起。 从目前已知的成果来看,人工智能在医学领域的应用已经相当广泛,智能诊…

【pyqt5界面化工具开发-14】初始牛刀-登录工具

目录 0x00 前言: 一、准备好ui的加载 二、获取对应的触发事件 三、触发事件绑定 三、输入内容的调用 三、完善登录逻辑 0x00 前言: 在逻辑代码的处理添加数据包的请求,返回数据包的判断,就可以完整实现登录检测的一个界面化…

zookeeper介绍、zookeeper的安装与配置

1、zookeeper介绍 1.1 官网说明 官方地址:http://zookeeper.apache.org/ 它是拿来管理 Hadoop、Hive、Pig的管理员, Apache Hbase和Apache Solr以及阿里的Dubbo等项目中都采用到了Zookeeper。 一句话:ZooKeeper是一个分布式协调技术、高性…

基于Kohonen网络的聚类算法

1.案例背景 1.1 Kohonen网络 Kohonen网络是自组织竞争型神经网络的一种,该网络为无监督学习网络,能够识别环境特征并自动聚类。Kohonen神经网络是芬兰赫尔辛基大学教授Teuvo Kohonen 提出的,该网络通过自组织特征映射调整网络权值,使神经网络收敛于一种表示形态。在这一形态中…

OLAP学习

OLAP又叫联机分析处理,联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-linetransactionprocessing)、联机分析处理OLAP(On-LineAna…

外观模式:简化复杂子系统的访问与使用

文章目录 1. 简介2. 外观模式的基本结构3. 外观模式的实现步骤4. 外观模式的应用与实例4.1 图形界面库的外观模式应用4.2 文件压缩与解压缩的外观模式应用4.3 订单处理系统的外观模式应用 5. 外观模式的优缺点5.1 优点5.2 缺点 6. 总结 1. 简介 外观模式是一种结构型设计模式&…

从过滤器初识责任链设计模式

下面用的过滤器都是注解方式 可以使用非注解方式,就是去web.xml配置映射关系 上面程序的执行输出是 再加一个过滤器 下面来看一段程序 输出结果 和过滤器是否非常相识 但是上面这段程序存在的问题:在编译阶段已经完全确定了调用关系,如果你想改变他们的调用顺序或者继续添加一…

基于MYSQL的主从同步和读写分离

目录 一.完成MySQL主从同步(一主两从) 1.主库配置 2.建立同步账号 3.锁表设置只读 4.备份数据库数据 5.主库备份数据上传到从库 6.从库上还原备份 7.解锁 8.从库上设定主从同步 9.启动从库同步开关 10.检查状态 二.基于MySQL一主两从配置&…

取数组中每个元素的最高位

1 题目 /*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。 程序运行结果为: a:82 756 71629 5 2034 b: 8 7 7 5 2 */ 2 思考 简单来说就是取一个数据的最高位。 一开始的笨方法没有办法判断数据的长度,后来…

nowcoder NC236题 最大差值

目录 题目描述: 示例1 示例2 题干解析: 暴力求解: 代码展示: 优化: 代码展示: 题目跳转https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId128&tqId33768&ru/exa…

BFT最前线|AI透过胸片估测患者年龄,可揭示其患慢性病风险;中信建投:国产人形机器人核心零部件成本下行值得期待

文 | BFT机器人 AI视界 TECHNOLOGY NEWS 看点1 AI模拟芯片能效达传统芯片14倍 《自然》23日发表的研究报道了一种能效为传统数字计算机芯片14倍的人工智能(AI)模拟芯片。这一由IBM研究实验室开发的芯片在语音识别上的效率超过了通用处理器。该技术或能…

【java中的Set集合】HashSet、LinkedHashSet、TreeSet(最通俗易懂版!!)

目录 一、HashSet集合 1.HashSet集合的特点 2.HashSet常用方法 二、LinkedHashSet集合 LinkedHashSet集合的特点 三、TreeSet集合 1.TreeSet集合的特点 2.TreeSet的基本使用 四、HashSet、LinkedHashSet、TreeSet的使用场景 五、list和set集合的区别 一、HashSet集合 …

yolo增加mobileone

代码地址:GitHub - apple/ml-mobileone: This repository contains the official implementation of the research paper, "An Improved One millisecond Mobile Backbone". 论文地址:https://arxiv.org/abs/2206.04040 MobileOne出自Apple&am…

java八股文面试[数据库]——B树和B+树的区别

B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度进行查找、顺序读取、插入和删除等操作。 1、B树的特性 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实…

VBA技术资料MF50:VBA_在Excel中突出显示前3个值

【分享成果,随喜正能量】人受到尊重,不是因为权钱,而是他骨子里透出的,正直与善良。。 我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高…

RabbitMQ工作模式-路由模式

官方文档参考:https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才…

Node.js /webpack DAY6

一、Node.js 入门 1. 什么是 Node.js? 2. 什么是前端工程化? 3. Node.js 为何能执行 JS? 4. Node.js 安装 5. 使用 Node.js 总结 6. fs 模块 - 读写文件 /*** 目标:基于 fs 模块 读写文件内容* 1. 加载 fs 模块对象* 2. 写入文件…