تطوير

|trends.earth|هو برنامج مجاني ومفتوح المصدر، ومرخص بموجب (رخصة جنو العمومية العامة ، إصدار 2.0 أو أحدث <https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html> "_.

There are a number of components to the Trends.Earth tool. The first is a QGIS plugin supporting calculation of indicators, access to raw data, reporting, and production of print maps . The code for the plugin, and further instructions on installing it if you want to modify the code, are in trends.earth GitHub repository.

يقوم الملحق الإضافي لـ QGIS الخاص بـ|trends.earth| بدعم عددًا من البرامج النصية المكتوبة بلغة بايثون، والتي تسمح بعملية حساب المؤشرات المختلفة على محرك جوجل إيرث (GEE). توجد هذه البرامج النصية في المجلد الفرعي "gee" ضمن مستودع GitHub الخاص بذلك البرنامج.

يدعم الملحق الإضافي كذلك عددًا من الوحدات الأخرى:

  • تتضمن وحدة "trends.earth-algorithms" كود من أجل معالجة المدخلات والمخرجات الخاصة بالملحق الإضافي، بجانب وظائف شائعة أخرى تدعم حساب تكاملات مؤشر الغطاء النباتي الطبيعي (NDVI)، والدلالة الإحصائية، وكود مشترك آخر. يتوفر كود هذه الوحدة في مستودع "landdegradation <https://github.com/ConservationInternational/trends.earth-algorithms>"_ على GitHub.

  • تتضمن وحدة "trends.earth-schemas" كود لإدارة المخططات المستخدمة لإدخال/إخراج البيانات من "trends.earth"، بما في ذلك التعامل مع فئات الغطاء الأرضي، ومعلمات الوظائف، وهيكلة التقارير لاتفاقية الأمم المتحدة لمكافحة التصحر، ووظائف أخرى ذات صلة.

توجد أدناه المزيد من التفاصيل بخصوص كيفية المساهمة في Trends.Earth من خلال العمل على كود واجهة المستخدم الرسومية للملحق الإضافي، أو من خلال تعديل كود المعالجة، أو من خلال المساهمة في ترجمة الموقع الإلكتروني والملحق الإضافي.

تعديل التعليمات البرمجية للبرنامج الملحق QGIS

تثبيت البرامج الملحقة

Python

The plugin is coded in Python. In addition to being used to run the plugin through QGIS, Python is also used to support managing the plugin (changing the version, installing development versions, etc.). Though Python is included with QGIS, you will also need a local version of Python that you can setup with the software needed to manage the plugin. The easiest way to manage multiple versions of Python is through the Anaconda distribution. For work developing the plugin, Python 3 is required. To download Python 3.7 (recommended) through Anaconda, see this page.

ملحقات Python

من أجل العمل مع التعليمات البرمجية لـ trends.earth، يجب أن يكون لديك Invoke مثبتًا على جهازك، بالإضافة إلى عدد من الحزم الأخرى المستخدمة لإدارة توثيق المستندات والترجمات وما إلى ذلك. هذه الحزم مدرجة جميعًا في ملف متطلبات "dev " لـ Trends.Earth، بحيث يمكن تثبيتها من خلال التنقل في موجّه الأوامر إلى المجلد الأساسي للتعليمات البرمجية لـ trends.earth والكتابة:

pip install -r requirements-dev.txt

ملاحظة

إذا كنت تستخدم Anaconda، فستحتاج أولاً إلى تنشيط البيئة الافتراضية لـ Python 3.7 قبل تشغيل الأمر أعلاه (وأي من أوامر الاستدعاء الأخرى المدرجة في الصفحة). طريقة واحدة للقيام بذلك هي عن طريق بدء "Anaconda prompt", من خلال "اتباع الإرشادات الموجودة على صفحة Anaconda <https://docs.anaconda.com/anaconda/user-guide/getting-started/#write-a-python-program-using-anaconda-prompt-or-terminal>` _.

PyQt

PyQt5 هي مجموعة أدوات الرسومات المستخدمة بواسطة QGIS3. لتجميع واجهة المستخدم الخاصة بـ Trends.Earth لـ QGIS3، يلزمك تثبيت PyQt5. يمكن تثبيت هذه الحزمة من pip باستخدام:

pip install PyQt5

ملاحظة

PyQt4 هي مجموعة أدوات الرسوم التي يستخدمها QGIS2. أفضل مصدر لهذه الحزمة على Windows هو من مجموعة الحزم التي يحتفظ بها Christoph Gohlke في UC Irvine. لتنزيل PyQt4، حدد الحزمة المناسبة من هذه الصفحة <https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4> _. اختر الملف المناسب لإصدار Python الذي تستخدمه. على سبيل المثال، إذا كنت تستخدم Python 2.7، فاختر الإصدار الذي يحتوي على "cp27" في اسم الملف. إذا كنت تستخدم Python 3.7، فاختر الإصدار الذي يحتوي على "cp37" في اسم الملف. اختر "amd64" لـ 64-bit python، و "win32" لـ 32-bit python.

بعد التنزيل من الرابط أعلاه، استخدم `` pip `` لتثبيته. على سبيل المثال، بالنسبة إلى 64-bit wheel for Python 3.7، يمكنك تشغيل

pip install PyQt4-4.11.4-cp37-cp37m-win_amd64.whl

تغيير نسخة البرنامج الملحق

اتفاقية Trends.Earth هي أن أرقام الإصدارات المنتهية برقم فردي (على سبيل المثال 0.65) هي إصدارات مطورة، بينما الإصدارات المنتهية برقم زوجي (على سبيل المثال (0.66) هي إصدارات عامة. لا يتم إطلاق إصدارات مطورة من البرنامج الملحق عبر ملف QGIS، لذلك لا يراها المستخدمون العاديون للبرنامج الملحق مطلقًا. يستخدم فريق تطوير Trends.Earth الإصدارات المطورة ذات الأرقام الفردية أثناء اختبار الميزات الجديدة قبل إصدارها العام.

إذا كنت ترغب في إجراء تغييرات على التعليمات البرمجية وقمت بتنزيل إصدار عام من البرنامج الملحق (واحد ينتهي برقم زوجي)، فإن الخطوة الأولى هي تحديث إصدار البرنامج الملحق إلى الرقم الفردي التسلسلي التالي. لذلك، على سبيل المثال، إذا قمت بتنزيل الإصدار 0.66 من البرنامج الملحق، فستحتاج إلى تحديث الإصدار ليكون 0.67 قبل أن تبدأ في إجراء التغييرات. هناك العديد من الأماكن في التعليمات البرمجية حيث يتم ذكر الإصدار (وكذلك داخل كل برنامج نصي من GEE) لذلك هناك مهمة استدعاء للمساعدة في تغيير الإصدار. لتغيير الإصدار ليكون 0.67، يمكنك تشغيل

invoke set-version -v 0.67

سيؤدي تشغيل الأمر أعلاه إلى تحديث رقم الإصدار في كل مكان تتم الإشارة إليه في التعليمات البرمجية. لتجنب الالتباس، لا تقم أبدًا بتغيير الإصدار إلى إصدار تم إصداره بالفعل - قم دائمًا بزيادة قيمة علامة الإصدار إلى الرقم الفردي التالي.

اختبار التغييرات على البرنامج الملحق

بعد إجراء التغييرات على التعليمات البرمجية للبرنامج الملحق، ستحتاج إلى اختبارها للتأكد من أن البرنامج الملحق يعمل كما هو متوقع، ولضمان عدم ظهور عيوب أو أخطاء. يجب أن يخضع المكون الإضافي لاختبارات مكثفة قبل إصداره في ملف QGIS (حيث يمكن الوصول إليه من قبل مستخدمين آخرين) للتأكد من أن أي تغييرات في التعليمات البرمجية لا تعطل البرنامج الملحق.

لاختبار أي تغييرات أجريتها على البرنامج الملحق داخل QGIS، ستحتاج إلى تثبيته محليًا. هناك استدعاء للمهام التي تساعد في هذه العملية. تتمثل الخطوة الأولى قبل تثبيت البرنامج الملحق في التأكد من إعداد البرنامج الملحق بكل الملحقات التي يحتاج لها للتشغيل من داخل QGIS. للقيام بذلك، قم بتشغيل

invoke plugin-setup

لا يلزم تشغيل المهمة المذكورة أعلاه فورًا إلا بعد تنزيل التعليمات البرمجية لـ trends.earth، أو إذا تم إجراء أي تغييرات على الملحقات الخاصة بالبرنامج الملحق. بشكل افتراضي، سيعيد إعداد البرنامج الملحق'' استخدام أي ملفات مخزنة مؤقتًا على جهازك. للبدء من الصفر، أضف علامة ``-c (clean) إلى الأمر أعلاه.

بعد تشغيل plugin-setup، أنت جاهز لتثبيت البرنامج الملحق في مجلد ملحقات QGIS على جهازك. للقيام بذلك، قم بتشغيل

invoke plugin-install

بعد تشغيل الأمر أعلاه، ستحتاج إما إلى 1) إعادة تشغيل QGIS، أو 2) استخدام Plugin Reloader <https://plugins.qgis.org/plugins/plugin_reloader/>` _ لإعادة تحميل البرنامج الملحق Trends.Earth من أجل رؤية تأثيرات التغييرات التي أجريتها.

