基于地表生物地球物理状态变量(叶面积指数、冠层高度和土壤湿度)和观测几何和时间,模拟被动光学和主动微波传感器卫星数据的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第三方库


热门话题
java用变化的替换字符串替换子字符串   从数据库中断中恢复的oracle Java DAL?   Android/Java页边距位于左/右/底部   java如何用相同的源代码构建不同的APK?(我发现了一个错误)   java正则表达式,仅当字符串以一行中的3个数字开头时才匹配第一个数字   使用以xml为输入的给定端点调用java中的rest-ful web服务?   java长字符串转换为UTF8引发异常   java如何使用截取方法获取ArrayList   java将计算列添加到可观察列表中   正则表达式如何在java正则表达式中使用组?   java正则表达式只接受字母表和空格,不允许在字符串的开头和结尾使用空格   java简单onclick按钮在安卓中不起作用   java如何在Spring中只实现Crudepository的特定方法?   java无法使用json对象NPE读取jsonarray   java我可以添加maven依赖项,这些依赖项被打包为除此之外的任何东西。罐子