diff --git a/BaseCommonLibrary/BaseTool/gdalImageComplexOperator.cpp b/BaseCommonLibrary/BaseTool/gdalImageComplexOperator.cpp index 6676b66..7d0df86 100644 --- a/BaseCommonLibrary/BaseTool/gdalImageComplexOperator.cpp +++ b/BaseCommonLibrary/BaseTool/gdalImageComplexOperator.cpp @@ -293,7 +293,8 @@ Eigen::MatrixXcd gdalImageComplex::getDataComplex(int start_row, int start_col, // 获取数据集的第一个波段 GDALRasterBand* poBand; poBand = poDataset->GetRasterBand(1); - + rows_count = start_row + rows_count <= this->height ? rows_count : this->height - start_row; + cols_count = start_col + cols_count <= this->width ? cols_count : this->width - start_col; // 读取波段信息,假设是复数类型 int nXSize = cols_count; poBand->GetXSize(); int nYSize = rows_count; poBand->GetYSize(); diff --git a/BaseCommonLibrary/ImageOperatorFuntion.cpp b/BaseCommonLibrary/ImageOperatorFuntion.cpp index 2397a00..5154807 100644 --- a/BaseCommonLibrary/ImageOperatorFuntion.cpp +++ b/BaseCommonLibrary/ImageOperatorFuntion.cpp @@ -1680,18 +1680,16 @@ ErrorCode Complex2AmpRaster(QString inComplexPath, QString outRasterPath) long blocklines = Memory1GB * 2 / 8 / inimg.width; blocklines = blocklines < 100 ? 100 : blocklines; - Eigen::MatrixXd imgArrb1 = Eigen::MatrixXd::Zero(blocklines, ampimg.width); - Eigen::MatrixXcd imgArr = Eigen::MatrixXcd::Zero(blocklines, inimg.width); long startrow = 0; for (startrow = 0; startrow < inimg.height; startrow = startrow + blocklines) { - imgArrb1 = ampimg.getData(startrow, 0, blocklines, inimg.width, 1); - imgArr = inimg.getData(startrow, 0, blocklines, inimg.width, 2); + Eigen::MatrixXd imgArrb1 = ampimg.getData(startrow, 0, blocklines, inimg.width, 1); + Eigen::MatrixXcd imgArr = inimg.getDataComplex(startrow, 0, blocklines, inimg.width, 1); imgArrb1 = imgArr.array().abs(); ampimg.saveImage(imgArrb1, startrow, 0, 1); } - qDebug() << "褰卞儚鍐欏叆鍒帮細" << outRasterPath; + qDebug() << u8"褰卞儚鍐欏叆鍒帮細" << outRasterPath; return ErrorCode::SUCCESS; } diff --git a/Toolbox/SimulationSARTool/SARImage/QL1ASARProcessDialog.cpp b/Toolbox/SimulationSARTool/SARImage/QL1ASARProcessDialog.cpp index 09b37cd..88338e9 100644 --- a/Toolbox/SimulationSARTool/SARImage/QL1ASARProcessDialog.cpp +++ b/Toolbox/SimulationSARTool/SARImage/QL1ASARProcessDialog.cpp @@ -45,8 +45,8 @@ void QL1ASARProcessDialog::onpushButtonL1BSelect_clicked() ); // 如果用户选择了文件 if (!fileNames.isEmpty()) { - QString message = "选择的文件有:\n"; - this->ui->lineEditL1ADataPath->setText(fileNames); + QString message = u8"选择的文件有:\n"; + this->ui->lineEditL1BDataPath->setText(fileNames); } else { QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); @@ -64,7 +64,7 @@ void QL1ASARProcessDialog::onpushButtonL1ASelect_clicked() ); // 如果用户选择了文件 if (!fileNames.isEmpty()) { - QString message = "选择的文件有:\n"; + QString message = u8"选择的文件有:\n"; this->ui->lineEditL1ADataPath->setText(fileNames); } else { @@ -82,7 +82,7 @@ void QL1ASARProcessDialog::onpushButtonS1ASelect_clicked() ); // 如果用户选择了文件 if (!fileNames.isEmpty()) { - QString message = "选择的文件有:\n"; + QString message = u8"选择的文件有:\n"; this->ui->lineSlAPath->setText(fileNames); } else { @@ -99,10 +99,10 @@ void QL1ASARProcessDialog::onbuttonBox_accepted() long nlaz = ui->spinBoxLNAz->value(); long nlra = ui->spinBoxLNRa->value(); - qDebug() << "单视斜距复数产品 转 单视斜距幅度产品"; + qDebug() << u8"单视斜距复数产品 转 单视斜距幅度产品"; Complex2AmpRaster(l1arasterpath, s1arasterpath); - qDebug() << "单视斜距幅度产品 转 多视斜距幅度产品"; + qDebug() << u8"单视斜距幅度产品 转 多视斜距幅度产品"; MultiLookRaster(s1arasterpath, l1brasterpath, nlaz, nlra); QMessageBox::information(this, tr(u8"提示"), tr(u8"多视处理完成")); diff --git a/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu b/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu index 46c7d37..045ebbd 100644 --- a/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu +++ b/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu @@ -109,8 +109,8 @@ __global__ void processPulseKernel( phCorr.y = rc_interp.x * sin_phase + rc_interp.y * cos_phase; // amp correction - phCorr.x = ampcorrect * phCorr.x; - phCorr.y = ampcorrect * phCorr.y; + //phCorr.x = ampcorrect * phCorr.x; + //phCorr.y = ampcorrect * phCorr.y; // Accumulate im_final[idx].x += phCorr.x; diff --git a/Toolbox/SimulationSARTool/SimulationSAR/GPURFPC.cu b/Toolbox/SimulationSARTool/SimulationSAR/GPURFPC.cu index afd43d1..aa33c8a 100644 --- a/Toolbox/SimulationSARTool/SimulationSAR/GPURFPC.cu +++ b/Toolbox/SimulationSARTool/SimulationSAR/GPURFPC.cu @@ -700,15 +700,10 @@ extern "C" void ProcessRFPCTask(RFPCTask& task, long devid, float* h_R, float* h ); PrintLasterError("CUDA_Kernel_Computer_echo"); cudaDeviceSynchronize(); - if ((sTi * 100.0 / task.targetnum) - process >= 10) { + if ((sTi * 100.0 / task.targetnum) - process >= 1) { process = sTi * 100.0 / task.targetnum; PRINT("device ID : %d , TargetID [%f]: %d / %d finished %d\n", devid, sTi * 100.0 / task.targetnum, sTi, task.targetnum, devid); } - - - - - } diff --git a/Toolbox/SimulationSARTool/SimulationSAR/RFPCProcessCls.cpp b/Toolbox/SimulationSARTool/SimulationSAR/RFPCProcessCls.cpp index 160d4b1..e8ae0b6 100644 --- a/Toolbox/SimulationSARTool/SimulationSAR/RFPCProcessCls.cpp +++ b/Toolbox/SimulationSARTool/SimulationSAR/RFPCProcessCls.cpp @@ -929,6 +929,8 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() { ErrorCode RFPCProcessCls::RFPCMainProcess_MultiGPU_NoAntPattern() { + + int num_devices = 0; cudaGetDeviceCount(&num_devices); PRINT("GPU Count : %d \n", num_devices); @@ -943,7 +945,11 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_MultiGPU_NoAntPattern() std::shared_ptr sateOirbtNodes = this->getSatelliteOribtNodes(prf_time, dt, antflag, imageStarttime); - + for (int devid = 0; devid < num_devices; devid++) { + printf("GPU ID: %d \n", devid); + printDeviceInfo(devid); + printf("----------------------------------------\n"); + } #pragma omp parallel for for (int devid = 0; devid < num_devices; devid++) { @@ -969,6 +975,16 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU_NoAntPattern(size_t startprfid, si std::map clssigmaParamsDict = this->SigmaDatabasePtr->getsigmaParams(polartype);; std::map clsCUDASigmaParamsDict; for (const auto& pair : clssigmaParamsDict) { + + if (abs(pair.second.p1)<1e-5&& + abs(pair.second.p2) < 1e-5 && + abs(pair.second.p3) < 1e-5 && + abs(pair.second.p4) < 1e-5 && + abs(pair.second.p5) < 1e-5 && + abs(pair.second.p6) < 1e-5) { + continue; + } + clsCUDASigmaParamsDict.insert(std::pair(pair.first, CUDASigmaParam{ float(pair.second.p1), @@ -994,7 +1010,7 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU_NoAntPattern(size_t startprfid, si gdalImage demlandcls(this->LandCoverPath);// 鍦拌〃瑕嗙洊绫诲瀷 gdalImage slpxyz(this->demsloperPath);// 鍦伴潰鍧″悜 - long allDemRow = Memory1MB/demxyz.width/8/3*6000; + long allDemRow = Memory1GB/demxyz.width/8/3*6; //allDemRow = allDemRow < demxyz.height ? allDemRow : demxyz.height; for(long demId=0;demId< demxyz.height;demId=demId+ allDemRow){