بشكل افتراضي، سيقوم plugin-install بالكتابة فوق أي ملفات للبرنامج الملحق الموجودة على جهازك، لكنه يترك في مكانه أي بيانات (حدود إدارية، وما إلى ذلك) قد يكون البرنامج الملحق قد قام بتنزيلها. للبدء من الصفر، أضف علامة -c (clean) إلى الأمر أعلاه. قد تحتاج إلى إغلاق QGIS من أجل إجراء تثبيت نظيف بنجاح للبرنامج الملحق باستخدام علامة -c.

ملاحظة

يفترض تثبيت البرنامج الملحق أنك تريد تثبيت البرنامج الملحق لاستخدامه في QGIS3. لتثبيت البرنامج الملحق للاستخدام في QGIS3، أضف العلامة``-v 2`` إلى أمر``plugin-install``. تذكر أن البرنامج الملحق قد يعمل أو لا يعمل بشكل كامل على QGIS3 - تم تصميم البرنامج الملحق في الأصل لـ QGIS2 ولا يزال قيد الاختبار على QGIS3.

تحديث قائمة الحدود المخزنة مؤقتًا

عند القيام بتحديث مجموعة بيانات geoBoundaries، قم بتحديث القائمة المخزنة بشكلٍ مؤقت والمرفقة مع الملحق الإضافي من خلال القيام بالتالي:

invoke download-boundaries-cache

تُجري المهمة عملية مصادقة باستخدام واجهة برمجة تطبيقات Trends.Earth. قم بتكوين وتهيئة بيانات الاعتماد بإضافة ملف "invoke.yaml" في جذر المستودع، مع تضمين إدخالات مثل:

trends_earth_api:
    user: "you@example.com"
    password: "your-password"

بإمكانك كذلك توفير بيانات الاعتماد عبر متغيرات البيئة "TRENDS_EARTH_API_USER" و "TRENDS_EARTH_API_PASSWORD" قبل تنفيذ المهمة.

بناء ملف مضغوط للبرنامج الملحق

هناك العديد من مهام الاستدعاء للمساعدة في إنشاء ملف مضغوط لنشر البرنامج الملحق في ملف QGIS، أو لمشاركة تطير إصدار من البرنامج الملحق مع الآخرين. لضغط البرنامج الملحق وجميع تبعياته في ملف ZIP يمكن تثبيته باتباع the process described in the Trends.Earth readme, تشغيل

invoke zipfile-build

سيؤدي هذا الأمر إلى إنشاء مجلد باسم `` build '' في مجلد التعليمات البرمجية الأساسي trends.earth، وفي هذا المجلد سيتم إنشاء ملف يسمى `` LDMP.zip ''. يمكن مشاركة هذا الملف مع الآخرين الذين يمكنهم استخدامه لتثبيت برنامج Trends.Earth يدويًا <https://github.com/ConservationInternational/trends.earth#installing-latest-packaged-development-version> `_. يمكن أن يكون هذا مفيدًا إذا كانت هناك حاجة لمشاركة أحدث الميزات مع شخص ما قبل توفرها في الإصدار العام من البرنامج الملحق.

نشر ملف ZIP الخاص بتطوير إصدار

تقدم صفحة Trends.Earth على GitHub رابط لملف ZIP يتيح للمستخدمين، حتى غير المطورين، القيام بالوصول إلى نسخة التطوير من Trends.Earth. من أجل إنشاء ملف ZIP ونشره على تلك الصفحة (يُخزّن ملف ZIP على S3)، قم بإجراء التالي:

invoke zipfile-deploy

سيقوم هذا الأمر بضغط البرنامج الملحق ونسخه إلى `` https://s3.amazonaws.com/trends.earth/sharing/LDMP.zip <https://s3.amazonaws.com/trends.earth/sharing/LDMP.zip> `_.

ملاحظة

