Skip to content

Update some constant values (ESUN, Cloud_Treshold) and functions (g_inst, Calc_ETact) #8

@trngbich

Description

@trngbich
  • Cloud_Treshold for Landsat 5 is too low compared to the value in the data (~7300)

    if Landsat_nr == 5 or Landsat_nr == 7:
    Cloud_Treshold = 700

  • Update references of ESUN values
    ESUN_L5 and ESUN_L7 arrays are different from the references in the documentation
    ESUN_L8 values are not available in any references

    ESUN_L5 = np.array([1983, 1796, 1536, 1031, 220, 83.44])
    ESUN_L7 = np.array([1997, 1812, 1533, 1039, 230.8, 84.9])
    ESUN_L8 = np.array([1973.28, 1842.68, 1565.17, 963.69, 245, 82.106])

  • Wrong function of g_inst
    If water_mask is not equal to 0.0, then g_inst is supposed to be ((Surface_temp - 273.15) * (0.0038 + 0.0074 * Surf_albedo) * (1 - 0.978 * np.power(NDVI, 4))) * rn_inst, and not 0.4 * rn_inst

    g_inst = np.where(water_mask != 0.0, 0.4 * rn_inst,
    ((Surface_temp - 273.15) * (0.0038 + 0.0074 * Surf_albedo) *
    (1 - 0.978 * np.power(NDVI, 4))) * rn_inst)

  • Missing reference for Advection Factor (AF)
    The method to upscale from instantaneous Actual ET to 24h Actual ET is not the same as in SEBAL reference documentation

    def Calc_ETact(esat_24,eact_24,EF_inst,Rn_24,Refl_rad_water,Lhv):
    """
    Function to calculate the daily evaporation
    """
    # Advection factor ???
    AF = 1 + 0.985 * (np.exp((esat_24 - eact_24) * 0.08) - 1.0) * EF_inst
    # Daily evapotranspiration:
    ETA_24 = EF_inst * AF * (Rn_24 - Refl_rad_water) / (Lhv * 1000) * 86400000
    ETA_24=ETA_24.clip(0,15.0)
    return(ETA_24, AF)

Metadata

Metadata

Assignees

Labels

invalidThis doesn't seem right

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions