Terracotta เป็นเซิร์ฟเวอร์ไทล์ Python ที่ทำงานเป็นแอป WSGI บนเว็บเซิร์ฟเวอร์เฉพาะหรือเป็นแอปแบบไร้เซิร์ฟเวอร์บน AWS Lambda สร้างขึ้นบนสแต็ก Python สมัยใหม่ ซึ่งขับเคลื่อนโดยซอฟต์แวร์โอเพ่นซอร์สที่ยอดเยี่ยม เช่น Flask, Zappa และ Rasterio
อ่านเอกสาร | ลองสาธิต | สำรวจ API | Satlas ขับเคลื่อนโดย Terracotta | รูปภาพนักเทียบท่า
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 ยังมีเว็บไคลเอ็นต์ด้วย คุณสามารถเริ่มต้นไคลเอนต์ (สมมติว่าเซิร์ฟเวอร์ทำงานที่ 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
จากรากของที่เก็บ