Skip to content

Commit

Permalink
Custom ET estimation workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
lopezvoliver committed Mar 3, 2024
1 parent 8795782 commit a39c1c7
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
3 changes: 2 additions & 1 deletion geeet/eepredefined/landsat.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ def collection(
Returns: ee.ImageCollection
"""
import ee
from .join import landsat_ecmwf
from .parsers import feature_collection

region = feature_collection(region)
Expand Down Expand Up @@ -337,7 +338,7 @@ def collection(
.select(*meteo_bands)
.map(meteo_prep))

collection = geeet.eepredefined.join.landsat_ecmwf(
collection = landsat_ecmwf(
collection, meteo_collection)

# Set ERA5 measuring heights (zU, zT)
Expand Down
64 changes: 64 additions & 0 deletions geeet/eepredefined/workflows.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
"""
Custom workflows
"""

def masked_et(cfmaskable_bands,
maskable_bands,
positive_le = True,
NDVI_BARE_GROUND = None,
fvc = None
):
"""
Custom ET estimation workflow
1. Extrapolate LE (W/m²) -> ET (mm/day)
2. Applies cloud-mask to cfmaskable_bands
3. Adds the "feature_area" pixelArea band.
4. Adds the "unobserved_area" pixelArea band.
If positive_le is set to True:
5. Adds a "positive_le_mask"
6. Applies the "positive_le_mask" to maskable_bands
If NDVI_BARE_GROUND is not None:
7. Adds "vegetation_mask"
8. Applies the "vegetation_mask" to maskable_bands
9. Adds the "observed_vegetation_area" band.
If fvc is not None:
10. Adds the fractional vegetation cover (fvc) band.
11. Adds the "unobserved_vegetation_area" band.
"""
from . import landsat
from . import pixel_area
from . import masks

cfmask = landsat.cfmask(cfmaskable_bands)
lemask = masks.apply_static_mask("positive_le_mask", maskable_bands)
vegmask = masks.apply_static_mask("vegetation_mask", maskable_bands)
add_veg_mask = masks.Fndvi_mask(NDVI_BARE_GROUND)
add_fvc = masks.Ffvc(fvc)

workflow = [landsat.extrapolate_LE,
cfmask,
pixel_area.feature_area,
pixel_area.unobserved_area
]

if positive_le:
workflow = workflow + [
masks.positive_LE_mask, lemask
]

if NDVI_BARE_GROUND:
workflow = workflow + [
add_veg_mask, vegmask,
pixel_area.observed_veg_area
]

if fvc:
workflow = workflow + [
add_fvc, pixel_area.unobserved_veg_area,
]

return workflow

0 comments on commit a39c1c7

Please sign in to comment.