6S 辐射传输模型的包装器,可以轻松运行具有各种输入参数的模拟,并以易于处理的形式生成输出。
项目描述
介绍
Py6S 是 6S 辐射传输模型的 Python 接口。它允许您使用简单的 Python 语法运行许多 6S 模拟,而不是处理相当神秘的 6S 输入和输出文件。除了通常使 6S 更易于使用外,Py6S 还添加了一些新功能:
能够轻松快速地运行许多模拟,无需手动编辑输入文件
能够运行多种波长和/或角度并轻松绘制结果
能够从无线电探空仪测量和 AERONET 太阳光度计测量中导入真实数据以参数化 6S
Py6S 被设计为易于使用,并遵循“最小意外原则”。本文档的其余部分提供了更多详细信息,但是一个快速的代码示例应该让您了解 Py6S 可以做什么:
# Import the Py6S module from Py6S import * # Create a SixS object s = SixS() # Set the wavelength to 0.675um s.wavelength = Wavelength(0.675) # Set the aerosol profile to Maritime s.aero_profile = AeroProfile.PredefinedType(AeroProfile.Maritime) # Run the model s.run() # Print some outputs print(s.outputs.pixel_reflectance, s.outputs.pixel_radiance, s.outputs.direct_solar_irradiance) # Run the model across the VNIR wavelengths, and plot the result wavelengths, results = SixSHelpers.Wavelengths.run_vnir(s, output_name='pixel_radiance') SixSHelpers.Wavelengths.plot_wavelengths(wavelengths, results, "Pixel radiance ($W/m^2$)")
这将产生如下所示的结果:
0.283 112.095 667.589
随后是包含显示每个波长结果的图表的图像。
要使用 Py6S,您还需要编译和安装 6S 可执行文件。请按照文档中的安装说明了解如何在 Windows、OS X 或 Linux 上执行此操作。
Py6S 在一篇期刊文章中进行了描述,如果 Py6S 用于生成科学报告/出版物的输出,则应参考该文章。
这个项目是我在南安普顿大学攻读博士学位的一部分。该代码是开源的,在 LGPL 许可下发布,可在Github上获得。
我对接收反馈、错误报告和功能建议非常感兴趣,因此请发送电子邮件至robin @ rtwilson给我。com。