تطوير¶
|trends.earth|هو برنامج مجاني ومفتوح المصدر، ومرخص بموجب (رخصة جنو العمومية العامة ، إصدار 2.0 أو أحدث <https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html> "_.
There are a number of components to the 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.
البرنامج الملحق لـ|trends.earth|QGIS مدعوم بعدد من نصوص Python المختلفة التي تسمح بحساب المؤشرات المختلفة على Google Earth Engine (GEE). توجد هذه البرامج النصية في المجلد الفرعي "gee" لملف GitHub هذا. يتم دعم البرامج النصية لـ GEE بواسطة وحدة Python الخاصة بـ "landdegradation"، والتي تتضمن تعليمات برمجية لمعالجة المدخلات والمخرجات للبرنامج الملحق، بالإضافة إلى الوظائف الشائعة الأخرى التي تدعم حساب تكاملات NDVI والأهمية الإحصائية والتعليمات البرمجية المشتركة الأخرى. التعليمات البرمجية لهذه الوحدة متاح في ملف ` landdegradation <https://github.com/ConservationInternational/landdegradation> `_ على GitHub.
يوجد مزيد من التفاصيل أدناه حول كيفية المساهمة في Trends.Earth من خلال العمل على التعليمات البرمجية للبرنامج الملحق، أو عن طريق تعديل التعليمات البرمجية للمعالجة، أو بالمساهمة في ترجمة موقع الويب والبرنامج الملحق.
تعديل التعليمات البرمجية للبرنامج الملحق QGIS¶
تنزيل التعليمات البرمجية لـ trends.earth¶
توجد التعليمات البرمجية لـ Trends.Earth لكل من البرنامج الملحق ونصوص Google Earth Engine التي تدعمها على GitHub في ملف trends.earth. انسخ هذا الملف إلى مكان مناسب على جهازك لضمان حصولك على أحدث إصدار من التعليمات البرمجية.
هناك عدد من الفروع المختلفة لملف trends.earth التي هي قيد التطوير النشط. يدعم البرنامج الملحق QGIS3 رسميًا وتحدث غالبية التطوير في فرع "develop". الفرع "qgis2" هو الإصدار الأقدم من البرنامج الملحق، ويدعم QGIS2 الإصدار 2.18+.
تثبيت البرامج الملحقة¶
Python¶
البرنامج الملحق تم برمجته في Python. بالإضافة إلى استخدامه لتشغيل البرنامج الملحق من خلال QGIS، يتم استخدام Python أيضًا لدعم إدارة البرنامج الملحق (تغيير الإصدار، تثبيت إصدارات مطورة، وما إلى ذلك). على الرغم من تضمين Python في QGIS، إلا أنك ستحتاج أيضًا إلى إصدار محلي من Python يمكنك إعداده باستخدام البرنامج المطلوب لإدارة البرنامج الملحق. أسهل طريقة لإدارة إصدارات متعددة من Python هي من خلال Anaconda distribution. للعمل على تطوير البرنامج الملحق، مطلوب Python 3. لتنزيل Python 3.7 (موصى به) برغم Anaconda ، انظر هذه الصفحة <https://www.anaconda.com/distribution/#download-section> _.
ملحقات 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.
مزامنة ونشر التغييرات على الثنائيات¶
لتسريع الحسابات في Trends.Earth، تسمح بعض الأدوات باستخدام الثنائيات المجمعة مسبقًا والتي تم تجميعها باستخدام `` numba <https://numba.pydata.org> `_. Numba هو برنامج مجمّع مفتوح المصدر يمكنه تجميع رمز Python وNumPy، مما يجعله أسرع من تشغيله مثل Python العادي. لتجنب مستخدمي Trends.Earth، تحتاج إلى تنزيل Numba وجميع ملحقاته، يوفر فريق Trends.Earth الثنائيات المجمعة مسبقًا للتنزيل إذا اختار المستخدمون تثبيتها.
لإنشاء ثنائيات مجمعة مسبقًا لنظام التشغيل و bitness (32/64 بت) وإصدار Python الذي تقوم بتشغيله على جهازك، استخدم
invoke binaries-compile
ملاحظة
ستحتاج إلى مجمّع C ++ حتى يعمل الأمر أعلاه. في نظام التشغيل Windows، راجع this github page للحصول على تفاصيل حول كيفية تثبيت برنامج التحويل البرمجي Microsoft Visual C ++ المطلوب لإصدار Python الخاص بك. على نظام MacOS، ستحتاج على الأرجح إلى تثبيت Xcode. على نظام Linux، قم بتثبيت الإصدار المناسب من GCC.
لإتاحة الثنائيات للجمهور، يتم توزيعها من خلال وحدة التخزين السحابي Amazon Web services S3. لتحميل الثنائيات التي تم إنشاؤها باستخدام الأمر أعلاه إلى، تشغيل
invoke binaries-sync
ملاحظة
سيفشل الأمر أعلاه إذا لم يكن لديك مفاتيح تسمح لك بالوصول للكتابة إلى وحدة تخزين``Trends.earth`` في S3.
سيقوم الأمر أعلاه بمزامنة كل ملف ثنائي فردي مع S3. ومع ذلك، يقوم مستخدمو toolbox بتنزيل الثنائيات كملف مضغوط واحد مرتبط بإصدار البرنامج الملحق الذي يستخدمونه. لإنشاء هذا الملف المضغوط بحيث يمكن الوصول إليه بواسطة مستخدمي Trends.Earth، قم بتشغيل:
invoke binaries-deploy
ملاحظة
سيفشل الأمر أعلاه إذا لم يكن لديك مفاتيح تسمح لك بالوصول للكتابة إلى وحدة تخزين``Trends.earth`` في S3.
بناء ملف مضغوط للبرنامج الملحق¶
هناك العديد من مهام الاستدعاء للمساعدة في إنشاء ملف مضغوط لنشر البرنامج الملحق في ملف 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.
إعداد البرامج الملحقة¶
trends.earth-CLI¶
حزمة Python "trends.earth-CLI" مطلوبة للعمل مع خادم api.trends.earth. توجد هذه الحزمة على GitHub في ملف trends.earth-CLI
الخطوة الأولى هي استنساخ هذا الملف على جهازك. نوصيك باستنساخ الملف في نفس المجلد حيث تضع التعليمات البرمجية لـtrends.earth. على سبيل المثال، إذا كان لديك مجلد "Code" على جهازك، فقم باستنساخ كل من ملف trends.earth <https://github.com/ConservationInternational/trends.earth> `_ (التعليمات البرمجية للبرنامج الملحق QGIS ونصوص GEE المرتبطة به) وأيضًا ملف `trends.earth-CLI <https://github.com/Vizzuality/trends.earth-CLI> _ في نفس المجلد.
عندما تقوم بإعداد نظامك على النحو الموصى به أعلاه، ستعمل trends.earth-CLI مع مهام الاستدعاء المستخدمة لإدارة trends.earth دون أي تعديلات. ومع ذلك، إذا قمت بتنزيل Trend.earth-CLI في مجلد مختلف، فستحتاج إلى إضافة ملف باسم "invoke.yaml" إلى الملف الأساسي الخاص بـ trends.earth ، وفي هذا الملف أخبر Trends.Earth أين يحدد موقع التعليمات البرمجية لـ Trends.earth-CLI. يجب أن يبدو ملف YAML مشابهًا لما أدناه (إذا قمت بتنزيل التعليمات البرمجية الموجود على Windows في مجلد يسمى "C:/Users/azvol/Code/trends.earth-CLI/tecli"):
gee:
tecli: "C:/Users/azvol/Code/trends.earth-CLI/tecli"
مرة أخرى، ** لا ** تحتاج إلى إضافة ملف .yaml هذا إذا قمت بإعداد نظامك على النحو الموصى به أعلاه.
دوكر(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 إلى إصلاح هذا الخطأ.
نشر برنامج GEE النصي على api.trends.earth¶
عندما تنتهي من اختبار برنامج GEE النصي وترغب في أن يكون الوصول إليه متاحًا باستخدام البرنامج المساعد QGIS (ومستخدمي Trends.Earth الآخرين)، يمكنك نشره على خادم api.trends.earth. الخطوة الأولى في العملية هي تسجيل الدخول إلى خادم api.trends.earth. لتسجيل الدخول، قم بتشغيل
invoke tecli-login
سيُطلب منك اسم مستخدم وكلمة مرور. وهما نفس اسم المستخدم وكلمة المرور اللذين تستخدمهما لتسجيل الدخول إلى خادم Trends.Earth من البرنامج الملحق QGIS. ** إذا لم تكن مسؤولاً، فستتمكن من تسجيل الدخول، لكن الأمر أدناه سيفشل **. لتحميل برنامج نصي (على سبيل المثال، البرنامج النصي "land_cover") على الخادم، قم بتشغيل
invoke tecli-publish -s land_cover
إذا كان هذا البرنامج النصي موجودًا بالفعل على الخادم، فسيتم سؤالك عما إذا كنت تريد الكتابة فوق البرنامج النصي الحالي. كن حذرًا جدًا عند تحميل البرامج النصية ذات إصدارات بأرقام زوجية، حيث إنها نصوص برمجية متاحة للجمهور، وأي أخطاء تقوم بها ستؤثر على أي شخص يستخدم البرنامج الملحق. في أي وقت تقوم فيه بالاختبار، تأكد من استخدام أرقام الإصدارات المطورة (أرقام الإصدارات الفردية).
بعد نشر نص برمجي على الخادم، يمكنك استخدام مهمة tecli-info للتحقق من حالة البرنامج النصي (لمعرفة ما إذا كان قد تم نشره بنجاح - على الرغم من أن بناء النص البرمجي قد يستغرق بضع دقائق). للتحقق من حالة البرنامج النصي المنشور، قم بتشغيل:
invoke tecli-publish -s land_cover
إذا كنت تقوم بإنشاء إصدار جديد من البرنامج الملحق، وتريد تحميل جميع نصوص GEE النصية مرة واحدة (يعد هذا ضروريًا عندما يتغير رقم إصدار البرنامج الملحق)، فقم بتشغيل
invoke tecli-publish
مرة أخرى - لا تقم مطلقًا بتشغيل ما ورد أعلاه على إصدار عام من البرنامج الملحق إلا إذا كنت تنوي الكتابة فوق جميع البرامج النصية المتاحة للجمهور التي يستخدمها البرنامج الملحق.
تعديل قوالب vector layer¶
Trends.Earth يسمح للمستخدمين برقمنة ميزات vector الجديدة لتحديد المناطق ذات الأهمية الخاصة.
في الوقت الحالي يتم دعم الطبقات "الإيجابية/ السلبية الخاطئة" فقط، ولكن يمكن إضافة المزيد إذا لزم الأمر. يتم إنشاء أي طبقة متجهة من ملفات قالب GeoPackage، والتي يمكن العثور عليها داخل مجلد data/error_recode
في ملف تثبيت البرنامج الملحق. لكل نوع (vector ) 6 ملفات نموذجية، ملف واحد لكل لغة رسمية للأمم المتحدة. تمت إضافة رمز لغة ISO كلاحقة لاسم الملف. يعد ذلك ضروريًا لتوفير تسميات مترجمة في نماذج السمات. عند طلب إنشاء طبقة vector، سيبحث 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 '' في الملف الرئيسي للبرنامج الملحق. تم تحسّين الوظيفة للعمل مع المضلعات الكبيرة واستخدامات سير العمل التالية. للحصول على هندسة معينة، ابحث عن bbox واستخرج raster susbset باستخدام bbox هذا. قم بإجراء تنقيط هندسي في الذاكرة وقم بتطبيقه كقناع على raster. ثم عد عدد البيكسلات التي لها قيمة محددة وحساب النسبة المئوية. نظرًا لأن عد البكسل مبني على وظائف مصفوفة عددية ، فهو سريع جدًا حتى بالنسبة للمضلعات الكبيرة.
في المحاولة الأولى لتعديل طبقة 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 عند إنشاء التقارير (والمخططات) للطبقات الافتراضية في وظيفة:
It creates a
ReportTaskContext
object that constitutes aReportConfiguration
object (see تكوين معلمات التقرير) and aJob
object that is represented in the Datasets panel. ThisReportTaskContext
object is serialized to a JSON file and then passed as one of the arguments in aReportProcessHandlerTask
object (that inherits from QgsTask).يقوم كود
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 |
اسم السمة للكود |
سلسلة |
N/A |
var_name |
اسم متغير مخطط التقرير. يجب أن يكون مسبوق بـ te_job_. |
سلسلة |
N/A |
default_value |
قيمة افتراضية لاستخدامها لـ var_name, يتم تطبيقها غالبًا عند تصميم التخطيطات. |
الكود |
الكود |
fmt_func |
كود الدالة سيتم استخدامه لتحويل قيمة سمة الوظيفة إلى تنسيق متوافق مع تعبيرات QGIS. على سبيل المثال يمكن استخدام |
كود الدالة |
لاشيء |
يوضح كود 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 هنا. على سبيل المثال |
كود الدالة |
لاشيء |
يوضح كود 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()
)
...
]
ملاحظة
هذه المتغيرات متاحة فقط في نطاق التخطيط.
إضافة تكوينات الرسم البياني¶
يمكن تجميع المخططات باستخدام كود تكوين مخطط يتوافق مع خوارزمية محددة. تحديد تكوين مخطط جديد هو عملية من ثلاث خطوات:
أنشئ فئة مخطط جديدة تستقبل من code:BaseChart في وحدة LDMP.reports.charts. قم بتنفيذ دالة
export
لتحديد نوع المخطط والخصائص وما إلى ذلك باستخدامPlotly
Python library التي تأتي مع QGIS. أخيرًا ، داخل دالةexport
قم باستدعاء دالة :save_image
لكتابة كود PlotlyFigure
كملف صورة باستخدام أي من التنسيقات التي تدعمها فئات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
للحصول على أمثاله أكثر اكتمالاً.أنشئ فئة تكوين مخطط ترث من:
BaseAlgorithmChartsConfiguration
ونفِّذ دالة_add_charts
. تحدد فئة تكوين المخطط بشكل أساسي المخططات التي سيتم استخدامها لخوارزمية معينة. السمةlayer_band_infos`هي قائمة من التعليمات البرمجية الخاصة بـ :code:`LayerBandInfo
التي تحتوي على بيانات الطبقة ومعلومات النطاق المطلوبة لإنتاج المخططات. يمكنك الرجوع إلى فئةLandCoverChartsConfiguration
للحصول على مثال أكثر اكتمالاً.أخيراً، قم بتعيين خوارزمية (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.