void TestQgsProject::testReadPath() { QgsProject *prj = new QgsProject; // this is a bit hacky as we do not really load such project QString prefix; #if defined(Q_OS_WIN) prefix = "C:"; #endif prj->setFileName( prefix + "/home/qgis/a-project-file.qgs" ); // not expected to exist // make sure we work with relative paths! prj->writeEntry( QStringLiteral( "Paths" ), QStringLiteral( "Absolute" ), false ); QCOMPARE( prj->readPath( "./x.shp" ), QString( prefix + "/home/qgis/x.shp" ) ); QCOMPARE( prj->readPath( "../x.shp" ), QString( prefix + "/home/x.shp" ) ); // TODO: old style (seems QGIS < 1.3) - needs existing project file and existing file // QCOMPARE( prj->readPath( "x.shp" ), QString( "/home/qgis/x.shp" ) ); // VSI: /vsizip, /vsitar, /vsigzip, *.zip, *.gz, *.tgz, ... QCOMPARE( prj->readPath( "./x.gz" ), QString( prefix + "/home/qgis/x.gz" ) ); QCOMPARE( prj->readPath( "/vsigzip/./x.gz" ), QString( "/vsigzip/%1/home/qgis/x.gz" ).arg( prefix ) ); // not sure how useful this really is... delete prj; }
InitFile::InitFile(QWidget *parent) : QDialog(parent), ui(new Ui::InitFile) { ui->setupUi(this); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString tempStr=p->readPath(p->readEntry("pihm", "/model/mesh")); // 49 tempStr.truncate(tempStr.length()-4); ui->lineEditMeshFile->setText(tempStr+"mesh"); ui->lineEditRivFile->setText(tempStr+"riv"); ui->lineEditInitFile->setText(tempStr+"init"); }
paraFileDlg::paraFileDlg(QWidget *parent) { setupUi(this); connect(paraFileButton, SIGNAL(clicked()), this, SLOT(paraBrowse())); connect(okButton, SIGNAL(clicked()), this, SLOT(run())); connect(helpButton, SIGNAL(clicked()), this, SLOT(help())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(close())); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString tempStr=p->readPath(p->readEntry("pihm", "/model/mesh")); // 49 tempStr.truncate(tempStr.length()-4); paraFileLineEdit->setText(tempStr+"para"); }
SoilFile::SoilFile(QWidget *parent) : QDialog(parent), ui(new Ui::SoilFile) { ui->setupUi(this); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString tempStr=p->readPath(p->readEntry("pihm", "/model/mesh")); tempStr.truncate(tempStr.length()-4); ui->lineEditSoilFile->setText(tempStr+"soil"); tempStr = p->readEntry("pihm", "soil"); if (!tempStr.isEmpty()) { ui->lineEditSoilTexture->setText(p->readPath(tempStr)); // 87 } }
CatchmentPolygonDlg::CatchmentPolygonDlg(QWidget *parent) { setupUi(this); connect(inputBrowseButton, SIGNAL(clicked()), this, SLOT(inputBrowse())); connect(outputBrowseButton, SIGNAL(clicked()), this, SLOT(outputBrowse())); connect(runButton, SIGNAL(clicked()), this, SLOT(run())); connect(helpButton, SIGNAL(clicked()), this, SLOT(help())); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); inputFileLineEdit->setText(p->readPath(p->readEntry("pihm", "catgrid"))); // 19 int Thresh(p->readNumEntry("pihm", "facThreshold")); outputFileLineEdit->setText(projDir+"/RasterProcessing/cat"+ QString::number(Thresh) +".shp"); }
void spatialPlotDlg::browseRivShapeFile() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString str = QFileDialog::getOpenFileName(this, "Choose Riv Shape File", projDir+"/VectorProcessing","Shape File(*.shp *.SHP)"); lineEditRivShape->setText(str); }
void spatialPlotDlg::browseEleShapeFile() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString str = QFileDialog::getOpenFileName(this, "Choose TIN Shape File", projDir+"/DomainDecomposition","Shape File(*.shp *.SHP)"); lineEditEleShape->setText(str); }
void GeolFile::on_pushButtonGeolTexture_clicked() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString s = QFileDialog::getOpenFileName(this, "Choose Geol Texture File", projDir, "Texture (*.txt *.TXT)"); ui->lineEditGeolTexture->setText(s); }
void InitFile::on_pushButton_RivFile_clicked() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString s = QFileDialog::getOpenFileName(this, "Choose Riv File", projDir+"/DataModel", "Riv File (*.riv)"); ui->lineEditRivFile->setText(s); }
void CatchmentPolygonDlg::inputBrowse() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString str = QFileDialog::getOpenFileName(this, "Choose File", projDir+"/RasterProcessing","CatchmentGrid File(*.adf *.asc)"); inputFileLineEdit->setText(str); }
FlowGridDlg::FlowGridDlg(QWidget *parent) { setupUi(this); connect(inputBrowseButton, SIGNAL(clicked()), this, SLOT(inputBrowse())); connect(outputFDRBrowseButton, SIGNAL(clicked()), this, SLOT(outputFDRBrowse())); connect(outputFAGBrowseButton, SIGNAL(clicked()), this, SLOT(outputFAGBrowse())); connect(runButton, SIGNAL(clicked()), this, SLOT(run())); connect(helpButton, SIGNAL(clicked()), this, SLOT(help())); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); inputFileLineEdit->setText(p->readPath(p->readEntry("pihm", "fill"))); // 4 outputFDRFileLineEdit->setText(projDir+"/RasterProcessing/fdr.asc"); outputFAGFileLineEdit->setText(projDir+"/RasterProcessing/fac.asc"); }
void GeolFile::on_pushButtonGeolFile_clicked() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString s = QFileDialog::getSaveFileName(this, "Choose .GEOL File Name", projDir+"/DataModel", "GEOL file (*.geol)"); if(!s.endsWith(".geol")) s.append(".geol"); ui->lineEditGeolFile->setText(s); }
LinkGridDlg::LinkGridDlg(QWidget *parent) { setupUi(this); connect(inputSTRBrowseButton, SIGNAL(clicked()), this, SLOT(inputSTRBrowse())); connect(inputFDRBrowseButton, SIGNAL(clicked()), this, SLOT(inputFDRBrowse())); connect(outputBrowseButton, SIGNAL(clicked()), this, SLOT(outputBrowse())); connect(runButton, SIGNAL(clicked()), this, SLOT(run())); connect(helpButton, SIGNAL(clicked()), this, SLOT(help())); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); inputSTRFileLineEdit->setText(p->readPath(p->readEntry("pihm", "strgrid"))); // 9 inputFDRFileLineEdit->setText(p->readPath(p->readEntry("pihm", "fdr"))); // 6 int Thresh(p->readNumEntry("pihm", "facThreshold")); // 10 outputFileLineEdit->setText(projDir+"/RasterProcessing/lnk"+QString::number(Thresh)+".asc"); }
void FlowGridDlg::inputBrowse() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString str = QFileDialog::getOpenFileName(this, "Choose File", projDir+"/RasterProcessing","DEM/Fill Grid File(*.adf *.asc)"); inputFileLineEdit->setText(str); outputFDRFileLineEdit->setText(projDir+"/RasterProcessing/fdr.asc"); outputFAGFileLineEdit->setText(projDir+"/RasterProcessing/fac.asc"); }
void paraFileDlg::paraBrowse() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString temp = QFileDialog::getSaveFileName(this, "Choose File", projDir+"/DataModel","para File(*.para *.PARA)"); QString tmp = temp; if(!(tmp.toLower()).endsWith(".para")) { tmp.append(".para"); temp = tmp; } paraFileLineEdit->setText(temp); }
void FlowGridDlg::outputFAGBrowse() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString temp = QFileDialog::getSaveFileName(this, "Choose File", projDir+"/RasterProcessing","Flow Acc Grid File(*.adf *.asc)"); QString tmp = temp; if(!(tmp.toLower()).endsWith(".asc")) { tmp.append(".asc"); temp = tmp; } outputFAGFileLineEdit->setText(temp); }
void CatchmentPolygonDlg::outputBrowse() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString temp = QFileDialog::getSaveFileName(this, "Choose File", projDir+"/RasterProcessing","Catchment Polygon File(*.shp)"); QString tmp = temp; if(!(tmp.toLower()).endsWith(".shp")) { tmp.append(".shp"); temp = tmp; } outputFileLineEdit->setText(temp); }
spatialPlotDlg::spatialPlotDlg(QDialog *parent) { setupUi(this); connect( pushButtonEleShape, SIGNAL( clicked() ), this, SLOT( browseEleShapeFile() ) ); connect( pushButtonRivShape, SIGNAL( clicked() ), this, SLOT( browseRivShapeFile() ) ); connect( pushButtonFileName, SIGNAL( clicked() ), this, SLOT( browseModelFile() ) ); connect( pushButtonGenerate, SIGNAL( clicked() ), this, SLOT( generate() ) ); connect( pushButtonHelp, SIGNAL( clicked() ), this, SLOT( help() ) ); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); int scale = p->readNumEntry("pihm", "scale"); // 110 int step = p->readNumEntry("pihm", "step5"); // 106 comboBoxEle->setCurrentIndex(scale); comboBoxRiv->setCurrentIndex(scale); step= scale==0 ? step : scale==1 ? step/60 : step/1440; //lineEditEleTime->setText(QString::number(step, 10)); step=p->readNumEntry("pihm", "step8"); // 109 step= scale==0 ? step : scale==1 ? step/60 : step/1440; //lineEditRivTime->setText(QString::number(step,10)); lineEditEleShape->setText(p->readPath(p->readEntry("pihm", "TIN"))); // 48 lineEditRivShape->setText(p->readPath(p->readEntry("pihm", "rivdec"))); // 81 int start, finish; start = p->readNumEntry("pihm", "start"); // 111 finish= p->readNumEntry("pihm", "finish"); // 112 start = scale==0 ? start : scale==1 ? start/60 : start/1440; start = start +1; finish= scale==0 ? finish : scale==1 ? finish/60 : finish/1440; lineEditEleStart->setText(QString::number(start,10)); lineEditEleFinish->setText(QString::number(finish,10)); lineEditRivStart->setText(QString::number(start,10)); lineEditRivFinish->setText(QString::number(finish,10)); }
void spatialPlotDlg::browseModelFile() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); QString folder = QFileDialog::getExistingDirectory(this, "Choose Input Directory", projDir); folder=folder+"/"+p->readEntry("pihm", "ID"); // 50 if(tabWidget->currentIndex()== ELEMENT_FEATURE) { // IS, GW, unsat, surf, ET0, ET1, ET2, Precip, NetPrecip, Infil, Rech const char* suffix[] = {".is.txt", ".GW.txt", ".unsat.txt", ".surf.txt", ".et0.txt", ".et1.txt", ".et2.txt", ".prep.txt", ".nprep.txt", ".infil.txt", ".Rech.txt"}; folder += suffix[comboBoxEleVariable->currentIndex()]; } if(tabWidget->currentIndex()== RIVER_FEATURE) { // head, inflow, outflow, baseflow tot, surfflow tot, base left, base right, surf left, surf right const char* suffix[] = {".stage.txt", ".rivFlx0.txt", ".rivFlx1.txt", ".rivFlx4.txt", ".rivFlx2.txt", ".rivFlx4.txt", ".rivFlx5.txt", ".rivFlx2.txt", ".rivFlx3.txt"}; folder += suffix[comboBoxRivVariable->currentIndex()]; } //QString str = QFileDialog::getOpenFileName(this, "Choose Model Output File", "~/","Text File(*.txt *.TXT);; NetCDF File(*.nc *.NC)"); lineEditFileName->setText(folder); }
void paraFileDlg::run() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); p->writeEntry("pihm", "/model/para", p->writePath(paraFileLineEdit->text())); // 82 QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(home+"/log.html"); ofstream log; log.open(qPrintable(logFileName)); log<<"<html><body><font size=3 color=black><p> Verifying Files...</p></font></body></html>"; log.close(); MessageLog->setSource(logFileName); MessageLog->setFocus(); MessageLog->setModified(TRUE); ofstream parameters; parameters.open(qPrintable((paraFileLineEdit->text())), ios::out); int runFlag = 1; /* if(parameters==NULL){ qWarning("\nPlease input para file name"); runFlag=0; }*/ log.open(qPrintable(logFileName), ios::app); if((paraFileLineEdit->text()).length()==0) { log<<"<p><font size=3 color=red> Error! Please input .para Output File</p>"; runFlag = 0; } else { log<<"<p>Checking... "<<qPrintable((paraFileLineEdit->text()))<<"... "; if(parameters == NULL) { log<<"<font size=3 color=red> Error!</p>"; //qWarning("\nCan not open output file name"); runFlag = 0; } else log<<"Done!</p>"; } log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Krylov Dimension..."; if(KDlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Krylov Dimension"); //out<<"<p><font size=2 color=red>Please enter Krylov Dimension</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Convergence Threshold..."; if(CTlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Convergence Tolerance"); //out<<"<p><font size=2 color=red>Please enter Convergence Tolerance</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Absolute Tolerance..."; if(ATlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Absolute Tolerance"); //out<<"<p><font size=2 color=red>Please enter Absolute Tolerance</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Relative Tolerance..."; if(RTlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Relative Tolerance"); //out<<"<p><font size=2 color=red>Please enter Relative Tolerance</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Initial Step..."; if(ISlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Initial Time Step"); //out<<"<p><font size=2 color=red>Please enter Initial Time Step</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Maximum Step..."; if(MSlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Maximum Time Step"); //out<<"<p><font size=2 color=red>Please enter Maximum Time Step</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Start Time..."; if(STlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Start Time"); //out<<"<p><font size=2 color=red>Please enter Start Time</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking End Time..."; if(ETlineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter End Time"); //out<<"<p><font size=2 color=red>Please enter End Time</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Step Size..."; if(a_lineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Step Size Factor (a)"); //out<<"<p><font size=2 color=red>Please enter Step Size Factor (a)</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); log<<"<p><font size=3 color=black>Checking Base Step Size..."; if(b_lineEdit->text().length()==0) { log<<"<font size=3 color=red>Error!</p>"; runFlag=0; qWarning("\nPlease enter Base Step Size (b)"); //out<<"<p><font size=2 color=red>Please enter Base Step Size (b)</font></p>"; } else log<<"Done</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); if(runFlag == 1) { log.open(qPrintable(logFileName), ios::app); log<<"<p>Writing .para file..."; log.close(); MessageLog->reload(); QApplication::processEvents(); if(verboseCheckBox->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(debugCheckBox->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(imComboBox->currentIndex() == 0) parameters<<"3\n"; else if(imComboBox->currentIndex() == 1) parameters<<"1\n"; else parameters<<"0\n"; /* if(resFileCheckBox->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(fluxFileCheckBox->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(qFileCheckBox->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(etFileCheckBox->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; */ if(checkBox1->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox2->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox3->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox4->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; //// if(checkBox5->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox6->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox7->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; //// if(checkBox8->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox9->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox10->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; //// if(checkBox11->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox12->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox13->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox14->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox15->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox16->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox17->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox18->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox19->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBox20->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; /// int multiplier = comboBoxTime2->currentIndex()==0 ? 1 : comboBoxTime2->currentIndex()==1 ? 60 : 24*60; if(checkBox1->isChecked()) parameters<<(lineEdit1->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox2->isChecked()) parameters<<(lineEdit2->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox3->isChecked()) parameters<<(lineEdit3->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox4->isChecked()) parameters<<(lineEdit4->text()).toDouble()*multiplier<<"\n"; else parameters<<"0\n"; //// if(checkBox5->isChecked()) parameters<<(lineEdit5->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox6->isChecked()) parameters<<(lineEdit6->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox7->isChecked()) parameters<<(lineEdit7->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox8->isChecked() || checkBox9->isChecked() || checkBox10->isChecked()) parameters<<(lineEdit8->text()).toDouble()*multiplier<<"\t"; else parameters<<"0\t"; if(checkBox11->isChecked() || checkBox12->isChecked() || checkBox13->isChecked() || checkBox14->isChecked() || checkBox15->isChecked() || checkBox16->isChecked() || checkBox17->isChecked() || checkBox18->isChecked() || checkBox19->isChecked() || checkBox20->isChecked()) parameters<<(lineEdit11->text()).toDouble()*multiplier<<"\n"; else parameters<<"0\n"; //// if(umComboBox->currentIndex() == 0) parameters<<"1\t"; else parameters<<"2\t"; if(smComboBox->currentIndex() == 0) parameters<<"2\t"; else if(smComboBox->currentIndex() == 1) parameters<<"1\t"; else parameters<<"3\t"; if(rmComboBox->currentIndex() == 0) parameters<<"2\n"; else if(rmComboBox->currentIndex() == 1) parameters<<"1\n"; else parameters<<"3\n"; /************************************************/ if(DDradioButton->isChecked()) parameters<<"1\t"; else parameters<<"2\t"; if(GScomboBox->currentIndex() == 0) parameters<<"1\t"; else parameters<<"2\t"; parameters<<qPrintable((KDlineEdit->text()))<<"\t"; parameters<<qPrintable((CTlineEdit->text()))<<"\n"; /*************************************************/ parameters<<qPrintable((ATlineEdit->text()))<<"\t"; parameters<<qPrintable((RTlineEdit->text()))<<"\t"; parameters<<qPrintable((ISlineEdit->text()))<<"\t"; parameters<<qPrintable((MSlineEdit->text()))<<"\t"; parameters<<qPrintable((ETSlineEdit->text()))<<"\n"; /***********/ multiplier = comboBoxTime1->currentIndex()==0 ? 1 : comboBoxTime1->currentIndex()==1 ? 60 : 24*60; parameters<<(STlineEdit->text()).toDouble()*multiplier<<"\t"; parameters<<(ETlineEdit->text()).toDouble()*multiplier<<"\t"; if(SScomboBox->currentIndex() == 0) parameters<<"0\n"; else parameters<<"1\n"; parameters<<qPrintable((a_lineEdit->text()))<<"\t"; parameters<<qPrintable((b_lineEdit->text()))<<"\n"; if(checkBoxFillSurf->isChecked()) parameters<<"1\t"; else parameters<<"0\t"; if(checkBoxFillSub->isChecked()) parameters<<"1\n"; else parameters<<"0\n"; log.open(qPrintable(logFileName), ios::app); log<<" Done!</p>"; log.close(); MessageLog->reload(); QApplication::processEvents(); } }
void spatialPlotDlg::generate() { QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(home+"/log.html"); ofstream log; log.open(qPrintable(logFileName), ios::out); log<<"<html><body><br><font size=3 color=black><p> Running... "; //</p></font></body></html>"; log.close(); textBrowser->setSource(logFileName); textBrowser->setFocus(); textBrowser->setModified(TRUE); QApplication::processEvents(); QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); int bins; double **avgVal; int tabIndex; int variableIndex; int startTime, finishTime; int NUM_STEPS; int dataCount = 0; char fStr[100]; int runFlag = 1; QString shapeFileName, outputFileName; ifstream inStream, inStream2; int NUM_ELE = 0; int NUM_RIV = 0; tabIndex = tabWidget->currentIndex(); if(tabIndex == ELEMENT_FEATURE) { variableIndex = comboBoxEleVariable->currentIndex(); startTime = ( lineEditEleStart->text() ).toInt(); finishTime = ( lineEditEleFinish->text() ).toInt(); bins = lineEditBinsEle->text().toInt(); int units = comboBoxEle->currentIndex(); units = units==0 ? 1 : units==1 ? 60 : 1440; // how many minutes // intercep, sat, unsat, surf, evap, trans, evap gw/sw, prep ??, nprep ??, infil ??, rech // 106, 101, 107, 102, 108, 108, 108, 101, 101, 101, 105 const int index[] = {5, 0, 6, 1, 7, 7, 7, 0, 0, 0, 4}; QString var("step%1"); int steps = p->readNumEntry("pihm", var.arg(index[comboBoxEleVariable->currentIndex()])); startTime = startTime*units / steps; cout << "Start Row= "<<startTime<<"\n"; finishTime= finishTime*units/ steps; cout << "FinishRow= "<<finishTime<<"\n"; shapeFileName = lineEditEleShape->text(); outputFileName = lineEditFileName->text(); NUM_STEPS = finishTime - startTime + 1; cout<<"NUM_STEPS= "<<NUM_STEPS<<"\n"; //getchar(); getchar(); if( outputFileName.endsWith("txt", Qt::CaseInsensitive) ) { inStream.open( qPrintable(outputFileName) ); if(inStream == NULL) { QMessageBox::critical(this, "Couldn't Open File", outputFileName); return; //exit(1); } string str; getline(inStream, str); int pos = 0; while( (pos = str.find('\t', pos+1) ) != -1 ) { NUM_ELE++; } cout << "NUM_ELE= "<<NUM_ELE<<"\n"; inStream.close(); inStream.open(qPrintable(outputFileName)); avgVal = (double **)malloc(bins * sizeof(double *)); for(int i=0; i<bins; i++) { avgVal[i] = (double *)malloc(NUM_ELE * sizeof(double)); for(int j=0; j<NUM_ELE; j++) avgVal[i][j] = 0.0; } for(int i=1; i<startTime; i++) getline(inStream, str); if(inStream == NULL) { qWarning("Error: File ended Prematurely!\n Cannot parse \"Start Time\" provided.\n"); runFlag = 0; } if(runFlag != 0) { double temp; for(int b=0; b<bins; b++) { for(int i=0; i<NUM_STEPS/bins; i++) { if(inStream) { for(int j=0; j<NUM_ELE; j++) { inStream >> temp; avgVal[b][j]+=temp; } dataCount++; } else{ dataCount--; break; } } }
void LinkGridDlg::run() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); p->writeEntry("pihm", "strgrid", p->writePath(inputSTRFileLineEdit->text())); // 11 p->writeEntry("pihm", "fdr", p->writePath(inputFDRFileLineEdit->text())); // 12 p->writeEntry("pihm", "lnk", p->writePath(outputFileLineEdit->text())); // 13 QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(qPrintable(home+"/log.html")); ofstream log; log.open(qPrintable(logFileName)); log<<"<html><body><font size=3 color=black><p> Verifying Files...</p></font></body></html>"; log.close(); messageLog->setSource(logFileName); messageLog->setFocus(); messageLog->setModified(TRUE); QString inputSTRFileName((inputSTRFileLineEdit->text())); QString inputFDRFileName((inputFDRFileLineEdit->text())); QString outputFileName((outputFileLineEdit->text())); ifstream STRinFile; STRinFile.open(qPrintable(inputSTRFileLineEdit->text())); ifstream FDRinFile; FDRinFile.open(qPrintable(inputFDRFileLineEdit->text())); ofstream outFile; outFile.open(qPrintable(outputFileLineEdit->text())); int runFlag = 1; log.open(qPrintable(logFileName), ios::app); if(inputSTRFileName.length()==0) { log<<"<p><font size=3 color=red> Error! Please input Stream Grid Input File</p>"; runFlag = 0; } else{ log<<"</p><p>Checking... "<<qPrintable(inputSTRFileName)<<"... "; if(STRinFile == NULL) { log<<"<font size=3 color=red> Error!</p>"; qWarning("\n%s doesn't exist!", qPrintable(inputSTRFileLineEdit->text())); runFlag = 0; } else log<<"Done!</p>"; } log.close(); messageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); if(inputFDRFileName.length()==0) { log<<"<p><font size=3 color=red> Error! Please input Flow Dir. Grid Input File</p>"; runFlag = 0; } else{ log<<"</p><p>Checking... "<<qPrintable(inputFDRFileName)<<"... "; if(FDRinFile == NULL) { log<<"<font size=3 color=red> Error!</p>"; qWarning("\n%s doesn't exist!", qPrintable(inputFDRFileLineEdit->text())); runFlag = 0; } else log<<"Done!</p>"; } log.close(); messageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); if(outputFileName.length()==0) { log<<"<p><font size=3 color=red> Error! Please input Link Grid Output File</p>"; runFlag = 0; } else{ log<<"</p><p>Checking... "<<qPrintable(outputFileName)<<"... "; if(outFile == NULL) { log<<"<font size=3 color=red> Error!</p>"; qWarning("\nCan not open output file name"); runFlag = 0; } else log<<"Done!</p>"; } log.close(); messageLog->reload(); QApplication::processEvents(); if(runFlag == 1) { log.open(qPrintable(logFileName), ios::app); log<<"<p>Running..."; log.close(); messageLog->reload(); QApplication::processEvents(); int err1 = streamSegmentation((char *)qPrintable(inputSTRFileName), (char *)qPrintable(inputFDRFileName), (char *)qPrintable(outputFileName), "node.dat" ); log.open(qPrintable(logFileName), ios::app); log<<" Done!</p>"; log.close(); messageLog->reload(); QApplication::processEvents(); if(showSG_DFrame->isChecked() == 1) { //QgsRasterLayer *tempLayer = new QgsRasterLayer("/backup/pihm/RasterProcessing/FillPits", "morgedem.asc"); //?? applicationPointer->addRasterLayer(outputFileName); } } }
void GeolFile::on_pushButtonRun_clicked() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); p->writeEntry("pihm", "geol", p->writePath(ui->lineEditGeolTexture->text())); // 89 p->writeEntry("pihm", "/model/geol", p->writePath(ui->lineEditGeolFile->text())); // 90 int RunFlag=1; ifstream inFile; ofstream outFile; inFile.open((ui->lineEditGeolTexture->text()).toAscii()); outFile.open((ui->lineEditGeolFile->text()).toAscii()); ofstream logFile; QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(home+"/log.html"); logFile.open(qPrintable(logFileName)); logFile<<"<html><body><font size=3 color=black> Verifying Files...<br>"; logFile.close(); ui->textBrowser->setSource(logFileName); ui->textBrowser->setFocus(); ui->textBrowser->setModified(TRUE); logFile.open(qPrintable(logFileName), ios::app); logFile<<"Checking Geol Texture File... "; if (inFile == NULL) { logFile<<"could NOT open file. ERROR<br>"; RunFlag = 0; } else logFile<<"Done!<br>"; logFile<<"Checking .Geol File... "; if (outFile == NULL) { logFile<<"could NOT open file to write. ERROR<br>"; RunFlag = 0; } else logFile<<"Done!<br>"; logFile.close(); ui->textBrowser->reload(); if(RunFlag == 1) { logFile.open(qPrintable(logFileName), ios::app); logFile<<"Generating .GEOL file... "; char tempS[500]; int count=0; double data[1000][6]; // (1) MUKEY (2) SILT (3) CLAY (4) ORGANIC_MATTER (5) BULK_DENSITY //<(6) TOPSOIL> //inFile>>tempS; inFile>>tempS; inFile>>tempS; inFile>>tempS; inFile>>tempS; //<inFile>>tempS;> inFile.getline(tempS, 500); while(inFile) { inFile>>data[count][0]; //MUKEY inFile>>data[count][1]; //SILT inFile>>data[count][2]; //CLAY inFile>>data[count][3]; if(data[count][3]<0) data[count][3]=2.5; //ORGANIC MATTER inFile>>data[count][4]; if(data[count][4]<0) data[count][4]=1.3; // BULK DENSITY (g/cm3) //inFile>>data[count][5]; // TOP SOIL data[count][5] = 0; // Forced for GEOL i.e. TOPSOIL = 0 //? outFile<<"-$ "<<data[count][0]<<"\t"<<data[count][1]<<"\t"<<data[count][2]<<"\t"<<data[count][3]<<"\t"<<data[count][4]<<"\t"<<data[count][5]<<" $- \n"; count++; } count--; outFile<<count<<"\n"; double S, C, OM, D; //S=SILT, C=CLAY, OM=ORGANIC MATTER, D=BULK DENSITY, int topsoil; //TOPSOIL double **outData; outData = (double **)malloc(count*sizeof(double *)); for(int i=0; i<count; i++) { outData[i] = (double *)malloc(10*sizeof(double)); for(int j=0; j<10; j++) outData[i][j]=0.0; S = data[i][1]; C = data[i][2]; OM = data[i][3]; D = data[i][4]; topsoil = (int) data[i][5]; //Index outData[i][0]=i+1; outFile<<outData[i][0]<<"\t"; //Ksat //outData[i][1]= (7.755+0.03252*S+0.93*topsoil-0.967*D*D-0.000484*C*C-0.000322*S*S+0.001/S-0.0748/OM-0.643*log(S)-0.01398*D*C-0.1673*D*OM+0.02986*topsoil*C-0.03305*topsoil*S); outData[i][1]=exp(7.755+0.03252*S+0.93*topsoil-0.967*D*D-0.000484*C*C-0.000322*S*S+0.001/S-0.0748/OM-0.643*log(S)-0.01398*D*C-0.1673*D*OM+0.02986*topsoil*C-0.03305*topsoil*S); outData[i][1]=outData[i][1]/100; //[cm per d] to [m per d] outFile<<outData[i][1]*10<<"\t"; //KsatH = KsatV * 10 //Ksat outFile<<outData[i][1]<<"\t"; //KsatV //ThetaS //outData[i][2]=(0.7919+0.001691*C-0.29619*D-0.000001491*S*S+0.0000821*OM*OM+0.02427/C+0.01113/S+0.01472*log(S)-0.0000733*OM*C-0.000619*D*C-0.001183*D*OM-0.0001664*topsoil*S); outData[i][2]= (0.7919+0.001691*C-0.29619*D-0.000001491*S*S+0.0000821*OM*OM+0.02427/C+0.01113/S+0.01472*log(S)-0.0000733*OM*C-0.000619*D*C-0.001183*D*OM-0.0001664*topsoil*S); outFile<<outData[i][2]<<"\t"; //ThetaR outData[i][3]=0.01; outFile<<outData[i][3]<<"\t"; //InfD //outData[i][4]=0.10; //outFile<<outData[i][4]<<"\t"; //Alpha //outData[i][5]=log(-14.96+0.03135*C+0.0351*S+0.646*OM+15.29*D-0.192*topsoil-4.671*D*D-0.000781*C*C-0.00687*OM*OM+0.0449/OM+0.0663*log(S)+0.1482*log(OM)-0.04546*D*S-0.4852*D*OM+0.00673*topsoil*C); outData[i][5]= exp(-14.96+0.03135*C+0.0351*S+0.646*OM+15.29*D-0.192*topsoil-4.671*D*D-0.000781*C*C-0.00687*OM*OM+0.0449/OM+0.0663*log(S)+0.1482*log(OM)-0.04546*D*S-0.4852*D*OM+0.00673*topsoil*C); outData[i][5]= 100*outData[i][5]; //UNIT CONVERSION 1/cm TO 1/m outFile<<outData[i][5]<<"\t"; //Beta outData[i][6]=1+exp(-25.23-0.02195*C+0.0074*S-0.1940*OM+45.5*D-7.24*D*D+0.0003658*C*C+0.002885*OM*OM-12.81/D-0.1524/S-0.01958/OM-0.2876*log(S)-0.0709*log(OM)-44.6*log(D)-0.02264*D*C+0.0896*D*OM+0.00718*topsoil*C); outFile<<outData[i][6]<<"\t"; //hAreaF outData[i][7]=0.01; outFile<<outData[i][7]<<"\t"; //macKsatV outData[i][8]=100000*outData[i][1]; outFile<<outData[i][8]<<"\t"; //macD outData[i][9]=1.0; outFile<<outData[i][9]<<"\n"; } logFile<<"Done!<br>"; logFile<<"GeolFile Module - COMPLETE"; logFile.close(); ui->textBrowser->reload(); QApplication::processEvents(); }
void CatchmentPolygonDlg::run() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); p->writeEntry("pihm", "catgrid", p->writePath(inputFileLineEdit->text())); // 20 p->writeEntry("pihm", "catpoly", p->writePath(outputFileLineEdit->text())); // 21 QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(qPrintable(home+"/log.html")); ofstream log; log.open(qPrintable(logFileName)); log<<"<html><body><font size=3 color=black><p> Verifying Files...</p></font></body></html>"; log.close(); messageLog->setSource(logFileName); messageLog->setFocus(); messageLog->setModified(TRUE); QString inputFileName((inputFileLineEdit->text())); QString outputShpFileName((outputFileLineEdit->text())); QString outputDbfFileName; QString outputShxFileName, id; outputDbfFileName = outputShpFileName; outputDbfFileName.truncate(outputDbfFileName.length()-3); outputShxFileName=outputDbfFileName; outputDbfFileName.append("dbf"); outputShxFileName.truncate(outputShxFileName.length()-1); id=outputShxFileName; id=id.right(id.length()-id.lastIndexOf("/",-1)-1); cout << "ID = "<<qPrintable(id) <<"\n"; outputShxFileName.append(".shx"); QString shpFile = projDir+"/VectorProcessing/"+id+".shp"; QString dbfFile = projDir+"/VectorProcessing/"+id+".dbf"; QString shxFile = projDir+"/VectorProcessing/"+id+".shx"; ifstream inFile; inFile.open(qPrintable(inputFileLineEdit->text())); // ofstream outFile; outFile.open(qPrintable(outputFileLineEdit->text())); int runFlag = 1; log.open(qPrintable(logFileName), ios::app); if(inputFileName.length()==0) { log<<"<p><font size=3 color=red> Error! Please input Catchment Grid Input File</p>"; runFlag = 0; } else{ log<<"<p>Checking... "<<qPrintable(inputFileName)<<"... "; if(inFile == NULL) { log<<"<font size=3 color=red> Error!</p>"; qWarning("\n%s doesn't exist!", qPrintable(inputFileLineEdit->text())); runFlag = 0; } else log<<"Done!</p>"; } log.close(); messageLog->reload(); QApplication::processEvents(); log.open(qPrintable(logFileName), ios::app); if(outputShpFileName.length()==0) { log<<"<p><font size=3 color=red> Error! Please input Catchment Polygon Output File</p>"; runFlag = 0; } else{ log<<"<p>Checking... "<<qPrintable(outputShpFileName)<<"... "; /* if(outFile == NULL) { log<<"<font size=3 color=red> Error!</p>"; qWarning("\nCan not open output file name"); runFlag = 0; } else*/ log<<"Done!</p>"; } log.close(); messageLog->reload(); QApplication::processEvents(); if(runFlag == 1) { log.open(qPrintable(logFileName), ios::app); log<<"<p>Running..."; log.close(); messageLog->reload(); QApplication::processEvents(); Convert(inputFileName, outputShpFileName); char err = 0; if (QFile::exists(shpFile) && !QFile::remove(shpFile)) err |= 1; if (QFile::exists(dbfFile) && !QFile::remove(dbfFile)) err |= 2; if (QFile::exists(shxFile) && !QFile::remove(shxFile)) err |= 4; const char* msg[] = {" shp", " dbf", " shx"}; QString s("Failed to remove old:"); char idx = 0; for(; err; err>>=1, ++idx) if (err & 1) { s += msg[idx]; } if (idx) QMessageBox::warning(this, "Failed to remove old files", s); QFile::copy(outputShpFileName, shpFile); QFile::copy(outputDbfFileName, dbfFile); QFile::copy(outputShxFileName, shxFile); p->writeEntry("pihm", "catpoly", shpFile); //21 log.open(qPrintable(logFileName), ios::app); log<<" Done!</p>"; log.close(); messageLog->reload(); QApplication::processEvents(); if(showSG_DFrame->isChecked() == 1) { QString myFileNameQString = outputShpFileName; QFileInfo myFileInfo(myFileNameQString); QString myBaseNameQString = myFileInfo.baseName(); QString provider = "OGR"; cout<<"\n"<<myFileNameQString.ascii()<<"\n"<<myBaseNameQString.ascii()<<"\n"<<provider.ascii()<<"\n"; //getchar(); getchar(); applicationPointer->addVectorLayer(myFileNameQString, myBaseNameQString, "ogr"); //QgsRasterLayer *tempLayer = new QgsRasterLayer("/backup/pihm/RasterProcessing/FillPits", "morgedem.asc"); //?? applicationPointer->addLayer(QStringList(outputShpFileName), NULL); } }
void InitFile::on_pushButton_Run_clicked() { QgsProject *p = QgsProject::instance(); QString projDir = p->readPath(p->readEntry("pihm", "projDir")); p->writeEntry("pihm", "/model/init", p->writePath(ui->lineEditInitFile->text())); // 94 int RunFlag=1; ifstream inFileMesh, inFileRiv; ofstream outFile; inFileMesh.open((ui->lineEditMeshFile->text()).toAscii()); inFileRiv.open((ui->lineEditRivFile->text()).toAscii()); outFile.open((ui->lineEditInitFile->text()).toAscii()); ofstream logFile; QDir dir = QDir::home(); QString home = dir.homePath(); QString logFileName(home+"/log.html"); logFile.open(qPrintable(logFileName)); logFile<<"<html><body><font size=3 color=black> Verifying Files...<br>"; logFile.close(); ui->textBrowser->setSource(logFileName); ui->textBrowser->setFocus(); ui->textBrowser->setModified(TRUE); logFile.open(qPrintable(logFileName), ios::app); logFile<<"Checking Mesh File... "; if (inFileMesh == NULL) { logFile<<"could NOT open file. ERROR<br>"; RunFlag = 0; } else logFile<<"Done!<br>"; logFile<<"Checking Riv File... "; if (inFileRiv == NULL) { logFile<<"could NOT open file. ERROR<br>"; RunFlag = 0; } else logFile<<"Done!<br>"; logFile<<"Checking Init File... "; if (outFile == NULL) { logFile<<"could NOT open file to write. ERROR<br>"; RunFlag = 0; } else logFile<<"Done!<br>"; logFile.close(); ui->textBrowser->reload(); if(RunFlag == 1) { logFile.open(qPrintable(logFileName), ios::app); logFile<<"Generating INIT file... "; int NumEle, NumRiv; inFileMesh >> NumEle; inFileRiv >> NumRiv; for(int i=0; i<NumEle; i++) { outFile<<ui->interception->text().toFloat()<<"\t"; outFile<<ui->snow->text().toFloat()<<"\t"; outFile<<ui->surface->text().toFloat()<<"\t"; outFile<<ui->unsaturated->text().toFloat()<<"\t"; outFile<<ui->saturated->text().toFloat()<<"\n"; } for(int i=0; i<NumRiv; i++) { outFile<<ui->river->text().toFloat()<<"\t"; outFile<<ui->riverBed->text().toFloat()<<"\n"; } logFile<<"Done!<br>"; logFile<<"InitFile Module - COMPLETE"; logFile.close(); ui->textBrowser->reload(); QApplication::processEvents(); }