Exemplo n.º 1
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);

                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbInRaster1.Items.Add(lyrNm);
                    }
                    else
                    {
                        rstDic[lyrNm] = rst;
                    }
                    lyr = rstLyrs.Next();
                }
            }
            foreach (string s in Enum.GetNames(typeof(rasterUtil.mergeType)))
            {
                cmbMergeType.Items.Add(s);
            }
            cmbMergeType.SelectedItem = rasterUtil.mergeType.FIRST.ToString();
        }
Exemplo n.º 2
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);

                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbInRaster1.Items.Add(lyrNm);
                    }
                    else
                    {
                        rstDic[lyrNm] = rst;
                    }

                    lyr = rstLyrs.Next();
                }
            }
        }
Exemplo n.º 3
0
 private void populateComboBox()
 {
     if (mp != null)
     {
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         ILayer     lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer rstLyr = (IRasterLayer)lyr;
             IRaster      rst    = rstUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
             if (!rstDic.ContainsKey(lyrNm))
             {
                 rstDic.Add(lyrNm, rst);
                 cmbRaster.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
     }
     foreach (string s in Enum.GetNames(typeof(rasterUtil.windowType)))
     {
         cmbWindowType.Items.Add(s);
     }
     foreach (string s in Enum.GetNames(typeof(rasterUtil.glcmMetric)))
     {
         cmbGlcmTypes.Items.Add(s);
     }
 }
Exemplo n.º 4
0
 private void populateComboBox()
 {
     if (mp != null)
     {
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         ILayer     lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer rstLyr = (IRasterLayer)lyr;
             IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
             if (!rstDic.ContainsKey(lyrNm))
             {
                 rstDic.Add(lyrNm, rst);
                 cmbRaster.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
     }
     foreach (string s in Enum.GetNames(typeof(rasterUtil.focalType)))
     {
         cmbFocalStat.Items.Add(s);
     }
     foreach (string s in Enum.GetNames(typeof(rasterUtil.windowType)))
     {
         cmbWindowType.Items.Add(s);
     }
     foreach (string s in Enum.GetNames(typeof(rasterUtil.landscapeType)))
     {
         cmbMetric.Items.Add(s);
     }
     cmbWindowType.SelectedItem = rasterUtil.windowType.RECTANGLE.ToString();
     cmbFocalStat.SelectedItem  = rasterUtil.focalType.SUM.ToString();
     cmbMetric.SelectedItem     = rasterUtil.landscapeType.REGION.ToString();
 }
Exemplo n.º 5
0
 public void segmentLandFireData()
 {
     try
     {
         int cnt = 0;
         foreach (IRaster rs in new IRaster[] { vegRs, htRs, covRs, demRs })
         {
             if (rs == null)
             {
                 Console.WriteLine("Null Raster found at iteration " + cnt.ToString());
                 cnt++;
                 return;
             }
         }
         IRaster rs1 = vegRs;
         IRaster rs2 = rescaleHt();
         IRaster rs3 = rescaleCov();
         IRaster rs4 = calcTopo();
         IRaster rs5 = rsUtil.returnRaster(rsUtil.compositeBandFunction(new IRaster[] { rs1, rs2, rs3, rs4 }));
         IRaster sMd = rsUtil.createRaster(rsUtil.localStatisticsfunction(rs5, rasterUtil.localType.SUM));
         modelrs = rsUtil.returnRaster(rsUtil.saveRasterToDataset(rsUtil.returnRaster(sMd, rstPixelType.PT_LONG), "lfSeg", landfireworkspace));
         //Console.WriteLine("Finished Segementing Raster");
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Exemplo n.º 6
0
 private void populateComboBox()
 {
     if (mp != null)
     {
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
         ILayer     lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string        lyrNm  = lyr.Name;
             IFeatureLayer ftrLyr = (IFeatureLayer)lyr;
             IFeatureClass ftrCls = ftrLyr.FeatureClass;
             if (!ftrDic.ContainsKey(lyrNm))
             {
                 ftrDic.Add(lyrNm, (ITable)ftrCls);
                 cmbSampleFeatureClass.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
         rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer ftrLyr = (IRasterLayer)lyr;
             IRaster      ftrCls = rsUtil.createRaster(((IRaster2)ftrLyr.Raster).RasterDataset);
             if (!rstDic.ContainsKey(lyrNm))
             {
                 rstDic.Add(lyrNm, ftrCls);
                 cmbSampleFeatureClass.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
     }
 }
Exemplo n.º 7
0
        private void adjustXTableRst(IGeometry iGeometry)
        {
            double        tN    = 0;
            IRaster       rs    = rsUtil.createRaster(rsUtil.clipRasterFunction(rstMap, iGeometry, ESRI.ArcGIS.DataSourcesRaster.esriRasterClippingType.esriRasterClippingOutside));
            IRasterCursor rsCur = ((IRaster2)rs).CreateCursorEx(null);

            while (rsCur.Next())
            {
                IPixelBlock pb = rsCur.PixelBlock;
                for (int r = 0; r < pb.Height; r++)
                {
                    for (int c = 0; c < pb.Width; c++)
                    {
                        object vlObj = pb.GetVal(0, c, r);
                        if (vlObj == null)
                        {
                            continue;
                        }
                        else
                        {
                            string vl      = vlObj.ToString();
                            int    vlIndex = olabels.IndexOf(vl);
                            nCnts[vlIndex] = nCnts[vlIndex] + 1;
                            tN            += 1;
                        }
                    }
                }
            }
            updateXTable(tN);
        }
Exemplo n.º 8
0
        //public IFeatureClass createPolygons3()
        //{
        //    createFeatureClass();

        //}
        public IFeatureClass createPolygons2()
        {
            createFeatureClass();
            IRasterProps           rsProp   = (IRasterProps)inputRaster;
            int                    bndCnt   = ((IRasterBandCollection)inputRaster).Count;
            IPnt                   rsPnt    = rsProp.MeanCellSize();
            double                 cellArea = rsPnt.X * rsPnt.Y;
            double                 tCells   = minArea / cellArea;
            IFunctionRasterDataset sDset    = rsUtil.createMeanShiftFuction(inputRaster, (int)tCells);

            FunctionRasters.meanShiftFunctionDataset rFunc = (FunctionRasters.meanShiftFunctionDataset)sDset.Function;
            IRaster2               rs2   = (IRaster2)rsUtil.createRaster(sDset);
            IRasterCursor          rsCur = rs2.CreateCursorEx(null);
            IRasterDomainExtractor dExt  = new RasterDomainExtractorClass();

            do
            {
                IPixelBlock            pb     = rsCur.PixelBlock;
                IFunctionRasterDataset pbDset = rsUtil.PixelBlockToRaster(pb, rsCur.TopLeft, sDset);
                IRaster rs          = rsUtil.createRaster(pbDset);
                int     numClusters = rFunc.NumClusters;
                for (int c = 0; c < numClusters; c++)
                {
                    IFunctionRasterDataset fd  = rsUtil.calcEqualFunction(pbDset, c);
                    IFunctionRasterDataset fd2 = rsUtil.setNullValue(fd, 0);
                    IPolygon polys             = dExt.ExtractDomain(rsUtil.createRaster(fd2), true);
                }
            } while (rsCur.Next() == true);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(rsCur);



            return(outftr);
        }
Exemplo n.º 9
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbInRaster1.Items.Add(lyrNm);
                        cmbInRaster2.Items.Add(lyrNm);
                    }
                    lyr = rstLyrs.Next();
                }
            }
            foreach (string s in new string[] { ">", "<", ">=", "<=", "=", "and", "or" })
            {
                rasterUtil.logicalType opVl = rasterUtil.logicalType.GE;
                switch (s)
                {
                case ">":
                    opVl = rasterUtil.logicalType.GT;
                    break;

                case "<":
                    opVl = rasterUtil.logicalType.LT;
                    break;

                case "<=":
                    opVl = rasterUtil.logicalType.LE;
                    break;

                case "=":
                    opVl = rasterUtil.logicalType.EQ;
                    break;

                case "and":
                    opVl = rasterUtil.logicalType.AND;
                    break;

                case "or":
                    opVl = rasterUtil.logicalType.OR;
                    break;

                default:
                    opVl = rasterUtil.logicalType.GE;
                    break;
                }
                cmbProcess.Items.Add(s);
                oprDic.Add(s, opVl);
            }
        }
Exemplo n.º 10
0
        private void setInRs()
        {
            IEnvelope env = new EnvelopeClass();
            double    mx, my;
            IRaster2  rs       = (IRaster2)rsUtil.createRaster(valueraster);
            IPnt      cellSize = valueraster.RasterInfo.CellSize;

            rs.PixelToMap((int)topleft.X, (int)topleft.Y, out mx, out my);
            env.PutCoords(mx, my - (cellSize.Y * vpixelBlock.Height), mx + (cellSize.X * vpixelBlock.Width), my);
            inrs = rsUtil.constantRasterFunction((IRaster)rs, env, 0, cellSize);
        }
Exemplo n.º 11
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbInRaster1.Items.Add(lyrNm);
                        cmbInRaster2.Items.Add(lyrNm);
                    }
                    lyr = rstLyrs.Next();
                }
            }
            foreach (string s in new string[] { "+", "-", "*", "/", "POW", "MOD" })
            {
                esriRasterArithmeticOperation opVl = esriRasterArithmeticOperation.esriRasterMode;
                switch (s)
                {
                case "+":
                    opVl = esriRasterArithmeticOperation.esriRasterPlus;
                    break;

                case "-":
                    opVl = esriRasterArithmeticOperation.esriRasterMinus;
                    break;

                case "*":
                    opVl = esriRasterArithmeticOperation.esriRasterMultiply;
                    break;

                case "/":
                    opVl = esriRasterArithmeticOperation.esriRasterDivide;
                    break;

                case "POW":
                    opVl = esriRasterArithmeticOperation.esriRasterPower;
                    break;

                default:
                    opVl = esriRasterArithmeticOperation.esriRasterMode;
                    break;
                }
                cmbProcess.Items.Add(s);
                oprDic.Add(s, opVl);
            }
        }