سيفشل الأمر أعلاه إذا لم يكن لديك مفاتيح تسمح لك بالوصول للكتابة إلى وحدة تخزين``Trends.earth`` في S3.

تعديل التعليمات البرمجية لمعالجة Earth Engine

يتم تخزين البرامج النصية لمعالجة Google Earth Engine (GEE) المستخدمة بواسطة Trends.Earth في مجلد "gee" ضمن مجلد trends.earth الرئيسي. لكي يكون هذا البرنامج النصي متاحًا لمستخدمي البرنامج الملحق Trend.earth QGIS، يجب نشرهم في خدمة api.trends.earth التي تحتفظ بها منظمة Conservation International للسماح لمستخدمي البرنامج الملحق باستخدام Earth Engine دون الحاجة إلى معرفة الكيفية لبرمجة أو الحصول على حسابات مستخدمين فردية على GEE. يوضح ما يلي كيفية اختبار ونشر البرامج النصية لـ GEE لاستخدامها مع Trends.Earth.

إعداد البرامج الملحقة

دوكر(docker)

تتطلب حزمة Trends.earth-CLI docker لكي تعمل. اتبع هذه الإرشادات لتثبيت docker على Windows, ، وهذه الإرشادات لتثبيت docker على Mac OS <https://docs.docker.com/docker-for-mac/install/>`_. إذا كنت تعمل على Linux، فاتبع الإرشادات الموجودة في هذه الصفحة <https://docs.docker.com/install> `_ المناسبة لتوزيع Linux الذي تستخدمه.

اختبار برنامج Earth Engine النصي محليًا

بعد تثبيت حزمة Trend.earth-CLI، ستحتاج إلى إعداد ملف .tecli.yml برمز token للوصول إلى حساب خدمة GEE من أجل اختبار البرامج النصية على GEE. لإعداد حساب خدمة GEE لـ tecli، احصل أولاً على مفتاح حساب الخدمة الخاص بك بتنسيق JSON (من وحدة التحكم السحابية في google)، ثم قم بترميزه في base64. قم بتوفير هذا المفتاح المشفر base64 إلى tecli بالأمر التالي:

invoke tecli-config set EE_SERVICE_ACCOUNT_JSON key

حيث "key" هو مفتاح حساب خدمة تنسيق JSON بترميز base64.

أثناء تحويل برنامج نصي حدد التعليمات البرمجية ليتم تشغيله على GEE من JavaScript إلى Python، أو عند إجراء تعديلات على هذه التعليمات البرمجية، قد يكون من المفيد اختبار البرنامج النصي محليًا، دون نشره على خادم api.trends.earth. للقيام بذلك، استخدم مهمة استدعاء run. على سبيل المثال، لاختبار البرنامج النصي "land_cover"، انتقل إلى الملف الرئيسي للتعليمات البرمجية الخاصة بـ Trends.Earth، وفي موجه الأوامر، قم بتشغيل

invoke tecli-run land_cover

سيستخدم هذا حزمة trends.earth-CLI لإنشاء وتشغيل حاوية Docker ستحاول تشغيل البرنامج النصي "land_cover". إذا كانت هناك أية أخطاء في بناء الجملة في البرنامج النصي، فستظهر هذه الأخطاء عند تشغيل الحاوية. قبل إرسال برنامج نصي جديد إلى api.trends.earth، تأكد دائمًا من أن invoke tecli-run قادر على تشغيل البرنامج النصي دون أي أخطاء.

عند استخدام invoke tecli-run، قد تظهر رسالة خطأ تقول:

Invalid JWT: Token must be a short-lived token (60 minutes) and in a
reasonable timeframe. Check your iat and exp values and use a clock with
skew to account for clock differences between systems.

يمكن أن يحدث هذا الخطأ إذا خرجت الساعة الموجودة في حاوية docker عن المزامنة مع ساعة النظام. يجب أن يؤدي إعادة تشغيل docker إلى إصلاح هذا الخطأ.

تعديل قوالب vector layer

يتيح Trends.Earth للمستخدمين القيام برقمنة معالم متجهة جديدة من أجل تحديد مناطق ذات أهمية خاصة.

يقوم النظام في الوقت الحالي بدعم طبقات "النتائج الإيجابية/السلبية الخاطئة" فقط، ولكن يمكن إضافة المزيد عند الضرورة. يتم إنشاء أي طبقة متجهة من ملفات قوالب GeoPackage، الموجودة في مجلد "data/error_recode" ضمن دليل تثبيت الملحق الإضافي. توجد 6 ملفات قوالب لكل نوع متجه، ملف واحد لكل لغة رسمية من لغات الأمم المتحدة. يتم إضافة كود اللغة ISO كلاحقة لاسم الملف، وذلك من أجل عملية توفير تسميات محلية في نماذج السمات. عند طلب إنشاء الطبقة المتجهة، يبحث QGIS عن ملف القالب مع مراعاة لغة QGIS، ويُستخدم الإصدار الإنجليزي من ملف القالب كخيار احتياطي.

للقيام بتغيير مخطط الطبقة، ينبغي تعديل ملفات القوالب المناسبة في مجلد "data/error_recode" ضمن دليل تثبيت الملحق الإضافي. يحتوي ملف القالب كذلك على نمط افتراضي مدمج وتكوين نموذج سمات يتم تطبيقه بشكلٍ تلقائي على الطبقة عند عملية تحميلها في QGIS.

لعرض المخطّطات في شكل سمة، يتم استخدام عنصر واجهة QML مدمج. يتم تخزين بيانات المخطّطات في جدول سمات vector layer. القيم من الحقول المقابلة مستخرجة بمساعدة التعبيرات.

التعليمات البرمجية المستخدمة لعمل المخطّطات تظهر مثل هذا:

import QtQuick 2.0
import QtCharts 2.0

ChartView {
    width: 380
    height:200
    margins {top: 0; bottom: 0; left: 0; right: 0}
    backgroundColor: "#eeeeec"
    legend.alignment: Qt.AlignBottom
    antialiasing: true
    ValueAxis {
        id: valueAxisY
        min: 0
        max: 100
    }

    BarSeries {
        id: mySeries
        axisY: valueAxisY
        axisX: BarCategoryAxis { categories: ["Productivity", "Land cover", "Soil organic carbon"] }
        BarSet { label: "Degraded"; color: "#9b2779"; values: [expression.evaluate("\"prod_deg\""), expression.evaluate("\"land_deg\""), expression.evaluate("\"soil_deg\"")] }
        BarSet { label: "Improved"; color: "#006500"; values: [expression.evaluate("\"prod_imp\""), expression.evaluate("\"land_imp\""), expression.evaluate("\"soil_imp\"")] }
        BarSet { label: "Stable"; color: "#ffffe0"; values: [expression.evaluate("\"prod_stab\""), expression.evaluate("\"land_stab\""), expression.evaluate("\"soil_stab\"")] }
    }
}

