openforis-whisp 0.1.0a7__tar.gz → 1.0.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/PKG-INFO +51 -7
  2. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/README.md +50 -7
  3. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/pyproject.toml +2 -2
  4. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/datasets.py +134 -4
  5. openforis_whisp-1.0.0a1/src/openforis_whisp/parameters/lookup_gee_datasets.csv +172 -0
  6. openforis_whisp-1.0.0a1/src/openforis_whisp/risk.py +624 -0
  7. openforis_whisp-0.1.0a7/src/openforis_whisp/parameters/lookup_gee_datasets.csv +0 -155
  8. openforis_whisp-0.1.0a7/src/openforis_whisp/risk.py +0 -329
  9. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/LICENSE +0 -0
  10. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/__init__.py +0 -0
  11. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/data_conversion.py +0 -0
  12. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/logger.py +0 -0
  13. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/parameters/__init__.py +0 -0
  14. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/parameters/config_runtime.py +0 -0
  15. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/parameters/lookup_context_and_metadata.csv +0 -0
  16. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/pd_schemas.py +0 -0
  17. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/reformat.py +0 -0
  18. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/stats.py +0 -0
  19. {openforis_whisp-0.1.0a7 → openforis_whisp-1.0.0a1}/src/openforis_whisp/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: openforis-whisp
3
- Version: 0.1.0a7
3
+ Version: 1.0.0a1
4
4
  Summary: Whisp (What is in that plot) is an open-source solution which helps to produce relevant forest monitoring information and support compliance with deforestation-related regulations.
5
5
  License: MIT
6
6
  Keywords: whisp,geospatial,data-processing
@@ -107,12 +107,40 @@ However, under the same circumstances but with <u>no</u> disturbances reported a
107
107
  *The Whisp algorithm visualized:*
108
108
  ![CoE_Graphic 5](https://github.com/user-attachments/assets/007b5f50-3939-4707-95fa-98be4d56745f)
109
109
 
110
+ ## Whisp datasets for timber <a name="whisp_datasets_timber"></a>
111
+ ***Whisp*** implements the convergence of evidence approach by providing a transparent and public processing flow using datasets covering the following categories:
112
+ 1) Tree and forest cover (at the end of 2020);
113
+ 2) Commodities (i.e., crop plantations and other agricultural uses at the end of 2020);
114
+ 3) Disturbances **before 2020** (i.e., degradation or deforestation until 2020-12-31);
115
+ 4) Disturbances **after 2020** (i.e., degradation or deforestation from 2021-01-01 onward).
116
+ 5) Primary forests in 2020;
117
+ 6) Naturally regenerating forests in 2020;
118
+ 7) Planted and plantation forests in 2020;
119
+ 8) Planted and plantation forests in 2023;
120
+ 9) Treecover in 2023;
121
+ 10) Commodities or croplands in 2023.
122
+ 11) Logging concessions;
123
+
124
+ There are multiple datasets for each category. Find the full current [list of datasets used in Whisp here](https://github.com/forestdatapartnership/whisp/blob/main/layers_description.md).
125
+ Whisp checks the plots provided by the user by running zonal statistics on them to answer the following questions:
126
+
127
+ 1) Was there tree cover in 2020?
128
+ 2) Were there commodity plantations or other agricultural uses in 2020?
129
+ 3) Were there disturbances until 2020-12-31?
130
+ 4) Were there disturbances after 2020-12-31 / starting 2021-01-01?
131
+ 5) Were there primary forests in 2020?
132
+ 6) Were there naturally regenerating forests in 2020?
133
+ 7) Were there planted and plantation forests in 2020?
134
+ 8) Were there planted and plantation forests in 2023?
135
+ 9) Was there treecover in 2023?
136
+ 10) Were there commodity plantations or other agricultural uses in 2023?
137
+ 11) Were there logging concessions?
110
138
 
111
139
  # Run Whisp python package from a notebook
112
140
 
113
141
  For most users we suggest using the Whisp App to process their plot data. But for some, using the python package directly will fit their workflow.
114
142
 
