#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 TaskSetting; // 仿真任务设置 std::shared_ptr EchoSimulationData; // GPS数据 std::shared_ptr 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); 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);