terracotta
v0.8.5
Terracotta는 전용 웹 서버에서 WSGI 앱으로 실행되거나 AWS Lambda에서 서버리스 앱으로 실행되는 순수 Python 타일 서버입니다. Flask, Zappa 및 Rasterio와 같은 멋진 오픈 소스 소프트웨어로 구동되는 최신 Python 스택을 기반으로 구축되었습니다.
문서 읽기 | 데모 사용해 보기 | API 살펴보기 | Terracotta로 구동되는 Satlas | 도커 이미지
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)
curl
과 같은 HTTP 지원 클라이언트를 사용할 수 있습니다.
$ 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에는 웹 클라이언트도 포함되어 있습니다. 다음을 사용하여 클라이언트를 시작할 수 있습니다(서버가 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를 통해 버그 보고서와 풀 요청을 기꺼이 받아들입니다. 코드가 유용하려면 해당 코드가 테스트 대상인지, 린팅 방식( mypy
및 flake8
을 통해)을 충족하는지 확인하세요.
테스트를 실행하려면 다음을 통해 필요한 종속성을 설치하세요.
$ pip install -e .[test]
그런 다음 실행할 수 있습니다
$ pytest
저장소의 루트에서.