Skip to content

Hi,everyone.I have a question about the Landsat-8 albedo caculation. #4

@Jiang2019Code

Description

@Jiang2019Code

When I read the code, I found that the band value was divided by 65535-1
and the code was as follows:
#------------------------------------------------------------------------------

def Landsat_L_lambda(Lmin,Lmax,ls_data,index,Landsat_nr):
"""
Calculates the lambda from landsat
"""
if Landsat_nr==8:
L_lambda = ((Lmax[index] - Lmin[index]) / (65535 - 1) * ls_data + Lmin[index])
elif Landsat_nr == 5 or Landsat_nr ==7:
L_lambda = (Lmax[index] - Lmin[index]) / 255 * ls_data + Lmin[index]
return(L_lambda)
#------------------------------------------------------------------------------

My question is:
1.Why not use a calibration formula?
such as:
radiance=RADIANCE_MULT_BAND_1 * DN+ REFLECTANCE_ADD_BAND_1
2.When we use Landsat L2 products, is there a corresponding formula for calculating albedo?
Or do you use the same weight values?
#------------------------------------------------------------------------------
def Calc_albedo(Reflect,path_radiance,Apparent_atmosf_transm):
"""
This function calculates and returns the Surface albedo, NDVI, and SAVI by using the refectance from the landsat image.
"""
# Surface albedo:
Surf_albedo = (0.254 * Reflect[:, :, 0] + 0.149 * Reflect[:, :, 1] +
0.147 * Reflect[:, :, 2] + 0.311 * Reflect[:, :, 3] +
0.103 * Reflect[:, :, 4] + 0.036 * Reflect[:, :, 5] -
path_radiance) / np.power(Apparent_atmosf_transm, 2)

# Better tsw instead of Apparent_atmosf_transm ??
Surf_albedo = Surf_albedo.clip(0.0, 0.6)

return(Surf_albedo)

#------------------------------------------------------------------------------
Is there anything wrong with my understanding?
Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions