Пример #1
0
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()
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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()
Пример #5
0
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'