修复了 数据读写函数的bug,兼容以前的函数调用

pull/4/head
陈增辉 2025-02-19 14:19:32 +08:00
parent f426ce1f1d
commit 435720db1b
5 changed files with 22 additions and 32 deletions

View File

@ -301,7 +301,7 @@ void BASECONSTVARIABLEAPI testOutClsArr(QString filename, long* amp, long rowc
//--------------------- 图像文件读写 ------------------------------
template<typename T>
inline std::shared_ptr<T> readDataArr(gdalImage& imgds, int start_row, int start_col, int& rows_count, int& cols_count, int band_ids, GDALREADARRCOPYMETHOD method)
inline std::shared_ptr<T> readDataArr(gdalImage& imgds, long start_row, long start_col, long& rows_count, long& cols_count, int band_ids, GDALREADARRCOPYMETHOD method)
{
std::shared_ptr<T> result = nullptr;
@ -498,9 +498,9 @@ inline std::shared_ptr<T> readDataArr(gdalImage& imgds, int start_row, int start
// GDALDestroy(); // or, DllMain at DLL_PROCESS_DETACH
return result;
}
template<typename T>
inline std::shared_ptr<T> readDataArrComplex(gdalImageComplex& imgds, int start_row, int start_col, int& rows_count, int& cols_count, int band_ids, GDALREADARRCOPYMETHOD method)
inline std::shared_ptr<T> readDataArrComplex(gdalImageComplex& imgds, long start_row, long start_col, long& rows_count, long& cols_count, int band_ids, GDALREADARRCOPYMETHOD method)
{
std::shared_ptr<T> result = nullptr;

View File

@ -257,8 +257,8 @@ namespace LookTableSimualtionMainProcessSpace {
// 处理复制结果
int rowcount = 0;
int colcount = 0;
long rowcount = 0;
long colcount = 0;
double fact_lamda = 1 / lamda;
for (long rid = 0; rid < demimg.height; rid = rid + GPUMemoryline) {
rowcount = GPUMemoryline;
@ -284,16 +284,16 @@ namespace LookTableSimualtionMainProcessSpace {
device_demX.get(), device_demY.get(), device_demZ.get(),
device_Rid.get(), device_Cid.get(),
rowcount, colcount,
starttime, nearRange, farRange,
PRF, Fs,
fact_lamda,
Xp0, Yp0, Zp0, Xv0, Yv0, Zv0,
Xp1, Yp1, Zp1, Xv1, Yv1, Zv1,
Xp2, Yp2, Zp2, Xv2, Yv2, Zv2,
Xp3, Yp3, Zp3, Xv3, Yv3, Zv3,
Xp4, Yp4, Zp4, Xv4, Yv4, Zv4,
Xp5, Yp5, Zp5, Xv5, Yv5, Zv5,
dopplerRefrenceTime, r0, r1, r2, r3, r4,
starttime, nearRange, farRange,
PRF, Fs,
fact_lamda);
dopplerRefrenceTime, r0, r1, r2, r3, r4);
// GPU -> 内存

View File

@ -126,16 +126,18 @@ void RDProcess_dopplerGPU(
double* demX, double* demY, double* demZ,
float* outRidx, float* outCidx,
long rowcount, long colcount,
double starttime, double nearRange, double farRange,
double PRF, double Fs,
double fact_lamda,
double Xp0, double Yp0, double Zp0, double Xv0, double Yv0, double Zv0,
double Xp1, double Yp1, double Zp1, double Xv1, double Yv1, double Zv1,
double Xp2, double Yp2, double Zp2, double Xv2, double Yv2, double Zv2,
double Xp3, double Yp3, double Zp3, double Xv3, double Yv3, double Zv3,
double Xp4, double Yp4, double Zp4, double Xv4, double Yv4, double Zv4,
double Xp5, double Yp5, double Zp5, double Xv5, double Yv5, double Zv5,
double reftime, double r0, double r1, double r2, double r3, double r4,
double starttime, double nearRange, double farRange,
double PRF, double Fs,
double fact_lamda)
double reftime, double r0, double r1, double r2, double r3, double r4
)
{
long pixelcount = rowcount * colcount;
int numBlocks = (pixelcount + BLOCK_SIZE - 1) / BLOCK_SIZE;

View File

@ -16,36 +16,23 @@ extern __device__ __host__ double getPolyfitNumber(double x, double a0, double a
//
extern "C" void RDProcess_dopplerGPU(
double* demX, double* demY, double* demZ, // 处理入射坐标
float* outRidx,float* outCidx, // 输出 行列数
long rowcount,long colcount,
double starttime, double nearRange, double farRange,
double PRF, double Fs,
double fact_lamda, // lamda ľšĘý
double Xp0 = 0, double Yp0 = 0,double Zp0 = 0,double Xv0 = 0,double Yv0 = 0,double Zv0 = 0, // 轨道参数
double Xp1 = 0, double Yp1 = 0,double Zp1 = 0,double Xv1 = 0,double Yv1 = 0,double Zv1 = 0,
double Xp2 = 0, double Yp2 = 0,double Zp2 = 0,double Xv2 = 0,double Yv2 = 0,double Zv2 = 0,
double Xp3 = 0, double Yp3 = 0,double Zp3 = 0,double Xv3 = 0,double Yv3 = 0,double Zv3 = 0,
double Xp4 = 0, double Yp4 = 0,double Zp4 = 0,double Xv4 = 0,double Yv4 = 0,double Zv4 = 0,
double Xp5 = 0, double Yp5 = 0,double Zp5 = 0,double Xv5 = 0,double Yv5 = 0,double Zv5 = 0,
double reftime=0, // 轨道参数
double r0 = 0, double r1 = 0, double r2 = 0, double r3 = 0, double r4 = 0,
double starttime,// 成像参数
double nearRange,
double farRange,
double PRF,
double Fs,
double fact_lamda // lamda 倒数
double reftime=0,double r0 = 0, double r1 = 0, double r2 = 0, double r3 = 0, double r4 = 0
);

View File

@ -8,6 +8,7 @@
#include <QMessageBox>
#include "GPUTool.cuh"
#include "GPUTBPImage.cuh"
#include "ImageOperatorBase.h"
void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds, QString outPixelXYZPath)
{