Exemplo n.º 12
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);

                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbStrata.Items.Add(lyrNm);
                    }
                    else
                    {
                        rstDic[lyrNm] = rst;
                    }

                    lyr = rstLyrs.Next();
                }
                rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
                lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string        lyrNm  = lyr.Name;
                    IFeatureLayer rstLyr = (IFeatureLayer)lyr;
                    IFeatureClass rst    = rstLyr.FeatureClass;

                    if (!ftrDic.ContainsKey(lyrNm))
                    {
                        ftrDic.Add(lyrNm, rst);
                        if (rst.ShapeType == esriGeometryType.esriGeometryPolygon)
                        {
                            cmbStrata.Items.Add(lyrNm);
                            cmbStands.Items.Add(lyrNm);
                        }
                        if (rst.ShapeType == esriGeometryType.esriGeometryPoint)
                        {
                            cmbPlots.Items.Add(lyrNm);
                        }
                    }
                    else
                    {
                        ftrDic[lyrNm] = rst;
                    }
                    lyr = rstLyrs.Next();
                }
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Creates a random raster given a template raster (defined extent and cell size)
        /// </summary>
        /// <param name="templateRasterPath">full path location of the template raster</param>
        /// <param name="outRasterPath">the full path location of the output random raster</param>
        /// <returns>geoprocessing messages</returns>
        public string createRandomRaster(string templateRasterPath, string outRasterPath)
        {
            ESRI.ArcGIS.SpatialAnalystTools.CreateRandomRaster cRndRst = new CreateRandomRaster();
            string         bnd     = "";
            IRasterDataset rDset   = rsUtil.openRasterDataset(templateRasterPath, out bnd);
            IRaster        rst     = rsUtil.createRaster(rDset);
            IRasterProps   rstProp = (IRasterProps)rst;
            IPnt           pnt     = rstProp.MeanCellSize();

            cRndRst.cell_size  = pnt.X;
            cRndRst.out_raster = outRasterPath;
            return(getMessages(gpExecute(cRndRst)));
        }
