RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/QImageSARRFPC.cpp

202 lines
6.9 KiB
C++
Raw Normal View History

#include "QImageSARRFPC.h"
2024-11-25 17:51:20 +00:00
#include <QFileDialog>
#include <QMessageBox>
#include "RFPCProcessCls.h"
2024-11-25 17:51:20 +00:00
#include <boost/thread.hpp>
#include <thread>
2025-02-07 11:47:41 +00:00
#include "ui_QImageSARRFPC.h"
2024-11-25 17:51:20 +00:00
QImageSARRFPC::QImageSARRFPC(QWidget *parent)
2024-11-25 17:51:20 +00:00
: QDialog(parent)
{
2025-02-07 11:47:41 +00:00
ui->setupUi(this);
2024-11-25 17:51:20 +00:00
2025-02-07 11:47:41 +00:00
QObject::connect(ui->pushButtonRP, SIGNAL(clicked()), this, SLOT(onpushButtonRPClieck()));
QObject::connect(ui->pushButtonTP, SIGNAL(clicked()), this, SLOT(onpushButtonTPClieck()));
QObject::connect(ui->pushButtonEcho, SIGNAL(clicked()), this, SLOT(onpushButtonEchoClieck()));
QObject::connect(ui->pushButtongpxml, SIGNAL(clicked()), this, SLOT(onpushButtongpxmlClieck()));
QObject::connect(ui->pushButtonTaskxml, SIGNAL(clicked()), this, SLOT(onpushButtonTaskxmlClieck()));
QObject::connect(ui->pushButtondem, SIGNAL(clicked()), this, SLOT(onpushButtondemClieck()));
QObject::connect(ui->pushButtonlandcover, SIGNAL(clicked()), this, SLOT(onpushButtonlandcoverClieck()));
QObject::connect(ui->pushButtonsloper, SIGNAL(clicked()), this, SLOT(onpushButtonSloperClieck()));
2025-01-15 12:47:38 +00:00
2024-11-25 17:51:20 +00:00
2025-02-07 11:47:41 +00:00
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onBtnaccept()));
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onBtnReject()));
2024-11-25 17:51:20 +00:00
}
QImageSARRFPC::~QImageSARRFPC()
2024-11-25 17:51:20 +00:00
{}
void QImageSARRFPC::onpushButtonRPClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
QString fileName = QFileDialog::getSaveFileName(this,
u8"<EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD>ͼ", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
u8"csv Files (*.csv);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->receivePatternFilePathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
void QImageSARRFPC::onpushButtonTPClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
QString fileName = QFileDialog::getSaveFileName(this,
u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
u8"csv Files (*.csv);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->transformPatternFilePathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
void QImageSARRFPC::onpushButtonEchoClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
QString fileName = QFileDialog::getExistingDirectory(this, u8"ѡ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>", "");
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->outEchoPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>");
}
}
void QImageSARRFPC::onpushButtongpxmlClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
QString fileName = QFileDialog::getSaveFileName(this,
u8"GPS xml", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
u8"xml Files (*.xml);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->gpsXmlPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
void QImageSARRFPC::onpushButtonTaskxmlClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
QString fileName = QFileDialog::getSaveFileName(this,
u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
u8"xml Files (*.xml);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->taskXmlPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
void QImageSARRFPC::onpushButtondemClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
2025-01-29 06:01:21 +00:00
QString fileName = QFileDialog::getOpenFileName(this,
2024-11-25 17:51:20 +00:00
u8"dem<EFBFBD>ļ<EFBFBD>", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
2025-01-15 12:47:38 +00:00
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
2024-11-25 17:51:20 +00:00
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->demTiffPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
2025-01-15 12:47:38 +00:00
void QImageSARRFPC::onpushButtonSloperClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
2025-01-29 06:01:21 +00:00
QString fileName = QFileDialog::getOpenFileName(this,
2025-01-15 12:47:38 +00:00
u8"sloper<EFBFBD>ļ<EFBFBD>", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2024-11-25 17:51:20 +00:00
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
2025-01-15 12:47:38 +00:00
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
2024-11-25 17:51:20 +00:00
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->sloperPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
2025-01-15 12:47:38 +00:00
void QImageSARRFPC::onpushButtonlandcoverClieck()
2024-11-25 17:51:20 +00:00
{
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB> .tif <20>ļ<EFBFBD>
2025-01-29 06:01:21 +00:00
QString fileName = QFileDialog::getOpenFileName(this,
2025-01-15 12:47:38 +00:00
u8"<EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2024-11-25 17:51:20 +00:00
"", // <20><>ʼĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ·<CEAA><C2B7>
2025-01-15 12:47:38 +00:00
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
2024-11-25 17:51:20 +00:00
if (!fileName.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->landCoverPathEdit->setText(fileName);
2024-11-25 17:51:20 +00:00
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
2025-01-15 12:47:38 +00:00
void QImageSARRFPC::onBtnaccept()
2024-11-25 17:51:20 +00:00
{
2025-02-07 11:47:41 +00:00
QString GPSXmlPath = ui->gpsXmlPathEdit->text().trimmed();// u8"D:/Programme/vs2022/RasterMergeTest/TestData/GF3_Simulation_GPSNode.xml";
QString TaskXmlPath = ui->taskXmlPathEdit->text().trimmed();//u8"D:/Programme/vs2022/RasterMergeTest/TestData/GF3_Simulation_Setting.xml";
QString demTiffPath = ui->demTiffPathEdit->text().trimmed();//u8"D:/Programme/vs2022/RasterMergeTest/TestData/115E39N_COP30_clip.tif";
QString landConverPath = ui->landCoverPathEdit->text().trimmed();// u8"D:/Programme/vs2022/RasterMergeTest/TestData/landcover_aligned.tiff";
QString demsloperPath = ui->sloperPathEdit->text().trimmed();
QString OutEchoPath = ui->outEchoPathEdit->text().trimmed();// u8"D:/Programme/vs2022/RasterMergeTest/TestData/outData/";
QString simulationtaskName = ui->simulationTaskNameEdit->text().trimmed();// u8"GF3_Simulation";
2024-11-25 17:51:20 +00:00
// <20><><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>ͼ
2025-02-07 11:47:41 +00:00
QString TransAntPatternFilePath = ui->transformPatternFilePathEdit->text().trimmed();// "D:/Programme/vs2022/RasterMergeTest/TestData/ant/ant_model_setting_Horn_conical1_FarField-theta.csv"; //
QString ReceiveAntPatternFilePath = ui->receivePatternFilePathEdit->text().trimmed();//"D:/Programme/vs2022/RasterMergeTest/TestData/ant/ant_model_setting_Horn_conical1_FarField-phi.csv";
2024-11-25 17:51:20 +00:00
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
2025-02-25 05:18:19 +00:00
qDebug() << "GPS XML Path: " << GPSXmlPath << "\n"
<< "Task XML Path: " << TaskXmlPath << "\n"
<< "DEM TIFF Path: " << demTiffPath<< "\n"
<< "Land Cover Path: " << landConverPath << "\n"
2025-01-15 12:47:38 +00:00
2025-02-25 05:18:19 +00:00
<< "Trans AntPattern Path: " << TransAntPatternFilePath << "\n"
<< "Reception AntPattern Path: " << ReceiveAntPatternFilePath << "\n"
<< "Output Path: " << OutEchoPath << "\n"
<< "Simulation Task Name: " << simulationtaskName << "\n";
2024-11-25 17:51:20 +00:00
long cpucore_num = std::thread::hardware_concurrency();
2025-01-15 13:50:46 +00:00
RFPCProcessMain(cpucore_num,
TransAntPatternFilePath, ReceiveAntPatternFilePath, simulationtaskName,
OutEchoPath, GPSXmlPath, TaskXmlPath, demTiffPath, demsloperPath, landConverPath);
2024-11-25 17:51:20 +00:00
}
void QImageSARRFPC::onBtnReject()
2024-11-25 17:51:20 +00:00
{
this->close();
}