C++生成 桔灯 Aether仪器的 *.atts 格式 时间域文件
Aether大地电磁系统
Aether 是全新一代高速低速同时采集的大地电磁系统,通过 GPS 进行同步授时定位, 所有通道完全同步采集,连续时间序列存储。也可以用于任何传统电磁法 MT、 ATM、 CSAMT、 TEM、SIP、TDIP 等任何电法、电磁法数据的采集,及其地球物理新方法创新,电磁环境监 测等方面。
Aether是全新一代高频低频同时采集的电磁系统。它通过GPS进行同步授时定位,所有通道完全同步采集,连续时间序列存储。可以用于任何传统天然源电磁法MT、AMT,也可以用于常规有源法CSAMT、TEM、SIP、TDIP等。
通过3G/4G/5G网络,实时传输和下载时间序列数据,无需现场下载;适合用于长周期电磁和地震监测。
特点
● 连续时间序列存储
多通道数据连续记录,用以保证数据完整性,有限时间内可用数据最多,提高野外工作效率,增加抗干扰处理手段。完全区别于其它“老”仪器的间断采集方式,破坏了数据完整性,也降低了工作效率。
● 实时阻抗估计
可实时显示时间序列波形、频谱、仪器所有工作状态,并可实时处理并显示阻抗。
● 高低频同时记录
支持24bit 6通道高频(最高96kHz)和32bit 6通道低频(最高4kHz)在)同时采集和存储;同时采集单个点的高频数据和低频数据,避免不同仪器、不同时间采集数据拼接的问题。
● 电磁通道通用
Aether系列支持任意电磁法的传感器输入,包括电极、感应线圈磁探头、磁通门探头、地震速度传感器、加速度传感器等。
● GPS同步时间与坐标
精确的GPS授时,保证每个采样点都有精确的时间标签,并记录GPS位置。
自有设备采集的明码时间域文件转换成*.atts格式:
无码无真相:
#include "WriteBinary.h"WriteBinary::WriteBinary(QStringList aoStrFileName, ATTS_HEAD oHead) :gaoStrFileName(aoStrFileName),goHead(oHead)
{}void WriteBinary::run()
{/* atts file */FILE *pFileATTS;QString oStrFileName = gaoStrFileName.first();oStrFileName.chop(8);QString oStrFileATTS = QString( oStrFileName + ".atts");pFileATTS = fopen ( (oStrFileATTS.toLocal8Bit().data()), "wb" );fwrite(&goHead.flag, 8, 1, pFileATTS);fwrite(&goHead.nChan, 2, 1, pFileATTS);fwrite(&goHead.bits, 2, 1, pFileATTS);fwrite(&goHead.format, 4, 1, pFileATTS);fwrite(&goHead.Fs, 8, 1, pFileATTS);fwrite(&goHead.UnixBegin, 4, 1, pFileATTS);fwrite(&goHead.UsBegin, 4, 1, pFileATTS);fwrite(&goHead.UnixEnd, 4, 1, pFileATTS);fwrite(&goHead.UsEnd, 4, 1, pFileATTS);fwrite(&goHead.nSize, 8, 1, pFileATTS);fwrite(&goHead.notchFreq, 8, 1, pFileATTS);fwrite(&goHead.notchHarm, 2, 1, pFileATTS);fwrite(&goHead.unused, 30, 1, pFileATTS);for(int i = 0; i < 16; i++){fwrite(&(goHead.Chan[i].Valid), 2, 1, pFileATTS);fwrite(&(goHead.Chan[i].Comp), 2, 1, pFileATTS);fwrite(&(goHead.Chan[i].Direct), 2, 1, pFileATTS);fwrite(&(goHead.Chan[i].lens), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].ChName), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].SN), 16, 1, pFileATTS);fwrite(&(goHead.Chan[i].Gain), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].Offset), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].Azimuth), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].CRes), 4, 1, pFileATTS);fwrite(&(goHead.Chan[i].iAC), 2, 1, pFileATTS);fwrite(&(goHead.Chan[i].iDC), 2, 1, pFileATTS);fwrite(&(goHead.Chan[i].unused), 4, 1, pFileATTS);}fwrite(&goHead.Stn, 4, 1, pFileATTS);fwrite(&goHead.Lat, 8, 1, pFileATTS);fwrite(&goHead.Long, 8, 1, pFileATTS);fwrite(&goHead.Alt, 4, 1, pFileATTS);fwrite(&goHead.Line, 4, 1, pFileATTS);fwrite(&goHead.rKchanACDC, 4, 1, pFileATTS);fwrite(&goHead.unused2, 998, 1, pFileATTS);fwrite(&goHead.Comment, 64, 1, pFileATTS);fwrite(&goHead.ends, 2, 1, pFileATTS);QMap<int, QString> oMap;oMap.clear();foreach(QString oStrFile, gaoStrFileName){qDebugV0()<<oStrFile.right(5).left(1).toInt()<<oStrFile;/* 通道编号和文件名对应好 */oMap.insert(oStrFile.right(5).left(1).toInt(), oStrFile);}//qDebugV0()<<oMap<<goHead.nSize/5<<goHead.nSize;QByteArray baLine;baLine.clear();QStringList asLine;asLine.clear();QString sData;sData.clear();float fLine = 0.0;/* Ex */QFile oFileEx(oMap.value(1));if(!oFileEx.open(QIODevice::ReadOnly | QIODevice::Text)){qDebugV5()<<"Can't open the file!"<<oFileEx.errorString()<<endl;}oFileEx.readLine();/* Ey */QFile oFileEy(oMap.value(2));if(!oFileEy.open(QIODevice::ReadOnly | QIODevice::Text)){qDebugV5()<<"Can't open the file!"<<oFileEy.errorString()<<endl;}oFileEy.readLine();/* Hx */QFile oFileHx(oMap.value(4));if(!oFileHx.open(QIODevice::ReadOnly | QIODevice::Text)){qDebugV5()<<"Can't open the file!"<<oFileHx.errorString()<<endl;}oFileHx.readLine();/* Hy */QFile oFileHy(oMap.value(5));if(!oFileHy.open(QIODevice::ReadOnly | QIODevice::Text)){qDebugV5()<<"Can't open the file!"<<oFileHy.errorString()<<endl;}oFileHy.readLine();/* Hz */QFile oFileHz(oMap.value(6));if(!oFileHz.open(QIODevice::ReadOnly | QIODevice::Text)){qDebugV5()<<"Can't open the file!"<<oFileHz.errorString()<<endl;}oFileHz.readLine();for(int j = 0; j < goHead.nSize/5; j++){/* Ex */baLine.clear();baLine = oFileEx.readLine();QString sLineEx(baLine);sLineEx.remove("\n");asLine = sLineEx.split(",", QString::SkipEmptyParts);sData = asLine.first();fLine = sData.simplified().toFloat();fwrite(&fLine, goHead.bits/8, 1, pFileATTS);/* Ey */baLine.clear();baLine = oFileEy.readLine();QString sLineEy(baLine);sLineEy.remove("\n");asLine = sLineEy.split(",", QString::SkipEmptyParts);sData = asLine.first();fLine = sData.simplified().toFloat();fwrite(&fLine, goHead.bits/8, 1, pFileATTS);/* Hx */baLine.clear();baLine = oFileHx.readLine();QString sLineHx(baLine);sLineHx.remove("\n");asLine = sLineHx.split(",", QString::SkipEmptyParts);sData = asLine.first();fLine = sData.simplified().toFloat();fwrite(&fLine, goHead.bits/8, 1, pFileATTS);/* Hy */baLine.clear();baLine = oFileHy.readLine();QString sLineHy(baLine);sLineHy.remove("\n");asLine = sLineHy.split(",", QString::SkipEmptyParts);sData = asLine.first();fLine = sData.simplified().toFloat();fwrite(&fLine, goHead.bits/8, 1, pFileATTS);/* Hz */baLine.clear();baLine = oFileHz.readLine();QString sLineHz(baLine);sLineHz.remove("\n");asLine = sLineHz.split(",", QString::SkipEmptyParts);sData = asLine.first();fLine = sData.simplified().toFloat();fwrite(&fLine, goHead.bits/8, 1, pFileATTS);}oFileEx.flush();oFileEy.flush();oFileHx.flush();oFileHy.flush();oFileHz.flush();oFileEx.close();oFileEy.close();oFileHx.close();oFileHy.close();oFileHz.close();fflush(pFileATTS);fclose(pFileATTS);emit Sig("转换完成!\n" + oStrFileATTS);
}
QFile ,Q_DISABLE_COPY。可以使用QList<QFile*> 来存放文件指针。大佬们见笑了。
C++生成 桔灯 Aether仪器的 *.atts 格式 时间域文件相关推荐
- python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;
python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...
- flowable 中文文档_取出word文档文字内容生成加了目录、标号和页码的PDF文件
word文档内的一页: 将文本取出来,生成自定义格式的PDF文件: 从word取出文本时标题的标号和页码是取不出来的,要自己加.另外就是目录也要自己生成和添加: 代码和解释如下: from repor ...
- Java生成真正格式的Excel文件
一般情况下如果想完全通过自己手工组装的方式去生成一个Excel文件,可以先在pom.xml文件中引入下述依赖: <dependency><groupId>com.github. ...
- 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令
目录 1.树莓派安装FFTW 2.不生成.so库的问题 3.从.a生成.so 4.直接复制.so .a 5.按时间查看文件 1.树莓派安装FFTW 树莓派安装fftw_zhangjun62的博客-CS ...
- 使用OpenCV合成训练图片,同时生成labelme兼容格式的标注文件
思路很简单,加载背景图片,加载目标图片,随机抽取N个目标图像,将目标图像的像素copy到背景图片上,拷贝的位置可根据要求指定:同时合成标注json文件.代码如下: # coding=utf-8from ...
- Java多word文件生成后进行压缩并导出下载后,压缩文件损坏并提示“不可预料的压缩文件末端”和“CRC校验失败”
Java多word文件生成后进行压缩并导出下载后,压缩文件损坏并提示"不可预料的压缩文件末端"和"CRC校验失败" WinRAR 打开情况: 提示不可预料的压缩 ...
- java根据pdf模板生成指定格式的pdf文件
java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...
- java p12 ssl_OpenSSL 1.0.0生成p12、jks、crt等格式SSL数字证书的全过程合集
在这里跟万维景盛的开发者伙伴们分享OpenSSL 1.0.0生成p12.jks.crt等格式SSL数字证书的全过程合集,此生成的证书可用于浏览器.java.tomcat.c++等.步骤如下: 1.创建 ...
- Android Studio项目打包生成可安装在自己手机上的App安装包文件
点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 Android程序开发完后,如果要发布在互联网上供别人使用,就要将自己的程序打包成And ...
最新文章
- 深入理解PHP内核(四)概览-PHP脚本的执行
- ie8恶心的bug--4个小时的教训
- java1.8中的时间处理类
- UVa 10258 - Contest Scoreboard
- kerberos 主从安装
- HelloWorld新手常见问题
- 多个canvas画布合并_canvas的基础入门
- 兼容性测试之VMware
- Activiti启动某个流程失败,页面报500
- Java线程池ExecutorService
- 伦敦大学计算机研究生雅思要求,伦敦TOP10大学的雅思入学要求来了!
- 超搜索引擎BBMAO
- 股票交易接口的分类webService接口
- linux下多线程验证数独,6.6.1 数独求解服务器
- 超详细: Type-C接口Macbook笔记本无法充电(时连时断)的傻瓜处理流程
- clickhouse--Window Functions 窗口函数概念讲解及实际使用示例
- [AV1] DC Intra Prediction
- 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...
- 响铃:迎风而起的布料B2B平台,谁才是决定生死的命脉?
- 无线AP的Fat模式和Fit模式有什么区别?
热门文章
- 【统计学】基本Stata使用手册(5):面板数据
- BIM模型文件下载——某小高层商住楼项目Revit模型
- android ui flutter,android-如何在运行flutter应用程序时解决’dart:ui’错误?
- (亲测有效)解决shell脚本运行报错
- python中rb是什么意思_python中rb含义理解
- Vue 修改掘金字体颜色
- 最新期货限仓规定(商品期货限制开仓)
- Java学习 day 34_HTML
- .net core 使用 FreeSpire.XLS 实现 excel 转 png - docker 部署
- linux 中文五笔输入法,Linux系统下中文输入法安装与配置技巧