private void btnClip_Click(object sender, EventArgs e) { string rstNm = cmbInRaster1.Text; string outNm = txtOutName.Text; int rws = System.Convert.ToInt32(nudRows.Value); int clms = System.Convert.ToInt32(nudColumns.Value); if (rstNm == "" || rstNm == null) { MessageBox.Show("You must have a raster layer selected and a pixel type selected", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (outNm == "" || outNm == null) { MessageBox.Show("You must specify an output raster name", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } List <double> kernalLst = new List <double>(); for (int i = 0; i < dgvKernal.ColumnCount; i++) { for (int j = 0; j < dgvKernal.RowCount; j++) { object vlo = dgvKernal[i, j].Value; double vl = 0; if (DBNull.Value.Equals(vlo)) { vl = 0; } else { vl = System.Convert.ToDouble(dgvKernal[i, j].Value); } kernalLst.Add(vl); //Console.WriteLine(vl.ToString()); } } 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.stepPGBar(10); rp.TopMost = true; try { IRaster rst = rstDic[rstNm]; outraster = rsUtil.returnRaster(rsUtil.convolutionRasterFunction(rst, clms, rws, kernalLst.ToArray())); if (mp != null && addToMap) { rp.addMessage("Calculating Statistics..."); rp.Show(); rp.Refresh(); IRasterLayer rstLyr = new RasterLayerClass(); //rsUtil.calcStatsAndHist(((IRaster2)outraster).RasterDataset); rstLyr.CreateFromRaster(outraster); rstLyr.Name = outNm; rstLyr.Visible = false; mp.AddLayer(rstLyr); } outrastername = outNm; this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(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 Convolution Analysis" + t); rp.enableClose(); this.Close(); } }