أسئلة عامة
أواجه مشكلة وأحتاج إلى المساعدة.
اطرح سؤالاً باتّباع هذا الدليل، وقدِّم أكبر قدر ممكن من المعلومات (راجِع دليل Stack Overflow لطرح أسئلة جيدة). ويعني ذلك عادةً ما يلي:
إرسال رابط إلى نص برمجي في "أداة تعديل الرموز" (انقر على الزر "الحصول على الرابط" للحصول عليه)
مشاركة أي مواد عرض مطلوبة لتشغيل النص البرمجي
بالنسبة إلى مهام الدفعات التي تعذّر تنفيذها، يتم الإبلاغ عن معرّف المهمة التي تعذّر تنفيذها. تظهر معرّفات المهام على النحو التالي:
4C25GIJBMB52PXTEJTF4JLGL. ويمكن العثور عليها في علامة التبويب "المهام" في "أداة تعديل الرموز". مزيد من المعلومات
أين يمكنني الاطّلاع على بنية Earth Engine؟
يمكنك الاطّلاع على هذه الورقة البحثية: Gorelick et al. 2017.
هل هناك أي برامج تعليمية مقترَحة حول Earth Engine لم تنشئها Google؟
يُرجى الاطّلاع على صفحتَي EDU ومراجع التدريب.
هل هناك أي برامج تعليمية مقترَحة حول الاستشعار عن بُعد؟
يمكنك الاطّلاع على هذه الدورة التدريبية المجانية حول EE التي يقدّمها "أوجافال غاندي"، والتي تتضمّن فيديو يقدّم مقدمة عن الاستشعار عن بُعد.
برمجة Earth Engine
ما هي بعض أخطاء الترميز الشائعة؟
يُرجى الاطّلاع على دليل تصحيح الأخطاء.
لماذا تظهر لي رسالة الخطأ "... is not a function"؟
يحدث هذا الخطأ عندما يتعذّر على Earth Engine العثور على الطريقة التي تم استدعاؤها. يُرجى مراجعة الأسباب الشائعة التالية:
الإملاء أو الحساسية لحالة الأحرف: الطرق حساسة لحالة الأحرف. تحقَّق من الإملاء من خلال مرجع واجهة برمجة التطبيقات.
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
تحويلات النوع غير المتوفّرة: القيم التي يتم عرضها من دوال مثل .get() هي
مثيلات ee.ComputedObject عامة ويجب تحويلها بشكل صريح. يُرجى الاطّلاع على
تحويل نوع الكائن غير المعروف.
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
الخلط بين طرق العميل والخادم: تأكَّد من عدم استخدام طرق JavaScript أو Python العادية (مثل .push() أو .append()) على عناصر Earth Engine. يُرجى الاطّلاع على تجنُّب الخلط بين وظائف العميل والخادم.
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
الطرق غير المتاحة: إذا تم كتابة العنصر بشكل صحيح وكانت الطريقة موجودة في المستندات أو كانت تعمل في السابق ولكنها تفشل الآن، يُرجى الإبلاغ عن خطأ.
لماذا لا يمكنني استخدام العمليات الحسابية الأساسية مثل ee.Image("image") * 2؟
في EE، يجب عدم المزج بين العناصر أو العمليات من جهة الخادم ومن جهة العميل. يتم تنفيذ جميع العمليات على عناصر EE من جهة الخادم. لن تؤدي أي عمليات حسابية من جهة العميل إلى ما تريده. يمكنك الاطّلاع على هذه الصفحة لمزيد من التفاصيل.
كيف يمكنني استخدام حلقات for أو عبارات if/else؟
تتم برمجة Earth Engine باستخدام لغة وظيفية، لذا يجب التعبير عن الحلقات والعمليات الشرطية باستخدام مفاهيم مكافئة مثل map أو filter. يُرجى الاطّلاع على
هذه الصفحة لمزيد من التفاصيل.
كيف يمكنني عرض تصنيفات نصية في صورتي أو الفيديو؟
لا يتوفّر دعم مضمّن للتصنيفات النصية، ولكن يمكنك:
- استخدام حزمة JS تابعة لجهة خارجية الاطّلاع على مثال
- استخدام حزمة Python التابعة لجهة خارجية geemap
- استخدام QGIS لإدخال صور EE باستخدام المكوّن الإضافي EE QGIS
هل يمكنني استخدام بعض تشكيلات الألوان العادية؟
استخدام حزمة JS تابعة لجهة خارجية ee-palettes
كيف يمكنني إنشاء موقع إلكتروني خاص بي يستخدم Earth Engine؟
استخدام تطبيقات Earth Engine للتطبيقات الأساسية في الحالات الأكثر تعقيدًا، يمكنك إنشاء تطبيقات App Engine مستندة إلى EE.
كيف تعمل معرّفات الخرائط؟
معرّفات الخرائط (يُشار إليها باسم mapid في واجهة برمجة التطبيقات) هي مفاتيح تتيح للعملاء
جلب مربّعات الخرائط. كل معرّف هو تجزئة يتم إنشاؤها من خلال تقديم تعبير صورة إلى نقطة النهاية getMapId. أرقام التعريف الناتجة هي مفاتيح تشير إلى كل من
تعبير الصورة وبيانات اعتماد المستخدم التي سيتم استخدامها لإنشاء
المربّعات في مرحلة لاحقة.
يتطلب طلب مربّعات الخريطة تحديد موقع المربّع (x وy وzoom) بالإضافة إلى mapid (مفتاح الصورة وبيانات الاعتماد). ويمكن إعادة استخدام رقم التعريف نفسه لتحميل العديد من مربّعات الخريطة. ما مِن حدود لإعادة استخدام مفاتيح mapid، ولكن تنتهي صلاحيتها بعد بضع ساعات. لا ننشر أُطرًا زمنية محدّدة حول مدة استمرارها، ولكن يجب أن تكون أي تعليمات برمجية تكتبها مرنة في ما يتعلق بانتهاء صلاحية رقم التعريف.
يتطلب إنشاء أرقام التعريف هذه تخزين كمية صغيرة من البيانات والتحقّق من بيانات الاعتماد، لذا من الأفضل إعادة استخدامها لأطول فترة ممكنة. لا تتوفّر حصة لواجهة برمجة التطبيقات مرتبطة تحديدًا بنقطة نهاية getMapId، ولكن من المحتمل أن يكون هناك خطأ في أي سير عمل يتضمّن إنشاء عناصر mapid بمعدّل قريب من معدّل جلب المربّعات. لا تتضمّن منصة Earth Engine نقطة نهاية لواجهة برمجة التطبيقات
لإزالة هذه المعرّفات أو إدراجها أو إدارتها، لأنّها موارد
مؤقتة.
لماذا يطبع ee.Algorithms.If() كلاً من الحالة الصحيحة والخاطئة؟
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
تعمل خوارزمية If() تمامًا مثل أي خوارزمية أخرى في Earth Engine، حيث يجب تقييم جميع وسيطاتها قبل تشغيل الخوارزمية نفسها.
تحصل الخوارزمية على نتيجتَي trueCase وfalseCase ثم تختار
وتعرض إحداهما استنادًا إلى الوسيطة condition، ولكن كان يجب تنفيذ كلا المسارَين
لتمرير هاتين القيمتَين إلى الخوارزمية في المقام الأول.
تظهر لي رسالة الخطأ "يتجاوز حجم حمولة الطلب الحدّ المسموح به"
أنت تحاول إرسال طلب كبير جدًا إلى Earth Engine. يحدث هذا عادةً عندما يستخدم الرمز الكثير من حلقات "for" من جهة العميل أو ينشئ FeatureCollection من العديد من العناصر الهندسية. في الحالة الأخيرة، بدلاً من إنشاء هذه الأشكال الهندسية في النص البرمجي، يمكنك إنشاء ملف CSV يحتوي عليها وتحميله إلى مادة عرض جدول.
ما هو الفرق بين ee.Image.clip() وee.Filter.bounds()؟
يُرجى الاطّلاع على سلسلة المحادثات هذه في GIS Stack Exchange.
تخفي الدالة ee.Image.clip() وحدات البكسل التي لا تتقاطع مع ee.Geometry أو ee.Feature معيّن، ما يجعلها شفافة في العروض المرئية ويتم استبعادها في العمليات الحسابية. يمكنك
تصوّره على أنّه اقتصاص وحدات بكسل من صورة.
تُستخدَم الدالة ee.Filter.bounds() لفلترة عناصر ee.Image من ee.ImageCollection استنادًا إلى تقاطع الصورة مع ee.Geometry أو ee.Feature. وتُستخدَم لحصر نطاق التحليل في الصور التي تتقاطع مع منطقة معيّنة، ما يساعد في تحسين التعبيرات.
كيف يمكن تحويل وحدات بكسل الصورة إلى مجموعات عناصر، مع عنصر واحد لكل بكسل؟
استخدِم الدالة ee.Image.sample(). يمكنك الاطّلاع على أمثلة على الاستخدام في صفحة مرجع واجهة برمجة التطبيقات الخاصة بالدالة.
ما هو الفرق بين ee.ImageCollection.merge() وee.ImageCollection.combine()؟
تدمج الدالة ee.ImageCollection.merge() جميع الصور من مجموعتَين في مجموعة واحدة، بغض النظر عمّا إذا كانت الصور المعنيّة تحتوي على نطاقات أو بيانات وصفية أو نظام مرجعي إحداثي (CRS) أو مقياس متطابق. وهي اتحاد مجموعتين. تجمع طريقة combine() بين نطاقات الصور المتطابقة من مجموعتين في مجموعة واحدة. تتشارك الصور المتطابقة رقم التعريف نفسه (السمة system:index). وهي عبارة عن دمج داخلي لمجموعتَين استنادًا إلى معرّف الصورة، حيث يتم دمج النطاقات من الصور المتطابقة. بالنسبة إلى الصور المطابقة، يتم إلحاق النطاقات من الصورة الثانوية بالصورة الأساسية (الكتابة فوقها اختيارية). إذا لم تكن هناك صور مطابقة،
سيتم عرض مجموعة فارغة.
كيف يمكن فلترة مجموعات الصور حسب فترات زمنية متعددة؟
يُرجى الاطّلاع على سلسلة المحادثات هذه في GIS Stack Exchange.
يمكنك إما merge() مجموعات متعددة معًا أو استخدام ee.Filter.or().
كيفية إنشاء مربّع محيط حول نقطة معيّنة؟
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
Data Catalog
هل يمكنك إضافة مجموعة البيانات X؟
أبلِغ عن خطأ في طلب مجموعة البيانات باتّباع دليل طلب مجموعة البيانات.
يمكنك أيضًا تحميل البيانات إلى مجلد Earth Engine الرئيسي. يُرجى الاطّلاع على استيراد بيانات نقطية واستيراد بيانات الجدول.
يتوفّر إصدار جديد من مجموعة بيانات حالية
أبلِغ عن خطأ في مجموعة البيانات باتّباع دليل طلب مجموعة البيانات، وأشِر إلى أنّك تطلب تعديل مجموعة البيانات.
مجموعة بيانات حالية لم يتم تعديلها أو لا تتضمّن مواد عرض
قبل الإبلاغ عن مشكلة، يُرجى التأكّد، إن أمكن، من أنّ مواد العرض المحدّدة موجودة فعلاً على الموقع الإلكتروني لمقدّم مجموعة البيانات. يمكنك الاطّلاع على الدليل حول الصور غير المتوفّرة لمزيد من التفاصيل.
إذا كنت تبحث عن مادة عرض من خلال فلترة ImageCollection، تأكَّد من أنّ الفلاتر ليست مقيّدة للغاية.
يُرجى ملاحظة ما يلي على وجه الخصوص:
لم تنتج وكالة الفضاء الأوروبية (ESA) بيانات Sentinel-2 SR (بيانات المستوى 2) لمشاهد المستوى 1 المبكرة.
لا يتوفّر في Landsat تغطية عالمية قبل عام 2000.
مجموعة بيانات حالية تحتوي على قيم خاطئة
انشر سؤالك في منتدى المطوّرين. يُرجى تضمين نص برمجي يكبّر الدقة الأصلية لمادة العرض ويوضّح القيم الخاطئة. يُرجى توضيح المكان الذي رصدت فيه القيمة البديلة بالضبط.
أين يمكنني طرح أسئلة أخرى حول مجموعات البيانات؟
للأسئلة حول مجموعات بيانات NASA، يُرجى الاطّلاع على منتدى NASA Earth Data.
للأسئلة حول مجموعات الأدوات التي تعمل على مجموعات بيانات Copernicus، يُرجى الاطّلاع على منتديات S1 وS2 وS3.
ما هو حجم كتالوج Earth Engine؟
اعتبارًا من أكتوبر 2023، يحتوي الكتالوج على أكثر من 1000 مجموعة بيانات. ويبلغ حجمها على القرص أكثر من 90 بيتابايت (بعد الأخذ في الاعتبار الضغط بدون فقدان البيانات).
ما هو معدّل تعديل البيانات في EE؟
في العادة، يتم تعديل جميع مجموعات البيانات الجارية يوميًا على الأقل (على الرغم من أنّ بعض مجموعات البيانات هذه لا تتضمّن بيانات جديدة كل يوم). يتم تحديث بعض مجموعات البيانات عدة مرات في اليوم. ومع ذلك، لا توجد سياسة تضمن وجود أحدث الأصول في الكتالوج.
كيف يمكنني عرض محتوى كتالوج Earth Engine آليًا؟
يتم تصدير قائمة مجموعات البيانات بتنسيق STAC إلى
حزمة Google Cloud Storage gs://earthengine-stac.
ملف الإدخال هو
catalog.json.
هل يمكنني استخدام بيانات أو صور "خرائط Google" لإجراء تحليل؟
لا تمنح Google تراخيص لبيانات الخريطة الأساسية أو تبيعها لأغراض التحليل.
كيف يمكنني العثور على تاريخ نقل مادة عرض؟
سمة مادة العرض 'system:version' هي الطابع الزمني لعملية نقل البيانات، ويتم تنسيقها على شكل ميكروثانية منذ بداية حقبة يونكس. في ما يلي مثال يحوّل الطابع الزمني لعملية نقل صورة Landsat إلى تنسيق يمكن لشخص عادي قراءته.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
هل يتضمّن كتالوج Earth Engine بيانات وصفية بتنسيق JSON-LD؟
نعم، يتم تضمين البيانات الوصفية بتنسيق JSON-LD في صفحات HTML الخاصة بالكتالوج. على سبيل المثال، تحتوي صفحة Sentinel-2 على القسم التالي:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
Landsat
How is the simpleComposite algorithm implemented?
إنّ عملية التنفيذ من جهة الخادم تعادل رمز JavaScript هذا.
كيف يمكنني إنشاء صور مركّبة خالية من السحب من بيانات انعكاس السطح في Landsat؟
تحتوي بيانات Landsat من المستوى 2 (انعكاس السطح) على عدة نطاقات جودة يمكن استخدامها لإخفاء السحب وغيرها من العناصر غير المرغوب فيها في الصور. يتوفّر مثال على استخدام هذه النطاقات لمعالجة صور Landsat 8 SR وإنشاء صورة مركّبة خالية من السحب في هذا المنشور على GIS Stack Exchange. يتم استخدام الإجراء نفسه لإنشاء صورة مركّبة خالية من السحب لاستخدامها في أمثلة التصنيف الخاضع للإشراف في دليل المطوّر.
هل من الضروري إجراء تسوية للانعكاس السطحي لبيانات Landsat من أجهزة استشعار مختلفة؟
Roy et al., 2016 included an analysis of reflectance differences between Landsat 7-8 TOA and surface reflectance. ونشروا معاملات OLS وRMA حتى يتمكن القراء من تحويل قيم الانعكاس لبيانات أحد أجهزة الاستشعار إلى جهاز آخر. ينص السطر الأخير من الورقة على ما يلي: "على الرغم من أن الاختلافات في أجهزة الاستشعار صغيرة جدًا، إلا أنها قد يكون لها تأثير كبير اعتمادًا على تطبيق بيانات لاندسات". ومع ذلك، استند هذا التحليل إلى بيانات ما قبل الجمع.
قد تؤثر التحسينات التي تم إجراؤها أثناء إعادة معالجة المجموعة 1 والمجموعة 2 في العلاقة بين أدوات الاستشعار، ولكن على حد علمنا، لم يتم إجراء أي تحليلات مشابهة لدراسة روي وآخرين (2016) لبيانات المجموعة 1 أو المجموعة 2. على الرغم من عدم وجود تحليل رسمي، يبدو أنّ هناك إجماعًا عامًا بين مستخدمي Landsat المؤثرين على أنّه لا حاجة إلى إجراء أي تصحيح لبيانات المجموعة 2، المستوى 2 (الانعكاس السطحي). على سبيل المثال، في رد على سؤال بخصوص الحاجة إلى مواءمة المجموعة 2، المستوى 2، أشار مايك وولدر من فريق لاندسات العلمي إلى أنه اعتمادًا على طبيعة التطبيق محل الاهتمام (بما في ذلك رسم خرائط الغطاء الأرضي واكتشاف التغيير)، فإن منتجات انعكاس السطح من المجموعة 2 مناسبة للغاية وموثوقة، دون الحاجة إلى تعديل عبر أجهزة الاستشعار.
كيف يمكنني حجب السُحب وظلالها في صور MSS؟
تتضمّن وحدة msslib التابعة لجهة خارجية في أداة تعديل الرموز البرمجية بلغة JavaScript تنفيذًا لخوارزمية MSScvm، بالإضافة إلى دوال مفيدة أخرى لاستكشاف بيانات MSS وإعدادها.
إدارة بيانات
من يملك البيانات التي أحمّلها؟
وفقًا لبنود خدمة Earth Engine، يمتلك العملاء البيانات التي يحمّلونها إلى Earth Engine.
لا يمكنني تحميل البيانات.
تحقَّق من حالة مهمة التحميل في لوحة "المهام" (Tasks) في أعلى يسار أداة تعديل الرموز. يمكنك أيضًا الاطّلاع على صفحة المهام المخصّصة.
إذا لم تكن هناك مهمة، فمن المحتمل أنك حاولت تحميل ملفك من خلال أداة تعديل الرموز، ولكن بسبب مشكلة في الشبكة، لم ينته تحميل الملف مطلقًا، لذلك لم يتم إنشاء المهمة مطلقًا. جرِّب استخدام متصفّح آخر أو جهاز كمبيوتر آخر.
إذا كانت هناك مهمة تعذّر تنفيذها، افحص الخطأ الذي يظهر. إذا لم تظهر رسالة خطأ محدّدة، تأكَّد أولاً من أنّ الملف غير تالف من خلال تشغيل gdalinfo لملفات البيانات النقطية أو ogr2ogr لملفات المتّجهات.
ستحاول هذه الأوامر قراءة جميع البيانات من الملفات المصدر وعرض الأخطاء إذا كانت الملفات تالفة.
مثال على طلب gdalinfo:
gdalinfo -mm -stats -checksum file.tif
مثال على طلب ogr2ogr يحوّل in.shp إلى out.csv:
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
إذا كان الملف صالحًا، انشر معرّف المهمة التي تعذّر تنفيذها كنص (وليس كلقطة شاشة) في القائمة البريدية للمطوّرين.
تكون معرّفات المهام بالتنسيق التالي: 4C25GIJBMB52PXTEJTF4JLGL. اجعل ملف المصدر قابلاً للقراءة بشكل عام إن أمكن. إذا كان الملف خاصًا، يمكنك مشاركته مع earthengine@google.com فقط إذا أردت أن يفحصه فريق Earth Engine. إذا لم يكن من الممكن مشاركة الملف المصدر، يُرجى على الأقل تقديم ناتج gdalinfo -mm -stats -checksum.
إذا لم تكن منصة Earth Engine تتيح استخدام إسقاط معيّن، عليك إعادة إسقاط البيانات قبل تحميلها باستخدام gdalwarp مثلاً.
كيف يمكنني تحميل ملف بتنسيق NetCDF أو تنسيق نقطي آخر غير متوافق؟
يمكن تحميل ملفات GeoTIFF فقط إلى Earth Engine. يمكن تحويل التنسيقات الأخرى المتوافقة مع GDAL إلى GeoTIFF باستخدام gdal_translate. مثال:
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
يُرجى العِلم أنّ بعض ملفات NetCDF أو HDF تتألف من مجموعات بيانات فرعية متعددة يمكن العثور عليها باستخدام gdalinfo. سيبدو الأمر gdal_translate في هذه الحالة على النحو التالي (يُرجى ملاحظة المسار بين علامتَي الاقتباس المزدوجتَين):
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
لا تتضمّن ملفات NetCDF أحيانًا إسقاطًا تتعرّف عليه مكتبة GDAL. في هذه الحالة، عليك ضبط الإسقاط والامتداد المكاني في سطر أوامر gdal_translate. مثال:
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
ما هي خوارزميات الضغط التي يمكنني استخدامها لملفات GeoTIFF التي يتم تحميلها؟
للتحميل، يمكن ضغط ملفات GeoTIFF باستخدام DEFLATE أو JPEG أو JPEG-XL/JXL أو LERC أو
LERC_DEFLATE أو LERC_ZSTD أو LZMA أو LZW أو WEBP أو ZSTD. يمكن لملفات COG التي يقرأها Earth Engine
في مكانها (باستخدام ee.Image.loadGeoTIFF() أو كمواد عرض مستندة إلى COG) استخدام
DEFLATE أو JPEG أو LZW أو PACKBITS أو ZSTD أو عدم استخدام أي ضغط (يُرجى الاطّلاع على
أفضل ممارسات COG).
يُعدّ ZSTD خيارًا جيدًا بشكل عام لأنّه سريع في فك الضغط مع توفير ضغط جيد لمعظم الصور.
لتطبيق ضغط ZSTD عند استخدام gdal_translate، أضِف هذه الخيارات. إذا كانت البيانات تحتوي على قيم نقطة عائمة، غيِّر PREDICTOR إلى 3. (بالنسبة إلى الملفات التي تخطّط لتسجيلها كملفات COG بدلاً من تحميلها، يُرجى الاطّلاع على دليل تسجيل ملفات COG).
gdal_translate in.tif out.tif \
-co BIGTIFF=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=16 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
يستمر استيعاب البيانات النقطية لعدة أيام ولم ينتهِ بعد.
باستخدام gdalinfo، تحقَّق مما إذا كان ملفك يتضمّن خيار GDAL التالي:
INTERLEAVE=PIXEL. بالنسبة إلى الملفات التي تتضمّن هذا الخيار والعديد من النطاقات، قد لا تكتمل عملية نقل البيانات أبدًا لأنّ تنسيق هذه الملفات يجعل عمليات القراءة بطيئة جدًا.
حاوِل تحويل هذه الملفات إلى تنسيق band-interleaved قبل تحميلها:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
ينطبق ذلك على نقل البيانات، وتتيح مواد العرض المستندة إلى COG استخدام كلا النوعين من التداخل (يُرجى الاطّلاع على الملفات ذات النطاق الواحد مقابل الملفات المتعددة النطاقات).
لا تتطابق الصور النقطية التي حمّلتها مع الخريطة الأساسية.
إذا كانت البيانات مزاحة قليلاً عن الخريطة الأساسية، من المحتمل أن يكون الإسقاط يحتوي على مرجع غير صحيح (افتراض حول شكل الأرض).
يحدث هذا غالبًا مع الإسقاط الجيبي الذي لا يمكن ترميزه بالكامل في بيانات GDAL الوصفية. عندما
تعرف الإسقاط المستهدَف (مثلاً، SR-ORG:6974 للملفات التي تستخدم
إسقاط MODIS الجيبي)، اضبط العلامة --crs أثناء
التحميل من سطر الأوامر
أو الحقل crs في
بيان التحميل.
إذا ظهرت البيانات مشوهة بشكل كبير أو في مكان خاطئ تمامًا، فمن المحتمل أن يكون الإسقاط أو التحويل التقاربي خاطئًا.
تظهر الصورة النقطية فقط فوق نصف الكرة الشرقي.
من المحتمل أنّك حمّلت صورة نقطية عالمية تمتد على نطاق خط الطول [0, 360]. ومع ذلك، يتطلب Earth Engine أن تكون الصور النقطية في النطاق [-180, 180]. تبديل النصفَين الأيمن والأيسر من الصورة النقطية قبل نقلها اطّلِع على اقتراحات GIS Stack Exchange هذه.
لماذا تبدو صورة التصنيف التي تم استيعابها منقّطة؟
من المحتمل أنّك استخدمت سياسة التدرّج التلقائية في MEAN.
بالنسبة إلى صور التصنيف، يجب استخدام سياسة الهرمية MODE. بالنسبة إلى صور تأكيد الجودة/قناع البت، يجب استخدام سياسة الهرمية SAMPLE.
تظهر لي رسالة الخطأ التالية: لا يمكن تطبيق قيمة البيانات -128.0 على النطاق رقم 0 من النوع Short<0, 255>.
لا يمكن لـ GDAL التعامل مع النطاقات ذات البايت الواحد على أنّها تحتوي على أعداد صحيحة موقَّعة، لذا يقرأ هذه النطاقات على أنّها أعداد صحيحة غير موقَّعة. سيتعارض هذا مع قيم عدم وجود بيانات سالبة.
إذا كانت القيم في الواقع أعدادًا صحيحة موقَّعة، استخدِم
تحميل البيان
وأضِف ما يلي إلى قسم مجموعة المربّعات الذي يحتوي على ملفك: data_type: "INT8"
إذا كانت القيم أعدادًا صحيحة بدون إشارة، يحتوي ملفك على قيمة nodata غير صالحة. يمكنك
تجاوزها عند التحميل باستخدام قيمة البيانات الصحيحة (أو قيمة لا تحدث أبدًا،
إذا كانت موجودة). يمكنك أيضًا استخدام gdal_translate -a_nodata لتغيير قيمة nodata أو gdal_edit.py -unsetnodata لإزالتها.
كيف يمكنني تحميل ملف بتنسيق GeoJSON أو بتنسيق متجه آخر غير متوافق؟
استخدِم ogr2ogr لتحويل التنسيقات المتوافقة مع OGR إلى CSV أو SHP. مثال:
or2ogr -f "ESRI Shapefile" file.shp file.kml
يُرجى العِلم أنّه في عمليات تحميل ملفات CSV، يمكن أن يحتوي عمود الهندسة على GeoJSON.
أريد تحميل البيانات باستخدام Python أو تحميل ملفات متعددة في آنٍ واحد.
استخدِم التحميل من سطر الأوامر. تتطلّب عمليات التحميل هذه وضع الملفات المصدر أولاً في حزمة GCS (Google Cloud Storage). لا يتطلّب استخدام GCS أي تكلفة إذا بقيت ضمن حدود الفئة المجانية. يمكنك الاطّلاع على صفحة الأسعار.
أريد تحميل فسيفساء نقطية كبيرة مقسّمة إلى عدة مربّعات.
إذا كانت الملفات جميعها لها نفس الإسقاط وحجم البكسل، فما عليك سوى تحميلها معًا في نفس مادة العرض، وسيتم دمجها تلقائيًا.
إذا كانت الملفات تحتوي على إسقاطات أو أحجام بكسل مختلفة، لا يمكن دمجها
في مادة عرض نقطية واحدة. بدلاً من ذلك، يمكنك تحميل كل مربّع كمادة عرض منفصلة في
ImageCollection نفسه الذي يمكن تجميعه باستخدام
ImageCollection.mosaic()
أحاول تحميل فسيفساء وتظهر لي أخطاء بشأن مربّعات غير متطابقة.
يجب أن يكون لمربّعات الفسيفساء النقطية في Earth Engine الإسقاط وحجم البكسل نفسهما. بالإضافة إلى ذلك، يجب أن تتم محاذاة المربّعات بدقة على حدود البكسل.
أحاول تحميل ملف من حزمة GCS، ولكن لا يمكن لـ Earth Engine العثور عليه.
قد تكون استخدمت حسابات Google مختلفة لتحميل البيانات إلى GCS ولربطها بـ Earth Engine. تأكَّد من أنّ ملف GCS قابل للقراءة من خلال الحساب الذي تستخدمه للاتصال بـ Earth Engine. إذا كان تسجيل الدخول المتعدّد في المتصفّح يسبّب التباسًا، يمكنك الاتصال بـ Earth Engine في نافذة تصفّح متخفٍّ.
أريد تصدير العديد من مواد العرض دفعة واحدة.
يجب تصدير كل صورة بشكل منفصل.
أريد نقل Folder أو ImageCollection أو حذفهما باستخدام أمر واحد.
يؤدي استخدام earthengine rm -r إلى حذف مجلد أو مجموعة وكل ما فيها، ولكن يتم حذف مادة عرض واحدة في كل مرة، لذا قد تستغرق المجموعة الكبيرة ساعات. لتسريع العملية، يمكنك حذف العناصر الفرعية بالتوازي من نص برمجي ثم حذف العنصر الرئيسي (يُرجى الاطّلاع على العمل مع المجموعات الكبيرة). يمكن اتّباع الطريقة نفسها مع أي مجموعة أو مجلد مسطّح. يجب إفراغ المجلد الذي يحتوي على مجلدات أو مجموعات أخرى من الأسفل إلى الأعلى، لأنّه لا يمكن حذف الحاوية إلا بعد إفراغها. للنقل، استخدِم
mv بالطريقة نفسها.
أريد الوصول مباشرةً إلى بيانات Earth Engine من خارج EE.
يحتوي QGIS على مكوّن إضافي لـ Earth Engine.
تحتوي مكتبة GDAL على برنامج تشغيل Earth Engine.
يمكن للأنظمة الأخرى استخدام REST API في Earth Engine.
أريد تعديل جزء من مادة عرض Earth Engine بدون إعادة نقلها بالكامل.
لا يمكن تعديل بيانات الخطوط أو البيانات النقطية التي تم تحميلها إلى EE. يمكن تعديل سمات البيانات الوصفية لمادة العرض فقط. والاستثناء هو مواد العرض المستندة إلى COG، والتي يمكنك توجيهها إلى ملف Cloud Storage محدَّث من خلال إعادة تسجيلها مع تفعيل خيار الاستبدال.
أفقد إمكانية الوصول إلى حسابي. ماذا أفعل بمواد العرض الخاصة بي؟
إذا كانت سياسات الحساب الأصلي تسمح بنقل البيانات، يُرجى مشاركة أصولك مع حساب آخر، ثم نسخ الأصول لتصبح مملوكة للحساب الجديد. استخدِم أداة نسخ سطر الأوامر إذا كان هناك العديد من مواد العرض التي تريد نقلها.
إذا تم حذف حساب، لن يعود بإمكانك الوصول إلى مواد العرض التي يملكها.
الصورة التي تم تصديرها في المكان الخطأ.
بالنسبة إلى بعض الإسقاطات، مثل الإسقاط الجيبي أو المخروطي، لا يمكن أحيانًا لملفات GeoTIFF تخزين جميع معلَمات الإسقاط اللازمة. ويؤدي ذلك إلى ظهور ملف تم تصديره في المكان الخطأ عند عرضه في أدوات نظم المعلومات الجغرافية (GIS) على أجهزة الكمبيوتر المكتبي أو إعادة استيراده إلى EE.
لحلّ هذه المشكلة، حدِّد مَعلمة تصدير crs معروفة بأنّها تعمل بشكل جيد مع ملفات GeoTIFF، على سبيل المثال، استخدِم رمز EPSG لمنطقة UTM التي تحتوي على المنطقة التي تهمّك.
لا تحتفظ مواد عرض مجموعات العناصر المصدَّرة بالخصائص التي ضبطتها.
لا تحتفظ أي دوال Export.table.* بخصائص على مستوى الجدول في الناتج.
لا تتوافق العديد من تنسيقات الإخراج (مثل CSV وGeoJSON) مع هذه البيانات الوصفية. يمكن أن تتيح الدالة Export.table.toAsset استخدام السمات على مستوى الجدول، ولكنّها لا تتيح ذلك في الوقت الحالي.
يتم تحويل الجداول التي يتم تصديرها إلى Drive بتنسيق CSV إلى تنسيق XLSX.
استنادًا إلى إعدادات Google Drive، يمكن تحويل جداول CSV التي تصدّرها من Earth Engine إلى ملفات XLSX مع تأثيرات غير مقصودة، مثل تحويلات نوع البيانات. اتّبِع الخطوات التالية لتعديل السلوك لعمليات التصدير اللاحقة.
- في Google Drive على الويب، انقر على رمز "الإعدادات" في أعلى يسار الصفحة.
- انقر على "الإعدادات".
- انتقِل إلى "تحويل الملفات التي تم تحميلها إلى تنسيق أدوات تحرير مستندات Google" وأزِل العلامة من المربّع.
ملفات GeoTIFF المحسّنة للسحابة الإلكترونية (COGs)
للحصول على معلومات أساسية، يُرجى الاطّلاع على نظرة عامة على COG ودليل التسجيل في COG.
شاركتُ مادة عرض مستندة إلى COG، ولكن يظهر للمتعاونين خطأ في الأذونات.
إنّ مادة العرض المستندة إلى COG هي مؤشر إلى الملفات في حزمة Cloud Storage، لذا يحتاج المتعاونون إلى إذن قراءة لكل من مادة عرض Earth Engine والحزمة. في الحزمة، امنحهم دورَي عارض عنصر التخزين وعارض حزمة التخزين. إذا ظهر خطأ في الإذن على مادة عرض يمكنهم رؤيتها، يعني ذلك عادةً أنّ أحد الدورَين غير متوفّر. يُرجى الاطّلاع على ضبط الأذونات.
ما هو الموقع الجغرافي لحزمة Cloud Storage الذي يجب استخدامه لتخزين مواد عرض COG؟
لا تتوفّر هذه الميزة إلا في بعض المواقع الجغرافية في الولايات المتحدة، وترفض منصة Earth Engine طلبات التسجيل والقراءة للحِزم في أي مكان آخر. اطّلِع على المواقع الجغرافية المتاحة للحِزم.
استبدلتُ ملف COG في Cloud Storage. لماذا يتعذّر تحميل مادة العرض أو لماذا لا تزال تظهر البيانات القديمة؟
عند تسجيل ملف COG، يثبّت Earth Engine إنشاء عنصر الملف (الإصدار)، لذا فإنّ استبدال الملف في مكانه لا يؤدي إلى تعديل مادة العرض. أعِد تسجيل مادة العرض بالاسم نفسه مع تفعيل خيار الاستبدال، ولن تحتاج إلى حذفها أولاً. يُرجى الاطّلاع على تعديل مواد العرض المستندة إلى COG واستبدالها وحذفها.
كيف يمكنني معرفة إصدار الملف الذي تشير إليه مادة العرض المستندة إلى COG؟
تعرض البيانات الوصفية لمادة العرض (ee.data.getAsset()) الجيل المثبَّت كلاحقة في معرّف الموارد المنتظم (URI) للملف. يُرجى الاطّلاع على إصدارات العناصر.
ماذا يحدث إذا حذفتُ ملف COG في Cloud Storage وليس مادة عرض Earth Engine، أو العكس؟
فهما مستقلتان عن بعضهما البعض. يؤدي حذف مادة عرض Earth Engine إلى ترك ملفاتك في Cloud Storage بدون تغيير، ويؤدي حذف الملف إلى ترك مادة العرض في مكانها ولكنّه يجعل وحدات البكسل فيها غير قابلة للقراءة عادةً. يُرجى الاطّلاع على مراحل النشاط المستقلة.
ما هي أسرع طريقة لحذف أو استبدال ImageCollection كبير مستند إلى COG؟
لا تتوفّر إمكانية الحذف المجمّع أو المتكرّر في واجهة برمجة تطبيقات Earth Engine، ويحذف الأمر earthengine rm -r مادة عرض واحدة في كل مرة. إذا كنت تستبدل الصور، أعِد تسجيلها مع تفعيل خيار الاستبدال بدلاً من حذفها. وإذا كنت تحذفها، يمكنك تنفيذ ذلك بالتوازي من خلال نص برمجي. يمكنك الاطّلاع على
العمل مع المجموعات الكبيرة
لمعرفة النهج والنص البرمجي.
لماذا لا يظهر تسجيلي في COG في علامة التبويب "المهام"؟
إنّ تسجيل ملف COG هو طلب بيانات متزامن من واجهة برمجة التطبيقات لا يفهرس سوى البيانات الوصفية للملف، وليس مهمة نقل مجمّعة، لذا لا ينشئ مهمة. تتوفّر مادة العرض في علامة التبويب مواد العرض فور عرض المكالمة. يُرجى الاطّلاع على إرسال طلب التسجيل.
هل يمكنني دمج عدة ملفات COG في مادة عرض واحدة في Earth Engine؟
عندما يحتوي كل ملف على نطاقات مختلفة من المشهد نفسه فقط: أدرِج كل ملف كمجموعة مربّعات خاصة به في البيان واربط النطاقات بمجموعات المربّعات. لا يمكنك دمج
الملفات المتجاورة مكانيًا في مادة عرض واحدة مستندة إلى COG، بل عليك تسجيل كل ملف
كصورة خاصة به في ee.ImageCollection واستدعاء mosaic(). يُرجى الاطّلاع على
القيود المفروضة على ملفات البيان.
ما هي مخططات الضغط وأحجام المربّعات وأنواع وحدات البكسل التي يمكن أن تستخدمها مواد العرض المستندة إلى COG؟
يمكنك الاطّلاع على أفضل الممارسات لإعداد ملفات COG الخارجية للتعرّف على أنظمة الضغط وأحجام المربّعات وأنواع بيانات وحدات البكسل المتوافقة. يمكن تحميل الملفات كمواد عرض عادية إذا كانت بتنسيقات ضغط لا يمكن لـ Earth Engine قراءتها مباشرةً كملفات COG.
تظهر لي رسالة الخطأ "تعذّرت قراءة البيانات الوصفية لملف TIFF في أول 10,000,000 بايت".
يقرأ Earth Engine بداية الملف فقط عند تحميله أو تسجيله، وتتجاوز الصور الكبيرة التي تحتوي على العديد من المربعات والملفات المقتطعة هذا الحدّ. يُرجى الاطّلاع على اختيار أبعاد الملف لمعرفة الحدّ الأقصى وكيفية عدم تجاوزه.
كيف يختلف ee.Image.loadGeoTIFF() عن مادة عرض مسجّلة عند تغيير الملف؟
يقرأ ee.Image.loadGeoTIFF() أي نسخة من الملف تكون حالية في كل طلب حساب أو مربّع خريطة، لذلك يختار البدائل (بشكل غير متساوٍ على الخريطة، لأنّ مربّعات الخريطة المعروضة تظل مخزّنة مؤقتًا). تثبّت مادة العرض المسجّلة دائمًا
الجيل الذي تم تسجيلها به ويجب إعادة تسجيلها للاطّلاع على ملف جديد،
ولكن في المقابل تتم فهرسة بياناتها الوصفية وبصمتها، وهو ما يجعلها
قابلة للاستخدام في المجموعات الكبيرة. يُرجى الاطّلاع على
قراءة ملفات COG من Cloud Storage.
أداة تعديل الرموز
لا يمكنني تسجيل الدخول إلى "أداة تعديل الرموز" لأنّها تطلب مني استخدام الحساب الخاطئ.
سجِّل الخروج، واختَر الحساب المسجَّل لاستخدام Earth Engine في صفحة "اختيار حساب"، ثم أعِد اختيار الحساب نفسه في الصفحة الثانية "اختيار حساب للمتابعة إلى أداة تعديل الرموز في Earth Engine" (قد تختلف الصياغة الدقيقة).
أريد التقاط لقطة شاشة لخريطة عالمية، لكنني لا أحب إسقاط مركاتور للويب.
إسقاط الخريطة المستخدَم في "أداة تعديل الرموز" هو
Web Mercator
('EPSG:3857'). فهي تضخّم حجم العناصر البعيدة عن خط الاستواء، ما يجعل
المناطق ذات خطوط العرض العليا تبدو أكبر بكثير مما هي عليه في الواقع،
مقارنةً بالمناطق القريبة من خط الاستواء. لا يمكنك تغيير إسقاط لوحة الخريطة في "أداة تعديل الرموز"، ولكن يمكنك "رسم" صورة في الإسقاط الذي تختاره على لوحة Web Mercator باستخدام طريقة ee.Image.changeProj.
يمكنك الاطّلاع على صفحة مرجع واجهة برمجة التطبيقات الخاصة بالطريقة للحصول على مثال على عرض نموذج ارتفاع رقمي عالمي على خريطة "أداة تعديل الرموز" في إسقاط روبنسون.
يُرجى العِلم أنّه يجب استخدام هذه الطريقة لأغراض العرض المرئي فقط، لأنّ أدوات الفحص والرسم في "أداة تعديل الرموز" لا تزال تعمل في نظام Web Mercator.
لا يتم حفظ النص البرمجي (Script error: Unknown commit).
إذا تلقّيت رسالة Script error: Unknown commit عند حفظ نص برمجي،
يعني ذلك على الأرجح أنّ المستودع الذي تحفظ فيه غير متزامن.
ويختلف سبب هذه الحالة ويصعب تحديده. لحلّ المشكلة، جرِّب إعادة تحميل قائمة النصوص البرمجية باستخدام الزر في أعلى يسار علامة التبويب "النص البرمجي". إذا لم ينجح ذلك، حاوِل إنشاء مستودع جديد من
الزر "جديد" في علامة التبويب "النص البرمجي" وحفظ النص البرمجي فيه
(قد تحتاج إلى نقل النصوص البرمجية إلى المستودع الجديد من المستودع
غير المتزامن).
لماذا تظهر لي أخطاء 400 متكررة في "أداة تعديل الرموز"؟
إذا ظهرت لك أخطاء 400 متكررة في "أداة تعديل الرموز"، انتقِل إلى https://myaccount.google.com/connections، وابحث عن "أداة تعديل الرموز في Earth Engine" في قائمة التطبيقات والخدمات، واختَرها، ثم انقر على "حذف جميع عمليات الربط التي أجريتها مع أداة تعديل الرموز في Earth Engine" وأكِّد الإجراء. بعد ذلك، افتح "أداة تعديل الرموز" وأعِد المصادقة.
كيف يمكنني استرداد النصوص البرمجية والمجلدات المحذوفة؟
إذا حذفت نصًا برمجيا أو مجلدًا عن طريق الخطأ داخل مستودع حالي، يتم الاحتفاظ بسجلّ عمليات التنفيذ الكامل في سجلات Git على خوادمنا. يمكنك استعادة النصوص البرمجية أو المجلدات المحذوفة عن طريق استنساخ المستودع محليًا باستخدام أدوات سطر أوامر Git العادية.
ومع ذلك، يؤدي حذف مستودع (users/username/repository) بالكامل إلى إزالة المستودع وسجلّ عمليات الإرسال نهائيًا من earthengine.googlesource.com، ولا يمكن التراجع عن هذا الإجراء أو استرداد المستودع.
للحصول على تعليمات مفصّلة حول إنشاء بيانات اعتماد Git واستنساخ المستودع واستعادة الملفات أو المجلدات المحذوفة، يُرجى الاطّلاع على دليل استرداد النصوص البرمجية ونقل المستودعات.
كيف يمكنني إعادة تسمية جذر مستودع النصوص البرمجية؟
يرتبط الدليل الجذري للنصوص البرمجية (users/username) بتسجيل حسابك الأصلي على Earth Engine. ولا يمكن إعادة تسميته مباشرةً في الخلفية لأنّ ذلك سيؤدي إلى تعطيل أي نصوص برمجية خارجية أو مشاريع متعاونين تستورد الرمز البرمجي المعياري باستخدام المسار require('users/username/repository:...').
إذا كنت بحاجة إلى مساحة أسماء جديدة، يمكنك نقل عملك إلى حساب جديد:
- سجِّل حسابًا جديدًا على Earth Engine باستخدام Google Identity الجديدة (التي تنشئ جذرًا جديدًا في
users/new_username). - اتّبِع تعليمات نقل بيانات المستودع لاستنساخ المستودع القديم وإرسال السجلّ الكامل إلى المستودع الجديد الفارغ.
اعتبارات مهمّة:
- الوحدات العامة: إذا كانت لديك وحدات عامة يعتمد عليها الآخرون، ننصحك بشدة بإبقاء حسابك القديم ومستودعك نشطَين حتى لا تتعطّل مهام سير العمل لديهم.
- النصوص البرمجية الخاصة: إذا كانت نصوصك البرمجية خاصة بالكامل، يمكنك تعديل عبارات الاستيراد
require()للإشارة إلى مسار المستودع الجديد ثم حذف المستودعات القديمة بأمان.