private void btnExecute_Click(object sender, EventArgs e) { string inRst1Nm = cmbInRaster1.Text; string inRst2Nm = cmbInRaster2.Text; string outNmRst = txtOutName.Text; int pChange = trbPercent.Value; if (inRst1Nm == "" || inRst1Nm == null) { MessageBox.Show("You must specify an input raster for In Raster 1 or type in a number", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (inRst2Nm == "" || inRst2Nm == null) { MessageBox.Show("You must specify an input raster for In Raster 2 or type in a number", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (outNmRst == "" || outNmRst == null) { MessageBox.Show("You must specify an output raster name", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IRaster rs1 = rstDic[inRst1Nm]; IRaster rs2 = rstDic[inRst2Nm]; this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Creating Raster. This may take a while..."); rp.addMessage("Calculating Statistics..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); rp.Refresh(); normalization nm = new normalization(rsUtil.createIdentityRaster(rs1), rsUtil.createIdentityRaster(rs2), pChange, rsUtil); try { double[][] coef = nm.Coefficients; outraster = rsUtil.createRaster(nm.OutRaster); outrastername = outNmRst; int bCnt = ((IRasterBandCollection)outraster).Count; for (int i = 0; i < bCnt; i++) { double[] intSlp = coef[i]; double intercept = intSlp[0]; double slope = intSlp[1]; double r2 = intSlp[2]; rp.addMessage("R2, Intercept, Slope (" + (i + 1).ToString() + ") = " + r2.ToString() + ", " + intercept.ToString() + ", " + slope.ToString()); } if (!(txtModelPath.Text == "" || txtModelPath.Text == null)) { nm.writeModel(txtModelPath.Text); } if (mp != null && aM) { //rsUtil.calcStatsAndHist(((IRaster2)outRs).RasterDataset); IRasterLayer rsLyr = new RasterLayerClass(); rsLyr.CreateFromRaster(outraster); rsLyr.Name = outrastername; rsLyr.Visible = false; mp.AddLayer((ILayer)rsLyr); } this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); Console.WriteLine(ex.ToString()); } finally { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2.Subtract(dt); string t = " in " + ts.Days.ToString() + " days " + ts.Hours.ToString() + " hours " + ts.Minutes.ToString() + " minutes and " + ts.Seconds.ToString() + " seconds ."; rp.stepPGBar(100); rp.addMessage("Finished Normalizing Image" + t); rp.enableClose(); this.Close(); } }