Exemplo n.º 14
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                ILayer     lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);

                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbZoneRaster.Items.Add(lyrNm);
                        cmbValueRaster.Items.Add(lyrNm);
                    }
                    else
                    {
                        rstDic[lyrNm] = rst;
                    }

                    lyr = rstLyrs.Next();
                }
                rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
                lyr     = rstLyrs.Next();
                while (lyr != null)
                {
                    string        lyrNm  = lyr.Name;
                    IFeatureLayer rstLyr = (IFeatureLayer)lyr;
                    IFeatureClass rst    = rstLyr.FeatureClass;

                    if (!ftrDic.ContainsKey(lyrNm))
                    {
                        ftrDic.Add(lyrNm, rst);
                        cmbZoneRaster.Items.Add(lyrNm);
                    }
                    else
                    {
                        ftrDic[lyrNm] = rst;
                    }
                    lyr = rstLyrs.Next();
                }
                foreach (string s in Enum.GetNames(typeof(rasterUtil.zoneType)))
                {
                    cmbZonalStat.Items.Add(s);
                }
            }
        }
Exemplo n.º 15
0
        private static Dictionary <string, double> getStrataProportion(IFunctionRasterDataset strataRaster, rasterUtil rsUtil)
        {
            IRaster2 rs2 = (IRaster2)rsUtil.createRaster(strataRaster);
            Dictionary <string, double> outDic = new Dictionary <string, double>();
            IRasterCursor rsCur = rs2.CreateCursorEx(null);
            //Console.WriteLine(((IRasterProps)rs2).Height.ToString() + ((IRasterProps)rs2).Height.ToString());
            int n = 0;

            do
            {
                IPixelBlock pb = rsCur.PixelBlock;
                //Console.WriteLine("PixelBLock w_h = " + pb.Width.ToString() + "_" + pb.Height.ToString());
                for (int r = 0; r < pb.Height; r++)
                {
                    for (int c = 0; c < pb.Width; c++)
                    {
                        object vlObj = pb.GetVal(0, c, r);
                        if (vlObj != null)
                        {
                            string vl = vlObj.ToString();
                            double vlCnt;
                            if (outDic.TryGetValue(vl, out vlCnt))
                            {
                                outDic[vl] = vlCnt + 1;
                            }
                            else
                            {
                                outDic.Add(vl, 1);
                            }
                            n += 1;
                        }
                        else
                        {
                            //Console.WriteLine("VL Null");
                        }
                    }
                }
            } while (rsCur.Next() == true);
            //Console.WriteLine("OutDic Count = " + outDic.Count.ToString());
            System.Runtime.InteropServices.Marshal.ReleaseComObject(rsCur);
            foreach (string s in outDic.Keys.ToArray())
            {
                double vl = outDic[s];
                outDic[s] = vl / n;
            }
            return(outDic);
        }
