用于Planet Orders v2的简单cli

porder的Python项目详细描述


porder:planet ordersv2 api的简单clitweet

doipypi versionBuild statuslicense<

ordersv2是planet的api的下一个迭代,用于获取交付给您的分析准备数据(ard)。OrdersV2允许您改进此域中的功能,包括以批处理顺序提交多个图像的功能,以及执行诸如大气反射比、压缩、Coregistration和增强的通知(如电子邮件和Webhook)等操作。根据您的访问权限,您可以使用此工具将一系列操作链接在一起。这个工具是一个命令行界面,允许您与ordersv2 api交互,并根据需要下订单和下载订单。该工具还允许您将多个流程链接在一起,并根据需要添加其他功能。对于导出到云存储,0.0.8版以后的版本有一个配置文件夹,其中包含要与此工具一起使用的配置yml结构。只需根据需要替换字段即可。

请注意:此工具绝不是官方工具或行星产品,而是由Samapriya Roy创建和维护的个人项目

如果您使用此工具下载用于研究的数据,并发现此工具有用,请按如下所示开始并引用它

Samapriya Roy. (2019, August 19). samapriya/porder: porder: Simple CLI for Planet ordersV2 API (Version 0.4.0). Zenodo.
http://doi.org/10.5281/zenodo.3370817

目录

安装

这假设您的系统中安装了本机python&pip,您可以转到终端(或windows命令提示符)并尝试进行测试。如果您担心弄乱当前环境,我建议您在虚拟环境中安装。

python然后pip list

如果没有错误,并且您使用的是Python2.7.14或更高版本,您应该可以继续使用。

此命令行工具依赖于shapely和fiona,因此使用来自gdal的功能 在ubuntu中安装gdal

sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
sudo apt-get install gdal-bin
sudo apt-get install python-gdal

对于Windows,我找到了这个指南

另外,对于ubuntu linux,我看到在安装之前这是必要的

sudo apt install libcurl4 openssl dev libssl dev

Windows安装程序

众所周知,shapely和其他一些库很难安装在windows机器上,因此在安装porder之前,请遵循这里提到的步骤。您可以从这里下载并安装shapely和其他库,具体取决于您拥有的python版本。只有在安装了gdal之后才能执行此操作。我建议您按照上述步骤正确安装gdal。不过,我将介绍如何使用与windows上其他库类似的gdal预编译版本。您可以通过简单地运行来测试是否有gdal

gdalinfo

在你的命令提示符下。如果您得到一个读出而不是一条错误消息,您就可以开始了。

对于windows,首先需要了解的是python版本,以及它是32位还是64位。您可以通过转到命令提示符并键入python来完成此操作。

windows

对于我的windows机器,我有32位的python 2.7.16和64位的python 3.6.6。您可以在突出显示行的开头获取python版本,并在方括号内的intel或amd64中获取32或64位。默认的python是在命令行中输入python得到的。然后根据我们在前面步骤中收集的关于python类型的信息下载以下包。我们使用非官方的二进制文件来安装这些文件。仅当您在Windows计算机上使用安装管理器(如Anaconda)时,才需要执行此步骤您可能会完全避免此安装

在此阶段,如果无法安装gdal,请先下载gdal二进制文件,然后再安装它。

gdal:https://www.lfd.uci.edu/~gohlke/pythonlibs/gdal

然后按照以下库进行操作

要选择适合您使用先前收集的python信息的版本 例如,对于我的python 3.6.6和amd64,如果我安装的是shapely,我会选择以下选项,这里36表示python3.6,amd64表示我们正在讨论的64位。

shapely-1.6.4.post2-cp36-cp36m-win-u amd64.whl

你会得到一个轮子文件或者一个以.whl结尾的文件。现在,您可以在命令提示下浏览到该文件夹或迁移到该文件夹。一旦我为python 3.6安装了这个命令。在这一点上,我们将使用python附带的可信包安装程序pip。注意pip或pip3的选择取决于您的python版本通常您可以通过键入

pip3-v

你会得到这样的读数

pip 18.1来自c:\ python3\lib\site packages\pip(python3.6)

如果有pip,只需将其替换为pip-v

然后,只需使用以下设置安装您下载的控制盘文件

pip3 install full path to Shapely‑1.6.4.post2‑cp36‑cp36m‑win_amd64.whl

in my case that would be

pip3 install "C:\Users\samapriya\Downloads\Shapely‑1.6.4.post2‑cp36‑cp36m‑win_amd64.whl"

或者,您可以使用anaconda安装。同样,这两个选项都在shapely的官方pypi页面中提到。

