RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/TBPImageAlgCls.h

84 lines
2.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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
);