Skip to content

Commit 607a3c3

Browse files
authored
Added SL2PV1.1
SL2PV1 only corrects for crown clumping SL2PV1.1 corrects for crown and shoot clumping and corresponds to SL2P-CCRS defined in Fernandes et al. 2024.
1 parent 6259907 commit 607a3c3

File tree

2 files changed

+372
-22
lines changed

2 files changed

+372
-22
lines changed

Source-Python/production/SL2PV1.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ def l8_createFeatureCollection_Network_Ind():
1414
# def l8_createImageCollection_partition():
1515
# return ee.ImageCollection('users/rfernand387/NA_NALCMS_2015_tiles') \
1616
# .map(lambda image :image.select("b1").rename("partition") ) \
17-
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global") \
17+
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global") \
1818
# .map( lambda image :image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
1919

2020
def l8_createImageCollection_partition():
2121
return ee.ImageCollection(ee.Image('USGS/NLCD_RELEASES/2020_REL/NALCMS')) \
2222
.map(lambda image: image.rename("partition") )\
23-
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
23+
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
2424
.map( lambda image :image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
2525

2626
def l8_createFeatureCollection_legend():
@@ -30,29 +30,29 @@ def l8_createFeatureCollection_estimates():
3030
return ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1') \
3131
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
3232
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1')) \
33-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ccrs_sobol_4sail2_enf_NNT1_Single_0_1')) \
33+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_enf_big_clumpedv2_NNT1_Single_0_1')) \
3434
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
3535
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
3636
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
3737
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1')) \
3838
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
3939
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
4040
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
41-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1'))
41+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_mix_big_clumpedv3_NNT1_Single_0_1'))
4242

4343
def l8_createFeatureCollection_errors():
4444
return ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes') \
4545
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
4646
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
47-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ccrs_sobol_4sail2_enf_NNT1_Single_0_1_incertitudes')) \
47+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_enf_big_clumpedv2_NNT1_Single_0_1_incertitudes')) \
4848
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
4949
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
5050
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
5151
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
5252
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
5353
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
5454
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
55-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1_incertitudes')) \
55+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_mix_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
5656

5757
def l8_createFeatureCollection_ranges():
5858
return ee.FeatureCollection('users/rfernand387/LANDSAT_LC08_C01_T1_SR/LANDSAT_LC08_C01_T1_SR_SL2P_RANGE')\
@@ -93,14 +93,14 @@ def l9_createFeatureCollection_Network_Ind():
9393
# def l8_createImageCollection_partition():
9494
# return ee.ImageCollection('users/rfernand387/NA_NALCMS_2015_tiles')\
9595
# .map(lambda image :image.select("b1").rename("partition") )\
96-
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
96+
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
9797
# .map( lambda image :image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
9898
#
9999

100100
def l9_createImageCollection_partition():
101101
return ee.ImageCollection(ee.Image('USGS/NLCD_RELEASES/2020_REL/NALCMS'))\
102102
.map(lambda image :image.rename("partition"))\
103-
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
103+
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
104104
.map( lambda image :image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
105105

106106

@@ -110,30 +110,30 @@ def l9_createFeatureCollection_legend():
110110
def l9_createFeatureCollection_estimates():
111111
return ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1') \
112112
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
113-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1')) \
114-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ccrs_sobol_4sail2_enf_NNT1_Single_0_1')) \
113+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1')) \
114+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_enf_big_clumpedv2_NNT1_Single_0_1')) \
115115
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
116116
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
117117
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
118118
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1')) \
119119
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
120120
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
121121
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1')) \
122-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1'))
122+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_mix_big_clumpedv3_NNT1_Single_0_1'))
123123

124124
def l9_createFeatureCollection_errors():
125125
return ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes') \
126126
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
127-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
128-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1_incertitudes')) \
127+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
128+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_enf_big_clumpedv2_NNT1_Single_0_1_incertitudes')) \
129129
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
130130
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
131131
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
132132
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_dbf_big_clumpedv3_NNT1_Single_0_1_incertitudes')) \
133133
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
134134
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
135135
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_weiss_or_prosail_NNT1_Single_0_1_incertitudes')) \
136-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l9_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1_incertitudes'))
136+
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/l8_sl2p_ROF_sobol_prosail_mix_big_clumpedv3_NNT1_Single_0_1_incertitudes'))
137137

