基于地表生物地球物理状态变量(叶面积指数、冠层高度和土壤湿度)和观测几何和时间,模拟被动光学和主动微波传感器卫星数据的python包。

signaturesimulator的Python项目详细描述


这个python包模拟了基于地面的无源光学和有源微波传感器的卫星数据。 生物地球物理状态变量(叶面积指数、冠层高度和土壤湿度)和观测几何和时间。 在这里我们提供了关于这个包的文档。下面我们将演示安装包和 它的用途。

安装软件包

要使用pip安装signaturesimulator python包,只需从命令行运行以下命令:

pip install signaturesimulator

为单个采集计算反射率的示例

>;首先从交互式控制台导入SignatureSimulator包并设置模拟器的实例 课程:

import signaturesimulator as ss
sim = ss.Simulator()

我们现在可以设置卫星观测的观测几何和时间,为此,我们还需要指定 python datetime对象,因此我们还将导入datetime模块:

import datetime as dt
sim.get_geom = sim.geom_default(date_utc=dt.datetime(2016,6,17,10,25), vza=5.5, vaa=286.3, sza=26.8, saa=157.0)

其中vza和vaa是观测天顶和方位角,sza和saa是太阳天顶和方位角。我们 现在必须指定要计算反射率的地表状态变量:

sim.get_land_state = sim.state_default(date_utc=dt.datetime(2016,6,17,9,0), lai=3.0, canopy_ht=1.0, soil_m=0.3)

lai为叶指数(m2 m-2),canpopy_ht为植被冠层高度(m),土壤_m为表层土壤 水分(m3 m-3)。我们现在指定要使用的辐射传输模型,然后运行模拟器(当前 在为哨兵1和哨兵2建立这些模型的情况下,可以在主动微波和被动光学之间进行选择 分别执行任务)。在这里,我们对反射率感兴趣,因此设置以下参数:

sim.run_rt = sim.passive_optical
sim.run()

注意

目前,被动光学模型只有在签名模拟器安装在Linux机器上时才能工作, 由于打包的半离散二进制文件。我们正在努力推出一个与windows和mac兼容的版本。 奥斯。如果您不在Linux机器上,请参阅下一个示例。有源微波模型可用于任何 建筑。

模拟器运行完成后,它将把输出写入一个新的spectra类。我们可以看看 不同波段(按波长排序)的反射值,使用以下命令:

sim.spectra.refl

此示例输出:

[array([ 0.018664,  0.020378,  0.026745,  0.02097 ,  0.035889,  0.213055,
         0.332095,  0.338523,  0.343047,  0.337906,  0.230565,  0.192891,
         0.086688])]

接下来,我们将演示如何在指定几何结构的时间序列上运行有源微波传感器的模拟器,以及 地表状态变量。

计算多个含水层的后向散射的示例

使用前面例子中指定的模拟器实例,我们展示了如何为多个 水浸。首先,我们使用csv文件指定观测的日期和视图几何图形:

sim.get_geom = sim.geom_csv(fname=sim.example_s1_geometries)

这里sim.example_s1_geometries指向找到的signaturesimulator包中包含的示例csv文件 这里:

$PYTHONPATH/signaturesimulator/data/geometries/s1_example_const.csv

任何几何CSV文件必须采用以下格式:

# date, vza, vaa, sza, saa
2016/01/03 05:23,34.3773946043,100.545700717,105.298744327,107.406448412
2016/01/08 05:31,23.4284120953,102.103838392,103.928256857,108.076934788
...

接下来,我们使用csv文件指定地表状态变量的日期和值:

sim.get_land_state = sim.state_csv(fname=sim.example_state_variables)

我们再次使用了一个与模拟器打包的示例csv文件,因为land state csv文件必须遵循 格式:

# date, lai (m2 m-2), canopy_height (m), soil_moisture (m3 m-3)
2016/01/01 12:00,0.001,0.001,0.339560508728
2016/01/02 12:00,0.001,0.001,0.341959953308
...

我们现在可以设置希望使用的辐射传输模型并运行模拟器:

sim.run_rt = sim.active_microwave
sim.run()

模拟器完成运行后,它会将输出写入一个新的backscat类实例。我们可以看到输出 我们可以使用的变量:

sim.output_variables

在这种情况下,返回:

['lai', 'date_sat_ob', 'soil_moisture', 'hv', 'can_height', 'date_land_ob', 'hh', 'vv']

为了检查高压极化的输出,我们使用:

sim.backscat.hv

对于本例,返回:

[-14.839751698875441, -14.612031628695206, ...,  -14.647495031040052, -14.470503894767003]

要绘制高压极化中的后向散射,可以使用以下命令:

sim.plot('hv')

将返回绘图:

s1_hv.png

对于lai:

sim.plot('lai')

返回:

s1_lai.png

在这里我们可以看到叶面积指数是对后向散射的模拟观测。

源代码

www.github.com/pyearthsci/signaturesimulator

支架

如果你有问题,请告诉我们。 联系人:e.pinnington@reading.ac.uk

许可证

许可信息的详细信息。待定。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入