97 lines
2.8 KiB
C
97 lines
2.8 KiB
C
|
#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);
|
|||
|
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>
|
|||
|
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);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|