Exemplo n.º 16
0
 private void populateComboBox()
 {
     if (mp != null)
     {
         IEnumLayer ftrLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
         ILayer     lyr     = ftrLyrs.Next();
         while (lyr != null)
         {
             string        lyrNm  = lyr.Name;
             IFeatureLayer ftrLyr = (IFeatureLayer)lyr;
             IFeatureClass ftrCls = ftrLyr.FeatureClass;
             try
             {
                 if (ftrCls != null)
                 {
                     if (ftrCls.ShapeType == ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon)
                     {
                         if (!ftrDic.ContainsKey(lyrNm))
                         {
                             ftrDic.Add(lyrNm, ftrCls);
                             cmbSampleFeatureClass.Items.Add(lyrNm);
                         }
                     }
                 }
             }
             catch
             {
             }
             lyr = ftrLyrs.Next();
         }
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         lyr = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer rstLyr = (IRasterLayer)lyr;
             IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
             if (!rstDic.ContainsKey(lyrNm))
             {
                 rstDic.Add(lyrNm, rst);
                 cmbRaster.Items.Add(lyrNm);
                 cmbSampleFeatureClass.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
     }
 }
Exemplo n.º 17
0
        private void populateComboBox()
        {
            if (mp != null)
            {
                IEnumLayer ftrLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
                ILayer     lyr     = ftrLyrs.Next();
                while (lyr != null)
                {
                    string        lyrNm  = lyr.Name;
                    IFeatureLayer ftrLyr = (IFeatureLayer)lyr;
                    IFeatureClass ftrCls = ftrLyr.FeatureClass;
                    if (ftrCls.ShapeType == ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint)
                    {
                        if (!ftrDic.ContainsKey(lyrNm))
                        {
                            ftrDic.Add(lyrNm, ftrCls);
                            cmbSampleFeatureClass.Items.Add(lyrNm);
                        }
                    }
                    lyr = ftrLyrs.Next();
                }
                IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
                lyr = rstLyrs.Next();
                while (lyr != null)
                {
                    string       lyrNm  = lyr.Name;
                    IRasterLayer rstLyr = (IRasterLayer)lyr;
                    IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
                    if (!rstDic.ContainsKey(lyrNm))
                    {
                        rstDic.Add(lyrNm, rst);
                        cmbRaster.Items.Add(lyrNm);
                    }
                    lyr = rstLyrs.Next();
                }
            }
            dgvAzDs.RowCount = 1;
            string sF = "";

            foreach (string s in Enum.GetNames(typeof(rasterUtil.clusterType)))
            {
                cmbCluster.Items.Add(s);
                sF = s;
            }
            cmbCluster.SelectedItem = sF;
        }
Exemplo n.º 18
0
 private void populateComboBox()
 {
     if (mp != null)
     {
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         ILayer     lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer rstLyr = (IRasterLayer)lyr;
             IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
             if (((IRasterBandCollection)rst).Count > 1)
             {
                 for (int i = 0; i < ((IRasterBandCollection)rst).Count; i++)
                 {
                     IRaster rsN  = rsUtil.returnRaster(rsUtil.getBand(rst, i));
                     string  rsNm = lyrNm + "_Band_" + (i + 1).ToString();
                     if (!rstDic.ContainsKey(rsNm))
                     {
                         rstDic.Add(rsNm, rsN);
                         cmbInRaster1.Items.Add(rsNm);
                     }
                     else
                     {
                         rstDic[rsNm] = rsN;
                     }
                 }
             }
             else
             {
                 if (!rstDic.ContainsKey(lyrNm))
                 {
                     rstDic.Add(lyrNm, rst);
                     cmbInRaster1.Items.Add(lyrNm);
                 }
                 else
                 {
                     rstDic[lyrNm] = rst;
                 }
             }
             lyr = rstLyrs.Next();
         }
     }
 }
Exemplo n.º 19
0
 private void populateCmb()
 {
     if (mp != null)
     {
         IEnumLayer rstLyrs = vUtil.getActiveViewLayers(viewUtility.esriIRasterLayer);
         ILayer     lyr     = rstLyrs.Next();
         while (lyr != null)
         {
             string       lyrNm  = lyr.Name;
             IRasterLayer rstLyr = (IRasterLayer)lyr;
             IRaster      rst    = rsUtil.createRaster(((IRaster2)rstLyr.Raster).RasterDataset);
             if (!rstDic.ContainsKey(lyrNm))
             {
                 IDataset dSet = (IDataset)((IRaster2)rst).RasterDataset;
                 rstDic.Add(lyrNm, rsUtil.createIdentityRaster(rst));
                 lyrDic.Add(lyrNm, dSet.Workspace.PathName + "\\" + dSet.BrowseName);
                 lsbLayers.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
         IEnumLayer ftrLyrs = vUtil.getActiveViewLayers(viewUtility.esriIFeatureLayer);
         lyr = ftrLyrs.Next();
         while (lyr != null)
         {
             string        lyrNm  = lyr.Name;
             IFeatureLayer ftrLyr = (IFeatureLayer)lyr;
             IFeatureClass ftrCls = ftrLyr.FeatureClass;
             if (!ftrDic.ContainsKey(lyrNm))
             {
                 ftrDic.Add(lyrNm, ftrCls);
                 IDataset dSet = (IDataset)ftrCls;
                 lyrDic.Add(lyrNm, dSet.Workspace.PathName + "\\" + dSet.BrowseName);
                 lsbLayers.Items.Add(lyrNm);
             }
             lyr = rstLyrs.Next();
         }
     }
     lsbFunctions.Items.AddRange(Enum.GetNames(typeof(batchCalculations.batchGroups)));
     lsbFunctions.SelectedItem = lsbFunctions.Items[0];
 }
Exemplo n.º 20
0
        private double[][] coef      = null; // slope coefficients for each band second double array = {intercept,slope,R2}
        private void getRegVals()
        {
            IRaster2 mRs     = (IRaster2)rsUtil.createRaster(rsUtil.clipRasterFunction(referenceRaster, clipGeo, esriRasterClippingType.esriRasterClippingOutside));
            IRaster2 sRs     = (IRaster2)rsUtil.createRaster(rsUtil.clipRasterFunction(transformRaster, clipGeo, esriRasterClippingType.esriRasterClippingOutside));
            IPnt     pntSize = new PntClass();

            pntSize.SetCoords(250, 250);
            IRasterCursor mRsCur = mRs.CreateCursorEx(pntSize);
            IRasterCursor sRsCur = sRs.CreateCursorEx(pntSize);
            IRasterCursor cRsCur = ((IRaster2)rsUtil.createRaster(clipRs)).CreateCursorEx(pntSize);
            IPixelBlock   mPb, sPb, cPb;
            int           bndCnt = minArray.Length;

            //int curCnt = 1;
            do
            {
                mPb = mRsCur.PixelBlock;
                sPb = sRsCur.PixelBlock;
                cPb = cRsCur.PixelBlock;
                for (int r = 0; r < cPb.Height; r += 50)
                {
                    for (int c = 0; c < cPb.Width; c += 50)
                    {
                        for (int p = 0; p < bndCnt; p++)
                        {
                            double minVl  = minArray[p];
                            double maxVl  = maxArray[p];
                            int    bCnt   = 0;
                            double ySumVl = 0;
                            double xSumVl = 0;
                            int    adw    = (cPb.Width - c);
                            int    adh    = (cPb.Height - r);
                            if (adw > 50)
                            {
                                adw = 50;
                            }
                            if (adh > 50)
                            {
                                adh = 50;
                            }
                            for (int br = 0; br < adh; br++)
                            {
                                for (int bc = 0; bc < adw; bc++)
                                {
                                    int    c2    = c + bc;
                                    int    r2    = r + br;
                                    object vlObj = cPb.GetVal(p, c2, r2);
                                    if (vlObj == null)
                                    {
                                        //Console.WriteLine("Clip Not a number");
                                        continue;
                                    }
                                    else
                                    {
                                        double vl = System.Convert.ToDouble(vlObj);
                                        if (vl <= maxVl && vl >= minVl)
                                        {
                                            object mVlObj = mPb.GetVal(p, c2, r2);
                                            object sVlObj = sPb.GetVal(p, c2, r2);
                                            if (mVlObj == null || sVlObj == null)
                                            {
                                                //Console.WriteLine("master or slave is null");
                                                continue;
                                            }
                                            else
                                            {
                                                //Console.WriteLine(mVlObj.ToString() + ", " + sVlObj.ToString());
                                                ySumVl += System.Convert.ToDouble(mVlObj);
                                                xSumVl += System.Convert.ToDouble(sVlObj);
                                                bCnt   += 1;
                                            }
                                        }
                                        else
                                        {
                                            continue;
                                        }
                                    }
                                }
                            }
                            if (bCnt == 0)
                            {
                                continue;
                            }
                            else
                            {
                                double yBlock = ySumVl / bCnt;
                                double xBlock = xSumVl / bCnt;
                                //Console.WriteLine(yBlock.ToString() + ", " + xBlock.ToString());
                                sumYArray[p]      = sumYArray[p] + yBlock;
                                sumXArray[p]      = sumXArray[p] + xBlock;
                                sumXYArray[p]     = sumXYArray[p] + (yBlock * xBlock);
                                sumX2Array[p]     = sumX2Array[p] + (xBlock * xBlock);
                                sumY2Array[p]     = sumY2Array[p] + (yBlock * yBlock);
                                blockCellCount[p] = blockCellCount[p] + 1;
                            }
                        }
                    }
                }
                mRsCur.Next();
                sRsCur.Next();
                //Console.WriteLine(curCnt.ToString());
                //curCnt++;
            } while (cRsCur.Next() == true);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(cRsCur);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(mRsCur);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRsCur);
            for (int i = 0; i < bndCnt; i++)
            {
                double n     = System.Convert.ToDouble(blockCellCount[i]);
                double meanX = sumXArray[i] / n;
                double meanY = sumYArray[i] / n;
                //double meanX2 = sumX2Array[i]/n;
                //double meanXY = sumXYArray[i]/n;
                //Console.WriteLine("numb of cells = " + n.ToString());
                //Console.WriteLine(meanX.ToString() + ", " + meanY.ToString() + ", " + meanX2.ToString() + ", " + meanXY.ToString());
                double slope     = (n * sumXYArray[i] - (sumXArray[i] * sumYArray[i])) / (n * sumX2Array[i] - (System.Math.Pow(sumXArray[i], 2)));
                double intercept = meanY - (slope * meanX);
                double r2        = System.Math.Pow((n * sumXYArray[i] - (sumXArray[i] * sumYArray[i])) / (System.Math.Sqrt((n * sumX2Array[i] - (System.Math.Pow(sumXArray[i], 2)))) * System.Math.Sqrt(n * sumY2Array[i] - System.Math.Pow(sumYArray[i], 2))), 2);
                //Console.WriteLine("Intercept and Slope = " + intercept.ToString() + ", " + slope.ToString());
                coef[i] = new double[3] {
                    intercept, slope, r2
                };
            }
        }
Exemplo n.º 21
0
        private static Dictionary <string, double[][]> getDictionaryValues(ESRI.ArcGIS.Geodatabase.IFeatureClass pointFtr, ESRI.ArcGIS.Geodatabase.IField[] fldsToSummarize, IFunctionRasterDataset strataRaster, geoDatabaseUtility geoUtil, rasterUtil rsUtil)
        {
            IRaster2 rs2 = (IRaster2)rsUtil.createRaster(strataRaster);

            int[] ptfldIndex = new int[fldsToSummarize.Length];
            for (int i = 0; i < ptfldIndex.Length; i++)
            {
                ptfldIndex[i] = pointFtr.FindField(fldsToSummarize[i].Name);
            }
            Dictionary <string, double[][]> outDic = new Dictionary <string, double[][]>();
            IFeatureCursor sCur = pointFtr.Search(null, true);
            IFeature       sFtr = sCur.NextFeature();

            while (sFtr != null)
            {
                IGeometry geo = sFtr.Shape;
                IPoint    pnt = (IPoint)geo;
                int       clm, rw;
                rs2.MapToPixel(pnt.X, pnt.Y, out clm, out rw);
                object strataVlObj = rs2.GetPixelValue(0, clm, rw);
                if (strataVlObj != null)
                {
                    string     strataVl = strataVlObj.ToString();
                    double[][] vlArr;
                    if (outDic.TryGetValue(strataVl, out vlArr))
                    {
                        for (int i = 0; i < ptfldIndex.Length; i++)
                        {
                            object vlObj = sFtr.get_Value(ptfldIndex[i]);
                            if (vlObj != null)
                            {
                                double vl = System.Convert.ToDouble(vlObj);
                                vlArr[i][0] += vl;
                                vlArr[i][1] += (vl * vl);
                                vlArr[i][2] += 1;
                            }
                        }
                    }
                    else
                    {
                        vlArr = new double[fldsToSummarize.Length][];
                        for (int i = 0; i < ptfldIndex.Length; i++)
                        {
                            double[] vlSumArr = new double[3];
                            object   vlObj    = sFtr.get_Value(ptfldIndex[i]);
                            if (vlObj != null && !System.Convert.IsDBNull(vlObj))
                            {
                                double vl = System.Convert.ToDouble(vlObj);
                                vlSumArr[0] = vl;
                                vlSumArr[1] = (vl * vl);
                                vlSumArr[2] = 1;
                            }
                            vlArr[i] = vlSumArr;
                        }
                        outDic[strataVl] = vlArr;
                    }
                }
                sFtr = sCur.NextFeature();
            }
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sCur);
            return(outDic);
        }
