geopro/external/gpr3dviewer/IprhParser.h

42 lines
1.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef IPRHPARSER_H
#define IPRHPARSER_H
#include "GPRDataModel.h"
#include <QString>
#include <QStringList>
class IprhParser {
public:
// 主入口:传入 .iprh 文件路径,自动寻找同名的 .iprb 文件
static bool loadFromIprh(const QString &iprhFilePath, GPRDataModel &model);
// 多通道 Impulse 数据合并入口:一个文件夹下有多个 _A01.iprh/.iprb ... _A14.iprh/.iprb
static bool loadImpulseMultiChannel(const QString &dirPath,
const QString &baseName,
GPRDataModel &model);
// 将多通道 Impulse 数据转换为本地 Mala Mira 风格 .rad/.rd3再走现有 Mala Mira 解析流程
static bool convertImpulseMultiChannelToMala(const QString &dirPath,
const QString &baseName,
QString *radFilePath,
QString *errorMessage = nullptr);
static bool parseHeaderOnly(const QString &iprhFilePath, GPRDataModel::Header &header);
private:
static bool parseIprhHeader(const QString &iprhFilePath, GPRDataModel::Header &header);
static bool loadIprbBinary(const QString &iprbFilePath, GPRDataModel &model);
static bool writeMalaFiles(const QString &radFilePath,
const QString &rd3FilePath,
const GPRDataModel &model,
const QString &sourceBaseName,
QString *errorMessage);
static QString formatFloatList(const QVector<float> &values);
static QString uniqueConvertedBasePath(const QString &dirPath, const QString &baseName);
static double extractDouble(const QString &value);
static int extractInt(const QString &value);
};
#endif // IPRHPARSER_H