一种大规模sar卫星数据处理框架

pyroSAR的Python项目详细描述


< BR>派洛萨

用于大规模sar卫星数据处理的python框架

说明• 安装. 依赖关系. 示例•。 注意事项•。 作者

travis statusappveyor status工作服状态documentation statusPIP status

说明

Pyrosar软件包旨在为可扩展的合成孔径雷达卫星数据组织和处理提供完整的解决方案:

  • 读取过去和现在各种卫星任务的数据
  • 采集元数据的处理
  • 用户友好地访问Snap和Gamma遥感软件中的处理实用程序
  • 格式化预处理数据以进行进一步分析

在这里您可以找到文档。

Pyrosar用于这些项目:

你知道其他项目吗?我们很乐意知道。

安装

首先我们需要安装pip。在windows上pip与anaconda一起安装,在linux上可以很容易地安装它 通过命令行:

sudo apt-get install python-pip

然后可以安装Pyrosar的最新稳定版本:

python -m pip install pyroSAR

要在github上安装最新的主分支,我们需要版本控制系统git。在windows上,git可以是 从这里下载。在Linux上,您可以通过命令行安装它:

sudo apt-get install git

一旦一切就绪,Pyrosar已准备好安装:

python -m pip install git+https://github.com/johntruckenbrodt/pyroSAR.git

依赖关系

如果您使用的是windows,通常使用pyrosar和python最简单的方法是 蟒蛇。它附带了Pyrosar的所有基本要求。 下面更具体的说明适用于Linux用户。

格达尔

Pyrosar需要gdal版本2.1,其中geos和proj4作为依赖项,以及gdal python绑定。

ubuntu

从发布yakkety(16.10)开始,ubuntu附带了gdal>;2.1。 请参见这里的。 您可以这样安装:

sudo apt-get install python-gdal python3-gdal gdal-bin

对于较旧的ubuntu版本,您可以在安装之前将ubuntugis存储库添加到apt以安装>;2.1版:

sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update

这样就可以安装所需的依赖项(特别是geos和proj4)。 您可以键入:

gdalinfo --version

借方

从Debian 9(Stretch)开始,gdal在官方存储库中的版本>;2.1中提供。

从源头建造

或者,可以从源代码构建gdal和依赖项。脚本pyrosar/install/install_deps.sh 给出具体的操作说明。它还不打算通过shell运行这个脚本,而是 请按照说明一步一步操作。

Sqlite+Spatialite

虽然通常已经安装了sqlite3及其python绑定,但是需要 补充。有两个包,libspatialitemod廑spatialite。两者都可以被派洛萨使用。 在ubuntu上,mod_spatialite更易于用sqlite设置,可以通过apt安装:

sudo apt-get install libsqlite3-mod-spatialite

在CentOS上,可以通过Yum安装包含用于扩展加载的共享对象的libspacealite

sudo yum install libspatialite-devel

可以在python中运行以下命令来测试所需的功能:

sudo apt-get install python-pip
0

如果不允许加载扩展,则可能需要安装包pysqlite2 以及一个静态构建的sqlite3。 有关说明,请参见脚本pyrosar/install/install_deps.sh。 在这里,您还可以找到有关如何从源安装spacealite的说明。 要测试pysqlite2,可以按如下方式导入它,然后运行上面的测试:

sudo apt-get install python-pip
1

安装此软件包可能会导致系统上安装的sqlite3库出现问题。 因此,更安全的做法是为它构建一个静态的sqlite3库(参见安装脚本)。

示例

现在一切都安装好了,我们可以开始使用卫星数据了。 假设您在本地目录中有一个sentinel-1场景。 首先,我们将场景加载到pyrosar中进行元数据分析:

sudo apt-get install python-pip
2

这将自动识别场景,扫描元数据并打印选定元数据项的摘要。 所有sar场景的属性名称(如传感器和采集模式)都是标准化的。 更多的条目,其名称是不标准的,可以在字典scene.meta

现在我们已经熟悉了场景,我们将其导入到sqlite数据库中:

sudo apt-get install python-pip
3

dbfile是一个包含已存在的数据库或要创建的数据库的文件。

假设我们的数据库包含许多场景,我们希望选择一些场景进行处理。
我们有一个shapefile,它包含了一个几何图形,用来定义我们想要的测试站点 处理一些Sentinel-1场景。
我们过去已经处理过一些场景,结果存储在一个目录中 outdir。我们只希望选择以前未处理到此目录的场景。
而且,我们只对场景感兴趣在地面范围内获取探测(GRD)干涉宽度 线束模式(IW),包含VV波段。