115
- A simple example of the package functionality can be seen in this [Colab Notebook](https://github.com/forestdatapartnership/whisp/blob/main/notebooks/Colab_whisp_geojson_to_csv.ipynb)
143
+ A simple example of the package functionality can be seen in this [Colab Notebook](https://github.com/forestdatapartnership/whisp/blob/main/notebooks/Colab_whisp_geojson_to_csv.ipynb)
116
144
 
117
145
  ## Requirements for running the package
118
146
 
@@ -124,7 +152,7 @@ More info on Whisp can be found in [here](https://openknowledge.fao.org/items/e9
124
152
 
125
153
  ## Python package installation
126
154
 
127
- The Whisp package is available on pip
155
+ The Whisp package is available on pip
128
156
  https://pypi.org/project/openforis-whisp/
129
157
 
130
158
 
@@ -142,7 +170,22 @@ More info on Whisp can be found in [here](https://openknowledge.fao.org/items/e9
142
170
 
143
171
 
144
172
  ## How to add data layers to Whisp
145
- There are two main approaches: to request a layer be incorporated into the core Whisp inputs, or to add in your own data directly to complement the core ones in Whisp. Currently the latter approach is under revision since moving to implementation in a python package. In the meantime please contact us through the issues page if this is functionality is useful to you.
173
+ There are two main approaches:
174
+ 1) Request that a layer be incorporated into the core Whisp inputs, or
175
+
176
+ 2) Add your own data directly to complement the core datasets.
177
+
178
+ Currently the latter approach is under revision since moving to implementation in a python package. In the meantime please contact us through the issues page if this is functionality is useful to you.
179
+
180
+ Requesting a layer addition:
181
+ If you think a particular dataset has wide applicability for Whisp users, you can request it be added to the main Whisp repository by logging as an issue in Github [here] (https://github.com/forestdatapartnership/whisp/issues/). Before submitting a request, consider the following:
182
+
183
+ - Is the resolution high enough for plot-level analysis? (e.g., 30m or 10m resolution)
184
+
185
+ - Is there an indication of data quality? (e.g., accuracy assessment detailed in a scientific publication)
186
+
187
+ - Is there relevant metadata available?
188
+
146
189
 
147
190
  ## Contributing to the Whisp code base
148
191
  Contributions to the Whisp code in GitHub are welcome. They can be made by forking the repository making and pushing the required changes, then making a pull request to the Whisp repository. After briefly reviewing the request, we can make a branch for which to make a new pull request to. After final checks we can then incorporate the code in main. If in doubt get in contact first or log as an issue [here](https://github.com/forestdatapartnership/whisp/issues/).
@@ -166,10 +209,10 @@ Please read the [contributing guidelines](contributing_guidelines.md) for good p
166
209
 
167
210
  ## Code of Conduct <a name="whisp_conduct"></a>
168
211
 
169
- **Purpose**
212
+ **Purpose**
170
213
  We are dedicated to maintaining a safe and respectful environment for all users. Harassment or abusive behavior will not be tolerated. <br>
171
214
 
172
- **Scope**
215
+ **Scope**
173
216
  This Code applies to all interactions on the repository and on the app.
174
217
 
175
218
  **Expectations** <br>
@@ -182,6 +225,7 @@ This Code applies to all interactions on the repository and on the app.
182
225
  *- Discrimination:* Any form of hate speech or exclusion based on race, gender, orientation, or other identities.<br>
183
226
  *- Inappropriate Content:* Posting offensive, harmful, or explicit material.
184
227
 
185
- **Reporting**
228
+ **Reporting**
186
229
  Users can report violations directly to us by emailing the address listed in the "Contact Us" section of the website:
187
230
  https://openforis.org/solutions/whisp/
231
+
@@ -69,12 +69,40 @@ However, under the same circumstances but with <u>no</u> disturbances reported a
69
69
  *The Whisp algorithm visualized:*
70
70
  ![CoE_Graphic 5](https://github.com/user-attachments/assets/007b5f50-3939-4707-95fa-98be4d56745f)
71
71
 
72
+ ## Whisp datasets for timber <a name="whisp_datasets_timber"></a>
73
+ ***Whisp*** implements the convergence of evidence approach by providing a transparent and public processing flow using datasets covering the following categories:
74
+ 1) Tree and forest cover (at the end of 2020);
75
+ 2) Commodities (i.e., crop plantations and other agricultural uses at the end of 2020);
76
+ 3) Disturbances **before 2020** (i.e., degradation or deforestation until 2020-12-31);
77
+ 4) Disturbances **after 2020** (i.e., degradation or deforestation from 2021-01-01 onward).
78
+ 5) Primary forests in 2020;
79
+ 6) Naturally regenerating forests in 2020;
80
+ 7) Planted and plantation forests in 2020;
81
+ 8) Planted and plantation forests in 2023;
82
+ 9) Treecover in 2023;
83
+ 10) Commodities or croplands in 2023.
84
+ 11) Logging concessions;
85
+
86
+ There are multiple datasets for each category. Find the full current [list of datasets used in Whisp here](https://github.com/forestdatapartnership/whisp/blob/main/layers_description.md).
87
+ Whisp checks the plots provided by the user by running zonal statistics on them to answer the following questions:
88
+
89
+ 1) Was there tree cover in 2020?
90
+ 2) Were there commodity plantations or other agricultural uses in 2020?
91
+ 3) Were there disturbances until 2020-12-31?
92
+ 4) Were there disturbances after 2020-12-31 / starting 2021-01-01?
93
+ 5) Were there primary forests in 2020?
94
+ 6) Were there naturally regenerating forests in 2020?
95
+ 7) Were there planted and plantation forests in 2020?
96
+ 8) Were there planted and plantation forests in 2023?
97
+ 9) Was there treecover in 2023?
98
+ 10) Were there commodity plantations or other agricultural uses in 2023?
99
+ 11) Were there logging concessions?
72
100
 
