private static double GetAreaBase(IRasterDataProvider rdp, double areaBase) { try { double lon = rdp.CoordEnvelope.Center.X; double lat = rdp.CoordEnvelope.Center.Y; areaBase = AreaCountHelper.CalcArea(lon, lat, rdp.ResolutionX, rdp.ResolutionX); } finally { if (rdp != null) { rdp.Dispose(); } } return(areaBase); }
private double CalcTotalArea(IRasterDataProvider dataProvider, int[] aoi, float minValue, float maxValue) { double convertArea = 0; IRasterOperator <Int16> rasterOper = new RasterOperator <Int16>(); int count = rasterOper.Count(dataProvider, aoi, (value) => { if (minValue < value && value <= maxValue) { return(true); } else { return(false); } }); convertArea = count * AreaCountHelper.CalcArea(dataProvider.ResolutionX, dataProvider.ResolutionY); return(convertArea / 1000000); }