-
Notifications
You must be signed in to change notification settings - Fork 13
Description
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.