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
從儲存庫的根目錄。