[pktools] 271/375: qt gui, nodata pkdiff_gui

Bas Couwenberg sebastic at xs4all.nl
Wed Dec 3 21:54:21 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit 87ea4a11c80537046fe2d12fe8793f9467c2c4f6
Author: Pieter Kempeneers <kempenep at gmail.com>
Date:   Thu May 15 16:32:24 2014 +0200

    qt gui, nodata pkdiff_gui
---
 qt/pkcrop_gui/mainwindow.cc     |  2 +-
 qt/pkcrop_gui/mainwindow.ui     |  2 +-
 qt/pkdiff_gui/mainwindow.cpp    | 36 +++++++++++------------
 qt/pkdiff_gui/mainwindow.h      |  2 --
 qt/pkdiff_gui/mainwindow.ui     | 63 +++++++++++++++++++++++------------------
 qt/pkextract_gui/mainwindow.cpp | 29 ++++++++++++++-----
 qt/pkextract_gui/mainwindow.ui  | 28 +++++++++---------
 qt/pksvm_gui/mainwindow.ui      |  2 +-
 src/apps/pkextract.cc           | 34 ++++++++++++----------
 9 files changed, 110 insertions(+), 88 deletions(-)

diff --git a/qt/pkcrop_gui/mainwindow.cc b/qt/pkcrop_gui/mainwindow.cc
index b11cd42..5b1889a 100644
--- a/qt/pkcrop_gui/mainwindow.cc
+++ b/qt/pkcrop_gui/mainwindow.cc
@@ -262,7 +262,7 @@ void MainWindow::on_toolButton_Run_clicked()
         myProcess->start(program);
         myProcess->setProcessChannelMode(QProcess::MergedChannels);
         myProcess->waitForFinished(-1);
-        QString p_stderr = myProcess->readAllStandardError();
+        QString p_stderr = myProcess->readyReadStandardError();
         if(!p_stderr.isEmpty()){
             QMessageBox msgBox;
             msgBox.setText(p_stderr);
diff --git a/qt/pkcrop_gui/mainwindow.ui b/qt/pkcrop_gui/mainwindow.ui
index 39f167c..a069a32 100644
--- a/qt/pkcrop_gui/mainwindow.ui
+++ b/qt/pkcrop_gui/mainwindow.ui
@@ -18,7 +18,7 @@
     <item>
      <widget class="QTabWidget" name="tabWidget">
       <property name="currentIndex">
-       <number>0</number>
+       <number>3</number>
       </property>
       <widget class="QWidget" name="tab">
        <attribute name="title">
diff --git a/qt/pkdiff_gui/mainwindow.cpp b/qt/pkdiff_gui/mainwindow.cpp
index 0123eec..c86831d 100644
--- a/qt/pkdiff_gui/mainwindow.cpp
+++ b/qt/pkdiff_gui/mainwindow.cpp
@@ -30,7 +30,7 @@ MainWindow::MainWindow(QWidget *parent) :
 {
     ui->setupUi(this);
     QStringList formatlist;
-    formatlist << "ESRI Shapefile" << "SQLite";
+    formatlist << "SQLite" << "ESRI Shapefile";
     ui->f->addItems(formatlist);
     setDefaults();
 }
@@ -42,12 +42,12 @@ MainWindow::~MainWindow()
 
 void MainWindow::setDefaults()
 {
-    ui->label->setText("label");
     //tab input/output
     ui->input->clear();
+    ui->reference->clear();
     ui->msknodata->setText("0");
     ui->output->clear();
-    ui->label->setText("label");
+    ui->confusion->setChecked(false);
 }
 
 void MainWindow::on_actionReference_triggered()
@@ -114,27 +114,27 @@ void MainWindow::on_pushButton_run_clicked()
         ui->commandLineEdit->clear();
         ui->consoleEdit->clear();
         QString program = "pkdiff";
-        if(ui->reference->text().isEmpty())
-            MainWindow::on_actionReference_triggered();
-        if(ui->reference->text().isEmpty()){
-            QString qsError="No reference vector file selected";
-            throw(qsError);
+        if(ui->input->text().isEmpty()){
+            MainWindow::on_actionInput_triggered();
+            if(ui->input->text().isEmpty()){
+                QString qsError="No input raster dataset selected";
+                throw(qsError);
+            }
         }
-        if(!ui->input->text().isEmpty()){
-            if(ui->output->text().isEmpty())
-                MainWindow::on_actionOutput_triggered();
-            if(ui->output->text().isEmpty()){
-                QString qsError="No training vector file selected";
+        if(ui->reference->text().isEmpty()){
+            MainWindow::on_actionReference_triggered();
+            if(ui->reference->text().isEmpty()){
+                QString qsError="No reference vector file selected";
                 throw(qsError);
             }
         }
-
         for(int irow=0;irow<ui->tableView_labels->model()->rowCount();++irow){
             QString qsOption;
             qsOption+=" --class ";
             qsOption+=ui->tableView_labels->model()->data(ui->tableView_labels->model()->index(irow,0)).toString();
             qsOption+=" --reclass ";
             qsOption+=ui->tableView_labels->model()->data(ui->tableView_labels->model()->index(irow,1)).toString();
+            program+=qsOption;
          }
 
         QList<QComboBox*> qcomboBoxList = this->findChildren<QComboBox *>();
@@ -161,6 +161,9 @@ void MainWindow::on_pushButton_run_clicked()
             }
         }
 
+        if(ui->confusion->isChecked())
+            program+=" --confusion";
+
         ui->commandLineEdit->setText(program);
 
 //        QProcess *myProcess = new QProcess(parent);
@@ -187,11 +190,6 @@ void MainWindow::on_pushButton_run_clicked()
     }
 }
 