sudo apt-get install python-pip
4

在这里,我们使用Pyrosar自己的矢量几何驱动程序加载并传递shapefile,以及其他参数, 选择"存档"方法。您也可以像上面的代码块一样,将语句一起使用。 返回的selection_proc是我们从数据库中选择的场景的文件名列表,现在我们可以 传递到处理函数:

sudo apt-get install python-pip
5

函数geocode是snap的基本实用程序。它将执行所有必要的步骤,子集,重采样,正交校正, 地形标准化和缩放输入图像,并将geotiff文件写入选定的输出目录。
所有必要的文件,如轨道状态矢量和SRTM DEM分幅,都会在后台通过快照自动下载。
snap与工作流xmls一起使用最方便。功能geocode解析特定场景的工作流, 根据场景类型和选定的处理参数对其进行参数化,并将其写入输出目录。
然后,它调用工作流上的命令gpt,这是snap的命令行界面,以执行处理步骤。

注释

文件命名中的单词

Pyrosar内部使用固定的命名方案来跟踪处理的结果。为每个场景创建一个标识符, 它包含传感器、采集模式、轨道(上升或下降)和采集开始的时间戳。 对于上面的示例,它是s1a_uuu iw_uu a_u 20150222t170750,可以通过调用scene.outname_base()来创建。对于每一个 属性保留固定数量的数字。如果属性短于此数字, 其余数字用下划线填充。也就是说,传感器字段有四位数字长,但"s1a"只有三位。 因此,s1a是传感器插槽。同样地,iw是采集模式时隙,也是四位数长。
a表示上升轨道,时间戳格式为yyyymmddthhmms。

处理函数,如geocode将后缀添加到此标识符,以进一步跟踪单个处理 对数据集执行的步骤。
许多Pyrosar函数在内部使用这个核心概念来跟踪以前处理过哪些场景。

详细说明

最近发射的卫星任务,特别是欧空局哥白尼计划的哨兵舰队,已经导致 免费提供的对地观测数据大幅度增加。数据可用性的增加打开了 通过观测时间序列不仅在空间上而且在时间上分析数据的新机会 将地球表面的过程可视化的可能性。虽然这对光学卫星来说并不完全陌生 数据方面,合成孔径雷达(sar)数据在过去只是很少获得。新的ESA合成孔径雷达卫星 哨兵-1a和哨兵-1b现在有可能以高达6倍的重复率观测地球表面。 与大气效应和太阳光照无关的20米空间分辨率。 随着数据可用性的增加,组织数据并为科学数据做好准备的挑战也随之而来。 分析。虽然传统的软件旨在分析单个图像,但需要完全自动化的组织 拥有上千幅图像的大型图像档案,以及一个高性能的处理框架,以充分利用 可用的硬件资源。 Pyrosar环境旨在为合成孔径雷达卫星数据的组织和处理提供一个完整的解决方案 用于使用各种开源工具从个人计算机扩展到大型服务器基础架构的应用程序 图书馆。其目的是为或者阅读过去和现在的各种数据格式 卫星任务,在数据库中处理有关采集特征的元数据,并提供同质化 用户友好地访问esa的sentinel应用程序平台(snap)和gamma remote中的处理实用程序 传感软件。 数据读取器在可能的情况下使用地理数据抽象库(gdal),否则将拥有自己的实现。 元数据属性是同质化的,以便能够跨 不同的传感器平台。元数据被摄取到一个空间数据库中,从中可以得到原始图像 选择进行处理。 sar处理器提供了在不同的计算核心以及不同的 服务器节点。通过遵循经过处理的图像以及带注释的元数据xml的严格命名方案,处理 可以组织为由服务器网络中的多个操作员执行。这样,磁盘空间的冗余使用和 可以减少处理资源。 一旦图像被处理,就可以使用更多的功能来拼接和重新采样图像 适合时间序列分析的像素边界。因此,科学家被提供了裁剪到研究中的数据堆栈 直接格式化以进行分析,无需花费时间进行特定sar处理和一般数据管理 问题。 该软件目前正在欧盟地平线2020项目"卫星湿地观测服务"中开发。 (SWOS)为了更好地利用光学和雷达数据从太空监测湿地,密集的时间序列 为了得到高时间分辨率的地表水动力学图,我们利用哨兵一号卫星。这是 通过在所有可用数据集的时间图像域中应用聚类技术来实现。

作者

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

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula