package ac.ed.lurg.landuse; import java.util.HashMap; import java.util.Map; import ac.ed.lurg.types.LandCoverType; import ac.sac.raster.RasterItem; /** Used to hold less detailed land-cover information * This is used in the initalisation phase, after that land-use is used */ public class LandCoverItem implements RasterItem { private Map<LandCoverType, Double> landcover = new HashMap<LandCoverType, Double>(); private double totalArea; private double proportionProtectedFract; private double unavailableFract; // due to slope /** Area in Mha */ public Double getLandCoverArea(LandCoverType landType) { return getLandCoverFract(landType) * totalArea; } public Double getLandCoverFract(LandCoverType landType) { Double d = landcover.get(landType); return d==null ? 0 : d.doubleValue(); } /** Area in Mha */ public double getTotalArea() { return totalArea; } /** Area in Mha */ public void setTotalArea(double totalArea) { this.totalArea = totalArea; } public void setLandCoverFract(LandCoverType landType, double d) { landcover.put(landType, d); } public void setProtectedFract(double proportionProtectedFract){ this.proportionProtectedFract=proportionProtectedFract; } public double getProtectedArea(){ return proportionProtectedFract*totalArea; } public double getUnavailableFract(){ return unavailableFract; } public void setMaxCropFraction(double maxCropFraction){ this.unavailableFract=1.0-maxCropFraction; } /*public double getTotal() { double total = 0; for (double d : landcover.values()) { total += d; } return total; }*/ }