-void MainWindow::on_toolButton_createTable_clicked()
-{
-
-}
-
 void MainWindow::on_pushButton_restore_clicked()
 {
     setDefaults();
diff --git a/qt/pkdiff_gui/mainwindow.h b/qt/pkdiff_gui/mainwindow.h
index 5e457e7..902263f 100644
--- a/qt/pkdiff_gui/mainwindow.h
+++ b/qt/pkdiff_gui/mainwindow.h
@@ -53,8 +53,6 @@ private slots:
 
     void on_pushButton_run_clicked();
 
-    void on_toolButton_createTable_clicked();
-
     void on_pushButton_restore_clicked();
 
     void on_commandLinkButtonPrepareTable_clicked();
diff --git a/qt/pkdiff_gui/mainwindow.ui b/qt/pkdiff_gui/mainwindow.ui
index 2a17b66..fe23a23 100644
--- a/qt/pkdiff_gui/mainwindow.ui
+++ b/qt/pkdiff_gui/mainwindow.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>628</width>
-    <height>614</height>
+    <width>810</width>
+    <height>777</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -24,12 +24,12 @@
        <attribute name="title">
         <string>Input/Output</string>
        </attribute>
-       <widget class="QWidget" name="">
+       <widget class="QWidget" name="layoutWidget">
         <property name="geometry">
          <rect>
           <x>9</x>
           <y>9</y>
-          <width>588</width>
+          <width>761</width>
           <height>264</height>
          </rect>
         </property>
@@ -152,7 +152,7 @@
           <widget class="QLineEdit" name="lref"/>
          </item>
          <item row="2" column="0">
-          <widget class="QLabel" name="label">
+          <widget class="QLabel" name="label_reference">
            <property name="text">
             <string>Reference</string>
            </property>
@@ -191,15 +191,25 @@
            </property>
           </widget>
          </item>
+         <item row="0" column="6">
+          <widget class="QLineEdit" name="nodata"/>
+         </item>
+         <item row="0" column="5">
+          <widget class="QLabel" name="label">
+           <property name="text">
+            <string>nodata</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
-       <widget class="QWidget" name="verticalLayoutWidget">
+       <widget class="QWidget" name="">
         <property name="geometry">
          <rect>
-          <x>10</x>
-          <y>280</y>
-          <width>591</width>
-          <height>171</height>
+          <x>11</x>
+          <y>281</y>
+          <width>391</width>
+          <height>331</height>
          </rect>
         </property>
         <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -213,19 +223,6 @@
          <item>
           <widget class="QTableView" name="tableView_labels"/>
          </item>
-         <item>
-          <spacer name="verticalSpacer">
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>40</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
         </layout>
        </widget>
       </widget>
@@ -302,7 +299,7 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>628</width>
+     <width>810</width>
      <height>27</height>
     </rect>
    </property>
@@ -369,16 +366,28 @@
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <tabstops>
-  <tabstop>tabWidget</tabstop>
   <tabstop>input</tabstop>
   <tabstop>toolButton_input</tabstop>
+  <tabstop>nodata</tabstop>
+  <tabstop>reference</tabstop>
+  <tabstop>toolButton_reference</tabstop>
+  <tabstop>lref</tabstop>
   <tabstop>mask</tabstop>
   <tabstop>toolButton_mask</tabstop>
   <tabstop>msknodata</tabstop>
-  <tabstop>commandLineEdit</tabstop>
+  <tabstop>output</tabstop>
+  <tabstop>toolButton_output</tabstop>
+  <tabstop>lclass</tabstop>
+  <tabstop>f</tabstop>
+  <tabstop>confusion</tabstop>
+  <tabstop>nclass</tabstop>
+  <tabstop>commandLinkButtonPrepareTable</tabstop>
+  <tabstop>tableView_labels</tabstop>
   <tabstop>consoleEdit</tabstop>
-  <tabstop>pushButton_run</tabstop>
   <tabstop>pushButton_restore</tabstop>
+  <tabstop>pushButton_run</tabstop>
+  <tabstop>commandLineEdit</tabstop>
+  <tabstop>tabWidget</tabstop>
  </tabstops>
  <resources/>
  <connections/>
diff --git a/qt/pkextract_gui/mainwindow.cpp b/qt/pkextract_gui/mainwindow.cpp
index cefc0aa..455a07e 100644
--- a/qt/pkextract_gui/mainwindow.cpp
+++ b/qt/pkextract_gui/mainwindow.cpp
@@ -11,7 +11,7 @@ MainWindow::MainWindow(QWidget *parent) :
 {
     ui->setupUi(this);
     QStringList rulelist;
-    rulelist << "point" << "pointOnSurface" << "centroid" << "mean" << "median" << "proportion" << "minimum" << "maximum" << "maximum voting" << "sum";
+    rulelist << "point" << "pointOnSurface" << "centroid" << "mean" << "median" << "proportion" << "minimum" << "maximum" << "maxvote" << "sum";
     ui->rule->addItems(rulelist);
     QStringList formatlist;
     formatlist << "SQLite" << "ESRI Shapefile";
@@ -37,6 +37,7 @@ void MainWindow::setDefaults()
     ui->output->clear();
     //tab extract
     ui->bname->setText("b");
+    ui->cname->setText("label");
     ui->rule->setCurrentIndex(0);
     ui->nclass->clear();
     QStringList labels;
@@ -120,6 +121,10 @@ void MainWindow::on_pushButton_run_clicked()
         }
 
         program+=" --f "+ui->f->currentText();
+
+        if(ui->polygon->isChecked())
+            program+=" --polygon";
+
         program+=" --rule "+ui->rule->currentText();
 //        QList<QComboBox*> qcomboBoxList = this->findChildren<QComboBox *>();
 
@@ -145,6 +150,16 @@ void MainWindow::on_pushButton_run_clicked()
             }
         }
 