配置了shapely和其他库之后,要安装porder:simple cli for planet ordersv2 api可以使用两种方法安装

PIP安装程序

对于Linux,我发现指定PIP类型并使用--user有帮助

pip install porder --user

or

pip3 install porder --user

或者您也可以尝试

git clone https://github.com/samapriya/porder.git
cd porder
python setup.py install

开始

输入planet init确保初始化了planet客户端。如往常一样,要打印帮助:

porder_main

要获得特定功能的帮助,只需使用help开关调用它,例如:porder idlist-h。如果您没有安装porder,那么只需转到porderem>目录并运行python porder.py[arguments go here]

用于planet ordersv2 api的porder simple cli

该工具旨在简化ordersv2 api的使用,并允许用户将多个项目和资产类型的工具和操作链接在一起,执行这些操作并在本地下载资产。

Porder版本

这将打印工具版本并退出。简单的用法是

porder version

订单配额

只是一个简单的工具,可以快速打印您的星球订阅配额。

porder_quota

基数64

这与听起来完全一样,它将您的凭证文件编码为base64,以便与GCS一起使用。

porder_base64

形状到geojson

此工具允许您从具有多个shapefile的文件夹转换为具有geojson的文件夹,然后可以与此工具一起使用。它利用geopandas并重新投影您的shapefile以使其兼容,同时将其传递到api进行搜索和下载。

porder_shp2geojson

简化

这减少了多顶点和复杂geojson的顶点数。极高的顶点数(超过500个)似乎失败了,因此这个工具允许您导出一个新的geojson,减少了顶点。它使用visvalingam-wyatt线简化算法的实现。此工具在使用和不使用FIONA的情况下都可以工作,但建议安装FIONA。

porder simplify

空转

基于一些基本过滤器为几何体创建一个空闲列表,包括几何体、开始和结束日期以及云覆盖。如果没有指定云覆盖,则包括0到100%的云覆盖。目前,该工具可以处理geojson、json和kml文件。输出是一个带有id的csv文件。该工具还允许您确保在选择图像时获得百分比重叠,以便剪辑操作相应地调整它(通常--ovp 1用于剪辑期间不失败的订单)。该工具现在还可以打印以平方公里为单位的估计面积,以便下载,如果您使用正在搜索的几何图形剪裁了您的面积,则可以打印估计面积(仅用于估计)。

我已将设置更改为现在执行以下两项操作

  • 数字选项是可选的,因此它可以查找时间范围内的所有图像,但如果区域太大,请小心,自行使用。更好的选择是提供号码。

  • 通常可能会忘记不同的资产类型,因此您现在无法传递项目,脚本将根据捆绑包返回每种项目类型的每种可能的资产类型。

porder_idlist

一个简单的设置是 porder\u idlist\u setup

若要运行添加其他筛选器的实验,现在可以为字符串和范围筛选器传递附加字符串或范围筛选器或同时传递这两个标志,设置如下。附加过滤器是可选的

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters range:clear_percent:55:100 --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" range:clear_percent:55:100 --number 20

idlist工具现在可以使用多多边形并迭代地查找场景。

扩散列表

可能您已经下载了一些图像或元数据文件,并且您希望差异idlist只为您没有的资产和项目类型创建订单。它采用本地文件夹路径、键入图像或元数据以及一些基本过滤器,包括几何图形、开始和结束日期以及云覆盖。如果没有指定云覆盖,则包括0到100%的云覆盖。目前,该工具可以处理geojson、json和kml文件。输出是一个带有id的csv文件。

porder\u difflist

一个简单的设置是 Porder’U Diffcheck’U Setup

或者不使用云过滤器

Porder\u Diffcheck\u nocloud\u setup

idSplit

这允许您将idlist拆分为小csv文件,以满足您创建成批订单的需要。

Porder\u idsplit

一个简单的设置是 Porder U idsplit U setup

idcheck

您可以修改idlist、添加或删除id。完成后,此工具允许您估计图像的总面积以及与几何体相交的面积或剪裁后的面积。

Porder\u idcheck

一个简单的设置是 Porder\u idcheck\u setup

使用ordersv2排序使用bundle的概念。捆绑包是一个项目的多个资产的组合,这些资产组合在一起并作为订单整体履行的一部分交付。例如,psscene4band的分析资产是单个tif文件,但是psscene4band的分析捆绑包包括分析tiff文件、分析xml元数据和udm数据掩码文件作为捆绑包的一部分。您可以在这里找到有关捆绑包的更多信息。因此,bundle的概念将单个函数集合在一起,以订购和下载多个相关资产。由于bundle的列表很长,这个工具只允许您根据item type获取每个bundle类型。设置很简单