73
101
  # Run Whisp python package from a notebook
74
102
 
75
103
  For most users we suggest using the Whisp App to process their plot data. But for some, using the python package directly will fit their workflow.
76
104
 
77
- A simple example of the package functionality can be seen in this [Colab Notebook](https://github.com/forestdatapartnership/whisp/blob/main/notebooks/Colab_whisp_geojson_to_csv.ipynb)
105
+ A simple example of the package functionality can be seen in this [Colab Notebook](https://github.com/forestdatapartnership/whisp/blob/main/notebooks/Colab_whisp_geojson_to_csv.ipynb)
78
106
 
79
107
  ## Requirements for running the package
80
108
 
@@ -86,7 +114,7 @@ More info on Whisp can be found in [here](https://openknowledge.fao.org/items/e9
86
114
 
87
115
  ## Python package installation
88
116
 
89
- The Whisp package is available on pip
117
+ The Whisp package is available on pip
90
118
  https://pypi.org/project/openforis-whisp/
91
119
 
92
120
 
@@ -104,7 +132,22 @@ More info on Whisp can be found in [here](https://openknowledge.fao.org/items/e9
104
132
 
105
133
 
106
134
  ## How to add data layers to Whisp
107
- There are two main approaches: to request a layer be incorporated into the core Whisp inputs, or to add in your own data directly to complement the core ones in Whisp. Currently the latter approach is under revision since moving to implementation in a python package. In the meantime please contact us through the issues page if this is functionality is useful to you.
135
+ There are two main approaches:
136
+ 1) Request that a layer be incorporated into the core Whisp inputs, or
137
+
138
+ 2) Add your own data directly to complement the core datasets.
139
+
140
+ Currently the latter approach is under revision since moving to implementation in a python package. In the meantime please contact us through the issues page if this is functionality is useful to you.
141
+
142
+ Requesting a layer addition:
143
+ If you think a particular dataset has wide applicability for Whisp users, you can request it be added to the main Whisp repository by logging as an issue in Github [here] (https://github.com/forestdatapartnership/whisp/issues/). Before submitting a request, consider the following:
144
+
145
+ - Is the resolution high enough for plot-level analysis? (e.g., 30m or 10m resolution)
146
+
147
+ - Is there an indication of data quality? (e.g., accuracy assessment detailed in a scientific publication)
148
+
149
+ - Is there relevant metadata available?
150
+
108
151
 
109
152
  ## Contributing to the Whisp code base
110
153
  Contributions to the Whisp code in GitHub are welcome. They can be made by forking the repository making and pushing the required changes, then making a pull request to the Whisp repository. After briefly reviewing the request, we can make a branch for which to make a new pull request to. After final checks we can then incorporate the code in main. If in doubt get in contact first or log as an issue [here](https://github.com/forestdatapartnership/whisp/issues/).
@@ -128,10 +171,10 @@ Please read the [contributing guidelines](contributing_guidelines.md) for good p
128
171
 
129
172
  ## Code of Conduct <a name="whisp_conduct"></a>
130
173
 
131
- **Purpose**
174
+ **Purpose**
132
175
  We are dedicated to maintaining a safe and respectful environment for all users. Harassment or abusive behavior will not be tolerated. <br>
133
176
 
134
- **Scope**
177
+ **Scope**
135
178
  This Code applies to all interactions on the repository and on the app.
136
179
 
137
180
  **Expectations** <br>
@@ -144,6 +187,6 @@ This Code applies to all interactions on the repository and on the app.
144
187
  *- Discrimination:* Any form of hate speech or exclusion based on race, gender, orientation, or other identities.<br>
145
188
  *- Inappropriate Content:* Posting offensive, harmful, or explicit material.
146
189
 
147
- **Reporting**
190
+ **Reporting**
148
191
  Users can report violations directly to us by emailing the address listed in the "Contact Us" section of the website:
149
- https://openforis.org/solutions/whisp/
192
+ https://openforis.org/solutions/whisp/
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "openforis-whisp"
7
- version = "0.1.0a7"
7
+ version = "1.0.0a1"
8
8
  description = "Whisp (What is in that plot) is an open-source solution which helps to produce relevant forest monitoring information and support compliance with deforestation-related regulations."
9
9
  repository = "https://github.com/forestdatapartnership/whisp"
10
10
  authors = ["Andy Arnell <and.arnell@fao.org>"]
@@ -83,4 +83,4 @@ line-length = 120
83
83
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
84
84
 
85
85
  [tool.ruff.mccabe]
86
- max-complexity = 10
86
+ max-complexity = 10
@@ -100,9 +100,53 @@ def fdap_forest_prep():
100
100
  fdap_forest = fdap_forest_raw.gt(0.75)
101
101
  return fdap_forest.rename("Forest_FDaP")
102
102
 
103
-
104
- ############plantation data
105
-
103
+ #########################primary forest
104
+ # EUFO JRC Global forest type - primary
105
+ def gft_primary_prep():
106
+ gft_raw = ee.ImageCollection("JRC/GFC2020_subtypes/V0").mosaic()
107
+ gft_primary = gft_raw.eq(10)
108
+ return gft_primary.rename("GFT_primary")
109
+
110
+ # Intact Forest Landscape 2020
111
+ def IFL_2020_prep():
112
+ IFL_2020 = ee.Image('users/potapovpeter/IFL_2020')
113
+ return IFL_2020.rename("IFL_2020")
114
+
115
+ # European Primary Forest Dataset
116
+ def EPFD_prep():
117
+ EPFD=ee.FeatureCollection("HU_BERLIN/EPFD/V2/polygons")
118
+ EPFD_binary = ee.Image().paint(EPFD,1)
119
+ return EPFD_binary.rename('European_Primary_Forest')
120
+
121
+ # EUFO JRC Global forest type - naturally regenerating planted/plantation forests
122
+ def gft_nat_reg_prep():
123
+ gft_raw = ee.ImageCollection("JRC/GFC2020_subtypes/V0").mosaic()
124
+ gft_nat_reg = gft_raw.eq(1)
125
+ return gft_nat_reg.rename("GFT_naturally_regenerating")
126
+
127
+
128
+ #########################planted and plantation forests
129
+
130
+ # EUFO JRC Global forest type - planted/plantation forests
131
+ def gft_plantation_prep():
132
+ gft_raw = ee.ImageCollection("JRC/GFC2020_subtypes/V0").mosaic()
133
+ gft_plantation = gft_raw.eq(20)
134
+ return gft_plantation.rename("GFT_planted_plantation")
135
+
136
+ def IIASA_planted_prep():
137
+ iiasa = ee.Image('projects/sat-io/open-datasets/GFM/FML_v3-2');
138
+ iiasa_PL = iiasa.eq(31).Or(iiasa.eq(32))
139
+ return iiasa_PL.rename('IIASA_planted_plantation')
140
+
141
+ #########################TMF regrowth in 2023
142
+ def tmf_regrowth_prep():
143
+ # Load the TMF Degradation annual product
144
+ TMF_AC=ee.ImageCollection('projects/JRC/TMF/v1_2023/AnnualChanges').mosaic()
145
+ TMF_AC_2023=TMF_AC.select('Dec2023')
146
+ Regrowth_TMF = TMF_AC_2023.eq(4)
147
+ return Regrowth_TMF.rename('TMF_regrowth_2023')
148
+
149
+ ############tree crops
106
150
 
107
151
  # TMF_plant (plantations in 2020)
108
152
  def jrc_tmf_plantation_prep():
@@ -165,6 +209,17 @@ def fdap_palm_prep():
165
209
  )
166
210
  return fdap_palm.rename("Oil_palm_FDaP")
167
211
 
212
+ def fdap_palm_2023_prep():
213
+ fdap_palm2020_model_raw = ee.ImageCollection("projects/forestdatapartnership/assets/palm/model_2024a")
214
+ fdap_palm = (
215
+ fdap_palm2020_model_raw
216
+ .filterDate('2023-01-01', '2023-12-31')
217
+ .mosaic()
218
+ .gt(0.83) # Threshold for Oil Palm
219
+
220
+ )
221
+ return fdap_palm.rename("Oil_palm_2023_FDaP")
222
+
168
223
 
169
224
  # Rubber FDaP
170
225
  def fdap_rubber_prep():
@@ -178,6 +233,16 @@ def fdap_rubber_prep():
178
233
  )
179
234
  return fdap_rubber.rename("Rubber_FDaP")
180
235
 
236
+ def fdap_rubber_2023_prep():
237
+ fdap_rubber2020_model_raw = ee.ImageCollection("projects/forestdatapartnership/assets/rubber/model_2024a")
238
+ fdap_rubber = (
239
+ fdap_rubber2020_model_raw
240
+ .filterDate('2023-01-01', '2023-12-31')
241
+ .mosaic()
242
+ .gt(0.93) # Threshold for Rubber
243
+
244
+ )
245
+ return fdap_rubber.rename("Rubber_2023_FDaP")
181
246
 
182
247
  # Cocoa FDaP
183
248
  def fdap_cocoa_prep():
@@ -191,6 +256,16 @@ def fdap_cocoa_prep():
191
256
  )
192
257
  return fdap_cocoa.rename("Cocoa_FDaP")
193
258
 
259
+ def fdap_cocoa_2023_prep():
260
+ fdap_cocoa2020_model_raw = ee.ImageCollection("projects/forestdatapartnership/assets/cocoa/model_2024a")
261
+ fdap_cocoa = (
262
+ fdap_cocoa2020_model_raw
263
+ .filterDate('2023-01-01', '2023-12-31')
264
+ .mosaic()
265
+ .gt(0.5) # Threshold for Cocoa
266
+
267
+ )
268
+ return fdap_cocoa.rename("Cocoa_2023_FDaP")
194
269
 
195
270
  # Cocoa_bnetd
196
271
  def civ_ocs2020_prep():
@@ -212,7 +287,41 @@ def rbge_rubber_prep():
212
287
  .rename("Rubber_RBGE")
213
288
  )
