From 6946e69e885c3abf4f72a3a6866d92664c357a4a Mon Sep 17 00:00:00 2001 From: Peter Alexander <peter@blackhillock.co.uk> Date: Wed, 19 Aug 2015 10:35:41 +0100 Subject: [PATCH] Change how land cover fraction calculated --- src/ac/ed/lurg/landuse/AreasItem.java | 9 +++++++++ src/ac/ed/lurg/output/LpjgOutputer.java | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ac/ed/lurg/landuse/AreasItem.java b/src/ac/ed/lurg/landuse/AreasItem.java index cdc7d3d0..daffeac0 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 6962f9e0..3f208c45 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); -- GitLab