Skip to content
Snippets Groups Projects
LandCoverItem.java 1.58 KiB
Newer Older
Peter Alexander's avatar
Peter Alexander committed
package ac.ed.lurg.landuse;

import java.util.HashMap;
import java.util.Map;

import ac.ed.lurg.types.LandCoverType;
Peter Alexander's avatar
Peter Alexander committed
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

Peter Alexander's avatar
Peter Alexander committed
	/** Area in Mha */ 
	public Double getLandCoverArea(LandCoverType landType) {
		return getLandCoverFract(landType) * totalArea;
Peter Alexander's avatar
Peter Alexander committed
	}
	
	public Double getLandCoverFract(LandCoverType landType) {
		Double d = landcover.get(landType);
		return d==null ? 0 : d.doubleValue();
Peter Alexander's avatar
Peter Alexander committed
	}
	/** 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;
Peter Alexander's avatar
Peter Alexander committed
	/*public double getTotal() {
		double total = 0;
		for (double d : landcover.values()) {
			total += d;
		}
		return total;
	}*/