+        //class table
+        for(int irow=0;irow<ui->tableView_labels->model()->rowCount();++irow){
+            QString qsOption;
+            qsOption+=" --class ";
+            qsOption+=ui->tableView_labels->model()->data(ui->tableView_labels->model()->index(irow,0)).toString();
+            qsOption+=" --threshold ";
+            qsOption+=ui->tableView_labels->model()->data(ui->tableView_labels->model()->index(irow,1)).toString();
+            program+=qsOption;
+        }
+
         ui->commandLineEdit->insert(program);
 
 //        QProcess *myProcess = new QProcess(parent);
@@ -154,12 +169,12 @@ void MainWindow::on_pushButton_run_clicked()
         this->setCursor(Qt::WaitCursor);
         myProcess->waitForFinished(-1);
         this->setCursor(Qt::ArrowCursor);
-        QString p_stderr = myProcess->readAllStandardError();
-        if(!p_stderr.isEmpty()){
-            QMessageBox msgBox;
-            msgBox.setText(p_stderr);
-            msgBox.exec();
-        }
+//        QString p_stderr = myProcess->readyReadStandardError();
+//        if(!p_stderr.isEmpty()){
+//            QMessageBox msgBox;
+//            msgBox.setText(p_stderr);
+//            msgBox.exec();
+//        }
         QString p_stdout = myProcess->readAll();
         ui->consoleEdit->insertPlainText(p_stdout);
         delete myProcess;
