terracotta
v0.8.5
Terracotta 是一个纯 Python 平铺服务器,可以作为专用 Web 服务器上的 WSGI 应用程序运行,也可以作为 AWS Lambda 上的无服务器应用程序运行。它构建在现代 Python 堆栈上,由 Flask、Zappa 和 Rasterio 等出色的开源软件提供支持。
阅读文档 |尝试演示 |探索 API | Satlas,由 Terracotta 提供支持 | Docker 镜像
terracotta serve -r {name}.tif
和terracotta connect localhost:5000
可以帮助您到达那里。$ ls -lh
total 1.4G
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:45 S2A_20160724_135032_27XVB_B02.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:45 S2A_20160724_135032_27XVB_B03.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:46 S2A_20160724_135032_27XVB_B04.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:56 S2A_20170831_171901_25XEL_B02.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:57 S2A_20170831_171901_25XEL_B03.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 29 16:57 S2A_20170831_171901_25XEL_B04.tif
$ terracotta optimize-rasters * .tif -o optimized/
Optimizing rasters: 100% | ██████████████████████████ | [05: 16< 00:00, file = S2A_20170831_...25XEL_B04.tif]
$ terracotta ingest optimized/S2A_{date}_{}_{tile}_{band}.tif -o greenland.sqlite
Ingesting raster files: 100% | ███████████████████████████████████████████ | 6/6 [00: 49< 00:00, 8.54s/it]
$ terracotta serve -d greenland.sqlite
* Serving Flask app " terracotta.server " (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://localhost:5000/ (Press CTRL+C to quit)
您可以使用任何支持 HTTP 的客户端,例如curl
。
$ curl localhost:5000/datasets ? tile=25XEL
{ " page " :0, " limit " :100, " datasets " :[{ " date " : " 20170831 " , " tile " : " 25XEL " , " band " : " B02 " },{ " date " : " 20170831 " , " tile " : " 25XEL " , " band " : " B03 " },{ " date " : " 20170831 " , " tile " : " 25XEL " , " band " : " B04 " }]}
现代浏览器(例如 Chrome 或 Firefox)会将 JSON 呈现为树。
Terracotta 还包括一个 Web 客户端。您可以使用以下命令启动客户端(假设服务器正在 http://localhost:5000 运行)
$ terracotta connect localhost:5000
* Serving Flask app " terracotta.client " (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5100/ (Press CTRL+C to quit)
然后在浏览器中打开客户端页面(本例中为http://127.0.0.1:5100/)。
我们很乐意通过 GitHub 接受错误报告和拉取请求。为了使您的代码有用,请确保它被测试覆盖并且满足我们的 linting 实践(通过mypy
和flake8
)。
要运行测试,只需通过安装必要的依赖项
$ pip install -e .[test]
然后,你可以运行
$ pytest
从存储库的根目录。