138138

139139
def l9_createFeatureCollection_ranges():
@@ -177,15 +177,15 @@ def s2_createFeatureCollection_Network_Ind():
177177
#def s2_createImageCollection_partition():
178178
# return ee.ImageCollection('users/rfernand387/NA_NALCMS_2015_tiles')\
179179
# .map(lambda image: image.select("b1").rename("partition") )\
180-
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
180+
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
181181
# .map( lambda image: image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
182182
#
183183

184184
#New version using 2020 Na land cover Richard Fernandes Nov 2024
185185
def s2_createImageCollection_partition():
186186
return ee.ImageCollection(ee.Image('USGS/NLCD_RELEASES/2020_REL/NALCMS'))\
187187
.map(lambda image: image.rename("partition") )\
188-
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
188+
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
189189
.map( lambda image: image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
190190

191191
def s2_createFeatureCollection_legend():
@@ -195,31 +195,31 @@ def s2_createFeatureCollection_estimates():
195195
return ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1') \
196196
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
197197
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_dbf_big_clumped_NNT1_Single_0_1_v2')) \
198-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/s2_sl2p_ccrs_sobol_4sail2_enf_NNT1_Single_0_1')) \
198+
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_enf_big_clumped_NNT1_Single_0_1_v2')) \
199199
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
200200
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
201201
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
202202
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_dbf_big_clumped_NNT1_Single_0_1_v2')) \
203203
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
204204
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
205205
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1')) \
206-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/s2_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1'))
206+
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_mix_big_clumped_NNT1_Single_0_1_v2'))
207207

208208

209209

210210
def s2_createFeatureCollection_errors():
211211
return ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error') \
212212
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
213213
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_dbf_big_clumped_NNT1_Single_0_1_v2_errors')) \
214-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/s2_sl2p_ccrs_sobol_4sail2_enf_NNT1_Single_0_1_incertitudes')) \
214+
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_enf_big_clumped_NNT1_Single_0_1_v2_errors')) \
215215
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
216216
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
217217
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
218218
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_dbf_big_clumped_NNT1_Single_0_1_v2_errors')) \
219219
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
220220
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
221221
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_weiss_or_prosail_NNT3_Single_0_1_error')) \
222-
.merge(ee.FeatureCollection('projects/ee-modis250/assets/SL2P/s2_sl2p_ccrs_sobol_4sail2_mix_NNT1_Single_0_1_incertitudes')) \
222+
.merge(ee.FeatureCollection('users/rfernand387/COPERNICUS_S2_SR/s2_sl2p_ROF_sobol_prosail_mix_big_clumped_NNT1_Single_0_1_v2_errors'))
223223

224224

225225
def s2_createFeatureCollection_ranges():
@@ -268,15 +268,15 @@ def s2_10m_createFeatureCollection_Network_Ind():
268268
#def s2_createImageCollection_partition():
269269
# return ee.ImageCollection('users/rfernand387/NA_NALCMS_2015_tiles')\
270270
# .map(lambda image: image.select("b1").rename("partition") })\
271-
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
271+
# .merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
272272
# .map( lambda image: image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
273273
#
274274

275275
#New version using 2020 Na land cover Richard Fernandes Nov 2024
276276
def s2_10m_createImageCollection_partition():
277277
return ee.ImageCollection(ee.Image('USGS/NLCD_RELEASES/2020_REL/NALCMS'))\
278278
.map(lambda image: image.rename("partition") )\
279-
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V-C3/Global")\
279+
.merge(ee.ImageCollection("COPERNICUS/Landcover/100m/Proba-V/Global")\
280280
.map( lambda image: image.select("discrete_classification").remap([0,20,30,40,50,60,70,80,90,100,111,112,113,114,115,116,121,122,123,124,125,126,200],[0,8,10,15,17,16,19,18,14,13,1,3,1,5,6,6,2,4,2,5,6,6,18],0).toUint8().rename("partition")))
281281

282282

0 commit comments

Comments
 (0)