Exemplo n.º 22
0
        private void btnExecute_Click(object sender, EventArgs e)
        {
            string rstNm = txtOutNm.Text;
            string funNm = cmbFunction.Text;

            if (rstNm == null || rstNm == "")
            {
                MessageBox.Show("You must specify a output name", "No Output", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (lsbRaster.Items.Count < 1)
            {
                MessageBox.Show("You must select at least on Raster", "No Rasters", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (funNm == null || funNm == "")
            {
                MessageBox.Show("You must select at least on function", "No Funciton Selected", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            IRasterBandCollection rsBc = new RasterClass();

            for (int i = 0; i < lsbRaster.Items.Count; i++)
            {
                rsBc.AppendBands((IRasterBandCollection)rstDic[lsbRaster.Items[i].ToString()]);
            }
            IFunctionRasterDataset fDset = rsUtil.compositeBandFunction(rsBc);

            rasterUtil.localType op = (rasterUtil.localType)Enum.Parse(typeof(rasterUtil.localType), funNm);
            this.Visible = false;
            esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false);
            DateTime dt = DateTime.Now;

            rp.addMessage("Summarizing Rasters. This may take a while...");
            rp.stepPGBar(10);
            rp.TopMost = true;
            rp.Show();
            try
            {
                outraster = rsUtil.createRaster(rsUtil.localStatisticsfunction(fDset, op));
                if (mp != null && addToMap)
                {
                    rp.addMessage("Calculating Statistics...");

                    rp.Refresh();
                    IRasterLayer rstLyr = new RasterLayerClass();
                    //rsUtil.calcStatsAndHist(((IRaster2)outraster).RasterDataset);
                    rstLyr.CreateFromRaster(outraster);
                    rstLyr.Name    = rstNm;
                    rstLyr.Visible = false;
                    mp.AddLayer(rstLyr);
                }
                outrastername     = rstNm;
                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 Summarizing Rasters" + t);
                rp.enableClose();
                this.Close();
            }
        }
Exemplo n.º 23
0
        static void Main(string[] args)
        {
            //ESRI License Initializer generated code.
            m_AOLicenseInitializer.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeAdvanced }, new esriLicenseExtensionCode[] { esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst });//{esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst});
            System.DateTime dt = System.DateTime.Now;

            System.DateTime dt2;
            TimeSpan        ts;

            rasterUtil         rsUtil  = new rasterUtil();
            geoDatabaseUtility geoUtil = new geoDatabaseUtility();
            string             pred    = @"C:\Users\jshogland\Documents\John\projects\FtStewart\models\TreeEstimates\HdwPresentPred.bch";
            string             mdl     = @"C:\Users\jshogland\Documents\John\projects\FtStewart\models\TreeEstimates\HdwPresent.mdl";

            double[] minArr, maxArr;
            Console.WriteLine("Getting Min Max");
            batchCalculations.getMinMaxArr(mdl, out minArr, out maxArr);
            Console.WriteLine("First Min Max: " + minArr[0].ToString() + ";" + maxArr[0].ToString());
            IFunctionRasterDataset fdset = rsUtil.extactModelDomainFunction(pred, minArr, maxArr);

            Console.WriteLine(fdset.RasterInfo.PixelType.ToString());
            IRaster rs      = rsUtil.createRaster(fdset);
            IPnt    pntSize = new PntClass();

            pntSize.SetCoords(100, 100);
            IPixelBlock pb = rs.CreatePixelBlock(pntSize);

            rs.Read(pntSize, pb);
            int cnt = 0;

            for (int r = 0; r < pb.Height; r++)
            {
                for (int c = 0; c < pb.Width; c++)
                {
                    object vl = pb.GetVal(0, c, r);
                    if (vl != null)
                    {
                        if (System.Convert.ToInt32(vl) == 0)
                        {
                            cnt++;
                        }
                    }
                }
            }
            Console.WriteLine("Total zeros = " + cnt.ToString());
            //string dir = @"C:\Users\jshogland\Documents\John\projects\UMGradSchool\Classes\Mining Big Data\Assignments\NatureServe\train\ALB";
            //string[] fls = System.IO.Directory.GetFiles(dir, "*.jpg");
            //foreach (string flPath in fls)
            //{
            //    string nm = System.IO.Path.GetFileNameWithoutExtension(flPath);
            //    Console.WriteLine(nm);
            //    Bitmap bm = new Bitmap(flPath);
            //    Accord.Imaging.Moments.CentralMoments cm = new Accord.Imaging.Moments.CentralMoments(bm, 3);
            //    //Console.WriteLine(cm.Mu00.ToString());
            //    Console.WriteLine("\t"+cm.Mu01.ToString());
            //    Console.WriteLine("\t" + cm.Mu02.ToString());
            //    Console.WriteLine("\t" + cm.Mu03.ToString());
            //    Console.WriteLine("\t" + cm.Mu10.ToString());
            //    Console.WriteLine("\t" + cm.Mu20.ToString());
            //    Console.WriteLine("\t" + cm.Mu30.ToString());
            //}

            //string plots = @"C:\Users\jshogland\Documents\John\projects\UMGradSchool\Project\papers\Co-registration\Data\coReg.gdb\SampleLocations";
            //string ls= @"C:\Users\jshogland\Documents\John\projects\UMGradSchool\Project\papers\Co-registration\Data\FloridaLandsat.tif";
            //string naip= @"C:\Users\jshogland\Documents\John\projects\UMGradSchool\Project\papers\Co-registration\Data\GeorgiaNaipAgAl.tif";
            //rasterUtil rsUtil = new rasterUtil();



            //HashSet<string> uStr = new HashSet<string>();
            //int[] filesLines = getClasses(prjDir,ref uStr);
            //Console.WriteLine("Files = " + filesLines[0].ToString());
            //Console.WriteLine("Lines = " + filesLines[1].ToString());
            //Console.WriteLine(uStr.Count().ToString());



            //geoDatabaseUtility geoUtil = new geoDatabaseUtility();
            //rasterUtil rsUtil = new rasterUtil();
            //featureUtil ftrUtil = new featureUtil(rsUtil);
            ////string origPath = @"C:\Users\jshogland\Documents\John\projects\SpatialAdjust\Shift.gdb\OriginalSample";
            ////string nwPath = @"C:\Users\jshogland\Documents\John\projects\SpatialAdjust\Shift.gdb\RandomtShiftSample";
            ////CreateNewPoints(origPath, nwPath, rsUtil, ftrUtil, geoUtil, true);
            //string fiaTestPath = @"C:\Users\jshogland\Documents\John\projects\SpatialAdjust\Shift.gdb\RandomtShiftSample";
            //string fiaOutPath = @"C:\Users\jshogland\Documents\John\projects\SpatialAdjust\Shift.gdb\adjustSample";
            //string rsPath = @"C:\Users\jshogland\Documents\John\projects\SpatialAdjust\models\predictorsOneVariable.bch";
            //IFunctionRasterDataset fDset = rsUtil.createIdentityRaster(rsPath);
            //IFeatureClass ftrCls = geoUtil.getFeatureClass(fiaTestPath);
            //int error = 15;
            //adjustCoregistrationErrors aE = new adjustCoregistrationErrors(rsUtil);
            //aE.FunctionRasterDataset = fDset;
            //aE.DependentField = "Pred15";
            //aE.GeometricErrorCells = error;
            //aE.OutFtrClassPath = fiaOutPath;
            //aE.PlotFeatureClass = ftrCls;
            //aE.adjustErrors();
            dt2 = System.DateTime.Now;
            ts  = dt2.Subtract(dt);
            Console.WriteLine("Total Seconds = " + ts.TotalSeconds.ToString());

            m_AOLicenseInitializer.ShutdownApplication();
        }
Exemplo n.º 24
0
        private void createPeriodRasters(int iterationNumber)
        {
            string rpFile = resultsDir + "\\Out_Int_RP_" + iterationNumber.ToString() + ".txt";
            List <HashSet <int> > pLst         = new List <HashSet <int> >();
            List <IRemapFilter>   remapFiltLst = new List <IRemapFilter>();

            for (int i = 1; i <= numPer; i++)
            {
                pLst.Add(new HashSet <int>());
                IRemapFilter flt = new RemapFilterClass();
                remapFiltLst.Add(flt);
            }
            using (System.IO.StreamReader sr = new System.IO.StreamReader(rpFile))
            {
                string ln = sr.ReadLine();
                while ((ln = sr.ReadLine()) != null)
                {
                    string[] lnArr = ln.Split(new char[] { '\t' });
                    if ((lnArr.Length) < 6)
                    {
                        break;
                    }
                    int period = System.Convert.ToInt32(lnArr[3]);
                    int id     = System.Convert.ToInt32(lnArr[0]);
                    if (period > 0)
                    {
                        HashSet <int> oLst = pLst[period - 1];
                        oLst.Add(id);
                        pLst[period - 1] = oLst;
                    }
                }
                sr.Close();
            }
            Dictionary <int, int> vlDic = rsUtil.buildVat(treatGrid);

            //IRasterInfo2 rsInfo2 = (IRasterInfo2)treatGrid.RasterInfo;
            //ITable rsVat = rsInfo2.AttributeTable;
            //if (rsVat == null)
            //{

            //}
            //ICursor cur = null;
            //cur = rsVat.Search(null, false);
            //int valueIndex = cur.FindField("Value");
            //IRow rw = cur.NextRow();
            //while (rw != null)
            foreach (int vl in vlDic.Keys)
            {
                for (int i = 1; i <= numPer; i++)
                {
                    IRemapFilter  fl  = remapFiltLst[i - 1];
                    HashSet <int> lst = pLst[i - 1];
                    int           nVl = 0;
                    if (lst.Contains(vl))
                    {
                        nVl = 1;
                        //Console.WriteLine("Add Value Remap Class = " + vl.ToString() + " to " + nVl.ToString());
                    }

                    fl.AddClass(vl, vl + 0.000001, nVl);
                }
            }
            periodRasterLst.Clear();
            for (int i = 1; i <= numPer; i++)
            {
                IRemapFilter flt = remapFiltLst[i - 1];

                IFunctionRasterDataset oRs = rsUtil.calcRemapFunction(treatGrid, flt);// reSampleRasterGrid(rsUtil.calcRemapFunction(treatGrid, flt));
                if (createinter)
                {
                    rsUtil.saveRasterToDataset(rsUtil.createRaster(oRs), "Treat_" + iterationNumber.ToString() + i.ToString(), wks, rasterUtil.rasterType.IMAGINE);
                }
                periodRasterLst.Add(oRs);
            }
        }