لاستخراج دالة قيمة الحقل تستخدم expression.evaluate("\"prod_deg\"")، الحجة الوحيدة التي تقبلها هي اسم الحقل. يحتوي الرسم البياني للطبقات الإيجابية / السلبية الخاطئة على ثلاثة مؤشرات: الإنتاجية والغطاء الأرضي والكربون العضوي للتربة. كل مؤشر للبرنامج الملحق نسبة إنتاجية لمنطقة المضلع وتحافظ على استقرار ثلاث قيم: مستقرة ومتردية محسّنة. على سبيل المثال، في حالة وجود حقول مؤشر الإنتاجية ستكون:

  • prod_deg - إنتاجية متردية

  • prod_stab - إنتاجية مستقرة

  • prod_imp - إنتاجية محسّنة

يتم تطبيق نفس نهج التسمية على الغطاء الأرضي (land_* fields) والكربون العضوي للتربة (land_* fields).

يتم حساب النسبة المئوية للمنطقة عن طريق استخدام دالة التعبير المخصصة، ومن الممكن العثور على الكود الخاص بها في الملف "charts.py" في المجلد الرئيسي للملحق الإضافي. ولقد تم تحسين هذه الدالة للعمل مع المضلعات الكبيرة، وتستخدم سير العمل التالي: بالنسبة لشكل هندسي معين، يتم تحديد مربع محيط واستخراج مجموعة فرعية من الصورة النقطية من خلال استخدام هذا المربع. وبعد ذلك يتم تحويل الشكل الهندسي إلى صورة نقطية في الذاكرة وتطبيقه كقناع على الصورة النقطية. بعد ذلك، يتم حساب عدد البكسلات التي لها قيمة محددة وحساب النسبة المئوية. وحيث أن عد البكسلات يعتمد على دوال مصفوفات NumPy، فإنه سريع للغاية حتى مع المضلعات الكبيرة.

في المحاولة الأولى لتعديل طبقة vector، سيُعرض على المستخدم مربع حوار حيث يجب عليه تحديد مجموعات البيانات التي سيستخدمها للمؤشرات. ثم سيقوم البرنامج الملحق بإعداد قيم التعبير الافتراضية لجميع حقول المؤشر، لذلك سيتم تحديث القيمة في كل تغيير هندسي.

معالجة البيانات الوصفية لمجموعة البيانات

يتم تخزين البيانات الوصفية لمجموعة البيانات بتنسيق QGIS QMD. يمكن إنشاء ملفات QMD هذه لكل raster على حدة وأيضًا لمجموعة البيانات بأكملها. يتم فتح مربع حوار محرر البيانات الوصفية من قائمة ** Edit metadata ** في Trends.Earth dock.

عندما يتم تصدير مجموعة البيانات إلى ZIP، يتم إجراء التحويل إلى ISO XML باستخدام تحويل XSLT. يوجد التحويل المقابل في الملف الفرعي data\xsl لمجلد تثبيت البرنامج الملحق.

تحديث إطار عمل التقارير

نظرة عامة على إطار عمل إعداد التقارير

تم تصميم إطار عمل التقارير ليكون قابلاً للتوسعة مع توفير التفاعل للمستخدم من خلال عمليات غير محظورة. يمكن عمل رفع ثقيل لإطار العمل من خلال فئات :التعليمات البرمجية: QgsProject و` QgsPrintLayout` والتي ليست موضوع آمن وبالتالي، لذلك استخدم :الكود البرمجي: qgis_process للقيام برفع ثقيل لإنشاء التقارير (والمخططات). يمكنك العثور على مزيد من المعلومات حول: الرمز البرمجي: qgis_process` هنا <https://docs.qgis.org/3.22/en/docs/user_manual/processing/standalone.html> `_.

هناك خطوتان رئيسيتان ينفذهما toolbox عند إنشاء التقارير (والمخططات) للطبقات الافتراضية في وظيفة:

  1. It creates a ReportTaskContext object that constitutes a ReportConfiguration object (see تكوين معلمات التقرير) and a Job object that is represented in the Datasets panel. This ReportTaskContext object is serialized to a JSON file and then passed as one of the arguments in a ReportProcessHandlerTask object (that inherits from QgsTask).

  2. يقوم كود ReportProcessHandlerTask ببدء مثيل منفصل من:code:qgis_process ويمرر المسار إلى ملف JSON كمدخل إلى خوارزمية معالجة: trendsearth:reporttask. هذا غلاف رفيع يقوم بإلغاء تسلسل الملف إلى كود ReportTaskContext ويمرره إلى كود ReportTaskProcessor المسؤول عن إنشاء التقارير ومشروع QGIS للوظيفة. بالنسبة للخوارزميات التي تتطلب مخططات، يقوم كود:code:`ReportTaskProcessor بتمرير كود الوظيفة إلىة كود AlgorithmChartsManager الذي يتحقق مما إذا كان هناك تكوين مخطط محدد لخوارزمية الوظيفة. إذا تم تعريفه، فإنه ينشئ المخططات المقابلة كملفات PNG. (راجع إضافة تكوينات الرسم البياني للحصول على مزيد من المعلومات حول تكوينات المخططات)

يوفر الرسم البياني أدناه توضيحًا عالي المستوى لهذه العملية:

* اضغط على الصورة للحصول على رؤية مكبرة.

ملاحظة

تم تبسيط بعض أسماء الوظائف في الرسم البياني أعلاه لأغراض التوضيح. يمكن العثور على الفئات المذكورة أعلاه في وحدات LDMP.reports و`LDMP.processing_provider.report <https://github.com/ConservationInternational/trends.earth/tree/master/LDMP/processing_provider/report.py>`_ .

إضافة متغيرات مخطط التقرير

توفر متغيرات التقرير معلومات السياق المتعلقة بوظيفة أو طبقة (أو نطاق) أو:ref:report_settings أثناء عملية تنفيذ التقرير. حاليًا، يدعم toolbox المتغيرات المدرجة في قسم متغيرات تعبير التخطيط

يتم تعريف كل متغير على أنه : code: namedtuple في الوحدة LDMP.reports.expressions ويتم لاحقًا تحديثها وتقييمها من خلال كود ReportTaskProcessor.

اتبع الإرشادات أدناه حول كيفية إضافة وظيفة جديدة أو متغيرات الطبقة الحالية.

متغير الوظيفة

يتيح معلومات حول الوظيفة الحالية - التي يتم تنفيذها - ليتم إضافتها إلى مخطط التقرير. يتم تغليف المعلومات حول كل متغير وظيفة في كود:code:JobAttrVarInfo المكون من أربع سمات:

اسم السمة

الوصف

نوع البيانات

القيمة الافتراضية

job_attr

اسم السمة للكود Job كما هو مستخدم في dot notation. على سبيل المثال، id يتوافق مع job.id. يمكنك حتى استخدام dot notation للإشارة إلى السمات في الفئات المتداخلة الداخلية، على سبيل المثال results.uri.uri.

سلسلة

N/A

var_name

اسم متغير مخطط التقرير. يجب أن يكون مسبوق بـ te_job_.

سلسلة

N/A

default_value

قيمة افتراضية لاستخدامها لـ var_name, يتم تطبيقها غالبًا عند تصميم التخطيطات.

الكود

الكود

fmt_func

كود الدالة سيتم استخدامه لتحويل قيمة سمة الوظيفة إلى تنسيق متوافق مع تعبيرات QGIS. على سبيل المثال يمكن استخدام str لتحويل قيمة` id` للوظيفة من UUID إلى سلسلة. يمكنك أيضًا استخدام وظائف lambda هنا.

كود الدالة

لاشيء

يوضح كود snippet أدناه كيفية إضافة متغير`te_job_result_name` يتوافق مع job.results.name.

# LDMP/reports/expressions.py
def _job_attr_var_mapping() -> typing.List[JobAttrVarInfo]:
    return [
        ...
        JobAttrVarInfo('results.name', 'te_job_result_name', '', str),
        ...
    ]

متغير طبقة

يوفر معلومات حول طبقة raster الحالية الجاري تنفيذها. يتم تغليف هذه المعلومات المتغيرة في كود LayerVarInfo المكون من ثلاث سمات:

اسم السمة

الوصف

نوع البيانات

القيمة الافتراضية

var_name

اسم متغير تخطيط التقرير. يجب أن يكون مسبوق بـ te_current_layer_.

سلسلة

N/A

default_value

قيمة افتراضية لاستخدامها لـ var_name, يتم تطبيقها غالبًا عند تصميم التخطيطات.

الكود

الكود

fmt_func

كود دالة سيتم استخدامه لاستخراج و/أو تحويل قيمة من كود QgsRasterLayer <https://qgis.org/pyqgis/master/core/QgsRasterLayer.html> _ إلى تنسيق متوافق مع تعبيرات QGIS. يمكنك أيضًا استخدام وظائف lambda هنا.

على سبيل المثال lambda layer: layer.name() يُرجع اسم الطبقة.

كود الدالة

لاشيء

يوضح كود snippet أدناه كيفية إضافة متغير te_current_layer_height يتوافق مع ارتفاع طبقة raster .

# LDMP/reports/expressions.py
def _current_job_layer_var_mapping() -> typing.List[LayerVarInfo]:
    return [
        ...
        LayerVarInfo(
            'te_current_layer_height',
            '',
            lambda layer: layer.height()
        )
        ...
    ]

ملاحظة

هذه المتغيرات متاحة فقط في نطاق التخطيط.

إضافة تكوينات الرسم البياني

يمكن تجميع المخططات باستخدام كود تكوين مخطط يتوافق مع خوارزمية محددة. تحديد تكوين مخطط جديد هو عملية من ثلاث خطوات:

  1. أنشئ فئة مخطط جديدة تستقبل من code:BaseChart في وحدة LDMP.reports.charts. قم بتنفيذ دالة export لتحديد نوع المخطط والخصائص وما إلى ذلك باستخدام Plotly Python library التي تأتي مع QGIS. أخيرًا ، داخل دالة export قم باستدعاء دالة : save_image لكتابة كود Plotly Figure كملف صورة باستخدام أي من التنسيقات التي تدعمها فئات QImageWriter. يمكنك أيضًا تحديد المسار بالنسبة إلى ملف الإخراج الأساسي والذي يتوفر أيضًا كسمة في الفئة الأساسية. انظر كود snippet أدناه:

    # LDMP/reports/charts.py
    Class MyCustomChart(BaseChart):
        def export(self) -> typing.Tuple[bool, list]:
            status = True
            messages = []
    
            # Create chart Figure using Plotly and set properties
            fig = go.Figure(...)
    
            # Add warning or error messages
            messages.append('Colour list not supported.')
    
            # Set image path in dataset's reports folder
            img_path = f'{self.root_output_dir}/chart-NDVI.png'
    
            # Save image and append its path
            self.save_image(fig, img_path)
            self._paths.append(img_path)
    
            return status, messages
    

    يمكنك الرجوع إلى فئة UniqueValuesPieChart للحصول على أمثاله أكثر اكتمالاً.

  2. أنشئ فئة تكوين مخطط ترث من:BaseAlgorithmChartsConfiguration ونفِّذ دالة _add_charts. تحدد فئة تكوين المخطط بشكل أساسي المخططات التي سيتم استخدامها لخوارزمية معينة. السمة layer_band_infos`هي قائمة من التعليمات البرمجية الخاصة بـ :code:`LayerBandInfo التي تحتوي على بيانات الطبقة ومعلومات النطاق المطلوبة لإنتاج المخططات. يمكنك الرجوع إلى فئة LandCoverChartsConfiguration للحصول على مثال أكثر اكتمالاً.

  3. أخيراً، قم بتعيين خوارزمية (name) إلى فئة تكوين المخطط المقابل في AlgorithmChartsManager كما هو موضح أدناه:

    # LDMP/reports/charts.py
    Class AlgorithmChartsManager:
        def _set_default_chart_config_types(self):
            ...
            self.add_alg_chart_config('land-cover', LandCoverChartsConfiguration)
            self.add_alg_chart_config('productivity', MyCustomLandProductivityChartsConfiguration)
            ...
    

    إن فئة AlgorithmChartsManager، والتي تم إنشاء مثيل لها في كود ReportTaskProcessor، ستنشئ كوداً جديدًا لتكوين مخطط لخوارزمية مهمة مقابلة عند إنشاء التقارير.

المساهمة في التوثيق

نظرة عامة

تم إنتاج وثائق Trends.Earth باستخدام Sphinx <http://www.sphinx-doc.org/en/master/> _ ، وهي مكتوبة بتنسيق reStructuredText <http://docutils.sourceforge.net/rst.html> `_. إذا لم تكن معتادًا على أي من هذه الأدوات، فراجع وثائقها للحصول على مزيد من المعلومات حول كيفية استخدامها.

يتم تخزين مستندات Trends.Earth في مجلد "docs" ضمن ملف trends.earth. يوجد داخل هذا المجلد عدد من الملفات والمجلدات الرئيسية التي يجب أن تكون على دراية بها:

  • الإنشاء: يحتوي على وثائق الإنشاء الخاصة trends.earth (بتنسيق PDF و HTML). لاحظ أنه لن يظهر على جهازك إلا بعد تشغيل مهمة استدعاء docs-build

  • i18n: يحتوي على ترجمات للوثائق إلى لغات أخرى. عادةً ما تتم معالجة الملفات الموجودة هنا تلقائيًا باستخدام مهام الاستدعاء، لذلك لن يكون لديك سبب لتعديل أي شيء في هذا المجلد.

  • الموارد: تحتوي على أي موارد (صور أو ملفات PDF بشكل أساسي) يشار إليها في الوثائق. يوجد حاليًا مجلد واحد فقط ("EN"، للغة الإنجليزية) حيث أن جميع الصور الموجودة في الوثائق مأخوذة من النسخة الإنجليزية من البرنامج الملحق - إذا كان من الممكن إضافة مجلدات إضافية مناسبة ضمن "الموارد" برموز لغة مكونة من حرفين لتضمينها صور خاصة بلغة معينة.

  • المصدر: يحتوي على ملفات المصدر reStructuredText التي تحدد الوثائق (هذا النص الإنجليزي الفعلي للوثائق، وهذه الملفات التي من المرجح أن تحتاج إلى تعديلها).

تثبيت البرامج الملحقة

ملحقات Python

من أجل العمل بالتوثيق المستندي، تحتاج إلى استدعاء Sphinx و sphinx-intl و sphinx-rtd-theme (سمة موقع Trends.Earth) المثبتة على جهازك. يتم سرد جميع هذه الحزم في ملف متطلبات "dev" الخاص بـ Trends.Earth، بحيث يمكن تثبيتها بالانتقال في موجه الأوامر إلى المجلد الرئيسي للتعليمات البرمجية الخاصة بـ trends.earth واكتب:

pip install -r requirements-dev.txt

LaTeX

يستخدم LaTeX لإنتاج مخرجات PDF لوثائق Trends.Earth.

للتثبيت على Windows، "اتبع العملية الموضحة هنا <https://www.tug.org/protext>`_ لتثبيت توزيع ProTeXt لـ LaTeX من zipfile المتوفر هنا. إن مثبّت LaTeX كبير جدًا (عدة غيغابايت) لذا قد يستغرق تنزيله وتثبيته بعض الوقت.

في نظام MacOS، يعد MacTeX خيارًا جيدًا ويمكن تثبيته "باتباع الإرشادات الواردة هنا في نظام MacOS، يعد MacTeX خيارًا جيدًا ويمكن تثبيته باتباع الإرشادات الواردة هنا.

على Linux، يجب أن يكون تثبيت LaTeX أسهل بكثير - استخدم مدير حزم التوزيع الخاص بك للعثور على أي توزيع LaTeX مضمّن افتراضيًا وتثبيته.

Qt Linguist

هناك حاجة أيضًا إلى Qt Linguist لسحب السلاسل من الكود وGUI للترجمة. يجب أن يكون الأمر "lrelease" متاحًا وفي مسارك. حاول تجربة:

lrelease

داخل نافذة طرفية. إذا لم يتم العثور على الملف، فستحتاج إلى تثبيت Qt Linguist. هذه الصفحة <https://github.com/lelegard/qtlinguist-installers/releases> _ هي أحد مصادر أدوات التثبيت لشركة Qt Linguist. بمجرد تثبيت Qt Linguist، تأكد من إضافة المجلد الذي يحتوي على lrelease إلى المسار الخاص بك حتى يتمكن البرنامج النصي invoke الخاص بـ Trends.Earth من العثور عليه.

تحديث وبناء الوثائق

بمجرد تثبيت متطلبات Sphinx، تكون جاهزًا لبدء تعديل الوثائق. توجد الملفات المراد تعديلها ضمن مجلد "docs\source". بعد إجراء أي تغييرات على هذه الملفات، ستحتاج إلى إنشاء الوثائق لعرض النتائج. يوجد إصداران من وثائق Trends.Earth: إصدار HTML (يُستَخدَم لموقع الويب) ونسخة PDF (للتنزيل دون اتصال بالإنترنت). لإنشاء وثائق لـ Trends.Earth، استخدم مهمة الاستدعاء "docs-build". بشكل افتراضي، ستنشئ هذه المهمة التوثيق الكامل لـ Trends.Earth، بتنسيق HTML وPDF لجميع اللغات المدعومة. قد يستغرق هذا بعض الوقت للتشغيل (حتى بضع ساعات). إذا كنت تقوم فقط باختبار نتائج بعض التغييرات الطفيفة على الوثائق، فمن الأفضل عادةً استخدام الخيار -f (for "fast"). سيؤدي هذا الخيار إلى إنشاء وثائق HTML باللغة الإنجليزية فقط، والتي يجب أن تستغرق بضع ثوانٍ فقط. للبناء باستخدام الخيار السريع، قم بتشغيل

invoke docs-build -f

سيستغرق تشغيل الأمر أعلاه بضع ثوانٍ، ثم إذا نظرت أسفل "docs\build\html\en"، فسترى إصدار HTML من الوثائق. قم بتحميل ملف "index.html" في متصفح الويب لترى كيف يبدو.

لإنشاء التوثيق الكامل، لجميع اللغات، بتنسيق PDF و HTML (تذكر أن هذا قد يستغرق بضع ساعات حتى يكتمل)، قم بتشغيل

invoke docs-build

بعد تشغيل الأمر أعلاه ، سترى (للغة الإنجليزية) وثائق HTML ضمن "docs\build\html\en"، وملفات PDF للوثائق ضمن "docs\build\html\en\pdfs".

إذا كنت ترغب في اختبار لغة معينة (عند اختبار الترجمات، على سبيل المثال)، يمكنك تحديد رمز لغة مكون من حرفين لإنشاء المستندات لتلك اللغة فقط. على سبيل المثال، لإنشاء الوثائق الإسبانية فقط، قم بتشغيل

invoke docs-build -l es

لاحظ أنه يمكن دمج الخيارات، بحيث يمكنك استخدام الخيار السريع لإنشاء إصدار HTML فقط من الوثائق الإسبانية عن طريق تشغيل

invoke docs-build -f -l es