diff --git a/qt/pkextract_gui/mainwindow.ui b/qt/pkextract_gui/mainwindow.ui
index e344b49..89a7097 100644
--- a/qt/pkextract_gui/mainwindow.ui
+++ b/qt/pkextract_gui/mainwindow.ui
@@ -26,7 +26,7 @@
       <item>
        <widget class="QTabWidget" name="tabWidget">
         <property name="currentIndex">
-         <number>1</number>
+         <number>0</number>
         </property>
         <widget class="QWidget" name="tab_2">
          <attribute name="title">
@@ -158,19 +158,6 @@
             <item row="1" column="1">
              <widget class="QLineEdit" name="bname"/>
             </item>
-            <item row="2" column="1">
-             <spacer name="verticalSpacer">
-              <property name="orientation">
-               <enum>Qt::Vertical</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>20</width>
-                <height>40</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
             <item row="4" column="0">
              <widget class="QLabel" name="label_20">
               <property name="toolTip">
@@ -257,6 +244,16 @@
               </property>
              </spacer>
             </item>
+            <item row="2" column="0">
+             <widget class="QLabel" name="label_5">
+              <property name="text">
+               <string>attribute for class output</string>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QLineEdit" name="cname"/>
+            </item>
            </layout>
           </item>
           <item>
@@ -416,15 +413,16 @@
   <tabstop>polygon</tabstop>
   <tabstop>rule</tabstop>
   <tabstop>bname</tabstop>
+  <tabstop>cname</tabstop>
   <tabstop>nclass</tabstop>
   <tabstop>toolButton_createTable</tabstop>
   <tabstop>threshold</tabstop>
-  <tabstop>consoleEdit</tabstop>
   <tabstop>pushButton_run</tabstop>
   <tabstop>pushButton_restore</tabstop>
   <tabstop>tabWidget</tabstop>
   <tabstop>tableView_labels</tabstop>
   <tabstop>commandLineEdit</tabstop>
+  <tabstop>consoleEdit</tabstop>
  </tabstops>
  <resources/>
  <connections/>
diff --git a/qt/pksvm_gui/mainwindow.ui b/qt/pksvm_gui/mainwindow.ui
index bfb8f5a..9be5b8b 100644
--- a/qt/pksvm_gui/mainwindow.ui
+++ b/qt/pksvm_gui/mainwindow.ui
@@ -18,7 +18,7 @@
     <item>
      <widget class="QTabWidget" name="tabWidget">
       <property name="currentIndex">
-       <number>0</number>
+       <number>2</number>
       </property>
       <widget class="QWidget" name="tab">
        <attribute name="title">
diff --git a/src/apps/pkextract.cc b/src/apps/pkextract.cc
index 8f07c1f..ec234ee 100644
--- a/src/apps/pkextract.cc
+++ b/src/apps/pkextract.cc
@@ -363,7 +363,7 @@ int main(int argc, char *argv[])
                 int theBand=(band_opt[0]<0)?iband:band_opt[iband];
                 imgReader.readData(imgBuffer[iband],GDT_Float64,static_cast<int>(jimg),theBand);
                 assert(imgBuffer[iband].size()==imgReader.nrOfCol());
