def test_irradiance(): angles = 60 c1 = {'model': 5, 'h1': 0, # of observer 'angle': angles, # of observer 'wlshort': 200, 'wllong': 25000, 'wlstep': 20, } # %% TR = lowtran.irradiance(c1) assert [c1['wllong'], c1['wlshort']] == approx(TR.wavelength_nm[[0, -1]].values) assert TR['transmission'][0, [0, 100], 0].values == approx([1.675140e-04, 0.2456177], rel=1e-6) assert (TR['irradiance'][0, [100, 1000], 0].values == approx([0.00019873, 0.14551014], rel=1e-5))
def main(): p = ArgumentParser(description='Lowtran 7 interface') p.add_argument('-z', '--obsalt', help='altitude of observer [km]', type=float, default=0.) p.add_argument('-a', '--zenang', help='zenith angle [deg] of sun or moon', nargs='+', type=float, default=[0, 60, 80]) p.add_argument('-s', '--short', help='shortest wavelength nm ', type=float, default=200) p.add_argument('-l', '--long', help='longest wavelength nm ', type=float, default=30000) p.add_argument('-step', help='wavelength step size cm^-1', type=float, default=20) p.add_argument('--model', help='0-6, see Card1 "model" reference. 5=subarctic winter', type=int, default=5) P = p.parse_args() c1 = { 'model': P.model, 'h1': P.obsalt, 'angle': P.zenang, # zenith angle of sun or moon 'wlshort': P.short, 'wllong': P.long, 'wlstep': P.step, } irr = lowtran.irradiance(c1) plotirrad(irr, c1, True) show()
def test_irradiance(): vlim = (200, 25000) angles = 60 c1 = {'model': 5, 'h1': 0, # of observer 'angle': angles, # of observer 'wlnmlim': vlim, } # %% TR = lowtran.irradiance(c1) assert_allclose(vlim[::-1], TR.wavelength_nm[[0, -1]]) assert_allclose(TR['transmission'][0, [0, 100], 0], [1.675140e-04, 0.9388928], rtol=1e-6) assert_allclose(TR['irradiance'][0, [100, 1000], 0], [1.489084e-05, 3.904406e-05])
def main(): p = ArgumentParser(description='Lowtran 7 interface') p.add_argument('-z', '--obsalt', help='altitude of observer [km]', type=float, default=0.) p.add_argument('-a', '--zenang', help='zenith angle [deg] of sun or moon', nargs='+', type=float, default=[0, 60, 80]) p.add_argument('-w', '--wavelen', help='wavelength range nm (start,stop)', type=float, nargs=2, default=(200, 25000)) p.add_argument('--model', help='0-6, see Card1 "model" reference. 5=subarctic winter', type=int, default=5) P = p.parse_args() c1 = { 'model': P.model, 'h1': P.obsalt, 'angle': P.zenang, # zenith angle of sun or moon 'wlnmlim': P.wavelen, } irr = lowtran.irradiance(c1) plotirrad(irr, c1, True) show()
lowtran.nm2lt7(200, 2500, 20) c1 = { 'model': 6, 'h1': 0, 'angle': [0, 30, 60], 'wlshort': 300, 'wllong': 2600, 'wlstep': 5, } TR = lowtran.transmittance(c1) lp.plottrans(TR, c1) TR = lowtran.radiance(c1) lp.plotradiance(TR, c1) TR = lowtran.irradiance(c1) lp.plotirrad(TR, c1) s = SixS() s.geometry.solar_z = sza s.geometry.solar_a = 0 s.geometry.view_z = vza s.geometry.view_a = azi s.aero_profile = AeroProfile.PredefinedType(AeroProfile.Maritime) parameter = 'apparent_radiance' parameter = 'direct_solar_irradiance' params = [ 'transmittance_no2.total', 'total_gaseous_transmittance', 'apparent_radiance', 'direct_solar_irradiance', 'diffuse_solar_irradiance' ]