天象四波段云图的atsa掩蔽方法
pyatsa的Python项目详细描述
皮萨
pyatsa在卫星图像中发现云。
此回购协议包含Pyatsa包,其中移植了Zhu和Helmer 2018的原始ATSA方法和代码,以及示例笔记本。目前,python版本产生的结果几乎相当于planet lab为加纳各地planetscope 4波段图像提供的可用数据掩码。在有许多明亮的不透水表面、明亮的土壤或水的情况下,pyatsa在云阴影类中产生大量假阳性,并从云中产生假阳性斑点。这些是正在研究的主要问题。
安装
pip install pyatsa
从具有依赖项的源安装
conda env create -f environment.yaml
conda activate pyatsa
# or anaconda3 if you use anaconda or whatever the path to your python file is
flit install --symlink --python ~/miniconda3/envs/pyatsa/bin/python3.7
Pyatsa与原ATSA之间的差异,作者:Zhu和Helmer,2018
- 在计算时间序列图像的晴空线时,朱将云的概念设定在0.5-1.5之间,但数值太低会导致太多的假阳性。
- 我选择在scikit图像中使用li的交叉entrpy阈值方法,而不是反向距离加权来分割场景几何计算出的潜在云阴影区域内的云阴影。这是更简单的代码,似乎能提供更好的结果,idw方法有一个强烈的偏见,只掩蔽阴影直接邻近云。我观察到的云阴影离他们的云阴影几乎有一公里远,遍布加纳,那里正在测试pyatsa。虽然在没有云的地方会产生更多的误报,但更多的实际阴影会被正确地遮住。
与原始ATSA IDL代码相比
最初的atsa程序由作者在https://xiaolinzhu.weebly.com/open-source-code.html分发。要运行,必须安装idl和envi。然后:
通过调用终端中的
idlde
启动idl ide在idld中运行
ENVI
,需要isnce envi函数才能打开时间序列文件运行
CD, "<path to directory with ATSA-Planet.pro>"
用
编译atsa-planet.pro文件.r ATSA-Planet.pro
使用idlde中的
ATSA
调用idl脚本
idl脚本将保存一个以“.sav”结尾的文件(您需要编辑该脚本以更改计算机上该文件的输出路径)。它将包含脚本中的所有变量和结果。可以用scipy.io.readsav
作为python字典读取该文件,其中每个键都是origianl idl变量名。然后可以在pytests中使用它来检查协议。
要运行测试,请导航到atsa python文件夹并运行pytest test_pyatsa.py
。pytest将检查包含单词“test”的任何函数并执行该函数,为每个测试函数生成时间和测试结果。pytestfixture用于定义测试之间共享的变量。这些测试目前使用两个fixture,一个用于python版本的配置(从idl版本复制),另一个用于~3gb.sav文件的fixture,该文件包含idl版本的所有变量。
有关IDL版本的说明,以帮助调试
水膜在水的地方为0,在没有水的地方为1。土地类别的遮罩值如下。
- 3-背景/SLC错误,缺少数据
- 2-云(见第365行至第378行)
- 1-净空着陆(见第323至331行,其中IDL从GE条件返回1或0)