public static void estimateStatistics(IRaster outRaster, rstPixelType pType) { IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; for (int i = 0; i < rsbco.Count; i++) { IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } switch (pType) { case rstPixelType.PT_CHAR: rsBStatso.Maximum = Char.MaxValue; rsBStatso.Minimum = Char.MinValue + 1; break; case rstPixelType.PT_FLOAT: rsBStatso.Maximum = Single.MaxValue; rsBStatso.Minimum = Single.MinValue + 1; break; case rstPixelType.PT_LONG: rsBStatso.Maximum = long.MaxValue; rsBStatso.Minimum = long.MinValue + 1; break; case rstPixelType.PT_SHORT: rsBStatso.Maximum = short.MaxValue; rsBStatso.Minimum = short.MinValue + 1; break; case rstPixelType.PT_U1: rsBStatso.Maximum = 1; rsBStatso.Minimum = 0; break; case rstPixelType.PT_U2: rsBStatso.Maximum = 3; rsBStatso.Minimum = 0; break; case rstPixelType.PT_U4: rsBStatso.Maximum = 15; rsBStatso.Minimum = 0; break; case rstPixelType.PT_UCHAR: rsBStatso.Maximum = 255; rsBStatso.Minimum = 0; break; case rstPixelType.PT_ULONG: rsBStatso.Maximum = ulong.MaxValue-1; rsBStatso.Minimum = 0; break; case rstPixelType.PT_USHORT: rsBStatso.Maximum = ushort.MaxValue-1; rsBStatso.Minimum = 0; break; default: break; } } }
public static void estimateStatistics(IRaster inRaster, IRaster outRaster, rasterUtil.focalType statType,double cells) { IRasterBandCollection rsbci = (IRasterBandCollection)inRaster; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; for (int i = 0; i < rsbci.Count; i++) { IRasterBand rsBi = rsbci.Item(i); IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatsi = rsBi.Statistics; IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatsi == null) { continue; } if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } switch (statType) { case rasterUtil.focalType.MAX: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.MIN: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.SUM: rsBStatso.Maximum = rsBStatsi.Maximum*cells; rsBStatso.Minimum = rsBStatsi.Minimum*cells; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation*cells; rsBStatso.Mean = rsBStatsi.Mean*cells; break; case rasterUtil.focalType.MEAN: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.MODE: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.MEDIAN: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.VARIANCE: rsBStatso.Maximum = rsBStatsi.Maximum; rsBStatso.Minimum = rsBStatsi.Minimum; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation; rsBStatso.Mean = rsBStatsi.Mean; break; case rasterUtil.focalType.STD: rsBStatso.Mean = rsBStatsi.StandardDeviation; rsBStatso.Maximum = rsBStatso.Mean*1.96; rsBStatso.Minimum = rsBStatso.Mean-(rsBStatso.Maximum-rsBStatso.Mean); rsBStatso.StandardDeviation = (rsBStatso.Maximum-rsBStatso.Mean)/3; break; case rasterUtil.focalType.UNIQUE: rsBStatso.Maximum = cells; rsBStatso.Minimum = 1; rsBStatso.Mean = cells / 2; rsBStatso.StandardDeviation = (rsBStatso.Maximum - rsBStatso.Mean) / 3; break; case rasterUtil.focalType.ENTROPY: rsBStatso.Maximum = cells*0.4*(-1*0.4*Math.Log(0.4)); rsBStatso.Minimum = 0; rsBStatso.Mean = rsBStatso.Maximum / 2; rsBStatso.StandardDeviation = (rsBStatso.Maximum - rsBStatso.Mean) / 3; break; case rasterUtil.focalType.ASM: rsBStatso.Maximum = 1; rsBStatso.Minimum = 0; rsBStatso.Mean = rsBStatso.Maximum / 2; rsBStatso.StandardDeviation = (rsBStatso.Maximum - rsBStatso.Mean) / 3; break; default: break; } } }
public static void estimateStatistics(double rasterValue, IRaster outRaster) { IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; for (int i = 0; i < rsbco.Count; i++) { IRasterBand rsB = rsbco.Item(i); IRasterStatistics rStat = rsB.Statistics; if (rStat == null) { rStat = new RasterStatistics(); } rStat.Minimum = rasterValue; rStat.Maximum = rasterValue; rStat.Mean = rasterValue; rStat.StandardDeviation = 0; } }
public static void estimateStatistics(IRaster inRaster, IRaster outRaster, rasterUtil.localType localType) { IRasterBandCollection rsbci = (IRasterBandCollection)inRaster; double[] bMaxArr = new double[rsbci.Count]; double[] bMinArr = new double[rsbci.Count]; double[] bMeanArr = new double[rsbci.Count]; double[] bStdArr = new double[rsbci.Count]; double[] bModeArr = new double[rsbci.Count]; double[] bMedianArr = new double[rsbci.Count]; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; IRasterStatistics rsStatso = rsbco.Item(0).Statistics; if (rsStatso == null) { rsStatso = new RasterStatistics(); } for (int i = 0; i < rsbci.Count; i++) { IRasterBand rsBi = rsbci.Item(i); IRasterStatistics rsBStatsi = rsBi.Statistics; if (rsBStatsi == null) { continue; } bMaxArr[i] = rsBStatsi.Maximum; bMinArr[i] = rsBStatsi.Minimum; bMeanArr[i] = rsBStatsi.Mean; bStdArr[i] = rsBStatsi.StandardDeviation; } switch (localType) { case rasterUtil.localType.MAX: rsStatso.Maximum = bMaxArr.Max(); rsStatso.Minimum = bMinArr.Max(); rsStatso.Mean = bMeanArr.Max(); rsStatso.StandardDeviation = bStdArr.Max(); break; case rasterUtil.localType.MIN: rsStatso.Maximum = bMaxArr.Min(); rsStatso.Minimum = bMinArr.Min(); rsStatso.Mean = bMeanArr.Min(); rsStatso.StandardDeviation = bStdArr.Min(); break; case rasterUtil.localType.MAXBAND: case rasterUtil.localType.MINBAND: rsStatso.Maximum = rsbci.Count; rsStatso.Minimum = 1; rsStatso.Mean = rsbci.Count/2; rsStatso.StandardDeviation = (rsStatso.Mean*0.48)/3; break; case rasterUtil.localType.SUM: rsStatso.Mean = bMeanArr.Sum(); rsStatso.Maximum = bMaxArr.Sum(); rsStatso.Minimum = bMinArr.Sum(); rsStatso.StandardDeviation = bStdArr.Sum(); break; case rasterUtil.localType.MULTIPLY: rsStatso.Mean = iterValues(bMeanArr,localType); rsStatso.Maximum = iterValues(bMeanArr, localType); rsStatso.Minimum = iterValues(bMeanArr, localType); rsStatso.StandardDeviation = iterValues(bMeanArr, localType); break; case rasterUtil.localType.DIVIDE: rsStatso.Mean = iterValues(bMeanArr, localType); rsStatso.Maximum = iterValues(bMeanArr, localType); rsStatso.Minimum = iterValues(bMeanArr, localType); rsStatso.StandardDeviation = iterValues(bMeanArr, localType); break; case rasterUtil.localType.SUBTRACT: rsStatso.Mean = iterValues(bMeanArr, localType); rsStatso.Maximum = iterValues(bMeanArr, localType); rsStatso.Minimum = iterValues(bMeanArr, localType); rsStatso.StandardDeviation = iterValues(bMeanArr, localType); break; case rasterUtil.localType.POWER: rsStatso.Mean = iterValues(bMeanArr, localType); rsStatso.Maximum = iterValues(bMeanArr, localType); rsStatso.Minimum = iterValues(bMeanArr, localType); rsStatso.StandardDeviation = iterValues(bMeanArr, localType); break; case rasterUtil.localType.MEAN: rsStatso.Mean = bMeanArr.Average(); rsStatso.Maximum = bMaxArr.Average(); rsStatso.Minimum = bMinArr.Average(); rsStatso.StandardDeviation = bStdArr.Average(); break; case rasterUtil.localType.VARIANCE: double stdMean = bStdArr.Average(); rsStatso.Mean = Math.Pow(stdMean,2); rsStatso.Maximum = Math.Pow(stdMean*1.65,2); rsStatso.Minimum = Math.Pow(stdMean-(stdMean*0.65),2); rsStatso.StandardDeviation = Math.Pow(stdMean*.21666666,2); break; case rasterUtil.localType.STD: rsStatso.Mean = bStdArr.Average(); rsStatso.Maximum = rsStatso.Mean*1.65; rsStatso.Minimum = rsStatso.Mean - (rsStatso.Mean*0.65); rsStatso.StandardDeviation = rsStatso.Mean*.21666666; break; case rasterUtil.localType.MODE: rsStatso.Mean = bModeArr.Average(); rsStatso.Maximum = bModeArr.Max(); rsStatso.Minimum = bModeArr.Min(); rsStatso.StandardDeviation = rsStatso.Mean * 0.2166666; break; case rasterUtil.localType.MEDIAN: rsStatso.Mean = bMedianArr.Average(); rsStatso.Maximum = bMedianArr.Max(); rsStatso.Minimum = bMedianArr.Min(); rsStatso.StandardDeviation = rsStatso.Mean * 0.2166666; break; case rasterUtil.localType.UNIQUE: rsStatso.Maximum = rsbci.Count; rsStatso.Minimum = 1; rsStatso.Mean = rsbci.Count/2; rsStatso.StandardDeviation = (rsStatso.Mean*0.48)/3; break; case rasterUtil.localType.ENTROPY: rsStatso.Maximum = (-1*0.4*Math.Log(0.4))*(rsbci.Count*.4); rsStatso.Minimum = 0; rsStatso.Mean = (rsStatso.Maximum-rsStatso.Minimum)/2; rsStatso.StandardDeviation = (rsStatso.Mean*0.48)/3; break; default: break; } }
public static void estimateStatistics(object inRaster1, object inRaster2, IRaster outRaster, esriRasterArithmeticOperation arithmeticType) { if (inRaster1 is Raster&&inRaster2 is IScalar) { IRasterBandCollection rsbci = (IRasterBandCollection)inRaster1; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; double[] sc = (double[])((IScalar)inRaster2).Value; for (int i = 0; i < rsbci.Count; i++) { IRasterBand rsBi = rsbci.Item(i); IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatsi = rsBi.Statistics; IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatsi == null) { continue; } if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } double vl = sc[i]; switch (arithmeticType) { case esriRasterArithmeticOperation.esriRasterDivide: rsBStatso.Minimum = rsBStatsi.Minimum / vl; rsBStatso.Maximum = rsBStatsi.Maximum / vl; rsBStatso.Mean = rsBStatsi.Mean / vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation / vl; break; case esriRasterArithmeticOperation.esriRasterMinus: rsBStatso.Minimum = rsBStatsi.Minimum - vl; rsBStatso.Maximum = rsBStatsi.Maximum - vl; rsBStatso.Mean = rsBStatsi.Mean - vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation - vl; break; case esriRasterArithmeticOperation.esriRasterMode: rsBStatso.Minimum = rsBStatsi.Minimum % vl; rsBStatso.Maximum = rsBStatsi.Maximum % vl; rsBStatso.Mean = rsBStatsi.Mean % vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation % vl; break; case esriRasterArithmeticOperation.esriRasterMultiply: rsBStatso.Minimum = rsBStatsi.Minimum * vl; rsBStatso.Maximum = rsBStatsi.Maximum * vl; rsBStatso.Mean = rsBStatsi.Mean * vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation * vl; break; case esriRasterArithmeticOperation.esriRasterPlus: rsBStatso.Minimum = rsBStatsi.Minimum + vl; rsBStatso.Maximum = rsBStatsi.Maximum + vl; rsBStatso.Mean = rsBStatsi.Mean + vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation + vl; break; case esriRasterArithmeticOperation.esriRasterPower: rsBStatso.Minimum = Math.Pow(rsBStatsi.Minimum,vl); rsBStatso.Maximum = Math.Pow(rsBStatsi.Maximum,vl); rsBStatso.Mean = Math.Pow(rsBStatsi.Mean,vl); rsBStatso.StandardDeviation = Math.Pow(rsBStatsi.StandardDeviation, vl); break; default: break; } } } else if(inRaster1 is Scalar&&inRaster2 is Raster) { IRasterBandCollection rsbci = (IRasterBandCollection)inRaster2; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; double[] sc = (double[])((IScalar)inRaster1).Value; for (int i = 0; i < rsbci.Count; i++) { IRasterBand rsBi = rsbci.Item(i); IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatsi = rsBi.Statistics; IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatsi == null) { continue; } if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } double vl = sc[i]; switch (arithmeticType) { case esriRasterArithmeticOperation.esriRasterDivide: rsBStatso.Minimum = rsBStatsi.Minimum / vl; rsBStatso.Maximum = rsBStatsi.Maximum / vl; rsBStatso.Mean = rsBStatsi.Mean / vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation / vl; break; case esriRasterArithmeticOperation.esriRasterMinus: rsBStatso.Minimum = rsBStatsi.Minimum - vl; rsBStatso.Maximum = rsBStatsi.Maximum - vl; rsBStatso.Mean = rsBStatsi.Mean - vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation - vl; break; case esriRasterArithmeticOperation.esriRasterMode: rsBStatso.Minimum = rsBStatsi.Minimum % vl; rsBStatso.Maximum = rsBStatsi.Maximum % vl; rsBStatso.Mean = rsBStatsi.Mean % vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation % vl; break; case esriRasterArithmeticOperation.esriRasterMultiply: rsBStatso.Minimum = rsBStatsi.Minimum * vl; rsBStatso.Maximum = rsBStatsi.Maximum * vl; rsBStatso.Mean = rsBStatsi.Mean * vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation * vl; break; case esriRasterArithmeticOperation.esriRasterPlus: rsBStatso.Minimum = rsBStatsi.Minimum + vl; rsBStatso.Maximum = rsBStatsi.Maximum + vl; rsBStatso.Mean = rsBStatsi.Mean + vl; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation + vl; break; case esriRasterArithmeticOperation.esriRasterPower: rsBStatso.Minimum = Math.Pow(rsBStatsi.Minimum, vl); rsBStatso.Maximum = Math.Pow(rsBStatsi.Maximum, vl); rsBStatso.Mean = Math.Pow(rsBStatsi.Mean, vl); rsBStatso.StandardDeviation = Math.Pow(rsBStatsi.StandardDeviation, vl); break; default: break; } } } else { IRasterBandCollection rsbci1 = (IRasterBandCollection)inRaster1; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; IRasterBandCollection rsbci2 = (IRasterBandCollection)inRaster1; for (int i = 0; i < rsbci1.Count; i++) { IRasterBand rsBi1 = rsbci1.Item(i); IRasterBand rsBi2 = rsbci2.Item(i); IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatsi1 = rsBi1.Statistics; IRasterStatistics rsBStatsi2 = rsBi2.Statistics; IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatsi1 == null||rsBStatsi2==null) { continue; } if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } switch (arithmeticType) { case esriRasterArithmeticOperation.esriRasterDivide: rsBStatso.Minimum = rsBStatsi1.Minimum / rsBStatsi2.Minimum; rsBStatso.Maximum = rsBStatsi1.Maximum / rsBStatsi2.Maximum; rsBStatso.Mean = rsBStatsi1.Mean / rsBStatsi2.Mean; rsBStatso.StandardDeviation = rsBStatsi1.StandardDeviation / rsBStatsi2.StandardDeviation; break; case esriRasterArithmeticOperation.esriRasterMinus: rsBStatso.Minimum = rsBStatsi1.Minimum - rsBStatsi2.Maximum; rsBStatso.Maximum = rsBStatsi1.Maximum - rsBStatsi2.Minimum; rsBStatso.Mean = (rsBStatsi1.Mean + rsBStatsi2.Mean)/2; rsBStatso.StandardDeviation = (rsBStatsi1.StandardDeviation + rsBStatsi2.Minimum)/2; break; case esriRasterArithmeticOperation.esriRasterMode: rsBStatso.Minimum = rsBStatsi1.Minimum % rsBStatsi2.Minimum; rsBStatso.Maximum = rsBStatsi1.Maximum % rsBStatsi2.Maximum; rsBStatso.Mean = rsBStatsi1.Mean % rsBStatsi2.Mean; rsBStatso.StandardDeviation = rsBStatsi1.StandardDeviation % rsBStatsi2.StandardDeviation; break; case esriRasterArithmeticOperation.esriRasterMultiply: rsBStatso.Minimum = rsBStatsi1.Minimum / rsBStatsi2.Minimum; rsBStatso.Maximum = rsBStatsi1.Maximum / rsBStatsi2.Maximum; rsBStatso.Mean = rsBStatsi1.Mean / rsBStatsi2.Mean; rsBStatso.StandardDeviation = rsBStatsi1.StandardDeviation / rsBStatsi2.StandardDeviation; break; case esriRasterArithmeticOperation.esriRasterPlus: rsBStatso.Minimum = rsBStatsi1.Minimum + rsBStatsi2.Maximum; rsBStatso.Maximum = rsBStatsi1.Maximum + rsBStatsi2.Minimum; rsBStatso.Mean = (rsBStatsi1.Mean + rsBStatsi2.Mean)/2; rsBStatso.StandardDeviation = (rsBStatsi1.StandardDeviation + rsBStatsi2.Minimum)/2; break; case esriRasterArithmeticOperation.esriRasterPower: rsBStatso.Minimum = Math.Pow(rsBStatsi1.Minimum, rsBStatsi2.Minimum); rsBStatso.Maximum = Math.Pow(rsBStatsi1.Maximum, rsBStatsi2.Maximum); rsBStatso.Mean = Math.Pow(rsBStatsi1.Mean, rsBStatsi2.Mean); rsBStatso.StandardDeviation = Math.Pow(rsBStatsi1.StandardDeviation, rsBStatsi2.StandardDeviation); break; default: break; } } } }
public static void estimateStatistics(IRaster inRaster, IRaster outRaster, rasterUtil.transType transType) { IRasterBandCollection rsbci = (IRasterBandCollection)inRaster; IRasterBandCollection rsbco = (IRasterBandCollection)outRaster; for (int i = 0; i < rsbci.Count; i++) { IRasterBand rsBi = rsbci.Item(i); IRasterBand rsBo = rsbco.Item(i); IRasterStatistics rsBStatsi = rsBi.Statistics; IRasterStatistics rsBStatso = rsBo.Statistics; if (rsBStatsi == null) { continue; } if (rsBStatso == null) { rsBStatso = new RasterStatistics(); } switch (transType) { case rasterUtil.transType.LOG10: rsBStatso.Maximum = Math.Log10(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Log10(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Log10(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Log10(rsBStatsi.Mean); break; case rasterUtil.transType.LN: rsBStatso.Maximum = Math.Log(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Log(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Log(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Log(rsBStatsi.Mean); break; case rasterUtil.transType.EXP: rsBStatso.Maximum = Math.Exp(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Exp(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Exp(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Exp(rsBStatsi.Mean); break; case rasterUtil.transType.EXP10: rsBStatso.Maximum = Math.Pow(10,rsBStatsi.Maximum); rsBStatso.Minimum = Math.Pow(10, rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Pow(10, rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Pow(10, rsBStatsi.Mean); break; case rasterUtil.transType.ABS: rsBStatso.Maximum = Math.Abs(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Abs(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Abs(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Abs(rsBStatsi.Mean); break; case rasterUtil.transType.SIN: rsBStatso.Maximum = Math.Sin(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Sin(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Sin(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Sin(rsBStatsi.Mean); break; case rasterUtil.transType.COS: rsBStatso.Maximum = 1; rsBStatso.Minimum = -1; rsBStatso.StandardDeviation = Math.Cos(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Cos(rsBStatsi.Mean); break; case rasterUtil.transType.TAN: rsBStatso.Maximum = Math.Tan(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Tan(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Tan(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Tan(rsBStatsi.Mean); break; case rasterUtil.transType.ASIN: rsBStatso.Maximum = Math.Asin(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Asin(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Asin(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Asin(rsBStatsi.Mean); break; case rasterUtil.transType.ACOS: rsBStatso.Maximum = Math.Acos(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Acos(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Acos(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Acos(rsBStatsi.Mean); break; case rasterUtil.transType.ATAN: rsBStatso.Maximum = Math.Atan(rsBStatsi.Maximum); rsBStatso.Minimum = Math.Atan(rsBStatsi.Minimum); rsBStatso.StandardDeviation = Math.Atan(rsBStatsi.StandardDeviation); rsBStatso.Mean = Math.Atan(rsBStatsi.Mean); break; case rasterUtil.transType.RADIANS: rsBStatso.Maximum = rsBStatsi.Maximum*Math.PI/180; rsBStatso.Minimum = rsBStatsi.Minimum * Math.PI / 180; rsBStatso.StandardDeviation = rsBStatsi.StandardDeviation * Math.PI / 180; rsBStatso.Mean = rsBStatsi.Mean * Math.PI / 180; break; default: break; } } }