2024-11-25 10:09:24 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
/*****************************************************************//**
|
|
|
|
|
* \file TBPImageAlgCls.h
|
|
|
|
|
* \brief BP<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>棨P94, <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
|
|
|
|
|
*********************************************************************/
|
|
|
|
|
#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;
|
2024-11-25 17:51:20 +00:00
|
|
|
|
bool GPURUN;
|
2024-12-20 15:38:34 +00:00
|
|
|
|
QString outRasterXYZPath;
|
2024-11-25 10:09:24 +00:00
|
|
|
|
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);
|
2025-03-03 09:50:28 +00:00
|
|
|
|
ErrorCode ProcessWithGridNet(long num_thread, QString xyzRasterPath);
|
2024-11-29 15:32:50 +00:00
|
|
|
|
void setGPU(bool flag);
|
2025-03-03 09:50:28 +00:00
|
|
|
|
bool getGPU();
|
2024-11-25 10:09:24 +00:00
|
|
|
|
private:
|
2024-12-20 15:38:34 +00:00
|
|
|
|
//ErrorCode ProcessCPU(long num_thread);
|
2024-11-25 17:51:20 +00:00
|
|
|
|
ErrorCode ProcessGPU();
|
2025-03-03 09:50:28 +00:00
|
|
|
|
ErrorCode BPProcessBlockGPU();
|
2025-02-26 01:45:43 +00:00
|
|
|
|
private://<2F><>ʱ<EFBFBD><CAB1>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
|
|
|
|
|
QString TimeEchoDataPath;
|
|
|
|
|
long TimeEchoRowCount;
|
|
|
|
|
long TimeEchoColCount;
|
|
|
|
|
|
2025-03-03 09:50:28 +00:00
|
|
|
|
void EchoFreqToTime();
|
2025-02-26 01:45:43 +00:00
|
|
|
|
|
2024-11-29 15:32:50 +00:00
|
|
|
|
|
2025-03-04 08:18:35 +00:00
|
|
|
|
private:
|
|
|
|
|
bool checkZeros(double* data, long long len);
|
2024-11-25 10:09:24 +00:00
|
|
|
|
};
|
|
|
|
|
|
2024-12-20 15:38:34 +00:00
|
|
|
|
|
2025-03-03 09:50:28 +00:00
|
|
|
|
|
2025-03-04 08:18:35 +00:00
|
|
|
|
|
2024-12-20 15:38:34 +00:00
|
|
|
|
void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds,QString outPixelXYZPath);
|
|
|
|
|
|
|
|
|
|
|
2024-11-29 15:32:50 +00:00
|
|
|
|
void TBPImageProcess(QString echofile,QString outImageFolder,QString imagePlanePath,long num_thread);
|
2025-02-25 05:18:19 +00:00
|
|
|
|
|
2025-03-03 03:18:50 +00:00
|
|
|
|
//
|
|
|
|
|
//void TBPImageGridNet(
|
|
|
|
|
// 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
|
|
|
|
|
//);
|