RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/RFPCProcessCls.h

97 lines
2.8 KiB
C
Raw Normal View History

#pragma once
/*****************************************************************//**
* \file RFPCProcessCls.h
* \brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>Range Time domain Pulse Coherent<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
*
* <EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>ϳɿ׾<EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD>cumming <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϳɿ׾<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>״<EFBFBD><EFBFBD>źŴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Mark A.Richards,<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>ϳɿ׾<EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* InSARԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>SAR<EFBFBD>ز<EFBFBD><EFBFBD>źŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>غϳɿ׾<EFBFBD><EFBFBD>״<EFBFBD>ԭʼ<EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SAR<EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱȽ<EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>غϳɿ׾<EFBFBD><EFBFBD>״<EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ
* ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>ʽ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ѧ<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>ʡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
*
* \author <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* \date October 2024
*********************************************************************/
#include "BaseConstVariable.h"
#include "SARSatelliteSimulationAbstractCls.h"
#include "SARSimulationTaskSetting.h"
#include "SatelliteOribtModel.h"
#include "EchoDataFormat.h"
#include "SigmaDatabase.h"
/***** <20><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD> *******************************/
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);
2025-01-15 12:47:38 +00:00
void setSloperPath(QString SloperPath);
void setLandCoverPath(QString LandCoverPath);
void setOutEchoPath(QString OutEchoPath);
private:
std::shared_ptr <AbstractSARSatelliteModel> TaskSetting; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::shared_ptr <EchoL0Dataset> EchoSimulationData; // <20>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD>
std::shared_ptr<SigmaDatabase> SigmaDatabasePtr;
long PluseCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long PlusePoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QString LandCoverPath;
QString OutEchoPath; // <20><><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>·<EFBFBD><C2B7>
QString TaskFileName;
QString tmpfolderPath;
QString OutEchoMaskPath;
public:
ErrorCode Process(long num_thread); // <20><><EFBFBD><EFBFBD>
private: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ErrorCode InitParams();// 1. <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-01-15 12:47:38 +00:00
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;
};
2025-01-15 12:47:38 +00:00
void RFPCProcessMain(long num_thread,QString TansformPatternFilePath,QString ReceivePatternFilePath,QString simulationtaskName, QString OutEchoPath, QString GPSXmlPath,QString TaskXmlPath,
QString demTiffPath, QString sloperPath, QString LandCoverPath);