porder\u bundle

一个简单的设置是

porder bundles --item "PSScene4Band"

订购

< T >ool允许您使用前面创建的idlist实际下单。--op参数允许您按顺序执行操作、传递和通知,例如--op toar clip email执行大气反射率的顶部,然后剪切到几何体,并在订单完成后向您发送电子邮件通知,但失败或者身份有任何改变。一个重要的变化是传递bundle而不是使用资产的概念。--op的操作列表如下,**这些操作的顺序很重要**

夹子至压缩机 posite zip zipall compression projection kernel aws azu公司 回复GCS电子邮件<;从>;中选择索引: ndvi gndvi bndvi ndwi tvi osavi evi2 msavi2 sr

<;居中>; <表><广告>< OP>/TH>说明 < /广告><正文>剪辑clip images可以处理单个和多个多边形verify或创建geojson.ioTOAR为图像生成的大气顶部反射率图像综合按给定顺序合成的图像数 zip 压缩包在一起并创建下载(每个资产都有一个包,所以有多个zip文件)Zipall创建一个包含所有资产的zip文件压缩使用图像压缩投影在下载图像之前重新投影 AWS/TD->调用选项以指定交付给AWS天青调用选项以指定对azure的传递 GCS 调用选项指定交付给地面军事系统电子邮件向您的星球发送电子邮件通知注册电子邮件 <;/居中>;

现在可以为PlanetScope 4波段项目添加一些预定义的索引,单个设置最多可添加5个索引。这是实验性的。索引列表包括

<;居中>; <表><广告>索引来源< /广告><正文>简单比率(sr)约旦1969年 归一化植被指数(ndvi)
Rouse等人1973年绿色归一化差分指数(gndvi)Gitelson等人1996年蓝色标准化差异植被指数(bndvi)Wang等人,2007年转化植被指数(TVI)=HREF="HTPSP//www. SisturnDist.com/Studio/Ass/Abs/Pi/S034 4257000,1978"Rel="NofOLLOW"> Burgle和LeBrc 2000 优化土壤调整植被指数(osavi)Rondeaux等人1996年增强植被指数(evi2)Jian等人2008年归一化差水指数(ndwi)GAO1996改良土壤调整植被指数v2(msavi2)1994年合格中介机构 <;/居中>;

porder_order

使用带有电子邮件通知的图像剪辑的简单设置是

Porder'U clip

对于每个映像的传递,其元数据作为zip文件是相同的设置。请注意我们是如何将zip添加到操作列表中的

Porder\U clip

一个简单的设置,上面有大气反射率和一些索引以及电子邮件通知将是

porder\u index

订单大小

该工具现在允许您估计特定订单的总下载大小。

porder\ordersize

示例设置如下所示 <;居中>;

ordersize

<;/居中>;

并发

该工具允许您检查正在运行的订单数量,以获得并发订单的限制。

porder\u concurrent

下载

允许您按顺序将文件下载到本地文件夹。它使用使用"订单"工具生成的订单URL来访问和下载文件。

porder\u下载

多部分下载

允许您按顺序多部分下载文件,这将使用多处理下载程序快速将文件下载到本地文件夹。它使用使用"订单"工具生成的订单URL来访问和下载文件。

Porder MuMuperpart

多处理下载

使用多处理库将文件快速下载到本地文件夹。它使用使用orders工具生成的order url来访问和下载文件,并包含一个指数速率限制函数来处理太多的请求。为了节省时间,它使用扩展过滤器,例如您正在使用可以使用".zip"的zip操作,如果您只下载图像、udm和xml,则可以相应地使用".tif"或".xml"。对于Python3.4或更高版本,这将切换到使用真正的异步下载程序,而不是使用多处理。

Porder\U多处理机处理

一个简单的设置是

Porder U Multiproc U Setup

更改日志

v0.4.3

  • 修复了setup.py和pyproj版本的问题。
  • 改进了自述说明。

v0.4.2

  • 向具有形状自相交的多多边形添加几何检查功能第30期
  • 对于多多边形,这也会执行顶点计数检查,并简化多边形以适合500个顶点以下。
  • 一般改进

v0.4.1

  • 修复了使用缓冲区(0)进行形状自相交的问题。
  • 一般改进

v0.4.0

  • 修复了重新提交请求的问题。
  • 下载程序现在可以下载部分以及完全成功的订单。
  • 添加了下载期间速率限制的重试方法
  • 一般改进

v0.3.9

  • 已从捆绑包列表中删除不推荐使用的捆绑包。
  • 改进的参数描述

