#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 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 L1ds); std::shared_ptr < EchoL0Dataset> getEchoL1(); std::shared_ptr getImageL0(); public: ErrorCode Process(long num_thread); void setGPU(bool flag); bool getGPU( ); private: //ErrorCode ProcessCPU(long num_thread); ErrorCode ProcessGPU(); }; void CreatePixelXYZ(std::shared_ptr echoL0ds,QString outPixelXYZPath); void TBPImageProcess(QString echofile,QString outImageFolder,QString imagePlanePath,long num_thread); void TBPImageGPUAlg2(std::shared_ptr antPx, std::shared_ptr antPy, std::shared_ptr antPz, std::shared_ptr img_x, std::shared_ptr img_y, std::shared_ptr img_z, std::shared_ptr> echoArr, std::shared_ptr> img_arr, double freq, double dx, double Rnear, double Rfar,double refRange, long rowcount, long colcount, long prfcount, long freqcount, long startPRFId, long startRowID );