Example #1
0
 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();
            }
        }
Example #4
0
        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();
            }
        }
Example #5
0
        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();
            }
        }
Example #6
0
        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();
            }
        }
Example #8
0
        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);
        }
Example #9
0
 public adjustCoregistrationErrors(rasterUtil rasterUtility)
 {
     rsUtil  = rasterUtility;
     ftrUtil = new featureUtil(rsUtil);
 }
Example #10
0
 public adjustCoregistrationErrors()
 {
     rsUtil  = new rasterUtil();
     ftrUtil = new featureUtil(rsUtil);
 }