diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 9efa25d468712b8ca5cceb67278def0cfbc33bce..b3d1cc80106e11131239c7cafb31d6b15082fef3 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -848,7 +848,9 @@ public class ModelMain { RasterSet<LandUseItem> landUseRaster = new RasterSet<LandUseItem>(initialLC.getHeaderDetails()); for (Map.Entry<RasterKey, LandCoverItem> entry : initialLC.entrySet()) { - landUseRaster.put(entry.getKey(), new LandUseItem(entry.getValue())); + if (entry.getValue().getTotalArea() > 0) { + landUseRaster.put(entry.getKey(), new LandUseItem(entry.getValue())); + } } return landUseRaster; diff --git a/src/ac/ed/lurg/landuse/InitProtectedAreasReader.java b/src/ac/ed/lurg/landuse/InitProtectedAreasReader.java index 24774e431c12c18b7fe50c6e5c3e859588454a71..3ddc4ae2917c1cb1f5bc46cf27cafb9f83739dfc 100644 --- a/src/ac/ed/lurg/landuse/InitProtectedAreasReader.java +++ b/src/ac/ed/lurg/landuse/InitProtectedAreasReader.java @@ -10,9 +10,9 @@ public class InitProtectedAreasReader extends AbstractRasterReader<LandCoverItem @Override public void setData(LandCoverItem lcData, String token) { - if (!"nan".equals(token)) { - double protFrac = Double.parseDouble(token); - lcData.setProtectedFraction(protFrac); + double value = Double.parseDouble(token); + if (value >= 0) { // no data is -9999 + lcData.setProtectedFraction(value); } } } diff --git a/src/ac/ed/lurg/landuse/LandUseItem.java b/src/ac/ed/lurg/landuse/LandUseItem.java index daa7afa0cfef11c86941a9f21a1ffdbf139a4552..5996162d1cacd3c3750f7dfbd88137387ef79cfa 100644 --- a/src/ac/ed/lurg/landuse/LandUseItem.java +++ b/src/ac/ed/lurg/landuse/LandUseItem.java @@ -269,7 +269,7 @@ public class LandUseItem implements InterpolatingRasterItem<LandUseItem>, Serial area = Math.min(area, fromArea); // Update unmanaged forest fraction (increases if converting from managed forest, decreased otherwise) - if (toKey.getLcType().equals(LandCoverType.NATURAL)) { + if (toKey.getLcType().equals(LandCoverType.NATURAL) && !fromKey.getLcType().equals(LandCoverType.NATURAL)) { NaturalDetail naturalDetail = (NaturalDetail) getLandCoverDetail(toKey); double prevUnmanForest = naturalDetail.getArea() * naturalDetail.getUnmanagedForestFraction(); diff --git a/src/ac/ed/lurg/landuse/ProtectedAreasReader.java b/src/ac/ed/lurg/landuse/ProtectedAreasReader.java index 5f1b9c13c2832955c8008eea8e5f837b6a232a75..45b5dcf1ca18321d3b4f6b3e299344d7b80ac548 100644 --- a/src/ac/ed/lurg/landuse/ProtectedAreasReader.java +++ b/src/ac/ed/lurg/landuse/ProtectedAreasReader.java @@ -11,8 +11,9 @@ public class ProtectedAreasReader extends AbstractRasterReader<ProtectedAreaItem @Override public void setData(ProtectedAreaItem data, String token) { - if (!"nan".equals(token)) { - data.setProtectedFraction(Double.parseDouble(token)); + double value = Double.parseDouble(token); + if (value >= 0) { // no data is -9999 + data.setProtectedFraction(value); } } } \ No newline at end of file