97 lines
2.8 KiB
C++
97 lines
2.8 KiB
C++
#pragma once
|
||
|
||
/*****************************************************************//**
|
||
* \file RFPCProcessCls.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"
|
||
|
||
|
||
|
||
/***** 工具函数 *******************************/
|
||
|
||
|
||
CUDA_AntSate_PtrList* malloc_AntSate_PtrList(long PRFCount);
|
||
void Free_AntSate_PtrList(CUDA_AntSate_PtrList* ant);
|
||
void COPY_AntStation_FROM_HOST_GPU(
|
||
std::shared_ptr<SatelliteOribtNode[]> sateOirbtNodes,
|
||
std::shared_ptr<CUDA_AntSate_PtrList> gpupptr,
|
||
long startPID,
|
||
long PRF_len
|
||
);
|
||
|
||
|
||
|
||
|
||
class RFPCProcessCls
|
||
{
|
||
public:
|
||
RFPCProcessCls();
|
||
~RFPCProcessCls();
|
||
public:
|
||
void setTaskSetting(std::shared_ptr < AbstractSARSatelliteModel> TaskSetting);
|
||
void setEchoSimulationDataSetting(std::shared_ptr < EchoL0Dataset> EchoSimulationData);
|
||
void setTaskFileName(QString EchoFileName);
|
||
void setDEMTiffPath(QString DEMTiffPath);
|
||
void setSloperPath(QString SloperPath);
|
||
void setLandCoverPath(QString LandCoverPath);
|
||
void setOutEchoPath(QString OutEchoPath);
|
||
|
||
|
||
private:
|
||
std::shared_ptr <AbstractSARSatelliteModel> TaskSetting; // 仿真任务设置
|
||
std::shared_ptr <EchoL0Dataset> EchoSimulationData; // 回波设置
|
||
std::shared_ptr<SigmaDatabase> SigmaDatabasePtr;
|
||
long PluseCount; // 脉冲数量
|
||
long PlusePoint; // 脉冲点数
|
||
QString LandCoverPath;
|
||
QString OutEchoPath; // 输出回波路径
|
||
QString TaskFileName;
|
||
QString tmpfolderPath;
|
||
QString OutEchoMaskPath;
|
||
|
||
public:
|
||
ErrorCode Process(long num_thread); // 处理
|
||
private: // 处理流程
|
||
ErrorCode InitParams();// 1. 初始化参数
|
||
ErrorCode InitEchoMaskArray();
|
||
//ErrorCode RFPCMainProcess(long num_thread);
|
||
ErrorCode RFPCMainProcess_GPU();
|
||
|
||
std::shared_ptr<SatelliteOribtNode[]> getSatelliteOribtNodes(double prf_time, double dt, bool antflag, long double imageStarttime);
|
||
|
||
private:
|
||
QString demxyzPath;
|
||
QString demmaskPath;
|
||
QString demsloperPath;
|
||
};
|
||
|
||
void RFPCProcessMain(long num_thread,QString TansformPatternFilePath,QString ReceivePatternFilePath,QString simulationtaskName, QString OutEchoPath, QString GPSXmlPath,QString TaskXmlPath,
|
||
QString demTiffPath, QString sloperPath, QString LandCoverPath);
|
||
|
||
|
||
|
||
|