public frmHelper(IMap map, rasterUtil rasterUtility = null) { TheMap = map; GeoUtility = new geoDatabaseUtility(); FeatureUtility = new featureUtil(); if (rasterUtility == null) { RasterUtility = new rasterUtil(); } else { RasterUtility = rasterUtility; } fillDictionary(); }
private void btnExecute_Click(object sender, EventArgs e) { string tblStr = cmbTable.Text; if (tblStr == "") { MessageBox.Show("You must specify a Table or Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbFields.Items.Count < 1 ) { MessageBox.Show("You must select at least on Field to summarize", "No Fields", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbStats.Items.Count < 1) { MessageBox.Show("You must select at least on summary statistic", "No Stats", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } rasterUtil.localType[] statLst = new rasterUtil.localType[lsbStats.Items.Count]; ITable tbl = tblDic[tblStr]; string[] fldsArr = lsbFields.Items.Cast<string>().ToArray(); for (int i = 0; i < lsbStats.Items.Count; i++) { statLst[i] = (rasterUtil.localType)Enum.Parse(typeof(rasterUtil.localType),lsbStats.Items[i].ToString()); } this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Summarizing Fields. This may take a while..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); try { featureUtil ftrUtil = new featureUtil(); ftrUtil.summarizeAcrossFields(tbl, fldsArr, statLst, qWhere); if (mp != null && addToMap) { rp.Refresh(); } this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { Statistics.ModelHelper.closeProgressBar(); 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 summarizing" + t); rp.enableClose(); this.Close(); } }
private void btnExecute_Click(object sender, EventArgs e) { string strataStr = cmbStrata.Text; string standsStr = cmbStands.Text; if (strataStr == "") { MessageBox.Show("You must specify a Stratification Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (standsStr == "") { MessageBox.Show("You must specify a Stands Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbFields.Items.Count < 1 ) { MessageBox.Show("You must select at least on Field to summarize", "No Fields", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IFeatureClass strataCls = ftrDic[strataStr]; IFeatureClass standsCls = ftrDic[standsStr]; string[] fldsArr = lsbFields.Items.Cast<string>().ToArray(); this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Summarizing Fields. This may take a while..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); try { featureUtil ftrUtil = new featureUtil(); ftrUtil.weightFieldValuesByAreaLength(strataCls,fldsArr,standsCls, chbLength.Checked); if (mp != null && addToMap) { rp.Refresh(); } this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { Statistics.ModelHelper.closeProgressBar(); 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 summarizing" + t); rp.enableClose(); this.Close(); } }
private void btnExecute_Click(object sender, EventArgs e) { string ptblStr = cmbParent.Text; if (ptblStr == "") { MessageBox.Show("You must specify a Parent Table or Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string plink = cmbPLink.Text; if (String.IsNullOrEmpty(plink)) { MessageBox.Show("You must specify a Parent Link Field", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string rtblStr = cmbChild.Text; if (rtblStr == "") { MessageBox.Show("You must specify a Child Table or Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string rlink = cmbCLink.Text; if (String.IsNullOrEmpty(rlink)) { MessageBox.Show("You must specify a Child Link Field", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbFields.Items.Count < 1) { MessageBox.Show("You must select at least on Field to summarize", "No Fields", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbStats.Items.Count < 1) { MessageBox.Show("You must select at least on summary statistic", "No Stats", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } rasterUtil.focalType[] statLst = new rasterUtil.focalType[lsbStats.Items.Count]; ITable ptbl = tblDic[ptblStr]; ITable rtbl = tblDic[rtblStr]; string[] fldsArr = lsbFields.Items.Cast <string>().ToArray(); string[] groupFlds = lsbGroup.Items.Cast <string>().ToArray(); for (int i = 0; i < lsbStats.Items.Count; i++) { statLst[i] = (rasterUtil.focalType)Enum.Parse(typeof(rasterUtil.focalType), lsbStats.Items[i].ToString()); } this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Summarizing Fields. This may take a while..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); try { featureUtil ftrUtil = new featureUtil(); ftrUtil.summarizeRelatedTable(ptbl, rtbl, plink, rlink, fldsArr, groupFlds, statLst, pWhere, rWhere); if (mp != null && addToMap) { rp.Refresh(); } this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { Statistics.ModelHelper.closeProgressBar(); 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 summarizing" + t); rp.enableClose(); this.Close(); } }
private void btnExecute_Click(object sender, EventArgs e) { string strataStr = cmbStrata.Text; string standsStr = cmbStands.Text; if (strataStr == "") { MessageBox.Show("You must specify a Stratification Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (standsStr == "") { MessageBox.Show("You must specify a Stands Feature Class layer", "No Layer", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbFields.Items.Count < 1) { MessageBox.Show("You must select at least on Field to summarize", "No Fields", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IFeatureClass strataCls = ftrDic[strataStr]; IFeatureClass standsCls = ftrDic[standsStr]; string[] fldsArr = lsbFields.Items.Cast <string>().ToArray(); this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Summarizing Fields. This may take a while..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); try { featureUtil ftrUtil = new featureUtil(); ftrUtil.weightFieldValuesByAreaLength(strataCls, fldsArr, standsCls, chbLength.Checked); if (mp != null && addToMap) { rp.Refresh(); } this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { Statistics.ModelHelper.closeProgressBar(); 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 summarizing" + t); rp.enableClose(); this.Close(); } }
private void btnExecute_Click(object sender, EventArgs e) { string smpFtrNm = cmbSampleFeatureClass.Text; string mapFld = cmbMap.Text; double alpha = System.Convert.ToDouble(nudAlpha.Value); double prop = System.Convert.ToDouble(nudProp.Value); string outModelPath = txtOutputPath.Text; if (outModelPath == null || outModelPath == "") { MessageBox.Show("You must select an output model or specify a numeric integer", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (smpFtrNm == null || smpFtrNm == "") { MessageBox.Show("You must select a feature Class or Table", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Visible = false; this.Refresh(); esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); rp.addMessage("Selecting samples this may take a while..."); rp.stepPGBar(10); rp.Show(); rp.Refresh(); ITable ftrCls = ftrDic[smpFtrNm]; DateTime dt1 = DateTime.Now; try { featureUtil ftrUtil = new featureUtil(); int ns; if (Int32.TryParse(outModelPath, out ns)) { //MessageBox.Show(ns.ToString()); if (mapFld == null || mapFld == "" || ftrCls.FindField(mapFld) == -1) { ftrUtil.selectRandomFeaturesToSample(ftrCls, ns); } else { ftrUtil.selectEqualFeaturesToSample(ftrCls, mapFld, ns, chbEqual.Checked); } } else { esriUtil.Statistics.dataPrepBase.modelTypes mType = esriUtil.Statistics.ModelHelper.getModelType(outModelPath); if (mapFld == null || mapFld == "") { if (mType == Statistics.dataPrepBase.modelTypes.Accuracy || mType == Statistics.dataPrepBase.modelTypes.Cluster) { MessageBox.Show("You must select a map field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } switch (mType) { case esriUtil.Statistics.dataPrepBase.modelTypes.Accuracy: ftrUtil.selectAccuracyFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha, chbEqual.Checked); break; case esriUtil.Statistics.dataPrepBase.modelTypes.Cluster: ftrUtil.selectClusterFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha, chbEqual.Checked); break; case Statistics.dataPrepBase.modelTypes.KS: rp.Visible = false; ITable sts = null; if (MessageBox.Show("Do you want to supplement samples if needed?", "Supplement samples", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { sts = getTableFromUser(); } rp.Visible = true; ftrUtil.selectKSFeaturesToSample(ftrCls, sts, outModelPath, mapFld); break; case esriUtil.Statistics.dataPrepBase.modelTypes.CovCorr: ftrUtil.selectCovCorrFeaturesToSample(ftrCls, outModelPath, prop, alpha); break; case esriUtil.Statistics.dataPrepBase.modelTypes.StrataCovCorr: ftrUtil.selectClusterFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha, chbEqual.Checked); break; case esriUtil.Statistics.dataPrepBase.modelTypes.PCA: ftrUtil.selectPcaFeaturesToSample(ftrCls, outModelPath, prop, alpha); break; case esriUtil.Statistics.dataPrepBase.modelTypes.LinearRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.MvlRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.LogisticRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.PLR: case esriUtil.Statistics.dataPrepBase.modelTypes.RandomForest: case esriUtil.Statistics.dataPrepBase.modelTypes.SoftMax: case esriUtil.Statistics.dataPrepBase.modelTypes.Cart: case esriUtil.Statistics.dataPrepBase.modelTypes.L3: case esriUtil.Statistics.dataPrepBase.modelTypes.TTEST: default: rp.addMessage("Sample selection for this model type is not currently supported!"); break; } } } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2.Subtract(dt1); int hr = ts.Hours; int min = ts.Minutes; int sec = ts.Seconds; rp.stepPGBar(100); rp.addMessage("Finished selecting samples in " + hr.ToString() + " hours " + min.ToString() + " minutes " + sec.ToString() + " seconds"); rp.enableClose(); this.Close(); } }
private void btnExecute_Click(object sender, EventArgs e) { string smpFtrNm = cmbSampleFeatureClass.Text; string mapFld = cmbMap.Text; double alpha = System.Convert.ToDouble(nudAlpha.Value); double prop = System.Convert.ToDouble(nudProp.Value); string outModelPath = txtOutputPath.Text; if (outModelPath == null || outModelPath == "") { MessageBox.Show("You must select an output model or specify a numeric integer", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (smpFtrNm == null || smpFtrNm == "") { MessageBox.Show("You must select a feature Class or Table", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Visible = false; this.Refresh(); esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); rp.addMessage("Selecting samples this may take a while..."); rp.stepPGBar(10); rp.Show(); rp.Refresh(); ITable ftrCls = ftrDic[smpFtrNm]; DateTime dt1 = DateTime.Now; try { featureUtil ftrUtil = new featureUtil(); int ns; if(Int32.TryParse(outModelPath,out ns)) { //MessageBox.Show(ns.ToString()); if (mapFld == null || mapFld == "" || ftrCls.FindField(mapFld) == -1) { ftrUtil.selectRandomFeaturesToSample(ftrCls, ns); } else { ftrUtil.selectEqualFeaturesToSample(ftrCls, mapFld, ns, chbEqual.Checked); } } else { esriUtil.Statistics.dataPrepBase.modelTypes mType = esriUtil.Statistics.ModelHelper.getModelType(outModelPath); if (mapFld == null || mapFld == "") { if (mType == Statistics.dataPrepBase.modelTypes.Accuracy || mType == Statistics.dataPrepBase.modelTypes.Cluster) { MessageBox.Show("You must select a map field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } switch (mType) { case esriUtil.Statistics.dataPrepBase.modelTypes.Accuracy: ftrUtil.selectAccuracyFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha,chbEqual.Checked); break; case esriUtil.Statistics.dataPrepBase.modelTypes.Cluster: ftrUtil.selectClusterFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha,chbEqual.Checked); break; case Statistics.dataPrepBase.modelTypes.KS: rp.Visible = false; ITable sts = null; if (MessageBox.Show("Do you want to supplement samples if needed?", "Supplement samples", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { sts = getTableFromUser(); } rp.Visible = true; ftrUtil.selectKSFeaturesToSample(ftrCls,sts, outModelPath, mapFld); break; case esriUtil.Statistics.dataPrepBase.modelTypes.CovCorr: ftrUtil.selectCovCorrFeaturesToSample(ftrCls, outModelPath, prop, alpha); break; case esriUtil.Statistics.dataPrepBase.modelTypes.StrataCovCorr: ftrUtil.selectClusterFeaturesToSample(ftrCls, outModelPath, mapFld, prop, alpha, chbEqual.Checked); break; case esriUtil.Statistics.dataPrepBase.modelTypes.PCA: ftrUtil.selectPcaFeaturesToSample(ftrCls, outModelPath, prop, alpha); break; case esriUtil.Statistics.dataPrepBase.modelTypes.LinearRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.MvlRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.LogisticRegression: case esriUtil.Statistics.dataPrepBase.modelTypes.PLR: case esriUtil.Statistics.dataPrepBase.modelTypes.RandomForest: case esriUtil.Statistics.dataPrepBase.modelTypes.SoftMax: case esriUtil.Statistics.dataPrepBase.modelTypes.Cart: case esriUtil.Statistics.dataPrepBase.modelTypes.L3: case esriUtil.Statistics.dataPrepBase.modelTypes.TTEST: default: rp.addMessage("Sample selection for this model type is not currently supported!"); break; } } } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2.Subtract(dt1); int hr = ts.Hours; int min = ts.Minutes; int sec = ts.Seconds; rp.stepPGBar(100); rp.addMessage("Finished selecting samples in " + hr.ToString() + " hours " + min.ToString() + " minutes " + sec.ToString() + " seconds"); rp.enableClose(); this.Close(); } }
private static void CreateNewPoints(string inPath, string outPath, rasterUtil rsUtil, featureUtil ftrUtil, geoDatabaseUtility geoUtil, bool prnd = true, int cShift = 5) { IFeatureClass ftrCls = geoUtil.getFeatureClass(inPath); IFeatureClass newFtrCls = ftrUtil.exportFeatures(ftrCls, outPath, null); IFeatureCursor uCur = newFtrCls.Update(null, true); IFeature ftr = uCur.NextFeature(); if (prnd) { System.Random rnd = new Random(); while (ftr != null) { IPoint opnt = (IPoint)ftr.ShapeCopy; IPoint pnt = new PointClass(); double rndx = rnd.NextDouble() * 10; double rndy = rnd.NextDouble() * 10; pnt.PutCoords(opnt.X + rndx, opnt.Y + rndy); ftr.Shape = pnt; uCur.UpdateFeature(ftr); ftr = uCur.NextFeature(); } } else { while (ftr != null) { IPoint opnt = (IPoint)ftr.ShapeCopy; IPoint pnt = new PointClass(); pnt.PutCoords(opnt.X + cShift, opnt.Y + cShift); ftr.Shape = pnt; uCur.UpdateFeature(ftr); ftr = uCur.NextFeature(); } } System.Runtime.InteropServices.Marshal.ReleaseComObject(uCur); }
public adjustCoregistrationErrors(rasterUtil rasterUtility) { rsUtil = rasterUtility; ftrUtil = new featureUtil(rsUtil); }
public adjustCoregistrationErrors() { rsUtil = new rasterUtil(); ftrUtil = new featureUtil(rsUtil); }