Terracotta هو خادم بلاط Python خالص يعمل كتطبيق WSGI على خادم ويب مخصص أو كتطبيق بدون خادم على AWS Lambda. إنه مبني على مكدس Python حديث، مدعوم ببرامج رائعة مفتوحة المصدر مثل Flask، وZappa، وRasterio.
اقرأ المستندات | جرب العرض التوضيحي | اكتشف واجهة برمجة التطبيقات | ساتلاس، مدعوم من تيراكوتا | صورة عامل الميناء
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
من جذر المستودع.