214
289
 
215
-
290
+ ################## seasonal crops
291
+
292
+ #soy 2020 Brazil
293
+ def soy_song_2020_prep():
294
+ return ee.Image('projects/glad/soy_annual_SA/2020').unmask().rename("Soy_Song_2020")
295
+ ##############2023
296
+ # ESRI 2023
297
+ # ESRI 2023 - Tree Cover
298
+ def esri_2023_TC_prep():
299
+ esri_lulc10_raw = ee.ImageCollection("projects/sat-io/open-datasets/landcover/ESRI_Global-LULC_10m_TS")
300
+ esri_lulc10_TC = esri_lulc10_raw.filterDate('2023-01-01', '2023-12-31').mosaic().eq(2)
301
+ return esri_lulc10_TC.rename('ESRI_2023_TC')
302
+
303
+ # ESRI 2023 - Crop
304
+ def esri_2023_crop_prep():
305
+ esri_lulc10_raw = ee.ImageCollection("projects/sat-io/open-datasets/landcover/ESRI_Global-LULC_10m_TS")
306
+ esri_lulc10_crop = esri_lulc10_raw.filterDate('2023-01-01', '2023-12-31').mosaic().eq(5)
307
+ return esri_lulc10_crop.rename('ESRI_2023_crop')
308
+
309
+ # GLC_FCS30D 2022
310
+
311
+ # GLC_FCS30D Tree Cover
312
+ # forest classes + swamp + mangrove / what to do with shrubland?
313
+ def GLC_FCS30D_TC_2022_prep():
314
+ GLC_FCS30D = ee.ImageCollection("projects/sat-io/open-datasets/GLC-FCS30D/annual").mosaic().select(22)
315
+ GLC_FCS30D_TC = (GLC_FCS30D.gte(51)).And(GLC_FCS30D.lte(92)).Or(GLC_FCS30D.eq(181)).Or(GLC_FCS30D.eq(185))
316
+ return GLC_FCS30D_TC.rename('GLC_FCS30D_TC_2022')
317
+
318
+ # GLC_FCS30D crop
319
+ # 10 Rainfed cropland; 11 Herbaceous cover; 12 Tree or shrub cover (Orchard); 20 Irrigated cropland
320
+ def GLC_FCS30D_crop_2022_prep():
321
+ GLC_FCS30D = ee.ImageCollection("projects/sat-io/open-datasets/GLC-FCS30D/annual").mosaic().select(22)
322
+ GLC_FCS30D_crop = GLC_FCS30D.gte(10).And(GLC_FCS30D.lte(20))
323
+ return GLC_FCS30D_crop.rename('GLC_FCS30D_crop_2022')
324
+
216
325
  #### disturbances by year