عند إنشاء التوثيق الكامل لموقع الويب، من الأفضل إزالة أي نسخ قديمة من الوثائق أولاً، حيث قد تحتوي على ملفات لم تعد مستخدمة في الوثائق المحدثة. للقيام بذلك، استخدم خيار -c (clean)

invoke docs-build -c

بشكل عام، يجب أن يكتمل بناء المستندات دون أي أخطاء إذا كنت تخطط لمشاركة الوثائق أو نشرها على موقع الويب. ومع ذلك، عند اختبار الأشياء محليًا، قد ترغب في تجاهل أخطاء التوثيق التي تظهر فقط لبعض اللغات (بسبب أخطاء بناء الجملة الناشئة عن أخطاء الترجمة، وما إلى ذلك)، والاستمرار في بناء الوثائق المتبقية بغض النظر عما إذا كانت هناك أية أخطاء. للقيام بذلك، استخدم خيار``-i`` (ignore errors)

invoke docs-build -i

متى قمت بإجراء أي تغييرات على نص الوثائق، فمن الأفضل دفع أحدث السلاسل إلى Transifex حتى يمكن ترجمتها. لتحديث السلاسل على Transifex بأي تغييرات جديدة، قم بتشغيل

invoke translate-push

ملاحظة

لتشغيل الأمر أعلاه بنجاح، يجب أن يكون لديك مفتاح حساب transifex لـ Trends.Earth

بناء وثائق للإصدار

قبل إصدار وثائق جديدة، اسحب دائمًا أحدث الترجمات من Transifex حتى تكون جميع الترجمات محدثة. للقيام بذلك، قم بتشغيل

invoke translate-pull

لإنشاء نسخة من التوثيق للإصدار العام (سواء لموقع الويب أو بتنسيق PDF) ، يجب عليك إنشاء الوثائق بالكامل باستخدام docs-build بدون أي معلمات إضافية:

invoke docs-build

يجب أن تكتمل هذه العملية بنجاح مع عدم وجود أخطاء. في حالة حدوث أي أخطاء أثناء العملية، راجع رسالة الخطأ وقم بإجراء أي تعديلات لازمة للسماح للإنشاء بنجاح تام. بمجرد اكتمال البناء بدون أخطاء، تكون الملفات جاهزة لإصدار على موقع الويب.

ملاحظة

يحتوي كلا الأمرين أعلاه أيضًا على خيارات -f (force) تفرض سحب أو دفع أحدث الترجمات من أو إلى Transifex (على التوالي). استخدم هذه الخيارات فقط إذا كنت متأكدًا تمامًا مما تفعله، حيث يمكنها الكتابة فوق الترجمات تماماً على Transifex، مما يؤدي إلى فقد العمل الذي قام به المترجمون إذا لم يتم الالتزام بأحدث الترجمات في github بعد.

إضافة نص وثائقي جديدة

يجب إضافة أي ملفات .rst جديدة تمت إضافتها إلى الوثائق إلى العديد من ملفات التكوين للتأكد من ظهورها في قائمة التنقل، وترجمتها بشكل صحيح، و (للبرامج التعليمية) لضمان إنشائها في PDF حتى يتمكنوا من ذلك. يمكن تنزيلها للاستخدام في وضع عدم الاتصال.

  • docs\source\index.rst: أضف ملفات .rst جديدة في المكان المناسب هنا للتأكد من أنها مرتبطة من قائمة التنقل.

  • .tx\config: قم بإدراج ملفات .rst الجديدة هنا (بنفس تنسيق الملفات الأخرى المضمنة بالفعل) من أجل جعل برنامج الترجمة على علم بها حتى يمكن ترجمتها

  • docs\source\conf.py: إذا كنت ترغب في إنشاء ملف PDF لصفحة من موقع الويب، فيجب عليك إدراج هذه الصفحة هنا في قائمة `latex_documents. عادةً ما نقوم بذلك فقط لصفحات البرامج التعليمية التي نريد إتاحتها للمشاركين في ورشة العمل في ملفات PDF فردية. سيتم تضمين كل صفحة على الموقع في نسخة PDF من الموقع ككل، بغض النظر عما إذا كانت مدرجة في قائمة latex_documents.

إضافة صور جديدة أو موارد أخرى

يجب إضافة أي صور جديدة أو موارد أخرى (ملفات PDF، إلخ) التي تحتاج لها الوثائق ضمن "docs\resources\en". إذا رغبت في ذلك، فمن الممكن تحميل إصدارات مختلفة من الصورة بحيث تظهر الصورة مع الترجمات المناسبة. قد يكون هذا مفيدًا إذا كنت تريد إظهار واجهة GUI باللغة المناسبة، على سبيل المثال. للقيام بذلك، قم أولاً بتحميل نسخة من الصورة إلى "docs\resourcesen" (مع نص باللغة الإنجليزية). بعد ذلك، أنشئ نسخة من الصورة بنص مترجم وضع تلك الصورة تحت المجلد المناسب لتلك اللغة (على سبيل المثال، ستظهر صورة تظهر الترجمات الإسبانية ضمن "docs\resources\es"). سيتم استخدام النسخة الإنجليزية من الصورة كإصدار افتراضي لجميع اللغات التي لم يتم توفير نسخة أصلية من الصورة لها، بينما سيتم استخدام النسخة المترجمة عند توفرها.

ملاحظة

يوجد هناك مجلد آخر، "docs\source\static"، يتم استخدامه من أجل حفظ الموارد بشكلٍ مؤقت خلال عملية تشغيل البرامج النصية التي تُنشئ وثائق Trends.Earth. من الممكن أن تجد صورًا مُدرجة ضمن هذا المجلد في حال سبق لك إنشاء الوثائق على هذا الجهاز. برجاء عدم استخدام هذا المجلد لإضافة موارد جديدة - ينبغي دومًا وضع الموارد الجديدة ضمن "docs\resources\en"، أو، بالنسبة للصور المترجمة، في المجلد الخاص باللغة المُناسبة ضمن "docs\resources".

المساهمة كمترجم

تتم إدارة الترجمات لكل من البرنامج الملحق QGIS وكذلك لهذا الموقع بواسطة transifex <http://www.transifex.com> _. إذا كنت ترغب في المساهمة في ترجمة البرنامج الملحق والوثائق (ونرغب في الحصول على مساعدتك!) يمكنك طلب الانضمام إلى فريقنا من خلال transifex <https://www.transifex.com/conservation-international/trendsearth> _ ، أو عن طريق مراسلتنا عبر البريد الإلكتروني على `trends.earth@conservation.org.

إصدار نسخة جديدة من الملحق الإضافي

نظرة عامة

