From 03615bc92ef586bf2f804f58b9f25385c3800156 Mon Sep 17 00:00:00 2001 From: Dan Scales Date: Fri, 26 Jul 2024 15:56:26 -0700 Subject: [PATCH] Make tile opens be fully lazy. Though I had previously made tile reads lazy for forest_change_diagnostic, tiles were still be opened even when they were not actually needed for the analysis, because of bucket accesses in checkSources(). I moved the assertions in checkSources() to the beginning of the fetchWindow() implementations, so getSources() no longer needs to open the associated tiles. A tile is now only opened exactly when fetchWindow() is called, so there are no file accesses for a particular dataset tile unless it is actually used in the summary computation. As an optimization, I moved code around in ForestChangeDiagnosticSummary so that argOTBN and braBiomes tiles are only accessed for pixels in ARG or BRA respectively. prodesLossYear is still accessed all the time, as one extra way of deciding if a pixel is in Brazil. The test output changes are just re-ordering of categories in the output. I will use this full laziness for an upcoming optimization for gfw_dashboard (where we will sometimes use the raster gadm datasets). --- .../org/globalforestwatch/grids/Grid.scala | 49 ++----------------- .../org/globalforestwatch/layers/Layer.scala | 15 ++++-- .../summarystats/ErrorSummaryRDD.scala | 2 + .../summarystats/SummaryRDD.scala | 2 + .../ForestChangeDiagnosticSummary.scala | 30 +++++++----- ...efde-01f7-4064-b0a7-48d96879e969-c000.csv} | 2 +- ...48cd-ce0f-4094-b395-a3a95f58328b-c000.csv} | 2 +- .../ForestChangeDiagnosticAnalysisSpec.scala | 2 +- 8 files changed, 41 insertions(+), 63 deletions(-) rename src/test/resources/argbra-fcd-output/{part-00000-43445e46-f7f6-4346-9ac7-b38136173746-c000.csv => part-00000-bcbeefde-01f7-4064-b0a7-48d96879e969-c000.csv} (61%) rename src/test/resources/palm-32-fcd-output/{part-00000-f0e4ff7e-a350-48c1-8647-6ab1b9c184da-c000.csv => part-00000-43ac48cd-ce0f-4094-b395-a3a95f58328b-c000.csv} (93%) diff --git a/src/main/scala/org/globalforestwatch/grids/Grid.scala b/src/main/scala/org/globalforestwatch/grids/Grid.scala index 552e3abd..12045daf 100644 --- a/src/main/scala/org/globalforestwatch/grids/Grid.scala +++ b/src/main/scala/org/globalforestwatch/grids/Grid.scala @@ -3,7 +3,6 @@ package org.globalforestwatch.grids import geotrellis.raster.TileLayout import geotrellis.layer.{LayoutDefinition, SpatialKey} import geotrellis.vector.Extent -import org.globalforestwatch.layers.{OptionalLayer, RequiredLayer} trait Grid[T <: GridSources] { @@ -56,55 +55,17 @@ trait Grid[T <: GridSources] { LayoutDefinition(gridExtent, tileLayout) } + // Get the set of grid sources (subclass of GridSources) associated with specified + // grid tile and the configuration/catalog in kwargs. def getSources(gridTile: GridTile, kwargs: Map[String, Any]): T - def checkSources(gridTile: GridTile, windowExtent: Extent, windowKey: SpatialKey, windowLayout: LayoutDefinition, kwargs: Map[String, Any]): T = { - - def ccToMap(cc: AnyRef): Map[String, Any] = - cc.getClass.getDeclaredFields.foldLeft(Map.empty[String, Any]) { (a, f) => - f.setAccessible(true) - a + (f.getName -> f.get(cc)) - } - - val sources: T = getSources(gridTile, kwargs) - - val sourceMap = ccToMap(sources) - - for ((k, v) <- sourceMap) { - - v match { - case s: RequiredLayer => checkRequired(s, windowExtent) - case s: OptionalLayer => checkOptional(s, windowExtent) - case _ => Unit - } - } - - sources - } - - // NOTE: This check will cause an eager fetch of raster metadata - def checkRequired(layer: RequiredLayer, windowExtent: Extent): Unit = { - require( - layer.source.extent.intersects(windowExtent), - s"${layer.uri} does not intersect: $windowExtent" - ) - } - - // Only check these guys if they're defined - def checkOptional(layer: OptionalLayer, windowExtent: Extent): Unit = { - layer.source.foreach { source => - require( - source.extent.intersects(windowExtent), - s"${layer.uri} does not intersect: $windowExtent" - ) - } - } - + // Get the set of grid sources (subclass of GridSources) associated with specified + // windowKey and windowLayout and the configuration/catalog in kwargs. def getRasterSource(windowKey: SpatialKey, windowLayout: LayoutDefinition, kwargs: Map[String, Any]): T = { val windowExtent: Extent = windowKey.extent(windowLayout) val gridId = GridId.pointGridId(windowExtent.center, gridSize) val gridTile = GridTile(gridSize, rowCount, blockSize, gridId) - checkSources(gridTile, windowExtent: Extent, windowKey: SpatialKey, windowLayout: LayoutDefinition, kwargs: Map[String, Any]) + getSources(gridTile, kwargs) } } diff --git a/src/main/scala/org/globalforestwatch/layers/Layer.scala b/src/main/scala/org/globalforestwatch/layers/Layer.scala index 48203f32..b3e29c86 100644 --- a/src/main/scala/org/globalforestwatch/layers/Layer.scala +++ b/src/main/scala/org/globalforestwatch/layers/Layer.scala @@ -193,7 +193,9 @@ trait FLayer extends Layer { trait RequiredLayer extends Layer { /** - * Define how to read sources for required layers + * Define how to read sources for required layers. source is only evaluated (and + * so we only check the the associated tile exists) when fetchWindow is first + * called, and then source is used to fetch the relevant tile. */ lazy val source: GDALRasterSource = { // Removes the expected 404 errors from console log @@ -234,6 +236,7 @@ trait RequiredILayer extends RequiredLayer with ILayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): ITile = { + require(source.extent.intersects(windowKey.extent(windowLayout))) val layoutSource = LayoutTileSource.spatial(source, windowLayout) // println(s"Fetching required int tile ${source.dataPath.value}, key ${windowKey}") val tile = source.synchronized { @@ -251,6 +254,7 @@ trait RequiredDLayer extends RequiredLayer with DLayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): DTile = { + require(source.extent.intersects(windowKey.extent(windowLayout))) val layoutSource = LayoutTileSource.spatial(source, windowLayout) // println(s"Fetching required int tile ${source.dataPath.value}, key ${windowKey}") val tile = source.synchronized { @@ -268,6 +272,7 @@ trait RequiredFLayer extends RequiredLayer with FLayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): FTile = { + require(source.extent.intersects(windowKey.extent(windowLayout))) val layoutSource = LayoutTileSource.spatial(source, windowLayout) // println(s"Fetching required float tile ${source.dataPath.value}, key ${windowKey}") val tile = source.synchronized { @@ -281,9 +286,10 @@ trait RequiredFLayer extends RequiredLayer with FLayer { trait OptionalLayer extends Layer { /** - * Define how to read sources for optional Layers + * Define how to read sources for optional Layers. Check if URI exists before + * trying to open it, return None if no file found. source is only evaluated when + * fetchWindow is first called, and then is used to fetch the relevant tile. */ - /** Check if URI exists before trying to open it, return None if no file found */ lazy val source: Option[GDALRasterSource] = { // Removes the expected 404 errors from console log @@ -326,6 +332,7 @@ trait OptionalILayer extends OptionalLayer with ILayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): OptionalITile = { + source.foreach(s => require(s.extent.intersects(windowKey.extent(windowLayout)))) // source.foreach(s => println(s"Fetching optional int tile ${s.dataPath.value}, key ${windowKey}")) new OptionalITile(for { source <- source @@ -349,6 +356,7 @@ trait OptionalDLayer extends OptionalLayer with DLayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): OptionalDTile = { + source.foreach(s => require(s.extent.intersects(windowKey.extent(windowLayout)))) // source.foreach(s => println(s"Fetching optional double tile ${s.dataPath.value}, key ${windowKey}")) new OptionalDTile(for { source <- source @@ -372,6 +380,7 @@ trait OptionalFLayer extends OptionalLayer with FLayer { */ def fetchWindow(windowKey: SpatialKey, windowLayout: LayoutDefinition): OptionalFTile = { + source.foreach(s => require(s.extent.intersects(windowKey.extent(windowLayout)))) // source.foreach(s => println(s"Fetching optional float tile ${s.dataPath.value}, key ${windowKey}")) new OptionalFTile(for { source <- source diff --git a/src/main/scala/org/globalforestwatch/summarystats/ErrorSummaryRDD.scala b/src/main/scala/org/globalforestwatch/summarystats/ErrorSummaryRDD.scala index cf96168a..cd4e1588 100644 --- a/src/main/scala/org/globalforestwatch/summarystats/ErrorSummaryRDD.scala +++ b/src/main/scala/org/globalforestwatch/summarystats/ErrorSummaryRDD.scala @@ -190,6 +190,8 @@ trait ErrorSummaryRDD extends LazyLogging with java.io.Serializable { featuresGroupedWithSummaries } + // Get the grid sources (subclass of GridSources) associated with a specified + // window key and windowLayout. def getSources(key: SpatialKey, windowLayout: LayoutDefinition, kwargs: Map[String, Any]): Either[Throwable, SOURCES] def readWindow(rs: SOURCES, windowKey: SpatialKey, windowLayout: LayoutDefinition): Either[Throwable, Raster[TILE]] diff --git a/src/main/scala/org/globalforestwatch/summarystats/SummaryRDD.scala b/src/main/scala/org/globalforestwatch/summarystats/SummaryRDD.scala index c6ffe677..cb859971 100644 --- a/src/main/scala/org/globalforestwatch/summarystats/SummaryRDD.scala +++ b/src/main/scala/org/globalforestwatch/summarystats/SummaryRDD.scala @@ -216,6 +216,8 @@ trait SummaryRDD extends LazyLogging with java.io.Serializable { featuresGroupedWithSummaries } + // Get the grid sources (subclass of GridSources) associated with a specified + // window key and windowLayout. def getSources(key: SpatialKey, windowLayout: LayoutDefinition, kwargs: Map[String, Any]): Either[Throwable, SOURCES] def readWindow(rs: SOURCES, windowKey: SpatialKey, windowLayout: LayoutDefinition): Either[Throwable, Raster[TILE]] diff --git a/src/main/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticSummary.scala b/src/main/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticSummary.scala index ada8e110..2a9aa99d 100644 --- a/src/main/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticSummary.scala +++ b/src/main/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticSummary.scala @@ -87,28 +87,18 @@ object ForestChangeDiagnosticSummary { val isPeatlands: Boolean = raster.tile.isPeatlands.getData(col, row) val isIntactForestLandscapes2000: Boolean = raster.tile.isIntactForestLandscapes2000.getData(col, row) - val prodesLossYear: Int = { - val loss = raster.tile.prodesLossYear.getData(col, row) - if (loss != null) { - loss.toInt - } else { - 0 - } - } val region: Int = raster.tile.gfwProCoverage.getData(col, row) val argPresence = GFWProCoverage.isArgentina(region) val colPresence = GFWProCoverage.isColombia(region) val braBiomesPresence = GFWProCoverage.isBrazilBiomesPresence(region) - val argOTBN: String = raster.tile.argOTBN.getData(col, row) + var argOTBN: String = "" // We compute country-specific forest loss using argForestLoss tile for // Argentina, and prodesLossYear for Brazil. In the very unusual case where a // location covers more than one country, we don't want to mix // country-specific forest losses, so we record the country-code that the - // forest loss came from. We will zero out the country-specific forest loss - // and mark it with an 'ERR' country code if we end up merging results from - // more than one country. + // forest loss came from. var countrySpecificLossYear = ApproxYear(0, false) var countryCode = "" var classifiedRegion = "" @@ -118,6 +108,7 @@ object ForestChangeDiagnosticSummary { classifiedRegion = raster.tile.colFronteraAgricola.getData(col, row) } else if (argPresence) { countrySpecificLossYear = raster.tile.argForestLoss.getData(col, row) + argOTBN = raster.tile.argOTBN.getData(col, row) classifiedRegion = argOTBN countryCode = "ARG" } else { @@ -133,6 +124,20 @@ object ForestChangeDiagnosticSummary { countryCode = "BRA" } } + val prodesLossYear: Int = { + if (countryCode == "BRA") { + countrySpecificLossYear.year + } else { + 0 + } + } + val braBiomes: String = { + if (braBiomesPresence) { + raster.tile.braBiomes.getData(col, row) + } else { + "" + } + } val seAsiaLandCover: String = raster.tile.seAsiaLandCover.getData(col, row) @@ -142,7 +147,6 @@ object ForestChangeDiagnosticSummary { val idnForestArea: String = raster.tile.idnForestArea.getData(col, row) val isIdnForestMoratorium: Boolean = raster.tile.isIDNForestMoratorium.getData(col, row) - val braBiomes: String = raster.tile.braBiomes.getData(col, row) val isPlantation: Boolean = raster.tile.isPlantation.getData(col, row) // compute Booleans diff --git a/src/test/resources/argbra-fcd-output/part-00000-43445e46-f7f6-4346-9ac7-b38136173746-c000.csv b/src/test/resources/argbra-fcd-output/part-00000-bcbeefde-01f7-4064-b0a7-48d96879e969-c000.csv similarity index 61% rename from src/test/resources/argbra-fcd-output/part-00000-43445e46-f7f6-4346-9ac7-b38136173746-c000.csv rename to src/test/resources/argbra-fcd-output/part-00000-bcbeefde-01f7-4064-b0a7-48d96879e969-c000.csv index b95d691e..77551303 100644 --- a/src/test/resources/argbra-fcd-output/part-00000-43445e46-f7f6-4346-9ac7-b38136173746-c000.csv +++ b/src/test/resources/argbra-fcd-output/part-00000-bcbeefde-01f7-4064-b0a7-48d96879e969-c000.csv @@ -1,2 +1,2 @@ list_id location_id status_code location_error tree_cover_loss_total_yearly tree_cover_loss_primary_forest_yearly tree_cover_loss_peat_yearly tree_cover_loss_intact_forest_yearly tree_cover_loss_protected_areas_yearly tree_cover_loss_by_country_yearly tree_cover_loss_by_country_wdpa_yearly tree_cover_loss_by_country_landmark_yearly tree_cover_loss_by_country_classified_region_yearly tree_cover_loss_arg_otbn_yearly tree_cover_loss_sea_landcover_yearly tree_cover_loss_idn_landcover_yearly tree_cover_loss_soy_yearly tree_cover_loss_idn_legal_yearly tree_cover_loss_idn_forest_moratorium_yearly tree_cover_loss_prodes_yearly tree_cover_loss_prodes_wdpa_yearly tree_cover_loss_prodes_primary_forest_yearly country_area country_specific_deforestation_yearly country_specific_deforestation_wdpa_yearly country_specific_deforestation_landmark_yearly country_specific_deforestation_classified_region_yearly classified_region_area tree_cover_loss_brazil_biomes_yearly tree_cover_extent_total tree_cover_extent_primary_forest tree_cover_extent_protected_areas tree_cover_extent_peat tree_cover_extent_intact_forest natural_habitat_primary natural_habitat_intact_forest total_area protected_areas_area peat_area arg_otbn_area protected_areas_by_category_area landmark_by_category_area brazil_biomes idn_legal_area sea_landcover_area idn_landcover_area idn_forest_moratorium_area south_america_presence legal_amazon_presence brazil_biomes_presence cerrado_biome_presence southeast_asia_presence indonesia_presence argentina_presence commodity_value_forest_extent commodity_value_peat commodity_value_protected_areas commodity_threat_deforestation commodity_threat_peat commodity_threat_protected_areas commodity_threat_fires -166 1 2 {"2001":390.3801,"2002":337.1303,"2003":591.747,"2004":522.3103,"2005":905.0571,"2006":861.6216,"2007":688.9958,"2008":719.6228,"2009":682.3401,"2010":342.0608,"2011":832.8575,"2012":822.2161,"2013":698.7244,"2014":1061.5944,"2015":623.7254,"2016":1506.2833,"2017":2137.3785,"2018":999.0414,"2019":1187.6768,"2020":1380.8694,"2021":1630.7097,"2022":1173.8577,"2023":935.707} {"2001":4.4721,"2002":4.6137,"2003":6.8156,"2004":2.1372,"2005":6.1991,"2006":69.8527,"2007":54.001,"2008":103.172,"2009":68.8725,"2010":25.6512,"2011":40.7394,"2012":61.5105,"2013":77.835,"2014":58.1765,"2015":40.3091,"2016":68.4074,"2017":163.7431,"2018":35.5811,"2019":48.25,"2020":30.8854,"2021":33.2186,"2022":47.9914,"2023":34.3442} {"2001":0.4816,"2002":0.2062,"2003":0.2062,"2004":0.6189,"2005":0.6193,"2006":0.413,"2007":1.3096,"2008":0.3435,"2009":0.6872,"2010":0.619,"2011":2.2689,"2012":1.4448,"2013":1.8558,"2014":5.7042,"2015":1.6496,"2016":2.7495,"2017":11.0043,"2018":2.4757,"2019":3.92,"2020":3.3036,"2021":5.0209,"2022":2.4071,"2023":1.7176} {} {"2001":8.538,"2002":8.7495,"2003":7.5728,"2004":14.4597,"2005":90.2472,"2006":211.8131,"2007":177.1202,"2008":66.799,"2009":69.0354,"2010":10.0578,"2011":39.6777,"2012":35.612,"2013":11.0741,"2014":20.1668,"2015":18.4411,"2016":11.7733,"2017":36.2816,"2018":7.9929,"2019":22.3112,"2020":8.1953,"2021":25.8224,"2022":11.5036,"2023":0.4131} {"ARG":{"2001":169.7492,"2002":110.0137,"2003":279.3034,"2004":243.8448,"2005":503.571,"2006":590.8377,"2007":450.6176,"2008":539.3522,"2009":450.1686,"2010":266.6501,"2011":375.4212,"2012":535.6973,"2013":450.3713,"2014":590.4731,"2015":350.2188,"2016":606.0677,"2017":909.5434,"2018":472.945,"2019":546.4409,"2020":656.0203,"2021":878.4245,"2022":433.7453,"2023":356.2457},"BRA":{"2001":220.6309,"2002":227.1166,"2003":312.4436,"2004":278.4655,"2005":401.4861,"2006":270.7838,"2007":237.4137,"2008":180.2706,"2009":232.1715,"2010":75.4107,"2011":457.3676,"2012":286.5188,"2013":248.2153,"2014":470.7769,"2015":273.5065,"2016":899.9401,"2017":1222.5303,"2018":526.0963,"2019":639.9957,"2020":724.7802,"2021":751.8719,"2022":739.5609,"2023":579.4613}} {"ARG":{"UNESCO-MAB Biosphere Reserve":{"2001":7.0261,"2002":7.6501,"2003":5.305,"2004":14.4597,"2005":89.2163,"2006":211.2632,"2007":177.1202,"2008":66.4553,"2009":64.1559,"2010":10.0578,"2011":38.6468,"2012":35.0618,"2013":9.2869,"2014":18.1734,"2015":11.567,"2016":9.8485,"2017":34.082,"2018":7.8554,"2019":21.624,"2020":6.4081,"2021":22.5221,"2022":11.2972,"2023":0.4131},"Category II":{"2001":1.5119,"2002":1.0995,"2003":2.2677,"2004":0.0,"2005":1.0309,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":4.8795,"2010":0.0,"2011":0.9621,"2012":0.4813,"2013":1.6495,"2014":1.8557,"2015":6.8741,"2016":1.7182,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.7183,"2021":2.8869,"2022":0.2064,"2023":0.0}}} {"ARG":{"Not Reported":{"2001":39.904,"2002":36.1895,"2003":118.8314,"2004":99.1471,"2005":211.2132,"2006":230.4318,"2007":162.2055,"2008":142.2109,"2009":130.0801,"2010":68.1056,"2011":108.2244,"2012":241.5664,"2013":127.9175,"2014":210.2876,"2015":139.705,"2016":247.6686,"2017":361.3402,"2018":201.2981,"2019":248.205,"2020":277.617,"2021":433.2285,"2022":149.1649,"2023":117.5902}}} {"ARG":{"Category II":{"2001":15.5017,"2002":13.3015,"2003":31.5663,"2004":34.1258,"2005":67.4062,"2006":55.745,"2007":46.5984,"2008":73.8253,"2009":131.6487,"2010":73.2082,"2011":100.0926,"2012":133.2506,"2013":130.0616,"2014":156.9412,"2015":106.1384,"2016":151.6383,"2017":269.1299,"2018":137.5692,"2019":158.3015,"2020":163.4794,"2021":243.9769,"2022":130.3351,"2023":128.5559},"Category III":{"2001":26.2709,"2002":13.8555,"2003":42.6008,"2004":23.2359,"2005":54.4591,"2006":44.0493,"2007":27.9229,"2008":52.6735,"2009":78.9423,"2010":73.1421,"2011":68.5956,"2012":112.4446,"2013":151.5104,"2014":217.1291,"2015":113.4622,"2016":201.8612,"2017":294.2968,"2018":150.2793,"2019":194.1712,"2020":223.0738,"2021":300.5095,"2022":110.6482,"2023":98.4466},"Category I":{"2001":1.0996,"2002":0.8246,"2003":2.1303,"2004":0.0,"2005":0.9622,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":3.7798,"2010":0.0,"2011":0.5498,"2012":0.4125,"2013":1.6495,"2014":1.5121,"2015":6.3928,"2016":1.6495,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.5121,"2021":2.8869,"2022":0.2064,"2023":0.0}}} {"Category II":{"2001":15.5017,"2002":13.3015,"2003":31.5663,"2004":34.1258,"2005":67.4062,"2006":55.745,"2007":46.5984,"2008":73.8253,"2009":131.6487,"2010":73.2082,"2011":100.0926,"2012":133.2506,"2013":130.0616,"2014":157.0101,"2015":106.1384,"2016":151.6383,"2017":269.1299,"2018":137.5692,"2019":158.3015,"2020":163.4794,"2021":244.0458,"2022":130.3351,"2023":128.5559},"Category III":{"2001":26.2709,"2002":13.8555,"2003":42.6008,"2004":23.2359,"2005":54.4591,"2006":44.0493,"2007":27.9229,"2008":52.6735,"2009":78.9423,"2010":73.1421,"2011":68.5956,"2012":112.4446,"2013":151.5104,"2014":217.1291,"2015":113.4622,"2016":201.8612,"2017":294.2968,"2018":150.2793,"2019":194.1712,"2020":223.0738,"2021":300.5095,"2022":110.6482,"2023":98.4466},"Category I":{"2001":1.0996,"2002":0.8246,"2003":2.1303,"2004":0.0,"2005":0.9622,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":3.7798,"2010":0.0,"2011":0.5498,"2012":0.4125,"2013":1.6495,"2014":1.5121,"2015":6.3928,"2016":1.6495,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.5121,"2021":2.8869,"2022":0.2064,"2023":0.0}} {} {} {"2001":21.624,"2002":20.8704,"2003":35.0478,"2004":35.6016,"2005":35.1084,"2006":29.4707,"2007":23.7689,"2008":26.0851,"2009":23.4664,"2010":9.7672,"2011":76.1005,"2012":28.4983,"2013":18.1678,"2014":49.4618,"2015":21.3388,"2016":63.0798,"2017":82.2563,"2018":30.9672,"2019":32.1454,"2020":38.9536,"2021":3.9932,"2022":1.102} {} {} {} {} {} {"ARG":194985.6634,"BRA":221184.6524} {"ARG":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":186.9026,"2008":0.0,"2009":0.0,"2010approx":417.5112,"2011":15.1053,"2012":0.0,"2013approx":117.2137,"2014":79.0631,"2015":3.5847,"2016":8.0709,"2017":163.5411,"2018":31.4482,"2019":47.2747,"2020":181.2011,"2021":110.5264,"2022":18.9678,"2023":0.0}} {"ARG":{"UNESCO-MAB Biosphere Reserve":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010approx":1.0342,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":17.5539,"2020":0.0,"2021":0.0,"2022":0.0,"2023":0.0},"Category II":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010":0.0,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":0.0,"2020":23.7832,"2021":0.0,"2022":0.0,"2023":0.0}}} {"ARG":{"Not Reported":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":92.4229,"2008":0.0,"2009":0.0,"2010approx":46.7539,"2011":0.0,"2012":0.0,"2013approx":20.4653,"2014":46.5229,"2015":0.0,"2016":0.0,"2017":44.9934,"2018":5.5842,"2019":31.0673,"2020":76.3528,"2021":21.096,"2022":0.0,"2023":0.0}}} {"ARG":{"Category III":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":14.683,"2008":0.0,"2009":0.0,"2010approx":75.2363,"2011":12.4841,"2012":0.0,"2013approx":30.8262,"2014":39.6991,"2015":0.0,"2016":6.8293,"2017":94.9476,"2018":22.8267,"2019":13.5189,"2020":40.3374,"2021":34.8144,"2022":10.8284,"2023":0.0},"Category II":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":25.0997,"2008":0.0,"2009":0.0,"2010approx":174.5175,"2011":1.7935,"2012":0.0,"2013approx":71.4984,"2014":27.7832,"2015":3.5847,"2016":1.2417,"2017":54.5984,"2018":8.3456,"2019":32.4472,"2020":73.3842,"2021":66.2684,"2022":7.1053,"2023":0.0},"Category I":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010":0.0,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":0.0,"2020":21.3774,"2021":0.0,"2022":0.0,"2023":0.0}}} {"ARG":{"Category II":122991.3614,"Category III":11275.7574,"Category I":30089.6869}} {"Mata Atlântica":{"2001":222.281,"2002":229.664,"2003":313.889,"2004":281.566,"2005":404.1011,"2006":274.0218,"2007":244.2288,"2008":182.4026,"2009":237.3952,"2010":77.4035,"2011":460.1882,"2012":303.0526,"2013":257.9101,"2014":491.4761,"2015":279.4206,"2016":909.6394,"2017":1238.9614,"2018":529.7395,"2019":649.9751,"2020":733.7938,"2021":765.01,"2022":743.0739,"2023":584.0024}} 310497.0062 151998.5232 145836.3381 3133.6034 0.0 152001.8248 0.0 416412.5376 145907.1635 3633.9932 {"Category II":123789.927,"Category III":11275.7574,"Category I":30089.6869} {"UNESCO-MAB Biosphere Reserve":113456.4943,"Category II":31264.8844} {"Not Reported":91313.3874} {"Mata Atlântica":235455.6349} {} {} {} 0.0 true false true false false false true {"2001":228399.0302,"2002":228399.0302,"2003":228218.695,"2004":228019.807,"2005":227669.5127,"2006":227360.6322,"2007":226793.1945,"2008":226294.0263,"2009":225908.1898,"2010":225416.7831,"2011":224990.0743,"2012":224720.0969,"2013":224202.2054,"2014":223703.987,"2015":223262.4402,"2016":222610.9217,"2017":222244.0711,"2018":221464.0632,"2019":220326.1549,"2020":219785.4113,"2021":219159.8818,"2022":218487.8012} {"2001":3633.9932,"2002":3633.9932,"2003":3633.9932,"2004":3633.9932,"2005":3633.9932,"2006":3633.9932,"2007":3633.9932,"2008":3633.9932,"2009":3633.9932,"2010":3633.9932,"2011":3633.9932,"2012":3633.9932,"2013":3633.9932,"2014":3633.9932,"2015":3633.9932,"2016":3633.9932,"2017":3633.9932,"2018":3633.9932,"2019":3633.9932,"2020":3633.9932,"2021":3633.9932,"2022":3633.9932} {"2001":145907.1635,"2002":145907.1635,"2003":145907.1635,"2004":145907.1635,"2005":145907.1635,"2006":145907.1635,"2007":145907.1635,"2008":145907.1635,"2009":145907.1635,"2010":145907.1635,"2011":145907.1635,"2012":145907.1635,"2013":145907.1635,"2014":145907.1635,"2015":145907.1635,"2016":145907.1635,"2017":145907.1635,"2018":145907.1635,"2019":145907.1635,"2020":145907.1635,"2021":145907.1635,"2022":145907.1635} {"2002":379.2232,"2003":549.1823,"2004":659.1748,"2005":876.3182,"2006":1066.606,"2007":885.0047,"2008":877.2432,"2009":918.1155,"2010":696.6862,"2011":787.8689,"2012":1016.1099,"2013":939.7652,"2014":1093.0653,"2015":1018.3691,"2016":1146.8585,"2017":1917.9162,"2018":1678.6519,"2019":1166.2731,"2020":1297.6101,"2021":1606.9852,"2022":1513.9363} {"2002":20.9771,"2003":20.5645,"2004":20.8397,"2005":21.1152,"2006":21.1155,"2007":21.9433,"2008":21.8738,"2009":21.0455,"2010":21.321,"2011":21.8711,"2012":22.0087,"2013":21.9396,"2014":22.4891,"2015":22.2141,"2016":22.4208,"2017":26.4784,"2018":25.7222,"2019":22.0779,"2020":22.2157,"2021":23.3861,"2022":23.3168} {"2002":1412.3095,"2003":1411.9654,"2004":1409.5569,"2005":1412.3853,"2006":1422.5074,"2007":1433.1795,"2008":1430.6331,"2009":1426.769,"2010":1421.6073,"2011":1416.8048,"2012":1421.3469,"2013":1419.7406,"2014":1420.2105,"2015":1426.2686,"2016":1424.1418,"2017":1427.8639,"2018":1422.7713,"2019":1422.0236,"2020":1426.6357,"2021":1427.8733,"2022":1431.9397} {} +166 1 2 {"2001":390.3801,"2002":337.1303,"2003":591.747,"2004":522.3103,"2005":905.0571,"2006":861.6216,"2007":688.9958,"2008":719.6228,"2009":682.3401,"2010":342.0608,"2011":832.8575,"2012":822.2161,"2013":698.7244,"2014":1061.5944,"2015":623.7254,"2016":1506.2833,"2017":2137.3785,"2018":999.0414,"2019":1187.6768,"2020":1380.8694,"2021":1630.7097,"2022":1173.8577,"2023":935.707} {"2001":4.4721,"2002":4.6137,"2003":6.8156,"2004":2.1372,"2005":6.1991,"2006":69.8527,"2007":54.001,"2008":103.172,"2009":68.8725,"2010":25.6512,"2011":40.7394,"2012":61.5105,"2013":77.835,"2014":58.1765,"2015":40.3091,"2016":68.4074,"2017":163.7431,"2018":35.5811,"2019":48.25,"2020":30.8854,"2021":33.2186,"2022":47.9914,"2023":34.3442} {"2001":0.4816,"2002":0.2062,"2003":0.2062,"2004":0.6189,"2005":0.6193,"2006":0.413,"2007":1.3096,"2008":0.3435,"2009":0.6872,"2010":0.619,"2011":2.2689,"2012":1.4448,"2013":1.8558,"2014":5.7042,"2015":1.6496,"2016":2.7495,"2017":11.0043,"2018":2.4757,"2019":3.92,"2020":3.3036,"2021":5.0209,"2022":2.4071,"2023":1.7176} {} {"2001":8.538,"2002":8.7495,"2003":7.5728,"2004":14.4597,"2005":90.2472,"2006":211.8131,"2007":177.1202,"2008":66.799,"2009":69.0354,"2010":10.0578,"2011":39.6777,"2012":35.612,"2013":11.0741,"2014":20.1668,"2015":18.4411,"2016":11.7733,"2017":36.2816,"2018":7.9929,"2019":22.3112,"2020":8.1953,"2021":25.8224,"2022":11.5036,"2023":0.4131} {"ARG":{"2001":169.7492,"2002":110.0137,"2003":279.3034,"2004":243.8448,"2005":503.571,"2006":590.8377,"2007":450.6176,"2008":539.3522,"2009":450.1686,"2010":266.6501,"2011":375.4212,"2012":535.6973,"2013":450.3713,"2014":590.4731,"2015":350.2188,"2016":606.0677,"2017":909.5434,"2018":472.945,"2019":546.4409,"2020":656.0203,"2021":878.4245,"2022":433.7453,"2023":356.2457},"BRA":{"2001":220.6309,"2002":227.1166,"2003":312.4436,"2004":278.4655,"2005":401.4861,"2006":270.7838,"2007":237.4137,"2008":180.2706,"2009":232.1715,"2010":75.4107,"2011":457.3676,"2012":286.5188,"2013":248.2153,"2014":470.7769,"2015":273.5065,"2016":899.9401,"2017":1222.5303,"2018":526.0963,"2019":639.9957,"2020":724.7802,"2021":751.8719,"2022":739.5609,"2023":579.4613}} {"ARG":{"Category II":{"2001":1.5119,"2002":1.0995,"2003":2.2677,"2004":0.0,"2005":1.0309,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":4.8795,"2010":0.0,"2011":0.9621,"2012":0.4813,"2013":1.6495,"2014":1.8557,"2015":6.8741,"2016":1.7182,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.7183,"2021":2.8869,"2022":0.2064,"2023":0.0},"UNESCO-MAB Biosphere Reserve":{"2001":7.0261,"2002":7.6501,"2003":5.305,"2004":14.4597,"2005":89.2163,"2006":211.2632,"2007":177.1202,"2008":66.4553,"2009":64.1559,"2010":10.0578,"2011":38.6468,"2012":35.0618,"2013":9.2869,"2014":18.1734,"2015":11.567,"2016":9.8485,"2017":34.082,"2018":7.8554,"2019":21.624,"2020":6.4081,"2021":22.5221,"2022":11.2972,"2023":0.4131}}} {"ARG":{"Not Reported":{"2001":39.904,"2002":36.1895,"2003":118.8314,"2004":99.1471,"2005":211.2132,"2006":230.4318,"2007":162.2055,"2008":142.2109,"2009":130.0801,"2010":68.1056,"2011":108.2244,"2012":241.5664,"2013":127.9175,"2014":210.2876,"2015":139.705,"2016":247.6686,"2017":361.3402,"2018":201.2981,"2019":248.205,"2020":277.617,"2021":433.2285,"2022":149.1649,"2023":117.5902}}} {"ARG":{"Category III":{"2001":26.2709,"2002":13.8555,"2003":42.6008,"2004":23.2359,"2005":54.4591,"2006":44.0493,"2007":27.9229,"2008":52.6735,"2009":78.9423,"2010":73.1421,"2011":68.5956,"2012":112.4446,"2013":151.5104,"2014":217.1291,"2015":113.4622,"2016":201.8612,"2017":294.2968,"2018":150.2793,"2019":194.1712,"2020":223.0738,"2021":300.5095,"2022":110.6482,"2023":98.4466},"Category II":{"2001":15.5017,"2002":13.3015,"2003":31.5663,"2004":34.1258,"2005":67.4062,"2006":55.745,"2007":46.5984,"2008":73.8253,"2009":131.6487,"2010":73.2082,"2011":100.0926,"2012":133.2506,"2013":130.0616,"2014":156.9412,"2015":106.1384,"2016":151.6383,"2017":269.1299,"2018":137.5692,"2019":158.3015,"2020":163.4794,"2021":243.9769,"2022":130.3351,"2023":128.5559},"Category I":{"2001":1.0996,"2002":0.8246,"2003":2.1303,"2004":0.0,"2005":0.9622,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":3.7798,"2010":0.0,"2011":0.5498,"2012":0.4125,"2013":1.6495,"2014":1.5121,"2015":6.3928,"2016":1.6495,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.5121,"2021":2.8869,"2022":0.2064,"2023":0.0}}} {"Category III":{"2001":26.2709,"2002":13.8555,"2003":42.6008,"2004":23.2359,"2005":54.4591,"2006":44.0493,"2007":27.9229,"2008":52.6735,"2009":78.9423,"2010":73.1421,"2011":68.5956,"2012":112.4446,"2013":151.5104,"2014":217.1291,"2015":113.4622,"2016":201.8612,"2017":294.2968,"2018":150.2793,"2019":194.1712,"2020":223.0738,"2021":300.5095,"2022":110.6482,"2023":98.4466},"Category II":{"2001":15.5017,"2002":13.3015,"2003":31.5663,"2004":34.1258,"2005":67.4062,"2006":55.745,"2007":46.5984,"2008":73.8253,"2009":131.6487,"2010":73.2082,"2011":100.0926,"2012":133.2506,"2013":130.0616,"2014":156.9412,"2015":106.1384,"2016":151.6383,"2017":269.1299,"2018":137.5692,"2019":158.3015,"2020":163.4794,"2021":243.9769,"2022":130.3351,"2023":128.5559},"Category I":{"2001":1.0996,"2002":0.8246,"2003":2.1303,"2004":0.0,"2005":0.9622,"2006":0.55,"2007":0.0,"2008":0.3437,"2009":3.7798,"2010":0.0,"2011":0.5498,"2012":0.4125,"2013":1.6495,"2014":1.5121,"2015":6.3928,"2016":1.6495,"2017":2.0618,"2018":0.1375,"2019":0.6873,"2020":1.5121,"2021":2.8869,"2022":0.2064,"2023":0.0}} {} {} {"2001":21.624,"2002":20.8704,"2003":35.0478,"2004":35.6016,"2005":35.1084,"2006":29.4707,"2007":23.7689,"2008":26.0851,"2009":23.4664,"2010":9.7672,"2011":76.1005,"2012":28.4983,"2013":18.1678,"2014":49.4618,"2015":21.3388,"2016":63.0798,"2017":82.2563,"2018":30.9672,"2019":32.1454,"2020":38.9536,"2021":3.9932,"2022":1.102} {} {} {} {} {} {"ARG":194985.6634,"BRA":221184.6524} {"ARG":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":186.9026,"2008":0.0,"2009":0.0,"2010approx":417.5112,"2011":15.1053,"2012":0.0,"2013approx":117.2137,"2014":79.0631,"2015":3.5847,"2016":8.0709,"2017":163.5411,"2018":31.4482,"2019":47.2747,"2020":181.2011,"2021":110.5264,"2022":18.9678,"2023":0.0}} {"ARG":{"UNESCO-MAB Biosphere Reserve":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010approx":1.0342,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":17.5539,"2020":0.0,"2021":0.0,"2022":0.0,"2023":0.0},"Category II":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010":0.0,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":0.0,"2020":23.7832,"2021":0.0,"2022":0.0,"2023":0.0}}} {"ARG":{"Not Reported":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":92.4229,"2008":0.0,"2009":0.0,"2010approx":46.7539,"2011":0.0,"2012":0.0,"2013approx":20.4653,"2014":46.5229,"2015":0.0,"2016":0.0,"2017":44.9934,"2018":5.5842,"2019":31.0673,"2020":76.3528,"2021":21.096,"2022":0.0,"2023":0.0}}} {"ARG":{"Category III":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":14.683,"2008":0.0,"2009":0.0,"2010approx":75.2363,"2011":12.4841,"2012":0.0,"2013approx":30.8262,"2014":39.6991,"2015":0.0,"2016":6.8293,"2017":94.9476,"2018":22.8267,"2019":13.5189,"2020":40.3374,"2021":34.8144,"2022":10.8284,"2023":0.0},"Category II":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":25.0997,"2008":0.0,"2009":0.0,"2010approx":174.5175,"2011":1.7935,"2012":0.0,"2013approx":71.4984,"2014":27.7832,"2015":3.5847,"2016":1.2417,"2017":54.5984,"2018":8.3456,"2019":32.4472,"2020":73.3842,"2021":66.2684,"2022":7.1053,"2023":0.0},"Category I":{"2001":0.0,"2002":0.0,"2003":0.0,"2004":0.0,"2005":0.0,"2006":0.0,"2007":0.0,"2008":0.0,"2009":0.0,"2010":0.0,"2011":0.0,"2012":0.0,"2013":0.0,"2014":0.0,"2015":0.0,"2016":0.0,"2017":0.0,"2018":0.0,"2019":0.0,"2020":21.3774,"2021":0.0,"2022":0.0,"2023":0.0}}} {"ARG":{"Category III":11275.7574,"Category II":122991.3614,"Category I":30089.6869}} {"Mata Atlântica":{"2001":222.281,"2002":229.664,"2003":313.889,"2004":281.566,"2005":404.1011,"2006":274.0218,"2007":244.2288,"2008":182.4026,"2009":237.3952,"2010":77.4035,"2011":460.1882,"2012":303.0526,"2013":257.9101,"2014":491.4761,"2015":279.4206,"2016":909.6394,"2017":1238.9614,"2018":529.7395,"2019":649.9751,"2020":733.7938,"2021":765.01,"2022":743.0739,"2023":584.0024}} 310497.0062 151998.5232 145836.3381 3133.6034 0.0 152001.8248 0.0 416412.5376 145907.1635 3633.9932 {"Category III":11275.7574,"Category II":122991.3614,"Category I":30089.6869} {"Category II":31264.8844,"UNESCO-MAB Biosphere Reserve":113456.4943} {"Not Reported":91313.3874} {"Mata Atlântica":235455.6349} {} {} {} 0.0 true false true false false false true {"2001":228399.0302,"2002":228399.0302,"2003":228218.695,"2004":228019.807,"2005":227669.5127,"2006":227360.6322,"2007":226793.1945,"2008":226294.0263,"2009":225908.1898,"2010":225416.7831,"2011":224990.0743,"2012":224720.0969,"2013":224202.2054,"2014":223703.987,"2015":223262.4402,"2016":222610.9217,"2017":222244.0711,"2018":221464.0632,"2019":220326.1549,"2020":219785.4113,"2021":219159.8818,"2022":218487.8012} {"2001":3633.9932,"2002":3633.9932,"2003":3633.9932,"2004":3633.9932,"2005":3633.9932,"2006":3633.9932,"2007":3633.9932,"2008":3633.9932,"2009":3633.9932,"2010":3633.9932,"2011":3633.9932,"2012":3633.9932,"2013":3633.9932,"2014":3633.9932,"2015":3633.9932,"2016":3633.9932,"2017":3633.9932,"2018":3633.9932,"2019":3633.9932,"2020":3633.9932,"2021":3633.9932,"2022":3633.9932} {"2001":145907.1635,"2002":145907.1635,"2003":145907.1635,"2004":145907.1635,"2005":145907.1635,"2006":145907.1635,"2007":145907.1635,"2008":145907.1635,"2009":145907.1635,"2010":145907.1635,"2011":145907.1635,"2012":145907.1635,"2013":145907.1635,"2014":145907.1635,"2015":145907.1635,"2016":145907.1635,"2017":145907.1635,"2018":145907.1635,"2019":145907.1635,"2020":145907.1635,"2021":145907.1635,"2022":145907.1635} {"2002":379.2232,"2003":549.1823,"2004":659.1748,"2005":876.3182,"2006":1066.606,"2007":885.0047,"2008":877.2432,"2009":918.1155,"2010":696.6862,"2011":787.8689,"2012":1016.1099,"2013":939.7652,"2014":1093.0653,"2015":1018.3691,"2016":1146.8585,"2017":1917.9162,"2018":1678.6519,"2019":1166.2731,"2020":1297.6101,"2021":1606.9852,"2022":1513.9363} {"2002":20.9771,"2003":20.5645,"2004":20.8397,"2005":21.1152,"2006":21.1155,"2007":21.9433,"2008":21.8738,"2009":21.0455,"2010":21.321,"2011":21.8711,"2012":22.0087,"2013":21.9396,"2014":22.4891,"2015":22.2141,"2016":22.4208,"2017":26.4784,"2018":25.7222,"2019":22.0779,"2020":22.2157,"2021":23.3861,"2022":23.3168} {"2002":1412.3095,"2003":1411.9654,"2004":1409.5569,"2005":1412.3853,"2006":1422.5074,"2007":1433.1795,"2008":1430.6331,"2009":1426.769,"2010":1421.6073,"2011":1416.8048,"2012":1421.3469,"2013":1419.7406,"2014":1420.2105,"2015":1426.2686,"2016":1424.1418,"2017":1427.8639,"2018":1422.7713,"2019":1422.0236,"2020":1426.6357,"2021":1427.8733,"2022":1431.9397} {} diff --git a/src/test/resources/palm-32-fcd-output/part-00000-f0e4ff7e-a350-48c1-8647-6ab1b9c184da-c000.csv b/src/test/resources/palm-32-fcd-output/part-00000-43ac48cd-ce0f-4094-b395-a3a95f58328b-c000.csv similarity index 93% rename from src/test/resources/palm-32-fcd-output/part-00000-f0e4ff7e-a350-48c1-8647-6ab1b9c184da-c000.csv rename to src/test/resources/palm-32-fcd-output/part-00000-43ac48cd-ce0f-4094-b395-a3a95f58328b-c000.csv index c2b49ffd..b1148c42 100644 --- a/src/test/resources/palm-32-fcd-output/part-00000-f0e4ff7e-a350-48c1-8647-6ab1b9c184da-c000.csv +++ b/src/test/resources/palm-32-fcd-output/part-00000-43ac48cd-ce0f-4094-b395-a3a95f58328b-c000.csv @@ -1,2 +1,2 @@ list_id location_id status_code location_error tree_cover_loss_total_yearly tree_cover_loss_primary_forest_yearly tree_cover_loss_peat_yearly tree_cover_loss_intact_forest_yearly tree_cover_loss_protected_areas_yearly tree_cover_loss_by_country_yearly tree_cover_loss_by_country_wdpa_yearly tree_cover_loss_by_country_landmark_yearly tree_cover_loss_by_country_classified_region_yearly tree_cover_loss_arg_otbn_yearly tree_cover_loss_sea_landcover_yearly tree_cover_loss_idn_landcover_yearly tree_cover_loss_soy_yearly tree_cover_loss_idn_legal_yearly tree_cover_loss_idn_forest_moratorium_yearly tree_cover_loss_prodes_yearly tree_cover_loss_prodes_wdpa_yearly tree_cover_loss_prodes_primary_forest_yearly country_area country_specific_deforestation_yearly country_specific_deforestation_wdpa_yearly country_specific_deforestation_landmark_yearly country_specific_deforestation_classified_region_yearly classified_region_area tree_cover_loss_brazil_biomes_yearly tree_cover_extent_total tree_cover_extent_primary_forest tree_cover_extent_protected_areas tree_cover_extent_peat tree_cover_extent_intact_forest natural_habitat_primary natural_habitat_intact_forest total_area protected_areas_area peat_area arg_otbn_area protected_areas_by_category_area landmark_by_category_area brazil_biomes idn_legal_area sea_landcover_area idn_landcover_area idn_forest_moratorium_area south_america_presence legal_amazon_presence brazil_biomes_presence cerrado_biome_presence southeast_asia_presence indonesia_presence argentina_presence commodity_value_forest_extent commodity_value_peat commodity_value_protected_areas commodity_threat_deforestation commodity_threat_peat commodity_threat_protected_areas commodity_threat_fires -1 31 2 {"2001":1021.7622,"2002":851.014,"2003":310.1835,"2004":2169.8398,"2005":2325.3843,"2006":4162.4968,"2007":2968.7863,"2008":4015.4403,"2009":2002.9194,"2010":1173.7001,"2011":1703.6902,"2012":2838.0498,"2013":1841.7568,"2014":2468.7732,"2015":2028.9672,"2016":3344.8135,"2017":1026.7609,"2018":525.5327,"2019":618.7052,"2020":924.699,"2021":857.8225,"2022":560.0482,"2023":1033.0567} {"2001":154.8617,"2002":306.7253,"2003":92.3781,"2004":717.7405,"2005":1202.6952,"2006":1831.5766,"2007":1668.2764,"2008":1753.2317,"2009":797.282,"2010":454.5023,"2011":872.3613,"2012":1251.8543,"2013":1083.6799,"2014":1290.2177,"2015":1360.2574,"2016":2313.5001,"2017":286.2809,"2018":159.8557,"2019":162.3929,"2020":134.2652,"2021":167.4697,"2022":133.6506,"2023":166.9302} {"2001":557.4251,"2002":236.2539,"2003":71.8566,"2004":741.25,"2005":957.52,"2006":1229.3335,"2007":1037.5018,"2008":891.235,"2009":486.4665,"2010":363.5759,"2011":411.9212,"2012":1078.9246,"2013":862.5621,"2014":974.783,"2015":942.4571,"2016":1472.8429,"2017":211.3403,"2018":144.7173,"2019":148.7917,"2020":142.3323,"2021":122.7372,"2022":94.914,"2023":138.4895} {} {"2001":42.2692,"2002":228.1732,"2003":11.3743,"2004":3.9196,"2005":1.614,"2006":15.3711,"2007":4.4576,"2008":2.8437,"2009":4.765,"2010":7.9931,"2011":10.7597,"2012":8.1466,"2013":0.1537,"2014":8.5307,"2015":18.6758,"2016":139.2616,"2017":10.7596,"2018":0.3843,"2019":0.2306,"2020":0.0,"2021":0.0769,"2022":0.0,"2023":0.9991} {} {} {} {} {} {"Rubber plantation":{"2001":3.0745,"2002":16.5256,"2003":36.0493,"2004":66.1791,"2005":73.4812,"2006":25.9797,"2007":5.9184,"2008":56.571,"2009":47.7317,"2010":33.3581,"2011":21.9825,"2012":52.9583,"2013":11.9137,"2014":42.2742,"2015":34.2038,"2016":63.4883,"2017":10.6839,"2018":24.4423,"2019":22.1363,"2020":10.4533,"2021":25.826,"2022":26.1332,"2023":27.286},"Secondary forest":{"2001":240.1012,"2002":352.6874,"2003":51.186,"2004":522.8408,"2005":879.6014,"2006":1310.6826,"2007":981.6686,"2008":756.8744,"2009":359.2934,"2010":232.485,"2011":575.4717,"2012":1110.4372,"2013":787.2514,"2014":772.2979,"2015":966.528,"2016":1571.8466,"2017":149.9382,"2018":89.3794,"2019":136.8781,"2020":121.8915,"2021":68.6318,"2022":99.681,"2023":130.1926},"Agriculture":{"2001":3.151,"2002":9.1452,"2003":5.4563,"2004":53.8715,"2005":30.3561,"2006":22.9009,"2007":6.5323,"2008":10.9893,"2009":159.7649,"2010":38.7323,"2011":100.4403,"2012":104.3592,"2013":15.3698,"2014":35.8124,"2015":19.6734,"2016":38.1942,"2017":19.2886,"2018":10.5282,"2019":11.2197,"2020":7.9922,"2021":12.1419,"2022":9.2218,"2023":22.517},"Oil palm plantation":{"2001":389.5357,"2002":222.339,"2003":103.9797,"2004":96.4524,"2005":67.8614,"2006":368.7244,"2007":440.2632,"2008":428.9814,"2009":151.7946,"2010":184.5942,"2011":113.5139,"2012":263.0128,"2013":147.9443,"2014":88.3878,"2015":58.1061,"2016":70.7105,"2017":44.5029,"2018":31.2823,"2019":233.0475,"2020":526.052,"2021":395.9972,"2022":105.2237,"2023":484.6992},"Swamp":{"2001":265.2372,"2002":112.4372,"2003":38.2726,"2004":648.495,"2005":548.2747,"2006":855.4703,"2007":1129.3025,"2008":2086.08,"2009":484.4962,"2010":300.1085,"2011":526.378,"2012":478.8799,"2013":482.4034,"2014":742.3953,"2015":446.518,"2016":539.8938,"2017":620.8959,"2018":204.1215,"2019":105.5176,"2020":122.2736,"2021":197.9767,"2022":240.6287,"2023":233.0197},"Settlements":{"2001":0.1537,"2002":0.9992,"2003":0.0,"2004":0.6918,"2005":0.1537,"2006":1.1529,"2007":1.1529,"2008":0.538,"2009":1.0761,"2010":0.8455,"2011":1.1529,"2012":0.8454,"2013":0.0,"2014":0.6918,"2015":0.1537,"2016":0.2306,"2017":0.3843,"2018":0.0,"2019":0.1537,"2020":1.1529,"2021":1.3067,"2022":1.691,"2023":3.5357},"Grassland/shrub":{"2001":59.3337,"2002":89.231,"2003":37.5821,"2004":445.7701,"2005":432.4583,"2006":514.3995,"2007":235.9463,"2008":500.7963,"2009":334.6362,"2010":269.6786,"2011":186.2981,"2012":378.8895,"2013":330.4736,"2014":424.3189,"2015":165.2413,"2016":151.5619,"2017":77.7013,"2018":84.6964,"2019":29.59,"2020":91.3842,"2021":53.8004,"2022":41.7326,"2023":75.5499},"Primary forest":{"2001":41.1934,"2002":30.6653,"2003":13.68,"2004":98.6793,"2005":209.8123,"2006":379.429,"2007":115.8962,"2008":96.2208,"2009":368.2156,"2010":47.8819,"2011":42.0413,"2012":228.795,"2013":26.1305,"2014":255.8481,"2015":270.3755,"2016":823.8133,"2017":81.5399,"2018":47.9595,"2019":64.4845,"2020":22.7495,"2021":71.7856,"2022":5.7642,"2023":15.6791},"Water bodies":{"2001":0.8454,"2002":0.0768,"2003":0.0,"2004":0.1537,"2005":0.0,"2006":0.0,"2007":0.0769,"2008":0.0,"2009":0.0,"2010":0.1537,"2011":0.2306,"2012":0.6916,"2013":0.6917,"2014":0.6148,"2015":0.0,"2016":0.2306,"2017":0.0768,"2018":0.0,"2019":0.0,"2020":0.0,"2021":0.2305,"2022":0.1537,"2023":0.0769},"Mixed tree crops":{"2001":19.1363,"2002":16.9073,"2003":23.9776,"2004":236.7062,"2005":83.3852,"2006":683.7575,"2007":52.029,"2008":78.3891,"2009":95.9108,"2010":65.8624,"2011":136.1808,"2012":219.1809,"2013":39.5784,"2014":106.132,"2015":68.1674,"2016":84.8439,"2017":21.749,"2018":33.1229,"2019":15.6777,"2020":20.7498,"2021":30.1257,"2022":29.8185,"2023":40.5006}} {"Bare land":{"2001":3.8428,"2002":35.2766,"2003":5.3801,"2004":14.4491,"2005":17.6005,"2006":39.8116,"2007":99.1447,"2008":141.5687,"2009":59.9482,"2010":20.7508,"2011":136.3415,"2012":129.3478,"2013":94.2991,"2014":83.0794,"2015":280.0642,"2016":735.1371,"2017":28.9729,"2018":36.1198,"2019":8.3774,"2020":7.1477,"2021":8.0699,"2022":2.3824,"2023":16.8306},"Mining":{"2001":7.301,"2002":2.7666,"2003":5.2258,"2004":11.9889,"2005":15.2172,"2006":9.1456,"2007":7.6082,"2008":34.8914,"2009":16.9072,"2010":8.9918,"2011":12.4502,"2012":29.5112,"2013":1.0759,"2014":16.8304,"2015":2.5362,"2016":1.9982,"2017":1.7676,"2018":0.7685,"2019":0.3074,"2020":0.4611,"2021":1.7676,"2022":3.5353,"2023":4.3037},"Settlement":{"2001":30.2802,"2002":84.4598,"2003":6.7627,"2004":5.226,"2005":1.9982,"2006":15.5239,"2007":5.3029,"2008":146.7178,"2009":9.1456,"2010":5.9944,"2011":8.2999,"2012":20.9038,"2013":6.4557,"2014":10.4519,"2015":14.0641,"2016":20.5962,"2017":9.6834,"2018":5.9946,"2019":5.6871,"2020":7.5318,"2021":7.5314,"2022":7.7622,"2023":7.839},"Secondary forest":{"2001":14.8329,"2002":34.5077,"2003":10.3753,"2004":63.4026,"2005":86.5381,"2006":58.5628,"2007":81.0051,"2008":222.8806,"2009":92.1507,"2010":46.96,"2011":105.6723,"2012":258.1458,"2013":358.5935,"2014":604.2224,"2015":692.3818,"2016":1208.3837,"2017":259.4575,"2018":110.7479,"2019":151.2503,"2020":92.763,"2021":119.8204,"2022":109.8252,"2023":112.2107},"Agriculture":{"2001":87.6883,"2002":42.4224,"2003":18.9819,"2004":289.878,"2005":266.1325,"2006":746.3828,"2007":376.2672,"2008":177.9118,"2009":282.8805,"2010":120.1185,"2011":271.2771,"2012":638.4726,"2013":155.6217,"2014":248.7641,"2015":220.5643,"2016":382.8723,"2017":105.1299,"2018":55.5624,"2019":44.6495,"2020":56.5613,"2021":42.3446,"2022":44.4967,"2023":65.7837},"Swamp":{"2001":110.6023,"2002":161.6235,"2003":30.1276,"2004":349.3156,"2005":345.4651,"2006":346.3096,"2007":162.935,"2008":218.7309,"2009":146.9478,"2010":95.2199,"2011":132.4202,"2012":382.8885,"2013":159.6257,"2014":317.4138,"2015":296.5912,"2016":418.5593,"2017":115.2812,"2018":74.3201,"2019":85.1564,"2020":78.4694,"2021":128.1948,"2022":88.1532,"2023":81.8506},"Grassland/shrub":{"2001":4.9185,"2002":20.2891,"2003":11.7584,"2004":38.7334,"2005":22.748,"2006":135.7978,"2007":15.2937,"2008":74.7011,"2009":35.6594,"2010":20.4429,"2011":50.7993,"2012":105.518,"2013":11.4509,"2014":46.2648,"2015":55.7949,"2016":62.8662,"2017":264.4497,"2018":34.5065,"2019":9.8372,"2020":5.1492,"2021":6.9934,"2022":55.8711,"2023":47.8786},"Estate crop plantation":{"2001":759.8369,"2002":469.6682,"2003":221.0338,"2004":1396.0776,"2005":1569.454,"2006":2808.3496,"2007":2218.0015,"2008":2990.2754,"2009":1359.0495,"2010":854.7606,"2011":983.3553,"2012":1269.5731,"2013":1053.2509,"2014":1138.9796,"2015":466.1251,"2016":509.328,"2017":239.7129,"2018":205.5913,"2019":312.8252,"2020":676.3081,"2021":539.8723,"2022":247.7148,"2023":696.1293},"Body of water":{"2001":2.4593,"2002":0.0,"2003":0.538,"2004":0.7685,"2005":0.2306,"2006":2.6132,"2007":3.228,"2008":7.7625,"2009":0.2306,"2010":0.4611,"2011":3.0743,"2012":3.689,"2013":1.3834,"2014":2.7668,"2015":0.8454,"2016":5.0725,"2017":2.3057,"2018":1.9215,"2019":0.6148,"2020":0.3074,"2021":3.228,"2022":0.3074,"2023":0.2306}} {} {"Converted Production Forest":{"2001":151.8635,"2002":60.1778,"2003":69.0172,"2004":724.5834,"2005":1148.2139,"2006":1123.3127,"2007":1023.561,"2008":844.268,"2009":747.8878,"2010":275.2161,"2011":481.5731,"2012":804.1156,"2013":820.0067,"2014":1024.9196,"2015":1197.936,"2016":1866.668,"2017":356.367,"2018":233.3308,"2019":223.499,"2020":193.5994,"2021":241.5624,"2022":233.5622,"2023":188.2192},"Other Utilization Area":{"2001":712.0267,"2002":482.1867,"2003":221.5682,"2004":1414.5116,"2005":1126.5942,"2006":2837.7298,"2007":1853.8397,"2008":3013.7624,"2009":1165.5631,"2010":833.4598,"2011":1098.1437,"2012":1865.7614,"2013":971.0994,"2014":1259.078,"2015":657.4037,"2016":999.5492,"2017":622.2031,"2018":279.4429,"2019":376.9137,"2020":705.8893,"2021":595.4311,"2022":299.8162,"2023":789.0379},"Production Forest":{"2001":113.1434,"2002":80.4763,"2003":7.6858,"2004":26.0567,"2005":48.7316,"2006":183.5469,"2007":84.3149,"2008":147.2649,"2009":84.4729,"2010":56.57,"2011":110.1392,"2012":156.3372,"2013":49.1136,"2014":173.4782,"2015":154.1063,"2016":334.2621,"2017":35.1256,"2018":10.4532,"2019":17.4472,"2020":24.9028,"2021":17.5241,"2022":26.3625,"2023":54.5699},"Sanctuary Reserves/Nature Conservation Area":{"2001":42.2692,"2002":228.1732,"2003":11.3743,"2004":3.9196,"2005":1.614,"2006":15.3711,"2007":4.4576,"2008":2.8437,"2009":4.765,"2010":7.9931,"2011":10.7597,"2012":8.1466,"2013":0.1537,"2014":8.5307,"2015":18.6758,"2016":139.2616,"2017":10.7596,"2018":0.3843,"2019":0.2306,"2020":0.0,"2021":0.0769,"2022":0.0,"2023":0.9991}} {"2001":85.0014,"2002":248.2325,"2003":18.829,"2004":97.8293,"2005":96.2941,"2006":176.9875,"2007":138.7928,"2008":129.4126,"2009":109.4342,"2010":65.0144,"2011":100.5959,"2012":428.132,"2013":566.3779,"2014":467.2467,"2015":304.2577,"2016":712.6515,"2017":145.3232,"2018":56.2574,"2019":82.8502,"2020":54.0272,"2021":24.2097,"2022":14.7553,"2023":31.6631} {} {} {} {} {} {} {} {} {} {} 76338.8266 34513.678 6014.0986 23301.5138 0.0 34530.8164 0.0 125583.7284 6614.0107 31984.9079 {} {} {} {} {"Other Utilization Area":81822.5991,"Converted Production Forest":28600.5448,"Production Forest":4848.8827,"Sanctuary Reserves/Nature Conservation Area":6614.0107} {"Rubber plantation":3542.3364,"Secondary forest":24896.0268,"Agriculture":2763.3729,"Oil palm plantation":24398.5485,"Swamp":29043.6031,"Settlements":851.2415,"Grassland/shrub":22752.6953,"Primary forest":8261.1709,"Water bodies":3133.0348,"Mixed tree crops":5941.6982} {"Bare land":2902.1353,"Mining":1392.3433,"Settlement":5798.0268,"Secondary forest":21966.5842,"Agriculture":9963.5593,"Swamp":7625.7847,"Grassland/shrub":2875.049,"Estate crop plantation":69353.0242,"Body of water":3707.2217} 13342.6717 false false false false true true false {"2001":23485.8882,"2002":23485.8882,"2003":23374.1445,"2004":23119.9955,"2005":23068.1202,"2006":22694.5486,"2007":22285.1614,"2008":21463.0712,"2009":21006.0263,"2010":20669.6397,"2011":20292.7605,"2012":20136.9792,"2013":19754.7947,"2014":18881.5269,"2015":18606.9329,"2016":18125.0618,"2017":17132.4074,"2018":15378.6605,"2019":15120.9727,"2020":15003.7708,"2021":14849.0634,"2022":14732.6295} {"2001":31984.9079,"2002":31984.9079,"2003":31984.9079,"2004":31984.9079,"2005":31984.9079,"2006":31984.9079,"2007":31984.9079,"2008":31984.9079,"2009":31984.9079,"2010":31984.9079,"2011":31984.9079,"2012":31984.9079,"2013":31984.9079,"2014":31984.9079,"2015":31984.9079,"2016":31984.9079,"2017":31984.9079,"2018":31984.9079,"2019":31984.9079,"2020":31984.9079,"2021":31984.9079,"2022":31984.9079} {"2001":6614.0107,"2002":6614.0107,"2003":6614.0107,"2004":6614.0107,"2005":6614.0107,"2006":6614.0107,"2007":6614.0107,"2008":6614.0107,"2009":6614.0107,"2010":6614.0107,"2011":6614.0107,"2012":6614.0107,"2013":6614.0107,"2014":6614.0107,"2015":6614.0107,"2016":6614.0107,"2017":6614.0107,"2018":6614.0107,"2019":6614.0107,"2020":6614.0107,"2021":6614.0107,"2022":6614.0107} {"2002":365.8928,"2003":306.0243,"2004":425.4469,"2005":782.9588,"2006":1231.4774,"2007":1279.1351,"2008":793.4315,"2009":713.2658,"2010":532.6605,"2011":537.9658,"2012":1255.4523,"2013":1147.8618,"2014":756.465,"2015":1474.5255,"2016":2746.4013,"2017":2011.4348,"2018":374.8897,"2019":271.9092,"2020":271.1414,"2021":244.6289,"2022":225.7991} {"2002":14169.0317,"2003":14121.4598,"2004":14263.6318,"2005":14457.9871,"2006":14775.3894,"2007":14894.5153,"2008":14537.3838,"2009":14379.8313,"2010":14307.4367,"2011":14243.1121,"2012":14624.1389,"2013":14640.9716,"2014":14369.8445,"2015":14824.2131,"2016":15518.2929,"2017":15018.6597,"2018":14203.1553,"2019":14200.8532,"2020":14201.3905,"2021":14170.9561,"2022":14147.208} {"2002":223.0242,"2003":201.3516,"2004":10.5289,"2005":1.3833,"2006":4.6881,"2007":4.7649,"2008":1.0759,"2009":2.1519,"2010":3.7659,"2011":3.8427,"2012":4.1501,"2013":2.9204,"2014":1.3065,"2015":14.6794,"2016":75.0879,"2017":63.9436,"2018":3.1509,"2019":0.9222,"2020":0.9222,"2021":0.9222,"2022":0.9222} {} +1 31 2 {"2001":1021.7622,"2002":851.014,"2003":310.1835,"2004":2169.8398,"2005":2325.3843,"2006":4162.4968,"2007":2968.7863,"2008":4015.4403,"2009":2002.9194,"2010":1173.7001,"2011":1703.6902,"2012":2838.0498,"2013":1841.7568,"2014":2468.7732,"2015":2028.9672,"2016":3344.8135,"2017":1026.7609,"2018":525.5327,"2019":618.7052,"2020":924.699,"2021":857.8225,"2022":560.0482,"2023":1033.0567} {"2001":154.8617,"2002":306.7253,"2003":92.3781,"2004":717.7405,"2005":1202.6952,"2006":1831.5766,"2007":1668.2764,"2008":1753.2317,"2009":797.282,"2010":454.5023,"2011":872.3613,"2012":1251.8543,"2013":1083.6799,"2014":1290.2177,"2015":1360.2574,"2016":2313.5001,"2017":286.2809,"2018":159.8557,"2019":162.3929,"2020":134.2652,"2021":167.4697,"2022":133.6506,"2023":166.9302} {"2001":557.4251,"2002":236.2539,"2003":71.8566,"2004":741.25,"2005":957.52,"2006":1229.3335,"2007":1037.5018,"2008":891.235,"2009":486.4665,"2010":363.5759,"2011":411.9212,"2012":1078.9246,"2013":862.5621,"2014":974.783,"2015":942.4571,"2016":1472.8429,"2017":211.3403,"2018":144.7173,"2019":148.7917,"2020":142.3323,"2021":122.7372,"2022":94.914,"2023":138.4895} {} {"2001":42.2692,"2002":228.1732,"2003":11.3743,"2004":3.9196,"2005":1.614,"2006":15.3711,"2007":4.4576,"2008":2.8437,"2009":4.765,"2010":7.9931,"2011":10.7597,"2012":8.1466,"2013":0.1537,"2014":8.5307,"2015":18.6758,"2016":139.2616,"2017":10.7596,"2018":0.3843,"2019":0.2306,"2020":0.0,"2021":0.0769,"2022":0.0,"2023":0.9991} {} {} {} {} {} {"Rubber plantation":{"2001":3.0745,"2002":16.5256,"2003":36.0493,"2004":66.1791,"2005":73.4812,"2006":25.9797,"2007":5.9184,"2008":56.571,"2009":47.7317,"2010":33.3581,"2011":21.9825,"2012":52.9583,"2013":11.9137,"2014":42.2742,"2015":34.2038,"2016":63.4883,"2017":10.6839,"2018":24.4423,"2019":22.1363,"2020":10.4533,"2021":25.826,"2022":26.1332,"2023":27.286},"Secondary forest":{"2001":240.1012,"2002":352.6874,"2003":51.186,"2004":522.8408,"2005":879.6014,"2006":1310.6826,"2007":981.6686,"2008":756.8744,"2009":359.2934,"2010":232.485,"2011":575.4717,"2012":1110.4372,"2013":787.2514,"2014":772.2979,"2015":966.528,"2016":1571.8466,"2017":149.9382,"2018":89.3794,"2019":136.8781,"2020":121.8915,"2021":68.6318,"2022":99.681,"2023":130.1926},"Agriculture":{"2001":3.151,"2002":9.1452,"2003":5.4563,"2004":53.8715,"2005":30.3561,"2006":22.9009,"2007":6.5323,"2008":10.9893,"2009":159.7649,"2010":38.7323,"2011":100.4403,"2012":104.3592,"2013":15.3698,"2014":35.8124,"2015":19.6734,"2016":38.1942,"2017":19.2886,"2018":10.5282,"2019":11.2197,"2020":7.9922,"2021":12.1419,"2022":9.2218,"2023":22.517},"Oil palm plantation":{"2001":389.5357,"2002":222.339,"2003":103.9797,"2004":96.4524,"2005":67.8614,"2006":368.7244,"2007":440.2632,"2008":428.9814,"2009":151.7946,"2010":184.5942,"2011":113.5139,"2012":263.0128,"2013":147.9443,"2014":88.3878,"2015":58.1061,"2016":70.7105,"2017":44.5029,"2018":31.2823,"2019":233.0475,"2020":526.052,"2021":395.9972,"2022":105.2237,"2023":484.6992},"Swamp":{"2001":265.2372,"2002":112.4372,"2003":38.2726,"2004":648.495,"2005":548.2747,"2006":855.4703,"2007":1129.3025,"2008":2086.08,"2009":484.4962,"2010":300.1085,"2011":526.378,"2012":478.8799,"2013":482.4034,"2014":742.3953,"2015":446.518,"2016":539.8938,"2017":620.8959,"2018":204.1215,"2019":105.5176,"2020":122.2736,"2021":197.9767,"2022":240.6287,"2023":233.0197},"Settlements":{"2001":0.1537,"2002":0.9992,"2003":0.0,"2004":0.6918,"2005":0.1537,"2006":1.1529,"2007":1.1529,"2008":0.538,"2009":1.0761,"2010":0.8455,"2011":1.1529,"2012":0.8454,"2013":0.0,"2014":0.6918,"2015":0.1537,"2016":0.2306,"2017":0.3843,"2018":0.0,"2019":0.1537,"2020":1.1529,"2021":1.3067,"2022":1.691,"2023":3.5357},"Grassland/shrub":{"2001":59.3337,"2002":89.231,"2003":37.5821,"2004":445.7701,"2005":432.4583,"2006":514.3995,"2007":235.9463,"2008":500.7963,"2009":334.6362,"2010":269.6786,"2011":186.2981,"2012":378.8895,"2013":330.4736,"2014":424.3189,"2015":165.2413,"2016":151.5619,"2017":77.7013,"2018":84.6964,"2019":29.59,"2020":91.3842,"2021":53.8004,"2022":41.7326,"2023":75.5499},"Primary forest":{"2001":41.1934,"2002":30.6653,"2003":13.68,"2004":98.6793,"2005":209.8123,"2006":379.429,"2007":115.8962,"2008":96.2208,"2009":368.2156,"2010":47.8819,"2011":42.0413,"2012":228.795,"2013":26.1305,"2014":255.8481,"2015":270.3755,"2016":823.8133,"2017":81.5399,"2018":47.9595,"2019":64.4845,"2020":22.7495,"2021":71.7856,"2022":5.7642,"2023":15.6791},"Water bodies":{"2001":0.8454,"2002":0.0768,"2003":0.0,"2004":0.1537,"2005":0.0,"2006":0.0,"2007":0.0769,"2008":0.0,"2009":0.0,"2010":0.1537,"2011":0.2306,"2012":0.6916,"2013":0.6917,"2014":0.6148,"2015":0.0,"2016":0.2306,"2017":0.0768,"2018":0.0,"2019":0.0,"2020":0.0,"2021":0.2305,"2022":0.1537,"2023":0.0769},"Mixed tree crops":{"2001":19.1363,"2002":16.9073,"2003":23.9776,"2004":236.7062,"2005":83.3852,"2006":683.7575,"2007":52.029,"2008":78.3891,"2009":95.9108,"2010":65.8624,"2011":136.1808,"2012":219.1809,"2013":39.5784,"2014":106.132,"2015":68.1674,"2016":84.8439,"2017":21.749,"2018":33.1229,"2019":15.6777,"2020":20.7498,"2021":30.1257,"2022":29.8185,"2023":40.5006}} {"Bare land":{"2001":3.8428,"2002":35.2766,"2003":5.3801,"2004":14.4491,"2005":17.6005,"2006":39.8116,"2007":99.1447,"2008":141.5687,"2009":59.9482,"2010":20.7508,"2011":136.3415,"2012":129.3478,"2013":94.2991,"2014":83.0794,"2015":280.0642,"2016":735.1371,"2017":28.9729,"2018":36.1198,"2019":8.3774,"2020":7.1477,"2021":8.0699,"2022":2.3824,"2023":16.8306},"Mining":{"2001":7.301,"2002":2.7666,"2003":5.2258,"2004":11.9889,"2005":15.2172,"2006":9.1456,"2007":7.6082,"2008":34.8914,"2009":16.9072,"2010":8.9918,"2011":12.4502,"2012":29.5112,"2013":1.0759,"2014":16.8304,"2015":2.5362,"2016":1.9982,"2017":1.7676,"2018":0.7685,"2019":0.3074,"2020":0.4611,"2021":1.7676,"2022":3.5353,"2023":4.3037},"Settlement":{"2001":30.2802,"2002":84.4598,"2003":6.7627,"2004":5.226,"2005":1.9982,"2006":15.5239,"2007":5.3029,"2008":146.7178,"2009":9.1456,"2010":5.9944,"2011":8.2999,"2012":20.9038,"2013":6.4557,"2014":10.4519,"2015":14.0641,"2016":20.5962,"2017":9.6834,"2018":5.9946,"2019":5.6871,"2020":7.5318,"2021":7.5314,"2022":7.7622,"2023":7.839},"Secondary forest":{"2001":14.8329,"2002":34.5077,"2003":10.3753,"2004":63.4026,"2005":86.5381,"2006":58.5628,"2007":81.0051,"2008":222.8806,"2009":92.1507,"2010":46.96,"2011":105.6723,"2012":258.1458,"2013":358.5935,"2014":604.2224,"2015":692.3818,"2016":1208.3837,"2017":259.4575,"2018":110.7479,"2019":151.2503,"2020":92.763,"2021":119.8204,"2022":109.8252,"2023":112.2107},"Agriculture":{"2001":87.6883,"2002":42.4224,"2003":18.9819,"2004":289.878,"2005":266.1325,"2006":746.3828,"2007":376.2672,"2008":177.9118,"2009":282.8805,"2010":120.1185,"2011":271.2771,"2012":638.4726,"2013":155.6217,"2014":248.7641,"2015":220.5643,"2016":382.8723,"2017":105.1299,"2018":55.5624,"2019":44.6495,"2020":56.5613,"2021":42.3446,"2022":44.4967,"2023":65.7837},"Swamp":{"2001":110.6023,"2002":161.6235,"2003":30.1276,"2004":349.3156,"2005":345.4651,"2006":346.3096,"2007":162.935,"2008":218.7309,"2009":146.9478,"2010":95.2199,"2011":132.4202,"2012":382.8885,"2013":159.6257,"2014":317.4138,"2015":296.5912,"2016":418.5593,"2017":115.2812,"2018":74.3201,"2019":85.1564,"2020":78.4694,"2021":128.1948,"2022":88.1532,"2023":81.8506},"Grassland/shrub":{"2001":4.9185,"2002":20.2891,"2003":11.7584,"2004":38.7334,"2005":22.748,"2006":135.7978,"2007":15.2937,"2008":74.7011,"2009":35.6594,"2010":20.4429,"2011":50.7993,"2012":105.518,"2013":11.4509,"2014":46.2648,"2015":55.7949,"2016":62.8662,"2017":264.4497,"2018":34.5065,"2019":9.8372,"2020":5.1492,"2021":6.9934,"2022":55.8711,"2023":47.8786},"Estate crop plantation":{"2001":759.8369,"2002":469.6682,"2003":221.0338,"2004":1396.0776,"2005":1569.454,"2006":2808.3496,"2007":2218.0015,"2008":2990.2754,"2009":1359.0495,"2010":854.7606,"2011":983.3553,"2012":1269.5731,"2013":1053.2509,"2014":1138.9796,"2015":466.1251,"2016":509.328,"2017":239.7129,"2018":205.5913,"2019":312.8252,"2020":676.3081,"2021":539.8723,"2022":247.7148,"2023":696.1293},"Body of water":{"2001":2.4593,"2002":0.0,"2003":0.538,"2004":0.7685,"2005":0.2306,"2006":2.6132,"2007":3.228,"2008":7.7625,"2009":0.2306,"2010":0.4611,"2011":3.0743,"2012":3.689,"2013":1.3834,"2014":2.7668,"2015":0.8454,"2016":5.0725,"2017":2.3057,"2018":1.9215,"2019":0.6148,"2020":0.3074,"2021":3.228,"2022":0.3074,"2023":0.2306}} {} {"Converted Production Forest":{"2001":151.8635,"2002":60.1778,"2003":69.0172,"2004":724.5834,"2005":1148.2139,"2006":1123.3127,"2007":1023.561,"2008":844.268,"2009":747.8878,"2010":275.2161,"2011":481.5731,"2012":804.1156,"2013":820.0067,"2014":1024.9196,"2015":1197.936,"2016":1866.668,"2017":356.367,"2018":233.3308,"2019":223.499,"2020":193.5994,"2021":241.5624,"2022":233.5622,"2023":188.2192},"Production Forest":{"2001":113.1434,"2002":80.4763,"2003":7.6858,"2004":26.0567,"2005":48.7316,"2006":183.5469,"2007":84.3149,"2008":147.2649,"2009":84.4729,"2010":56.57,"2011":110.1392,"2012":156.3372,"2013":49.1136,"2014":173.4782,"2015":154.1063,"2016":334.2621,"2017":35.1256,"2018":10.4532,"2019":17.4472,"2020":24.9028,"2021":17.5241,"2022":26.3625,"2023":54.5699},"Other Utilization Area":{"2001":712.0267,"2002":482.1867,"2003":221.5682,"2004":1414.5116,"2005":1126.5942,"2006":2837.7298,"2007":1853.8397,"2008":3013.7624,"2009":1165.5631,"2010":833.4598,"2011":1098.1437,"2012":1865.7614,"2013":971.0994,"2014":1259.078,"2015":657.4037,"2016":999.5492,"2017":622.2031,"2018":279.4429,"2019":376.9137,"2020":705.8893,"2021":595.4311,"2022":299.8162,"2023":789.0379},"Sanctuary Reserves/Nature Conservation Area":{"2001":42.2692,"2002":228.1732,"2003":11.3743,"2004":3.9196,"2005":1.614,"2006":15.3711,"2007":4.4576,"2008":2.8437,"2009":4.765,"2010":7.9931,"2011":10.7597,"2012":8.1466,"2013":0.1537,"2014":8.5307,"2015":18.6758,"2016":139.2616,"2017":10.7596,"2018":0.3843,"2019":0.2306,"2020":0.0,"2021":0.0769,"2022":0.0,"2023":0.9991}} {"2001":85.0014,"2002":248.2325,"2003":18.829,"2004":97.8293,"2005":96.2941,"2006":176.9875,"2007":138.7928,"2008":129.4126,"2009":109.4342,"2010":65.0144,"2011":100.5959,"2012":428.132,"2013":566.3779,"2014":467.2467,"2015":304.2577,"2016":712.6515,"2017":145.3232,"2018":56.2574,"2019":82.8502,"2020":54.0272,"2021":24.2097,"2022":14.7553,"2023":31.6631} {} {} {} {} {} {} {} {} {} {} 76338.8266 34513.678 6014.0986 23301.5138 0.0 34530.8164 0.0 125583.7284 6614.0107 31984.9079 {} {} {} {} {"Converted Production Forest":28600.5448,"Production Forest":4848.8827,"Other Utilization Area":81822.5991,"Sanctuary Reserves/Nature Conservation Area":6614.0107} {"Rubber plantation":3542.3364,"Secondary forest":24896.0268,"Agriculture":2763.3729,"Oil palm plantation":24398.5485,"Swamp":29043.6031,"Settlements":851.2415,"Grassland/shrub":22752.6953,"Primary forest":8261.1709,"Water bodies":3133.0348,"Mixed tree crops":5941.6982} {"Bare land":2902.1353,"Mining":1392.3433,"Settlement":5798.0268,"Secondary forest":21966.5842,"Agriculture":9963.5593,"Swamp":7625.7847,"Grassland/shrub":2875.049,"Estate crop plantation":69353.0242,"Body of water":3707.2217} 13342.6717 false false false false true true false {"2001":23485.8882,"2002":23485.8882,"2003":23374.1445,"2004":23119.9955,"2005":23068.1202,"2006":22694.5486,"2007":22285.1614,"2008":21463.0712,"2009":21006.0263,"2010":20669.6397,"2011":20292.7605,"2012":20136.9792,"2013":19754.7947,"2014":18881.5269,"2015":18606.9329,"2016":18125.0618,"2017":17132.4074,"2018":15378.6605,"2019":15120.9727,"2020":15003.7708,"2021":14849.0634,"2022":14732.6295} {"2001":31984.9079,"2002":31984.9079,"2003":31984.9079,"2004":31984.9079,"2005":31984.9079,"2006":31984.9079,"2007":31984.9079,"2008":31984.9079,"2009":31984.9079,"2010":31984.9079,"2011":31984.9079,"2012":31984.9079,"2013":31984.9079,"2014":31984.9079,"2015":31984.9079,"2016":31984.9079,"2017":31984.9079,"2018":31984.9079,"2019":31984.9079,"2020":31984.9079,"2021":31984.9079,"2022":31984.9079} {"2001":6614.0107,"2002":6614.0107,"2003":6614.0107,"2004":6614.0107,"2005":6614.0107,"2006":6614.0107,"2007":6614.0107,"2008":6614.0107,"2009":6614.0107,"2010":6614.0107,"2011":6614.0107,"2012":6614.0107,"2013":6614.0107,"2014":6614.0107,"2015":6614.0107,"2016":6614.0107,"2017":6614.0107,"2018":6614.0107,"2019":6614.0107,"2020":6614.0107,"2021":6614.0107,"2022":6614.0107} {"2002":365.8928,"2003":306.0243,"2004":425.4469,"2005":782.9588,"2006":1231.4774,"2007":1279.1351,"2008":793.4315,"2009":713.2658,"2010":532.6605,"2011":537.9658,"2012":1255.4523,"2013":1147.8618,"2014":756.465,"2015":1474.5255,"2016":2746.4013,"2017":2011.4348,"2018":374.8897,"2019":271.9092,"2020":271.1414,"2021":244.6289,"2022":225.7991} {"2002":14169.0317,"2003":14121.4598,"2004":14263.6318,"2005":14457.9871,"2006":14775.3894,"2007":14894.5153,"2008":14537.3838,"2009":14379.8313,"2010":14307.4367,"2011":14243.1121,"2012":14624.1389,"2013":14640.9716,"2014":14369.8445,"2015":14824.2131,"2016":15518.2929,"2017":15018.6597,"2018":14203.1553,"2019":14200.8532,"2020":14201.3905,"2021":14170.9561,"2022":14147.208} {"2002":223.0242,"2003":201.3516,"2004":10.5289,"2005":1.3833,"2006":4.6881,"2007":4.7649,"2008":1.0759,"2009":2.1519,"2010":3.7659,"2011":3.8427,"2012":4.1501,"2013":2.9204,"2014":1.3065,"2015":14.6794,"2016":75.0879,"2017":63.9436,"2018":3.1509,"2019":0.9222,"2020":0.9222,"2021":0.9222,"2022":0.9222} {} diff --git a/src/test/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticAnalysisSpec.scala b/src/test/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticAnalysisSpec.scala index 86f5fffb..29b4414d 100644 --- a/src/test/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticAnalysisSpec.scala +++ b/src/test/scala/org/globalforestwatch/summarystats/forest_change_diagnostic/ForestChangeDiagnosticAnalysisSpec.scala @@ -157,7 +157,7 @@ class ForestChangeDiagnosticAnalysisSpec extends TestEnvironment with DataFrameC ) val fcd = FCD(argBraRDD) val fcdDF = ForestChangeDiagnosticDF.getFeatureDataFrame(fcd, spark) - // saveExpectedFcdResult(fcdDF, argBraExpectedOutputPath) + saveExpectedFcdResult(fcdDF, argBraExpectedOutputPath) val expectedDF = readExpectedFcdResult(argBraExpectedOutputPath)