217
326
 
218
327
  # RADD_year_2019 to RADD_year_< current year >
@@ -605,6 +714,27 @@ def esa_fire_before_2020_prep():
605
714
  .rename("ESA_fire_before_2020")
606
715
  )
607
716
 
717
+ #########################logging concessions
718
+ #http://data.globalforestwatch.org/datasets?q=logging&sort_by=relevance
719
+ def logging_concessions_prep():
720
+ RCA=ee.FeatureCollection('projects/ee-whisp/assets/logging/RCA_Permis_dExploitation_et_dAmenagement')
721
+ RCA_binary = ee.Image().paint(RCA,1)
722
+ CMR=ee.FeatureCollection('projects/ee-whisp/assets/logging/Cameroon_Forest_Management_Units')
723
+ CMR_binary = ee.Image().paint(CMR,1)
724
+ Eq_G=ee.FeatureCollection('projects/ee-whisp/assets/logging/Equatorial_Guinea_logging_concessions')
725
+ Eq_G_binary = ee.Image().paint(Eq_G,1)
726
+ DRC=ee.FeatureCollection('projects/ee-whisp/assets/logging/DRC_Forest_concession_agreements')
727
+ DRC_binary = ee.Image().paint(DRC,1)
728
+ Liberia=ee.FeatureCollection('projects/ee-whisp/assets/logging/Liberia_Forest_Management_Contracts')
729
+ Liberia_binary = ee.Image().paint(Liberia,1)
730
+ RoC=ee.FeatureCollection('projects/ee-whisp/assets/logging/Republic_of_the_Congo_logging_concessions')
731
+ Roc_binary = ee.Image().paint(RoC,1)
732
+ Sarawak=ee.FeatureCollection('projects/ee-whisp/assets/logging/Sarawak_logging_concessions')
733
+ Sarawak_binary = ee.Image().paint(Sarawak,1)
734
+ logging_concessions_binary=ee.ImageCollection([RCA_binary, CMR_binary, Eq_G_binary,DRC_binary,Liberia_binary,Roc_binary,Sarawak_binary]).mosaic()
735
+
736
+ return logging_concessions_binary.rename('GFW_logging')
737
+
608
738
 
