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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|