robintw / Py6S

A Python interface to the 6S Radiative Transfer Model
GNU Lesser General Public License v3.0
186 stars 105 forks source link

When my Wavelength >=0.59,the coef_xb will become nan #102

Closed yang162132 closed 1 year ago

yang162132 commented 1 year ago

This is my code

def AtmosphericCorrection(StartTime,
                          SolarZenith, SolarAzimuth,
                          SatelliteZenith, SatelliteAzimuth,
                          TopLeftLat, TopLeftLon,
                          TopRightLat, TopRightLon,
                          BottomRightLat, BottomRightLon,
                          BottomLeftLat, BottomLeftLon):
    s = SixS()
    s.geometry = Geometry.User()
    s.geometry.solar_z = SolarZenith
    s.geometry.solar_a = SolarAzimuth
    s.geometry.view_z = SatelliteZenith
    s.geometry.view_a = SatelliteAzimuth
    DateTime = datetime.datetime.fromisoformat(StartTime)
    s.geometry.month = DateTime.month
    s.geometry.day = DateTime.day
    ImageCenterLat = (TopLeftLat + TopRightLat + BottomRightLat + BottomLeftLat) / 4
    s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.SubarcticSummer)
    s.aero_profile = AtmosProfile.PredefinedType(AeroProfile.Continental)
    s.ground_reflectance = GroundReflectance.HomogeneousLambertian(0.36)
    s.aot550 = 0.14497

    s.altitudes = Altitudes()
    s.altitudes.set_target_custom_altitude(2000)
    s.altitudes.set_sensor_satellite_level()

    s.wavelength = Wavelength(0.580)
    #s.wavelength = Wavelength(0.590)
    s.atmos_corr = AtmosCorr.AtmosCorrLambertianFromReflectance(-0.1)
    s.run()
    xa = s.outputs.coef_xa
    xb = s.outputs.coef_xb
    xc = s.outputs.coef_xc
    return (xa,xb,xc) 
StartTime = "2022-08-12 12:00:36"
SolarZenith = 30.963
SolarAzimuth = 111.677
SatelliteZenith = 0
SatelliteAzimuth = 0
TopLeftLat = 30.7602
TopLeftLon = 90.3195
TopRightLat = 30.361
TopRightLon = 92.689
BottomRightLat = 28.5087
BottomRightLon = 92.2514
BottomLeftLat = 28.9082
BottomLeftLon = 89.9245
AtmosphericCorrection(StartTime,SolarZenith, SolarAzimuth,SatelliteZenith, SatelliteAzimuth,TopLeftLat, 
                      TopLeftLon,TopRightLat, TopRightLon,BottomRightLat, BottomRightLon,BottomLeftLat, BottomLeftLon)