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='Observer zenith angle [deg] ', 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('-o', '--outfn', help='HDF5 file to write') 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, # of observer 'angle': P.zenang, # of observer 'wlshort': P.short, 'wllong': P.long, 'wlstep': P.step, } TR = lowtran.radiance(c1) # %% if P.outfn: outfn = Path(P.outfn).expanduser() print('writing', outfn) TR.to_netcdf(outfn) plotradiance(TR, c1, True) show()
def test_radiance(): angles = 60 c1 = {'model': 5, 'h1': 0, # of observer 'angle': angles, # of observer 'wlshort': 200, 'wllong': 25000, 'wlstep': 20, } # %% TR = lowtran.radiance(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['radiance'][0, [10, 200], 0].values == approx([3.110389e-04, 3.907411e-10], rel=0.01)
def test_radiance(): vlim = (200, 25000) angles = 60 c1 = {'model': 5, 'h1': 0, # of observer 'angle': angles, # of observer 'wlnmlim': vlim, } # %% TR = lowtran.radiance(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['radiance'][0, [10, 200], 0], [0.000191, 0.000261], rtol=0.01)
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='Observer zenith angle [deg] ', nargs='+', type=float, default=[0., 60, 80]) p.add_argument('-w', '--wavelen', help='wavelength range nm (start,stop)', type=float, nargs=2, default=(200, 30000)) p.add_argument('-o', '--outfn', help='HDF5 file to write') 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, # of observer 'angle': P.zenang, # of observer 'wlnmlim': P.wavelen, } TR = lowtran.radiance(c1) # %% if P.outfn: outfn = Path(P.outfn).expanduser() print('writing', outfn) TR.to_netcdf(outfn) plotradiance(TR, c1, True) show()
import lowtran import lowtran.plots as lp 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'