跳转到主要内容

终端中的STAC项目

项目描述

stacterm

这个库用于在终端中显示有关STAC项目的信息(表格、日历、图表、直方图)。它以STAC ItemCollection(STAC项目的GeoJSON FeatureCollection)作为输入,可以通过指定文件名或通过从另一个程序管道输出。

安装

从PyPi安装

$ pip install stacterm

需要PySTAC和Pandas,以及两个用于在终端中渲染表格(termtables)和图表(plotext)的依赖项。

用法

stacterm的主要用法是一个CLI程序stacterm。使用帮助查看可用选项

$ stacterm -h
usage: stacterm [-h] {table,cal,hist,plot} ...

Terminal STAC

positional arguments:
  {table,cal,hist,plot}
    table               Output a table
    cal                 Output a calendar
    hist                Output a histogram
    plot                Output a plot

optional arguments:
  -h, --help            show this help message and exit

以下详细用法示例使用的是保存的文件,但是stacterm也可以读取stdin,允许其他程序将其输出管道传递给它,例如pystac-client

$ export STAC_API_URL=https://earth-search.aws.element84.com/v0
$ stac-client search --intersects aoi.json --datetime 2020-07-01/2020-12-31 -c sentinel-s2-l2a-cogs landsat-8-l1-c1 | stacterm cal --label platform

stacterm的所有子命令都可以接受可选的字段名称。字段名称是

  • id:项目的ID
  • date:项目datetime字段的日期部分
  • collection:项目的集合
  • 任何属性

表格

使用stacterm显示从保存的ItemCollection中获取的表格化数据。

$ stacterm table items.json

| id                                       | date       |
|------------------------------------------|------------|
| LC08_L1TP_026079_20201014_20201104_01_T1 | 2020-10-14 |
| LC08_L1TP_026079_20201115_20201210_01_T1 | 2020-11-15 |
| S2A_12JXQ_20201008_0_L1C                 | 2020-10-08 |

默认情况下,这是一个Markdown表格(注意,终端不会渲染Markdown)

id date
LC08_L1TP_026079_20201014_20201104_01_T1 2020-10-14
LC08_L1TP_026079_20201115_20201210_01_T1 2020-11-15
S2A_12JXQ_20201008_0_L1C 2020-10-08

显示的字段可以通过--fields关键字更改,并通过--sort关键字排序。

$ stacterm table items.json --fields date eo:cloud_cover collection --sort eo:cloud_cover

| date       | eo:cloud_cover | collection           |
|------------|----------------|----------------------|
| 2020-10-13 | 0.0            | sentinel-s2-l1c      |
| 2020-10-13 | 0.0            | sentinel-s2-l2a      |
| 2020-10-13 | 0.0            | sentinel-s2-l2a-cogs |
| 2020-10-13 | 0.0            | sentinel-s2-l1c      |

表格样式也可以通过--style关键字进行更改,尽管它将不再在Markdown渲染器中使用。请参阅termtables样式列表。

$ stacterm table items.json --fields id date platform sentinel:grid_square --sort date --style thick

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ id                                       ┃ date       ┃ platform    ┃ sentinel:grid_square ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫
┃ S2B_12JXR_20201003_0_L2A                 ┃ 2020-10-03 ┃ sentinel-2b ┃ XR                   ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫
┃ S2B_12JXQ_20201003_0_L1C                 ┃ 2020-10-03 ┃ sentinel-2b ┃ XQ                   ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━┫
┃ S2B_12JXQ_20201003_0_L2A                 ┃ 2020-10-03 ┃ sentinel-2b ┃ XQ                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━┛

日历

提供类似于UNIX的日历(见cal),可以显示单独条目的日期。默认情况下,cal将使用datetime字段(集合的日期时间)并按集合对条目进行分组。这些可以通过--date_field--label_field关键字来覆盖。请注意,指定的--date_field需要是一个日期字段,例如createdupdated

$ stacterm cal items.json --date_field created --label_field gsd

直方图

可以为任何数值字段创建直方图。

$ stacterm hist items.json eo:cloud_cover

图表

可以使用1或2个数值字段创建图表。如果只有一个字段,它将针对场景号进行绘制。--sort关键字可以控制绘制单个字段时如何排序数据。

$ stacterm plot items.json eo:cloud_cover --sort eo:cloud_cover

开发

plotext库中还有更多选项可以在此展示。此外,如果为直方图和图表添加了对日期时间的支持(见日期时间支持),则stacterm可以创建时间直方图或绘制数量与日期的关系图。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分发

stacterm-0.1.0.tar.gz (7.6 kB 查看哈希值)

上传时间 源代码

构建分发

stacterm-0.1.0-py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面