用python编写的现代xyz tile服务器

terracotta的Python项目详细描述


Build StatusDocumentation StatuscodecovGitHub releasePyPI releaseLicensePython versions

Logo

terracotta是一个纯python tile服务器,在 专用Web服务器或作为AWS Lambda上的无服务器应用程序。它是建立在 现代Python3.6堆栈,由优秀的开源软件如 FlaskZappa, 以及Rasterio

Try the demo| Read the docs| Explore the API| Satlas, powered by Terracotta

为什么是兵马俑?

  • 开始是件小事。有一个装满了 cloud-optimized GeoTiffs在不同的 您想在浏览器中查看的投影? terracotta serve -p {name}.tifterracotta connect localhost:5000带你去。
  • 我们对您的数据做了最低限度的假设,因此您将继续负责。 继续使用你知道并喜欢的工具来创建和组织你的 资料图,兵马俑正是如此。
  • 无服务器部署是第一优先级用例,因此您没有 担心维护或扩展架构。
  • terracotta实例是自记录的。一切都在前端 需要了解您的数据,只需从 API终结点。

陶土工作流程

一。优化光栅文件

$ ls -lh
total 1.4G
-rw-r--r-- 1 dimh 1049089 231M Aug 2916:45 S2A_20160724_135032_27XVB_B02.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 2916:45 S2A_20160724_135032_27XVB_B03.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 2916:46 S2A_20160724_135032_27XVB_B04.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 2916:56 S2A_20170831_171901_25XEL_B02.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 2916:57 S2A_20170831_171901_25XEL_B03.tif
-rw-r--r-- 1 dimh 1049089 231M Aug 2916: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]

2.从文件名模式创建数据库

$ terracotta ingest 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)

四。浏览正在运行的服务器

手动

$ 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"}]}

交互式

$ 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)

preview

开发

我们乐意接受bug reports 以及pull requests通过github。 为了使代码有用,请确保测试覆盖了它,并且 它满足我们的绒线实践(通过mypyflake8)。

要运行测试,只需通过

$ pip install -e .[test]

然后,您可以运行

$ pytest

从存储库的根目录。

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

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径