RasterProcessTool/GF3StripPatchProcess/QGF3StripBatchProcessDialog...

150 lines
4.6 KiB
C++
Raw Normal View History

2025-05-20 07:18:00 +00:00
#include "QGF3StripBatchProcessDialog.h"
#include "ui_QGF3StripBatchProcessDialog.h"
#include <QFileDialog>
2025-05-22 03:01:52 +00:00
#include <QApplication>
2025-05-20 07:18:00 +00:00
#include <QMessageBox>
2025-05-22 03:01:52 +00:00
#include "FileOperator.h"
#include "GeoOperator.h"
#include "BaseTool.h"
#include "GF3CalibrationAndGeocodingClass.h"
2025-05-20 07:18:00 +00:00
QGF3StripBatchProcessDialog::QGF3StripBatchProcessDialog(QWidget *parent)
: QDialog(parent), ui(new Ui::QGF3StripBatchProcessDialogClass)
{
ui->setupUi(this);
QObject::connect(ui->pushButtonAdd, SIGNAL(clicked(bool)), this, SLOT(onpushButtonAddClicked(bool)));
QObject::connect(ui->pushButtonRemove, SIGNAL(clicked(bool)), this, SLOT(onpushButtonRemoveClicked(bool)));
QObject::connect(ui->pushButtonWorkSpace, SIGNAL(clicked(bool)), this, SLOT(onpushButtonWorkSpaceClicked(bool)));
QObject::connect(ui->checkBoxDEM, SIGNAL(stateChanged(int)), this, SLOT(ontstateChanged(int)));
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onreject()));
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onaccept()));
2025-05-22 09:28:20 +00:00
QObject::connect(ui->pushButton_lineDEM, SIGNAL(clicked(bool)), this, SLOT(onpushButtonDEM(bool)));
2025-05-20 07:18:00 +00:00
}
QGF3StripBatchProcessDialog::~QGF3StripBatchProcessDialog()
{}
void QGF3StripBatchProcessDialog::onaccept()
{
2025-05-22 03:01:52 +00:00
QString demPath = "";
// <20><>ȡĬ<C8A1><C4AC>DEM<45><4D><EFBFBD><EFBFBD>
if (ui->checkBoxDEM->isChecked()) {
QString demdirPath = QApplication::applicationDirPath();// DEM<45><4D><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
demPath = JoinPath(demdirPath,"SRTM_90m_DEM_V4.tif");
}
else {
demPath = ui->lineEdit_DEM->text();
}
// <20><>ȡ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
double resolutionMeter = ui->doubleSpinBox->value();// <20>ֱ<EFBFBD><D6B1><EFBFBD>ת<EFBFBD><D7AA>
2025-05-22 09:28:20 +00:00
//double resoiutionDegree = getPixelSpacingInDegree(resolutionMeter);// <20><> -> <20><>
2025-05-22 03:01:52 +00:00
QString workspacedirpath = ui->lineEditWorkDir->text();
this->ui->progressBar->setValue(0);
this->ui->progressBar->setMaximum(ui->listWidgetMetaxml->count());
2025-05-22 09:28:20 +00:00
bool polarHH2VV = ui->checkoutPolarHH2VV->isChecked();
2025-05-22 03:01:52 +00:00
for (long i = 0; i < ui->listWidgetMetaxml->count(); i++) {
QString inTargzFilePath = ui->listWidgetMetaxml->item(i)->text();
2025-05-22 09:28:20 +00:00
this->ui->label_info->setText(QString(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%1").arg(inTargzFilePath));
2025-05-22 03:01:52 +00:00
GF3MainOrthProcess(demPath,
inTargzFilePath,
workspacedirpath,
2025-05-22 09:28:20 +00:00
resolutionMeter,
polarHH2VV);
2025-05-22 03:01:52 +00:00
this->ui->progressBar->setValue(i);
}
2025-05-22 09:28:20 +00:00
QMessageBox::information(this, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2025-05-20 07:18:00 +00:00
}
void QGF3StripBatchProcessDialog::onreject()
{
this->close();
}
void QGF3StripBatchProcessDialog::onpushButtonAddClicked(bool)
{
QStringList fileNames = QFileDialog::getOpenFileNames(
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>GF3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>L1Aѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"tar.gz (*.tar.gz);;tar (*.tar);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileNames.isEmpty()) {
QString message = "ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>У<EFBFBD>\n";
for (const QString& fileName : fileNames) {
this->ui->listWidgetMetaxml->addItem(fileName);
}
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
}
}
void QGF3StripBatchProcessDialog::onpushButtonRemoveClicked(bool)
{
QList<QListWidgetItem*> selectedItems = this->ui->listWidgetMetaxml->selectedItems();
for (QListWidgetItem* item : selectedItems) {
delete this->ui->listWidgetMetaxml->takeItem(this->ui->listWidgetMetaxml->row(item));
}
}
void QGF3StripBatchProcessDialog::onpushButtonWorkSpaceClicked(bool)
{
// <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()) {
ui->lineEditWorkDir->setText(fileName);
}
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 QGF3StripBatchProcessDialog::ontstateChanged(int checked)
{
bool checkedflag = ui->checkBoxDEM->isChecked();
if (!checkedflag) {
ui->pushButton_lineDEM->setEnabled(true);
ui->lineEdit_DEM->setEnabled(true);
}
else {
ui->pushButton_lineDEM->setEnabled(false);
ui->lineEdit_DEM->setEnabled(false);
}
}
2025-05-22 09:28:20 +00:00
void QGF3StripBatchProcessDialog::onpushButtonDEM(bool flag)
{
QString fileName = QFileDialog::getOpenFileName(this, u8"ѡ<EFBFBD><EFBFBD>DEM<EFBFBD>ļ<EFBFBD>", "", u8"tif (*.tif);;All Files (*)");
if (!fileName.isEmpty()) {
ui->lineEdit_DEM->setText(fileName);
}
else {
QMessageBox::information(this, u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>");
}
}
2025-05-20 07:18:00 +00:00
void showQGF3StripBatchProcessDialog(QWidget* parent)
{
QGF3StripBatchProcessDialog* dialog = new QGF3StripBatchProcessDialog(parent);
dialog->setWindowTitle(u8"GF3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->show();
}
QString getDefaultDEMFilePath()
{
QString fileName = QFileDialog::getOpenFileName(nullptr, u8"ѡ<EFBFBD><EFBFBD>DEM<EFBFBD>ļ<EFBFBD>", "", u8"tif (*.tif);;All Files (*)");
return QString();
}