Beispiel #1
0
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;
}
Beispiel #2
0
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");
}
Beispiel #3
0
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");
}
Beispiel #4
0
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
  }
}
Beispiel #5
0
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");
}
Beispiel #6
0
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);
}
Beispiel #7
0
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);
}
Beispiel #8
0
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);
}
Beispiel #9
0
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);
}
Beispiel #10
0
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);
}
Beispiel #11
0
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");
}
Beispiel #12
0
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);
}
Beispiel #13
0
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");
}
Beispiel #14
0
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");
}
Beispiel #15
0
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);
}
Beispiel #16
0
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);
}
Beispiel #17
0
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);
}
Beispiel #18
0
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));
}
Beispiel #19
0
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);
}
Beispiel #20
0
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();

    }
}
Beispiel #21
0
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;
            }
          }
        }
Beispiel #22
0
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);
    }
  }
}
Beispiel #23
0
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();
  }
Beispiel #24
0
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);
    }
  }
Beispiel #25
0
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();
  }