يتضمن إصدار نسخة جديدة من Trends.Earth تحديث أرقام الإصدارات، وإنشاء مؤشرات git tags، وبناء حزمة الملحق الإضافي، ونشرها على كلٍ من GitHub ومستودع ملحقات QGIS. ويتم تبسيط هذه العملية من خلال تنفيذ المهام التي تُؤتمت معظم هذه الخطوات.

سير عمل الإصدار

اتبع الخطوات التالية من أجل إنشاء إصدار عام جديد:

1. تحديث سجل التغييرات

أولًا، قم بتحديث سجل التغييرات في الملف "LDMPmetadata.txt" بتفاصيل التغييرات في ذلك الإصدار. قم بإضافة رقم الإصدار وتاريخه، متبوعًا بنقاط توضح الميزات الجديدة، وإصلاحات الأخطاء، وغيرها من التغييرات.

2. تعيين رقم الإصدار

قم بالقيام بمهمة "set-version" لتحديث أرقام الإصدارات في كل أنحاء قاعدة التعليمات البرمجية:

invoke set-version -v X.Y.Z -m

حيث X.Y.Z هو رقم الإصدار الجديد (مثلاً، 2.1.20). فإن الخيار "-m" يضمن تحديث أرقام الإصدارات كذلك في الوحدات التابعة ("trends.earth-schemas" و"trends.earth-algorithms").

سيقوم هذا الأمر بالتالي:
  • تحديث ملف "LDMP/metadata.txt" بالإصدار الجديد

  • إنشاء ملف "LDMP/_version.py" بمعلومات git

  • تحديث الإصدار في التوثيق ("docs/source/conf.py")

  • تعيين علامة "تجريبي" بناءً على أرقام الإصدارات الزوجية/الفردية (زوجي = مستقر، فردي = تطوير)

  • تحديث مراجع التبعيات في ملفات المتطلبات

ملاحظة

بالنسبة للإصدارات المستقرة (أرقام الإصدارات الزوجية مثل 2.1.18)، سوف تقوم مهمة "set-version"بتحديث مراجع التبعيات لاستخدام الإصدارات الموسومة. أما بالنسبة لإصدارات التطوير (أرقام الإصدارات الفردية مثل 2.1.19)، فسوف يتم استخدام الفرع الرئيسي.

3. تحديث نصوص GEE (إن وُجدت)

في حال قمت بإجراء تغييرات على نصوص محرك جوجل إيرث (في مجلد "gee") أو على ملفي "trends.earth-schemas" أو "trends.earth-algorithms"، فأضف الخيار "-g" عند تشغيل الأمر "set-version".

invoke set-version -v X.Y.Z -m -g

سوف يؤدي هذا إلى تحديث أرقام الإصدارات في كل ملفات تهيئة نصوص GEE البرمجية. قبل النشر، قم بإنشاء وسوم إصدار للمستودعات التابعة لكي تتمكن نصوص GEE البرمجية من تحديد الإصدارات الصحيحة.

# In trends.earth-schemas (where x.y.z is the new version number
invoke set-tag -v x.y.z

# In trends.earth-algorithms (where x.y.z is the new version number)
invoke set-tag -v x.y.z

بمجرد وضع علامات على كلا التبعيتين، انشر البرامج النصية المحدثة على خادم واجهة برمجة تطبيقات Trends.Earth:

invoke tecli-publish

سوف يؤدي هذا إلى تحميل كل نصوص GEE إلى api.trends.earth لتكون متاحة لمستخدمي الملحق الإضافي. يلزم أن تكون مسؤولًا لتنفيذ ذلك الأمر بنجاح.

4. حفظ كل التغييرات

تأكد من حفظ كل الملفات المُعدَّلة في git:

git add -A
git commit -m "Release version X.Y.Z"

5. إنشاء git tags ودفعها

بعد الالتزام بتغييرات الإصدار في هذا المستودع، قم بتشغيل "invoke set-tag":

invoke set-tag -v x.y.z # (where x.y.z is the new version number

يؤدي ذلك إلى إنشاء git tag مُعَلَّمة للملحق (مثلاً، "v2.1.20") ودفعها إلى GitHub. في حال كانت لديك تغييرات غير مُلتزم بها، فسوف تطلب منك المهمة الالتزام بها أولاً.

6. إنشاء إصدار GitHub

قم بتشغيل مهمة "release-github" من أجل إنشاء إصدار على GitHub مع إرفاق ملف ZIP الخاص بالملحق الإضافي:

invoke release-github

سيقوم هذا الأمر بالتالي:

  • قم بإنشاء ملف ZIP نظيفًا للملحق الإضافي (مثلاً، "LDMP_2.1.20.zip") مع كل التبعيات

  • احذف كل ملفات ".pyc" للامتثال لمتطلبات أمان مستودع QGIS.

  • قم بإنشاء إصدارًا على GitHub مع إرفاق ملف zip الخاص بالملحق الإضافي كملف قابل للتنزيل.

ملاحظة

سوف تحتاج إلى كود وصول شخصي على GitHub بنطاق "repo" مُهيأ في ملف "invoke.yaml" لكي يتم إجراء هذا الأمر. اطلع على رسائل الخطأ في حال فشلت عملية المصادقة وذلك من أجل الحصول على إرشادات بخصوص إنشاء كود الوصول.

7. انشر في مستودع QGIS

أخيرًا، ارفع الملحق يدويًا إلى مستودع ملحقات QGIS:

  1. قم بتنزيل ملف zip الخاص بالملحق الإضافي (على سبيل المثال، "LDMP_2.1.20.zip") من إصدار GitHub الذي أنشأته للتو (سيظهر ضمن "الأصول").

  2. قم بتسجيل الدخول إلى"مستودع ملحقات QGIS <https://plugins.qgis.org/plugins/>"_.

  3. انتقل إلى صفحة إدارة الملحقات الإضافية.

  4. قم برفع الإصدار الجديد باستخدام ملف zip.

سوف يتحقق مستودع QGIS من صحة الملف zip المضغوط، وسوف يوفره للمستخدمين عبر مدير ملحقات QGIS.

اصطلاحات ترقيم الإصدارات

يتبع برنامج Trends.Earth قواعد ترقيم الإصدارات التالية:

  • الأرقام الزوجية (مثلاً: 2.1.18، 2.1.20): إصدارات مستقرة مخصصة من أجل الاستخدام العام

  • الأرقام الفردية (مثلاً: 2.1.19، 2.1.21): إصدارات التطوير التجريبية لاختبار الميزات الجديدة

لا يتم نشر الإصدارات التجريبية مطلقًا في مستودع QGIS، ويستخدمها فريق التطوير فقط لأغراض الاختبار.