v0.3.7

  • 增加了在提交订单时传递订阅ID的功能。

v0.3.6

  • 用捆绑包替换了订购工具中的资产。
  • 创建了一个新的bundles工具以生成项目类型的bundle列表
  • 对idlist工具的改进现在可以在其运行过程中打印输出。

v0.3.5

  • 更好地集成配额工具
  • 在等待空闲列表时更新信息
  • 更新要求

v0.3.4

  • 为Python3.4添加了异步下载程序
  • 在生成进程之前检查现有文件
  • 更好地处理多处理输出
  • 添加了快速版本工具

v0.3.3

  • 修正了不使用OPS时订单名称的问题。
  • 用于拆分idlist的文件基名称。

v0.3.2

  • idlist工具不能使用多多边形和迭代查找场景
  • 订单剪辑工具现在可以处理多多边形剪辑
  • 添加了新工具zipall,以ordername_date.zip格式处理单个归档文件的下载

v0.3.1

  • 现在可以支持附加的字符串和范围筛选器
  • 使用idcheck检查所有空闲列表的总面积和剪辑面积估计值。
  • 工具的一般改进。

v0.3.0

  • 增强idlist以使用planet cli执行更快的搜索和返回
  • 在下单时提供更好的错误处理。

v0.2.8

  • 添加了将具有shapefile的文件夹转换为geojson的工具

v0.2.7

  • 改进了较大几何体的重叠计算
  • 添加了一个几何简化工具以减少顶点数

v0.2.6

  • 使用epsg:3857计算skysat面积,以解决元数据epsg问题
  • 一般改进

v0.2.5

  • 修正了面积计算估算的问题
  • 一般改进

v0.2.4

  • 现在不用li麻省理工学院关于闲置资产的数量
  • 如果仅为idlist提供项类型,则分析可能的资产类型

V0.2.3

  • 现在估计运行idlist时剪辑前后的面积
  • 一般改进

v0.2.1

  • 现在只导出csv idlist
  • 具有并发检查的固定计数

v0.2.0

  • 修复了pysmartdl安装问题
  • 添加并发订单检查
  • shapely的版本和操作系统解析

v0.1.9

  • 添加了msavi
  • 修复了geojson read的问题

v0.1.8

  • 修复了空json append的问题
  • 工具的一般改进

v0.1.7

  • 添加了PlanetScope项目的波段数学指数
  • 修复了下载程序重试的问题
  • 工具的一般改进

v0.1.6

  • 修正了python 3.x的兼容性

v0.1.5

  • 一般改进和错误修复

v0.1.4

  • 修复了python 3 csv写兼容问题
  • 修复了shapely实例问题

v0.1.3

  • 修复了无头设置中剪贴板访问的问题

v0.1.2

  • 修复了多处理下载程序的问题和扩展
  • 工具的总体改进

v0.1.0

  • 修复了问题并改进了空闲列表和排序
  • 已修复剪辑工具的问题
  • 工具的总体改进

v0.0.8

  • 订单工具的操作改进
  • 现在支持导出到gcs/azure/aws以及内核、投影和压缩
  • 用于编码GCS凭据的Base64编码工具
  • 工具的总体改进

v0.0.7

  • 现在允许使用扩展名进行所有下载或下载
  • 轮询订单以完成并自动下载
  • 一般改进

v0.0.6

  • David Shean的合并贡献
  • 已修复op等于none的问题
  • 修复了与相对导入有关的问题
  • 提高了PY3兼容性
  • 一般改进

v0.0.5

  • 为pydl添加了指数退避
  • 修复了依赖关系的问题
  • 总体改进

v0.0.4

  • 创建了严格的geoinstersection以避免命令失败
  • 重叠函数的改进
  • 总体改进

v0.0.3

  • 向idlist添加了重叠函数
  • 添加了带速率限制和扩展筛选器的多处理下载程序
  • 总体改进

v0.0.2

  • 修复了导入模块的问题

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

推荐PyPI第三方库


热门话题
IntelliJ中的java默认Maven项目结构不一致   java我希望链接(在帖子和页面上)在一些访问者加载时被自动点击   java如何使用单独的方法隐藏JButton并在新类中调用   java KStream leftJoin KStream具有相同的密钥   java图像在垂直滚动窗格视图端口中消失   java从指定的起始点开始以n的增量填充数组   java JLabel和JTextField不在swing表单中应用   java springboot mongo如果没有映像,请使用现有映像   类似C++映射的java容器   java如何在没有Valgrind错误的情况下调用JNI_CreateJavaVM?   java如何在安卓中运行后台服务   java onPostExecute不运行