609
739
  # ###Combining datasets
610
740
 
@@ -0,0 +1,172 @@
1
+ name,order,theme,theme_timber,use_for_risk,use_for_risk_timber,exclude_from_output,col_type,is_nullable,is_required,corresponding_variable
2
+ EUFO_2020,10,treecover,naturally_reg_2020,1,1,0,float32,1,0,jrc_gfc_2020_prep
3
+ GLAD_Primary,20,treecover,primary,1,1,0,float32,1,0,glad_pht_prep
4
+ TMF_undist,30,treecover,primary,1,1,0,float32,1,0,jrc_tmf_undisturbed_prep
5
+ JAXA_FNF_2020,40,treecover,,1,0,0,float32,1,0,jaxa_forest_prep
6
+ GFC_TC_2020,50,treecover,naturally_reg_2020,1,1,0,float32,1,0,glad_gfc_10pc_prep
7
+ Forest_FDaP,60,treecover,naturally_reg_2020,1,1,0,float32,1,0,glad_gfc_10pc_prep
8
+ ESA_TC_2020,70,treecover,naturally_reg_2020,1,1,0,float32,1,0,esa_worldcover_trees_prep
9
+ TMF_plant,80,commodities,,1,1,0,float32,1,0,jrc_tmf_plantation_prep
10
+ Oil_palm_Descals,90,commodities,,1,1,0,float32,1,0,creaf_descals_palm_prep
11
+ Oil_palm_FDaP,100,commodities,,1,1,0,float32,1,0,fdap_palm_prep
12
+ Cocoa_FDaP,110,commodities,,1,1,0,float32,1,0,fdap_cocoa
13
+ Cocoa_ETH,120,commodities,,1,1,0,float32,1,0,eth_kalischek_cocoa_prep
14
+ Cocoa_bnetd,130,commodities,,1,1,0,float32,1,0,civ_ocs2020_prep
15
+ Rubber_FDaP,140,commodities,,1,1,0,float32,1,0,fdap_rubber_prep
16
+ Rubber_RBGE,150,commodities,,1,1,0,float32,1,0,rbge_rubber_prep
17
+ Soy_Song_2020,155,commodities,,1,1,0,float32,1,0,soy_song_2020_prep
18
+ WDPA,160,ancilliary,,0,0,1,bool,1,0,wcmc_wdpa_protection_prep
19
+ KBA,170,ancilliary,,0,0,1,bool,1,0,birdlife_kbas_biodiversity_prep
20
+ TMF_def_2000,180,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
21
+ TMF_def_2001,190,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
22
+ TMF_def_2002,200,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
23
+ TMF_def_2003,210,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
24
+ TMF_def_2004,220,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
25
+ TMF_def_2005,230,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
26
+ TMF_def_2006,240,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
27
+ TMF_def_2007,250,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
28
+ TMF_def_2008,260,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
29
+ TMF_def_2009,270,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
30
+ TMF_def_2010,280,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
31
+ TMF_def_2011,290,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
32
+ TMF_def_2012,300,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
33
+ TMF_def_2013,310,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
34
+ TMF_def_2014,320,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
35
+ TMF_def_2015,330,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
36
+ TMF_def_2016,340,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
37
+ TMF_def_2017,350,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
38
+ TMF_def_2018,360,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
39
+ TMF_def_2019,370,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
40
+ TMF_def_2020,380,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
41
+ TMF_def_2021,390,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
42
+ TMF_def_2022,400,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
43
+ TMF_def_2023,410,disturbance_before,,0,0,0,float32,1,0,tmf_def_per_year_prep
44
+ TMF_deg_2000,420,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
45
+ TMF_deg_2001,430,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
46
+ TMF_deg_2002,440,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
47
+ TMF_deg_2003,450,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
48
+ TMF_deg_2004,460,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
49
+ TMF_deg_2005,470,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
50
+ TMF_deg_2006,480,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
51
+ TMF_deg_2007,490,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
52
+ TMF_deg_2008,500,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
53
+ TMF_deg_2009,510,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
54
+ TMF_deg_2010,520,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
55
+ TMF_deg_2011,530,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
56
+ TMF_deg_2012,540,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
57
+ TMF_deg_2013,550,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
58
+ TMF_deg_2014,560,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
59
+ TMF_deg_2015,570,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
60
+ TMF_deg_2016,580,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
61
+ TMF_deg_2017,590,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
62
+ TMF_deg_2018,600,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
63
+ TMF_deg_2019,610,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
64
+ TMF_deg_2020,620,disturbance_before,,0,0,0,float32,1,0,tmf_deg_per_year_prep
65
+ TMF_deg_2021,630,disturbance_after,,0,0,0,float32,1,0,tmf_deg_per_year_prep
66
+ TMF_deg_2022,640,disturbance_after,,0,0,0,float32,1,0,tmf_deg_per_year_prep
67
+ TMF_deg_2023,650,disturbance_after,,0,0,0,float32,1,0,tmf_deg_per_year_prep
68
+ GFC_loss_year_2001,660,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
69
+ GFC_loss_year_2002,670,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
70
+ GFC_loss_year_2003,680,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
71
+ GFC_loss_year_2004,690,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
72
+ GFC_loss_year_2005,700,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
73
+ GFC_loss_year_2006,710,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
74
+ GFC_loss_year_2007,720,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
75
+ GFC_loss_year_2008,730,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
76
+ GFC_loss_year_2009,740,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
77
+ GFC_loss_year_2010,750,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
78
+ GFC_loss_year_2011,760,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
79
+ GFC_loss_year_2012,770,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
80
+ GFC_loss_year_2013,780,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
81
+ GFC_loss_year_2014,790,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
82
+ GFC_loss_year_2015,800,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
83
+ GFC_loss_year_2016,810,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
84
+ GFC_loss_year_2017,820,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
85
+ GFC_loss_year_2018,830,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
86
+ GFC_loss_year_2019,840,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
87
+ GFC_loss_year_2020,850,disturbance_before,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
88
+ GFC_loss_year_2021,860,disturbance_after,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
89
+ GFC_loss_year_2022,870,disturbance_after,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
90
+ GFC_loss_year_2023,880,disturbance_after,,0,0,0,float32,1,0,glad_gfc_loss_per_year_prep
91
+ RADD_year_2019,890,disturbance_before,,0,0,0,float32,1,0,radd_year_prep
92
+ RADD_year_2020,900,disturbance_before,,0,0,0,float32,1,0,radd_year_prep
93
+ RADD_year_2021,910,disturbance_after,,0,0,0,float32,1,0,radd_year_prep
94
+ RADD_year_2022,920,disturbance_after,,0,0,0,float32,1,0,radd_year_prep
95
+ RADD_year_2023,930,disturbance_after,,0,0,0,float32,1,0,radd_year_prep
96
+ RADD_year_2024,940,disturbance_after,,0,0,0,float32,1,0,radd_year_prep
97
+ RADD_year_2025,941,disturbance_after,,0,0,0,float32,1,0,radd_year_prep
98
+ DIST_year_2024,945,disturbance_after,,0,0,1,float32,1,0,glad_dist_year_prep
99
+ DIST_year_2025,946,disturbance_after,,0,0,1,float32,1,0,glad_dist_year_prep
100
+ ESA_fire_2001,950,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
101
+ ESA_fire_2002,960,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
102
+ ESA_fire_2003,970,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
103
+ ESA_fire_2004,980,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
104
+ ESA_fire_2005,990,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
105
+ ESA_fire_2006,1000,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
106
+ ESA_fire_2007,1010,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
107
+ ESA_fire_2008,1020,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
108
+ ESA_fire_2009,1030,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
109
+ ESA_fire_2010,1040,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
110
+ ESA_fire_2011,1050,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
111
+ ESA_fire_2012,1060,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
112
+ ESA_fire_2013,1070,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
113
+ ESA_fire_2014,1080,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
114
+ ESA_fire_2015,1090,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
115
+ ESA_fire_2016,1100,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
116
+ ESA_fire_2017,1110,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
117
+ ESA_fire_2018,1120,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
118
+ ESA_fire_2019,1130,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
119
+ ESA_fire_2020,1140,disturbance_before,,0,0,0,float32,1,0,esa_fire_prep
120
+ MODIS_fire_2000,1150,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
121
+ MODIS_fire_2001,1160,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
122
+ MODIS_fire_2002,1170,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
123
+ MODIS_fire_2003,1180,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
124
+ MODIS_fire_2004,1190,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
125
+ MODIS_fire_2005,1200,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
126
+ MODIS_fire_2006,1210,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
127
+ MODIS_fire_2007,1220,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
128
+ MODIS_fire_2008,1230,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
129
+ MODIS_fire_2009,1240,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
130
+ MODIS_fire_2010,1250,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
131
+ MODIS_fire_2011,1260,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
132
+ MODIS_fire_2012,1270,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
133
+ MODIS_fire_2013,1280,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
134
+ MODIS_fire_2014,1290,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
135
+ MODIS_fire_2015,1300,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
136
+ MODIS_fire_2016,1310,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
137
+ MODIS_fire_2017,1320,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
138
+ MODIS_fire_2018,1330,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
139
+ MODIS_fire_2019,1340,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
140
+ MODIS_fire_2020,1350,disturbance_before,,0,0,0,float32,1,0,modis_fire_prep
141
+ MODIS_fire_2021,1360,disturbance_after,,0,0,0,float32,1,0,modis_fire_prep
142
+ MODIS_fire_2022,1370,disturbance_after,,0,0,0,float32,1,0,modis_fire_prep
143
+ MODIS_fire_2023,1380,disturbance_after,,0,0,0,float32,1,0,modis_fire_prep
144
+ MODIS_fire_2024,1390,disturbance_after,,0,0,0,float32,1,0,modis_fire_prep
145
+ MODIS_fire_2025,1391,disturbance_after,,0,0,0,float32,1,0,modis_fire_prep
146
+ TMF_deg_before_2020,1400,disturbance_before,,1,1,0,float32,1,0,tmf_deg_before_2020_prep
147
+ TMF_def_before_2020,1410,disturbance_before,,1,1,0,float32,1,0,tmf_def_before_2020_prep
148
+ GFC_loss_before_2020,1420,disturbance_before,,1,1,0,float32,1,0,glad_gfc_loss_before_2020_prep
149
+ ESA_fire_before_2020,1430,disturbance_before,,1,1,0,float32,1,0,esa_fire_before_2020_prep
150
+ MODIS_fire_before_2020,1440,disturbance_before,,1,1,0,float32,1,0,modis_fire_before_2020_prep
151
+ RADD_before_2020,1450,disturbance_before,,1,1,0,float32,1,0,radd_before_2020_prep
152
+ TMF_deg_after_2020,1460,disturbance_after,,1,1,0,float32,1,0,tmf_deg_after_2020_prep
153
+ TMF_def_after_2020,1470,disturbance_after,,1,1,0,float32,1,0,tmf_def_after_2020_prep
154
+ GFC_loss_after_2020,1480,disturbance_after,,1,1,0,float32,1,0,glad_gfc_loss_after_2020_prep
155
+ MODIS_fire_after_2020,1490,disturbance_after,,1,1,0,float32,1,0,modis_fire_after_2020_prep
156
+ RADD_after_2020,1500,disturbance_after,,1,1,0,float32,1,0,RADD_after_2020_prep
157
+ DIST_after_2020,1600,disturbance_after,,1,1,0,float32,1,0,glad_dist_after_2020_prep
158
+ GFT_primary,1700,,primary,,1,0,float32,1,0,gft_primary_prep
159
+ IFL_2020,1710,,primary,,1,0,float32,1,0,IFL_2020_prep
160
+ European_Primary_Forest,1720,,primary,,1,0,float32,1,0,EPFD_prep
161
+ GFT_naturally_regenerating,1800,,naturally_reg_2020,,1,0,float32,1,0,gft_nat_reg_prep
162
+ GFT_planted_plantation,1900,,planted_plantation_2020,,1,0,float32,1,0,gft_plantation_prep
163
+ IIASA_planted_plantation,1910,,planted_plantation_2020,,1,0,float32,1,0,IIASA_planted_prep
164
+ TMF_regrowth_2023,2000,,treecover_post2020,,1,0,float32,1,0,tmf_regrowth_prep
165
+ ESRI_2023_TC,2010,,treecover_post2020,,1,0,float32,1,0,esri_2023_TC_prep
166
+ GLC_FCS30D_TC_2022,2020,,treecover_post2020,,1,0,float32,1,0,GLC_FCS30D_TC_2022_prep
167
+ Oil_palm_2023_FDaP,2100,,agri_post_2020,,1,0,float32,1,0,fdap_palm_2023_prep
168
+ Rubber_2023_FDaP,2110,,agri_post_2020,,1,0,float32,1,0,fdap_rubber_2023_prep
169
+ Cocoa_2023_FDaP,2120,,agri_post_2020,,1,0,float32,1,0,fdap_cocoa_2023_prep
170
+ ESRI_2023_crop,2130,,agri_post_2020,,1,0,float32,1,0,esri_2023_crop_prep
171
+ GLC_FCS30D_crop_2022,2140,,agri_post_2020,,1,0,float32,1,0,GLC_FCS30D_crop_2022_prep
172
+ GFW_logging,2200,,logging_concession,,1,0,float32,1,0,logging_concessions_prep