Hi robin, thank you for giving us py6s.
I want to remove the contribution of water vapor and ozone from the measured TOA radiance (L).
That is, after atmospheric correction
left out radiance (L2) will be due to surface, aerosol and Rayleigh. But the atmos.int.rad values of Rayleigh (La2) is higher than the atmos.int.rad values of water vapor ozone and Rayleigh (La2). How to get the L2 from this?
data is as given below...
wl
La1
La2
Measured (L)
0.412
74.024
74.024
97.81813
0.443
59.876
59.969
82.56315
0.49
40.974
41.427
62.62844
0.51
34.489
35.312
54.03515
0.555
22.863
24.174
47.61634
0.62
13.185
14.063
31.29857
0.74
5.028
5.061
79.0417
0.865
2.005
2.005
70.54509
La1 is estimated as
sg = SixS()
sg.geometry = Geometry.User()
sg.geometry.solar_z = solz
sg.geometry.solar_a = sola
sg.geometry.view_z = senz
sg.geometry.view_a = sena
sg.geometry.month = 3
sg.geometry.day = 27
sg.altitudes.set_target_custom_altitude(alt)
sg.altitudes.set_sensor_satellite_level()
sg.wavelength = Wavelength(wl)
sg.atmos_profile = AtmosProfile.UserWaterAndOzone(wav, o3)
sg.aero_profile = AeroProfile.PredefinedType(AeroProfile.Continental)
sg.aot550=0
sg.ground_reflectance = GroundReflectance.HomogeneousLambertian(0)
sg.atmos_corr = AtmosCorr.AtmosCorrLambertianFromRadiance(L)
sg.run()
# Output parameters
xc = sg.outputs.coef_xc
Ts = sg.outputs.transmittance_total_scattering.downward
Tv = sg.outputs.transmittance_total_scattering.upward
rad = sg.outputs.solar_spectrum
La1 = sg.outputs.atmospheric_intrinsic_radiance
Tg_1 = sg.outputs.total_gaseous_transmittance
La2 is estimated as
s = SixS()
s.geometry = Geometry.User()
s.geometry.solar_z = solz
s.geometry.solar_a = sola
s.geometry.view_z = senz
s.geometry.view_a = sena
s.geometry.month = 3
s.geometry.day = 27
s.altitudes.set_target_custom_altitude(alt)
s.altitudes.set_sensor_satellite_level()
s.wavelength = Wavelength(wl)
s.atmos_profile = AtmosProfile.UserWaterAndOzone(0, 0)
s.aero_profile = AeroProfile.PredefinedType(AeroProfile.Continental)
s.aot550=0
s.ground_reflectance = GroundReflectance.HomogeneousLambertian(0)
s.atmos_corr = AtmosCorr.AtmosCorrLambertianFromRadiance(L)
s.run()
# Output parameters
La2= s.outputs.atmospheric_intrinsic_radiance
Tg_2 = s.outputs.total_gaseous_transmittance
Then
L1=L-La1
L2=L1+La2
y=(np.pi*L2)/(Tg_1*Ts*Tv*csolz*rad)
acr=y/(1+(y*xc))

The problem is that acr is greater than measured reflectance.
Can you help me solve this problem?
Thank you in advance
Chakradhar