86 lines
3.0 KiB
C++
86 lines
3.0 KiB
C++
#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);
|