RasterProcessTool/SimulationSAR/RTPCProcessCls.h

86 lines
3.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
/*****************************************************************//**
* \file RTPCProcessCls.h
* \brief 距离时域脉冲相干法Range Time domain Pulse Coherent处理流程与相关文件
*
* 参考资料
* 合成孔径雷达成像算法与实现cumming 洪文译, 第四章 合成孔径的概念
* 雷达信号处理基础Mark A.Richards,邢孟道译
* 合成孔径雷达成像原理,皮亦鸣
* InSAR原理与应用刘国祥
* 弹载SAR回波信号仿真研究林江红
* 星载合成孔径雷达原始回波数据模拟研究,吕辉
* SAR回波仿真信号生成算法的性能比较研究韦立登
* 星载合成孔径雷达影像正射校正方法研究,陈尔学
* 注:吕辉 多普勒计算公式 与 陈尔学的多普勒计算公式存在差异,中间省略了一些变换过程
*
*
* \author 陈增辉
* \date October 2024
*********************************************************************/
#include "BaseConstVariable.h"
#include "SARSatelliteSimulationAbstractCls.h"
#include "SARSimulationTaskSetting.h"
#include "SatelliteOribtModel.h"
#include "EchoDataFormat.h"
#include "SigmaDatabase.h"
class RTPCProcessCls
{
public:
RTPCProcessCls();
~RTPCProcessCls();
public:
void setTaskSetting(std::shared_ptr < AbstractSARSatelliteModel> TaskSetting);
void setEchoSimulationDataSetting(std::shared_ptr < EchoL0Dataset> EchoSimulationData);
void setTaskFileName(QString EchoFileName);
void setDEMTiffPath(QString DEMTiffPath);
void setLandCoverPath(QString LandCoverPath);
void setHHSigmaPath(QString HHSigmaPath);
void setHVSigmaPath(QString HVSigmaPath);
void setVHSigmaPath(QString VHSigmaPath);
void setVVSigmaPath(QString VVSigmaPath);
void setOutEchoPath(QString OutEchoPath);
private:
std::shared_ptr <AbstractSARSatelliteModel> TaskSetting; // 仿真任务设置
std::shared_ptr <EchoL0Dataset> EchoSimulationData; // GPS数据
std::shared_ptr<SigmaDatabase> SigmaDatabasePtr;
long PluseCount; // 脉冲数量
long PlusePoint; // 脉冲点数
QString DEMTiffPath; // DEM Tiff 文件路径
QString LandCoverPath;
QString HHSigmaPath;
QString HVSigmaPath;
QString VHSigmaPath;
QString VVSigmaPath;
QString OutEchoPath; // 输出回波路径
QString TaskFileName;
QString tmpfolderPath;
public:
ErrorCode Process(long num_thread); // 处理
private: // 处理流程
ErrorCode InitParams();// 1. 初始化参数
ErrorCode DEMPreprocess(); // 2. 裁剪DEM范围
//ErrorCode RTPCMainProcess(long num_thread);
ErrorCode RTPCMainProcess_GPU();
private:
QString demxyzPath;
QString demmaskPath;
QString demsloperPath;
};
void RTPCProcessMain(long num_thread,QString TansformPatternFilePath,QString ReceivePatternFilePath,QString simulationtaskName, QString OutEchoPath, QString GPSXmlPath,QString TaskXmlPath,QString demTiffPath, QString LandCoverPath, QString HHSigmaPath, QString HVSigmaPath, QString VHSigmaPath, QString VVSigmaPath);
// 测试
void testOutAntPatternTrans(QString antpatternfilename,float* antPatternArr,double starttheta,double deltetheta,double startphi,double deltaphi,long thetanum,long phinum );
void testOutAmpArr(QString filename, float* amp, long rowcount, long colcount);
void testOutClsArr(QString filename, long* amp, long rowcount, long colcount);