84 lines
2.3 KiB
C++
84 lines
2.3 KiB
C++
#pragma once
|
||
/*****************************************************************//**
|
||
* \file TBPImageAlgCls.h
|
||
* \brief BP成像算法
|
||
*
|
||
* 参考资料
|
||
* 雷达成像技术, 邢孟道
|
||
*
|
||
* 成像平面定义为 数据录取平面(P94, 雷达成像技术)
|
||
* 数据录取平面定义为视线方向。
|
||
*
|
||
*
|
||
* \author 陈增辉
|
||
* \date October 2024
|
||
*********************************************************************/
|
||
#define EIGEN_USE_BLAS
|
||
#define EIGEN_USE_LAPACK
|
||
#define EIGEN_ENABLE_AVX512
|
||
#define EIGEN_VECTORIZE_SSE
|
||
#define EIGEN_VECTORIZE_SSE2
|
||
#define EIGEN_VECTORIZE_SSSE3
|
||
#define EIGEN_VECTORIZE_SSE4_1
|
||
#define EIGEN_VECTORIZE_SSE4_2
|
||
#include "BaseConstVariable.h"
|
||
|
||
#include "SARSatelliteSimulationAbstractCls.h"
|
||
#include "SARSimulationTaskSetting.h"
|
||
#include "SatelliteOribtModel.h"
|
||
#include "EchoDataFormat.h"
|
||
#include "SARSimulationImageL1.h"
|
||
#include "LogInfoCls.h"
|
||
|
||
class TBPImageAlgCls
|
||
{
|
||
private:
|
||
std::shared_ptr<SARSimulationImageL1Dataset> L1ds;
|
||
std::shared_ptr < EchoL0Dataset> L0ds;
|
||
QString imagePlanePath;
|
||
bool GPURUN;
|
||
QString outRasterXYZPath;
|
||
public:
|
||
|
||
void setImagePlanePath(QString imagePlanePath);
|
||
QString getImagePlanePath();
|
||
|
||
void setEchoL0(std::shared_ptr < EchoL0Dataset> L0ds);
|
||
void setImageL1(std::shared_ptr<SARSimulationImageL1Dataset> L1ds);
|
||
|
||
std::shared_ptr < EchoL0Dataset> getEchoL1();
|
||
std::shared_ptr<SARSimulationImageL1Dataset> getImageL0();
|
||
|
||
public:
|
||
ErrorCode Process(long num_thread);
|
||
void setGPU(bool flag);
|
||
bool getGPU( );
|
||
private:
|
||
//ErrorCode ProcessCPU(long num_thread);
|
||
ErrorCode ProcessGPU();
|
||
|
||
private://临时成员变量
|
||
QString TimeEchoDataPath;
|
||
long TimeEchoRowCount;
|
||
long TimeEchoColCount;
|
||
|
||
void EchoFreqToTime( );
|
||
|
||
|
||
};
|
||
|
||
|
||
void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds,QString outPixelXYZPath);
|
||
|
||
|
||
void TBPImageProcess(QString echofile,QString outImageFolder,QString imagePlanePath,long num_thread);
|
||
|
||
void TBPImageGPUAlg2(std::shared_ptr<double> antPx, std::shared_ptr<double> antPy, std::shared_ptr<double> antPz,
|
||
std::shared_ptr<double> img_x, std::shared_ptr<double> img_y, std::shared_ptr<double> img_z,
|
||
std::shared_ptr<std::complex<double>> echoArr,
|
||
std::shared_ptr<std::complex<double>> img_arr,
|
||
double freq, double dx, double Rnear, double Rfar,double refRange,
|
||
long rowcount, long colcount,
|
||
long prfcount, long freqcount,
|
||
long startPRFId, long startRowID
|
||
); |