-		if(bndnodata_opt.size()){
+		if(srcnodata_opt.size()){
 		  vector<int>::const_iterator bndit=find(bndnodata_opt.begin(),bndnodata_opt.end(),theBand);
 		  if(bndit!=bndnodata_opt.end()){
 		    vector<int>::const_iterator bndit=find(bndnodata_opt.begin(),bndnodata_opt.end(),theBand);
@@ -620,7 +620,7 @@ int main(int argc, char *argv[])
                 int theBand=(band_opt[0]<0)?iband:band_opt[iband];
                 imgReader.readData(imgBuffer[iband],GDT_Float64,static_cast<int>(jimg),theBand);
                 assert(imgBuffer[iband].size()==imgReader.nrOfCol());
-		if(bndnodata_opt.size()){
+		if(srcnodata_opt.size()){
 		  vector<int>::const_iterator bndit=find(bndnodata_opt.begin(),bndnodata_opt.end(),theBand);
 		  if(bndit!=bndnodata_opt.end()){
 		    if(imgBuffer[iband][static_cast<int>(iimg)]==srcnodata_opt[theBand])
@@ -1128,7 +1128,7 @@ int main(int argc, char *argv[])
 		  int theBand=(band_opt[0]<0)?iband:band_opt[iband];
 		  imgReader.readData(value,GDT_Float64,i,j,theBand);
 
-		  if(bndnodata_opt.size()){
+		  if(srcnodata_opt.size()){
 		    Optionpk<int>::const_iterator bndit=find(bndnodata_opt.begin(),bndnodata_opt.end(),theBand);
 		    if(bndit!=bndnodata_opt.end()){
 		      if(value==srcnodata_opt[theBand])
@@ -1292,6 +1292,7 @@ int main(int argc, char *argv[])
 	    vector<double> polyClassValues;
 	    
 	    if(class_opt.size()){
+
 	      polyClassValues.resize(class_opt.size());
 	      //initialize
 	      for(int iclass=0;iclass<class_opt.size();++iclass)
@@ -1334,11 +1335,13 @@ int main(int argc, char *argv[])
 
 		bool valid=true;
 
-		for(int vband=0;vband<bndnodata_opt.size();++vband){
-		  double value=((readValues[bndnodata_opt[vband]])[j-ulj])[i-uli];
-		  if(value==srcnodata_opt[vband]){
-		    valid=false;
-		    break;
+		if(srcnodata_opt.size()){
+		  for(int vband=0;vband<bndnodata_opt.size();++vband){
+		    double value=((readValues[bndnodata_opt[vband]])[j-ulj])[i-uli];
+		    if(value==srcnodata_opt[vband]){
+		      valid=false;
+		      break;
+		    }
 		  }
 		}
 
@@ -1818,7 +1821,7 @@ int main(int argc, char *argv[])
 	    lri=static_cast<int>(lri);
 	    //iterate through all pixels
 	    if(verbose_opt[0]>1)
-	      std::cout << "bounding box for feature " << ifeature << ": " << uli << " " << ulj << " " << lri << " " << lrj << std::endl;
+	      std::cout << "bounding box for multipologon feature " << ifeature << ": " << uli << " " << ulj << " " << lri << " " << lrj << std::endl;
 
 	    if(uli<0)
 	      uli=0;
@@ -1899,14 +1902,15 @@ int main(int argc, char *argv[])
 
 		bool valid=true;
 
-		for(int vband=0;vband<bndnodata_opt.size();++vband){
-		  double value=((readValues[bndnodata_opt[vband]])[j-ulj])[i-uli];
-		  if(value==srcnodata_opt[vband]){
-		    valid=false;
-		    break;
+		if(srcnodata_opt.size()){
+		  for(int vband=0;vband<bndnodata_opt.size();++vband){
+		    double value=((readValues[bndnodata_opt[vband]])[j-ulj])[i-uli];
+		    if(value==srcnodata_opt[vband]){
+		      valid=false;
+		      break;
+		    }
 		  }
 		}
-
 		// for(int imask=0;imask<mask_opt.size();++imask){
 		//     double colMask,rowMask;//image coordinates in mask image
 		//     if(mask_opt.size()>1){//multiple masks

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git



More information about the Pkg-grass-devel mailing list