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(); }
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(); } } }
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); } }
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(); }
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()); } }
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(); } } }
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); }
//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); }
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); } }
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); }
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); } }
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(); } } }
/// <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))); }
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); } } }
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); }
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(); } } }
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; }
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(); } } }
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]; }
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 }; } }
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); }
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(); } }
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(); }
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); } }