diff --git a/src/ac/ed/lurg/landuse/AreasItem.java b/src/ac/ed/lurg/landuse/AreasItem.java index cdc7d3d0a884e046cae6f414942850acade00c29..daffeac04ecadcdca553ba4f35207b6b25075011 100644 --- a/src/ac/ed/lurg/landuse/AreasItem.java +++ b/src/ac/ed/lurg/landuse/AreasItem.java @@ -78,6 +78,15 @@ public class AreasItem implements RasterItem { landCoverAreas.put(c, d); } + + public double getTotalLandCoverArea() { + double d = 0; + for (LandCoverType l : LandCoverType.values()) { + d += getLandCoverArea(l); + } + + return d; + } public double getSuitableLand() { double d = 0; diff --git a/src/ac/ed/lurg/output/LpjgOutputer.java b/src/ac/ed/lurg/output/LpjgOutputer.java index 6962f9e0f55cedbd9d8b0b1111895f913072e8dc..3f208c455f3f01b7b4beed674712333733e91311 100644 --- a/src/ac/ed/lurg/output/LpjgOutputer.java +++ b/src/ac/ed/lurg/output/LpjgOutputer.java @@ -89,7 +89,13 @@ public class LpjgOutputer { double lat = cropAreaRaster.getXCoordin(key); double lon = cropAreaRaster.getYCoordin(key); - double area = cropAreaRaster.getAreaMha(key); + double expectedArea = cropAreaRaster.getAreaMha(key); + double area = item.getTotalLandCoverArea(); + + if (area > 0 && Math.abs((expectedArea-area)/expectedArea) > 0.01) { // zero area, due to data not being found, already reported so ignored here + LogWriter.printlnError("Land cover areas look strange " + key + ": expected=" + expectedArea + ", actual=" + area); + } + double crop = item.getLandCoverArea(LandCoverType.CROPLAND); double pasture = item.getLandCoverArea(LandCoverType.PASTURE); double forest = item.getLandCoverArea(LandCoverType.FOREST);