سوالات عمومی
یه مشکلی دارم، به کمک نیاز دارم!
با پیروی از این راهنما، سوالی ارسال کنید و تا حد امکان اطلاعات ارائه دهید ( به راهنمای Stack Overflow برای پرسیدن سوالات خوب مراجعه کنید). این معمولاً به این معنی است:
ارسال لینک به یک اسکریپت در ویرایشگر کد (برای دریافت آن روی دکمه "دریافت لینک" کلیک کنید)
اشتراکگذاری هرگونه دارایی مورد نیاز برای اجرای اسکریپت
برای وظایف دستهای ناموفق، شناسه وظیفه ناموفق را گزارش دهید. شناسههای وظیفه به این شکل هستند:
4C25GIJBMB52PXTEJTF4JLGL. آنها را میتوانید در برگه وظایف ویرایشگر کد پیدا کنید. اطلاعات بیشتر .
کجا میتوانم در مورد معماری موتور زمین مطالعه کنم؟
به این مقاله مراجعه کنید: گورلیک و همکاران، ۲۰۱۷ .
آیا آموزشهای پیشنهادی برای Earth Engine وجود دارد که توسط گوگل ایجاد نشده باشند؟
به صفحات EDU و منابع آموزشی مراجعه کنید.
آیا آموزشهای پیشنهادی برای سنجش از دور وجود دارد؟
این دوره رایگان مهندسی برق توسط اوجوال گاندی را ببینید که شامل ویدیویی با مقدمهای بر سنجش از دور است.
برنامهنویسی موتور زمینی
خطاهای رایج کدنویسی چیست؟
به راهنمای اشکالزدایی مراجعه کنید.
چرا خطای «... تابع نیست» دریافت میکنم؟
این خطا زمانی رخ میدهد که Earth Engine نمیتواند متد فراخوانی شده را پیدا کند. دلایل رایج زیر را بررسی کنید:
حساسیت املایی یا حروف بزرگ و کوچک : متدها به حروف بزرگ و کوچک حساس هستند. املای صحیح را با مرجع API بررسی کنید.
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
تبدیل نوع دادهی ناموجود : مقادیری که از توابعی مانند .get() برگردانده میشوند، نمونههای عمومی ee.ComputedObject هستند و باید صریحاً تبدیل نوع داده شوند. به تبدیل نوع دادهی ناشناخته مراجعه کنید.
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
ترکیب متدهای کلاینت و سرور : مطمئن شوید که از متدهای استاندارد جاوا اسکریپت یا پایتون (مانند .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 بیان شوند. برای جزئیات بیشتر به این صفحه مراجعه کنید.
چگونه میتوانم برچسبهای متنی را در تصویر یا ویدیوی خود نمایش دهم؟
هیچ پشتیبانی داخلی برای برچسبهای متنی وجود ندارد، اما میتوانید:
- از یک بسته جاوا اسکریپت شخص ثالث استفاده کنید. به مثال مراجعه کنید
- از یک بسته پایتون شخص ثالث geemap استفاده کنید.
- استفاده از QGIS برای وارد کردن تصاویر EE با استفاده از افزونه EE QGIS
آیا میتوانم از برخی پالتهای رنگی استاندارد استفاده کنم؟
از یک بسته جاوا اسکریپت شخص ثالث به نام ee-palettes استفاده کنید.
چگونه میتوانم وبسایت خودم را با استفاده از موتور Earth ایجاد کنم؟
برای برنامههای پایه از Earth Engine Apps استفاده کنید. در موارد پیچیدهتر، میتوانید برنامههای App Engine مبتنی بر EE بسازید .
شناسههای نقشه چگونه کار میکنند؟
شناسههای نقشه (که در سراسر API به mapid گفته میشود) کلیدهایی هستند که به کلاینتها اجازه میدهند کاشیهای نقشه را دریافت کنند. هر شناسه یک هش است که با ارائه یک عبارت تصویر به نقطه پایانی getMapId ایجاد میشود. شناسههای حاصل کلیدهایی هستند که هم به عبارت تصویر و هم به اعتبارنامههای کاربر اشاره میکنند که برای تولید کاشیها در مرحله بعدی استفاده خواهند شد.
درخواست کاشیهای نقشه شامل مشخص کردن مکان کاشی ( x ، y ، zoom ) و همچنین mapid (کلید تصویر و اعتبارنامه) است. میتوان از همان شناسه برای بارگیری بسیاری از کاشیهای نقشه استفاده مجدد کرد. هیچ محدودیتی در استفاده مجدد از کلیدهای mapid وجود ندارد، اما آنها پس از چند ساعت منقضی میشوند. ما بازههای زمانی خاصی را در مورد مدت زمان ماندگاری آنها منتشر نمیکنیم، اما هر کدی که مینویسید باید در برابر انقضای شناسه مقاوم باشد.
ایجاد این شناسهها شامل ذخیره مقدار کمی داده و اعتبارسنجی اعتبارنامهها است، بنابراین بهتر است تا حد امکان از آنها استفاده مجدد شود. هیچ سهمیه API به طور خاص با نقطه پایانی getMapId مرتبط نیست، اما هر گردش کاری که شامل ایجاد اشیاء mapid با سرعتی نزدیک به سرعت واکشی کاشیها باشد، احتمالاً کاری اشتباه انجام میدهد. Earth Engine هیچ نقطه پایانی API برای حذف، فهرست کردن یا مدیریت این شناسهها ندارد، زیرا اینها منابع گذرا هستند.
چرا 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 حاوی آنها ایجاد کنید و آن را در یک table asset آپلود کنید .
تفاوت بین ee.Image.clip() و ee.Filter.bounds() چیست؟
به این تاپیک GIS Stack Exchange مراجعه کنید. تابع ee.Image.clip() پیکسلهایی را که با ee.Geometry یا ee.Feature مشخص شده تلاقی نمیکنند، میپوشاند و آنها را در تجسمها شفاف و در محاسبات حذف میکند. میتوانید آن را به عنوان جدا کردن پیکسلها از یک تصویر تصور کنید.
تابع ee.Filter.bounds() اشیاء ee.Image را بر اساس اشتراک تصویر با ee.Geometry یا ee.Feature از ee.ImageCollection فیلتر میکند. این تابع برای محدود کردن دامنه یک تحلیل به تصاویری که یک ناحیه مشخص را قطع میکنند، استفاده میشود که به بهینهسازی عبارات کمک میکند .
چگونه پیکسلهای تصویر را به مجموعه ویژگیها تبدیل کنیم، به طوری که در هر پیکسل یک ویژگی وجود داشته باشد؟
از تابع ee.Image.sample() استفاده کنید. مثالهای استفاده را در صفحه مرجع API این تابع ببینید.
تفاوت بین 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);
کاتالوگ دادهها
آیا میتوانید مجموعه داده X را اضافه کنید؟
با دنبال کردن راهنمای درخواست مجموعه داده، یک اشکال درخواست مجموعه داده ثبت کنید.
همچنین میتوانید دادهها را در پوشه اصلی Earth Engine خود بارگذاری کنید. به بخش وارد کردن دادههای رستری و وارد کردن دادههای جدولی مراجعه کنید.
یک مجموعه داده موجود، نسخه جدیدی دارد
طبق راهنمای درخواست مجموعه داده ، یک اشکال در مجموعه داده ثبت کنید و اعلام کنید که درخواست بهروزرسانی مجموعه داده را دارید.
یک مجموعه داده موجود بهروزرسانی نشده یا فاقد دارایی است.
قبل از گزارش مشکل، در صورت امکان، تأیید کنید که دادههای انتخابشده واقعاً در سایت ارائهدهنده مجموعه داده وجود دارند. برای جزئیات بیشتر به راهنمای مربوط به تصاویر گمشده مراجعه کنید.
اگر با فیلتر کردن یک ImageCollection به دنبال یک منبع هستید، مطمئن شوید که فیلترهای شما خیلی محدودکننده نباشند.
به طور خاص، توجه داشته باشید که:
دادههای Sentinel-2 SR (سطح ۲) توسط ESA برای صحنههای اولیه سطح ۱ تولید نشدهاند.
لندست قبل از سال ۲۰۰۰ پوشش جهانی نداشت.
یک مجموعه داده موجود دارای مقادیر اشتباه است
در انجمن توسعهدهندگان پست بگذارید . اسکریپتی اضافه کنید که روی وضوح اصلی تصویر زوم کند و به وضوح نشان دهد کدام مقادیر اشتباه هستند. توضیح دهید که دقیقاً کجا مقدار جایگزین را مشاهده کردهاید.
کجا میتوانم در مورد مجموعه دادهها سوال بپرسم؟
برای سوالات مربوط به مجموعه دادههای ناسا، به انجمن دادههای زمین ناسا مراجعه کنید.
برای سوالات مربوط به جعبه ابزارهایی که روی مجموعه دادههای کوپرنیک کار میکنند، به انجمنهای S1 ، S2 و S3 مراجعه کنید.
کاتالوگ EE چقدر بزرگ است؟
تا اکتبر ۲۰۲۳، این کاتالوگ شامل بیش از ۱۰۰۰ مجموعه داده است. حجم آن روی دیسک بیش از ۹۰ پتابایت (پس از در نظر گرفتن فشردهسازی بدون اتلاف) است.
دادهها در EE چند وقت یکبار بهروزرسانی میشوند؟
معمولاً، تمام مجموعه دادههای جاری حداقل روزانه بهروزرسانی میشوند (هرچند همه این مجموعه دادهها هر روز دادههای جدید ندارند). برخی از مجموعه دادهها چندین بار در روز بهروزرسانی میشوند. با این حال، هیچ سیاستی برای تضمین وجود جدیدترین داراییها در کاتالوگ وجود ندارد.
چگونه میتوانم محتویات کاتالوگ EE را از طریق برنامهنویسی مشاهده کنم؟
فهرست مجموعه دادهها با فرمت STAC به یک مخزن ذخیرهسازی ابری گوگل gs://earthengine-stac صادر میشود. فایل ورودی catalog.json است.
آیا میتوانم از دادهها یا تصاویر گوگل مپ برای تحلیل استفاده کنم؟
گوگل دادههای نقشه پایه را برای تجزیه و تحلیل مجوز نمیدهد و نمیفروشد.
چگونه میتوانم تاریخ مصرف یک دارایی را پیدا کنم؟
ویژگی دارایی 'system:version' ، مهر زمانی مصرف است که از زمان یونیکس به صورت میکروثانیه قالببندی شده است. در اینجا مثالی آورده شده است که مهر زمانی مصرف یک تصویر لندست را به قالبی قابل خواندن توسط انسان تبدیل میکند.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
آیا کاتالوگ موتور زمین دارای فراداده 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>
لندست
الگوریتم simpleComposite چگونه پیادهسازی میشود؟
پیادهسازی سمت سرور معادل این کد جاوا اسکریپت است.
چگونه میتوانم از دادههای بازتاب سطح لندست، کامپوزیتهای بدون ابر ایجاد کنم؟
دادههای لندست سطح ۲ (بازتاب سطح) دارای چندین باند با کیفیت هستند که میتوانند برای پوشاندن ابرها و سایر مصنوعات ناخواسته تصویر استفاده شوند. نمونهای از استفاده از این باندها برای پردازش تصاویر لندست ۸ SR و ایجاد یک ترکیب بدون ابر میانه در این پست GIS Stack Exchange ارائه شده است. همین روش برای ساخت یک ترکیب بدون ابر برای استفاده در مثالهای طبقهبندی نظارت شده در راهنمای توسعهدهندگان استفاده میشود.
آیا هماهنگسازی بازتاب سطحی لندستهای حسگر متقابل مورد نیاز است؟
روی و همکاران، ۲۰۱۶، تحلیلی از تفاوتهای بازتاب بین TOA لندست ۷-۸ و بازتاب سطحی ارائه دادند. آنها ضرایب OLS و RMA را منتشر کردند تا خوانندگان بتوانند مقادیر بازتاب دادههای یک حسگر را به حسگر دیگر تبدیل کنند. در سطر آخر مقاله آمده است: «اگرچه تفاوتهای حسگرها بسیار کوچک است، اما بسته به کاربرد دادههای لندست، ممکن است تأثیر قابل توجهی داشته باشند.» با این حال، این تحلیل بر اساس دادههای پیش از جمعآوری بود.
پیشرفتهای انجامشده در طول پردازش مجدد مجموعه ۱ و مجموعه ۲ ممکن است بر رابطه بین حسگرها تأثیر بگذارد، اما تا آنجا که ما میدانیم، هیچ تحلیلی مشابه روی و همکاران (۲۰۱۶) برای دادههای مجموعه ۱ یا مجموعه ۲ وجود نداشته است. با وجود هیچ تحلیل رسمی، به نظر میرسد که در بین کاربران تأثیرگذار لندست اجماع عمومی وجود دارد که هیچ اصلاحی برای دادههای مجموعه ۲، سطح ۲ (بازتاب سطحی) لازم نیست. به عنوان مثال، در پاسخ به سوالی در مورد نیاز به هماهنگسازی مجموعه ۲، سطح ۲، مایک والدر از تیم علمی لندست خاطرنشان کرد که بسته به ماهیت کاربرد مورد نظر (از جمله نقشهبرداری پوشش زمین و تشخیص تغییرات)، محصولات بازتاب سطحی مجموعه ۲ بسیار مناسب و قابل اعتماد هستند و نیازی به تنظیم متقابل حسگرها ندارند.
چگونه میتوانم ابرها و سایههای ابر را در تصاویر MSS بپوشانم؟
ماژول شخص ثالث msslib برای ویرایشگر کد جاوا اسکریپت شامل پیادهسازی الگوریتم MSScvm و همچنین سایر توابع مفید برای کاوش و آمادهسازی دادههای MSS است.
مدیریت دادهها
چه کسی مالک دادههایی است که من آپلود میکنم؟
طبق شرایط خدمات Earth Engine، مشتریان مالک دادههایی هستند که در Earth Engine بارگذاری میکنند.
من نمیتونم اطلاعات آپلود کنم!
وضعیت آپلود وظیفه را در قسمت وظایف در گوشه سمت راست بالای ویرایشگر کد بررسی کنید. همچنین میتوانید صفحه اختصاصی وظیفه را مشاهده کنید.
اگر هیچ وظیفهای وجود ندارد، احتمالاً سعی کردهاید فایل خود را از طریق ویرایشگر کد آپلود کنید، اما به دلیل مشکل شبکه، آپلود فایل هرگز تمام نشده است، بنابراین وظیفه هرگز ایجاد نشده است. از یک مرورگر یا رایانه دیگر استفاده کنید.
اگر یک کار ناموفق بود، خطایی که نشان میدهد را بررسی کنید. اگر پیام خطای خاصی وجود ندارد، ابتدا با اجرای 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 . در صورت امکان، فایل منبع خود را به صورت عمومی قابل خواندن کنید. اگر فایل خصوصی است، اگر میخواهید تیم Earth Engine آن را بررسی کند، آن را فقط با earthengine@google.com به اشتراک بگذارید. اگر اشتراکگذاری فایل منبع امکانپذیر نیست، حداقل خروجی gdalinfo -mm -stats -checksum ارائه دهید.
اگر Earth Engine از یک تصویرسازی خاص پشتیبانی نمیکند، قبل از آپلود، باید دادهها را با استفاده از مثلاً gdalwarp دوباره تصویرسازی کنید.
چگونه میتوانم یک فایل با فرمت NetCDF یا فرمت رستری دیگری که پشتیبانی نمیشود، آپلود کنم؟
فقط فرمتهای GeoTIFF را میتوان در Earth Engine آپلود کرد. سایر فرمتهای سازگار با GDAL را میتوان با استفاده از gdal_translate به GeoTIFF تبدیل کرد. مثال:
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 به صورت زنده، میتوانید از DEFLATE، JPEG، LZW یا ZSTD استفاده کنید. ZSTD در کل انتخاب خوبی است زیرا به سرعت از حالت فشرده خارج میشود و در عین حال فشردهسازی خوبی برای اکثر تصاویر ارائه میدهد.
برای اعمال فشردهسازی ZSTD هنگام استفاده از gdal_translate ، این گزینهها را اضافه کنید. اگر دادهها دارای مقادیر اعشاری هستند، PREDICTOR به ۳ تغییر دهید.
gdal_translate in.tif out.tif \
-co COPY_SRC_OVERVIEWS=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=22 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
مصرف رستر من چند روزی است که ادامه دارد و تمام نشده است.
با استفاده از gdalinfo ، بررسی کنید که آیا فایل شما گزینه GDAL زیر را دارد یا خیر: INTERLEAVE=PIXEL . برای فایلهایی با این گزینه و باندهای زیاد، ممکن است فرآیند خواندن هرگز تمام نشود زیرا طرحبندی چنین فایلهایی باعث میشود خواندن بسیار کند شود.
قبل از آپلود، سعی کنید چنین فایلهایی را به طرحبندی band-interleaved تبدیل کنید:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
رسترهای آپلود شده من با نقشه پایه مطابقت ندارند.
اگر دادهها کمی از نقشه پایه انحراف داشته باشند، احتمالاً تصویر دارای یک داده نادرست (فرض در مورد شکل زمین) است. این اتفاق اغلب در مورد تصویر سینوسی رخ میدهد که نمیتوان آن را به طور کامل در ابرداده GDAL رمزگذاری کرد. وقتی میدانید تصویر هدف باید چه باشد (مثلاً SR-ORG:6974 برای فایلهایی که از تصویر سینوسی MODIS استفاده میکنند)، پرچم --crs را هنگام آپلود خط فرمان یا فیلد crs در مانیفست آپلود تنظیم کنید.
اگر دادهها به شدت تحریف شده یا در جای کاملاً اشتباهی ظاهر شوند، احتمالاً تصویر یا تبدیل آفین اشتباه است.
رستر من فقط در نیمکره شرقی نمایش داده میشود.
احتمالاً شما یک رستر سراسری آپلود کردهاید که محدوده طول جغرافیایی [0، 360] را پوشش میدهد. با این حال، Earth Engine نیاز دارد که رسترها در محدوده [-180، 180] باشند. قبل از دریافت، نیمههای چپ و راست رستر را عوض کنید. به این پیشنهادات GIS Stack Exchange مراجعه کنید .
چرا تصویر طبقهبندیشدهی دریافتی من لکهدار به نظر میرسد؟
احتمالاً از سیاست هرمی پیشفرض MEAN استفاده کردهاید. برای تصاویر طبقهبندیشده، باید از سیاست هرمی MODE و برای تصاویر QA/bitmask، باید از سیاست هرمی SAMPLE استفاده شود.
من با خطای زیر مواجه میشوم: مقدار دادهای وجود ندارد -128.0 نمیتواند روی باند شماره 0 از نوع Short<0, 255> اعمال شود.
GDAL نمیتواند باندهای تک بایتی را به عنوان حاوی اعداد صحیح علامتدار در نظر بگیرد، بنابراین چنین باندهایی را به عنوان اعداد صحیح بدون علامت میخواند. این امر با مقادیر منفی بدون داده تداخل خواهد داشت.
اگر مقادیر شما در واقع اعداد صحیح علامتدار هستند، از مانیفست آپلود استفاده کنید و این را به بخش tileset حاوی فایل خود اضافه کنید: 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، ستون geometry میتواند شامل GeoJSON باشد.
میخواهم با استفاده از پایتون دادهها را آپلود کنم، یا چندین فایل را بهطور همزمان آپلود کنم.
از آپلود خط فرمان استفاده کنید. چنین آپلودهایی نیاز دارند که فایلهای منبع ابتدا در یک مخزن GCS (Google Cloud Storage ) قرار گیرند. اگر در محدوده سطح رایگان بمانید، استفاده از GCS هیچ هزینهای ندارد - به صفحه قیمتگذاری مراجعه کنید.
میخواهم یک موزاییک شطرنجی بزرگ را که به چندین کاشی تقسیم شده است، آپلود کنم.
اگر همه فایلها تصویر و اندازه پیکسل یکسانی دارند، کافی است آنها را با هم در یک فایل آپلود کنید - آنها به صورت خودکار موزاییکی میشوند.
اگر فایلها تصویر یا اندازه پیکسل متفاوتی داشته باشند، نمیتوان آنها را به صورت یک فایل رستری واحد موزاییک کرد. در عوض، هر کاشی را به عنوان یک فایل جداگانه در همان ImageCollection آپلود کنید که میتواند با استفاده از ImageCollection.mosaic() موزاییک شود.
من دارم سعی میکنم یک موزاییک آپلود کنم و با خطاهایی در مورد عدم تطابق کاشیها مواجه میشوم.
کاشیها برای موزاییکهای رستری Earth Engine باید تصویر و اندازه پیکسل یکسانی داشته باشند. علاوه بر این، کاشیها باید دقیقاً روی مرزهای پیکسلی تراز شوند.
من در حال تلاش برای آپلود فایلی از یک باکت GCS هستم، اما Earth Engine نمیتواند آن را پیدا کند.
ممکن است از حسابهای گوگل مختلفی برای آپلود GCS و اتصال به Earth Engine استفاده کرده باشید. مطمئن شوید که فایل GCS توسط حسابی که برای اتصال به Earth Engine استفاده میکنید، قابل خواندن است. اگر ورود چندگانه به مرورگر این موضوع را گیجکننده میکند، در یک پنجره مرورگر ناشناس به Earth Engine متصل شوید.
میخواهم چندین دارایی را به طور همزمان صادر کنم.
شما باید هر تصویر را جداگانه صادر کنید.
میخواهم یک Folder یا یک ImageCollection با یک دستور واحد جابجا یا حذف کنم.
ابتدا باید هر دارایی را جابجا یا حذف کنید ، سپس پوشه یا مجموعه والد را جابجا یا حذف کنید. اگر داراییهای فرزند زیادی وجود دارد، یک پوسته یا حلقه پایتون بنویسید تا روی آنها تکرار شود.
من میخواهم مستقیماً از خارج از EE به دادههای Earth Engine دسترسی داشته باشم.
QGIS یک افزونه Earth Engine دارد.
GDAL یک درایور موتور زمینی دارد.
سیستمهای دیگر میتوانند از EE REST API استفاده کنند.
میخواهم بخشی از فایل Earth Engine خود را بدون نیاز به نصب مجدد کامل، بهروزرسانی کنم.
بهروزرسانی دادههای رستری یا برداری آپلود شده در EE امکانپذیر نیست. فقط ویژگیهای فرادادهی داراییها (asset metadata) قابل بهروزرسانی هستند.
دسترسی به حساب کاربریام را از دست میدهم. با داراییهایم چه کنم؟
اگر سیاستهای حساب اصلی اجازه انتقال دادهها را میدهد، لطفاً داراییهای خود را با حساب دیگری به اشتراک بگذارید، سپس داراییهایی را که متعلق به حساب جدید هستند کپی کنید. اگر داراییهای زیادی برای انتقال وجود دارد، از ابزار کپی خط فرمان استفاده کنید.
اگر یک حساب کاربری حذف شود، داراییهای متعلق به آن دیگر قابل دسترسی نیستند.
تصویر خروجی من در جای اشتباهی قرار دارد.
برای برخی از تصاویر، مانند سینوسی یا مخروطی، فایلهای GeoTIFF گاهی اوقات نمیتوانند تمام پارامترهای لازم برای تصویر را ذخیره کنند. این منجر به فایل خروجی میشود که هنگام مشاهده در ابزارهای GIS دسکتاپ یا ورود مجدد به EE در جای اشتباهی ظاهر میشود.
برای رفع این مشکل، یک پارامتر export crs مشخص کنید که به خوبی با فایلهای GeoTIFF کار کند - برای مثال، از کد EPSG برای منطقه UTM حاوی منطقه مورد نظر خود استفاده کنید.
برای ذخیره داراییهای COG باید از کدام محل ذخیرهسازی ابری استفاده کنم؟
پاسخ بستگی به این دارد که شما در حال بهینهسازی برای چه چیزی هستید. اگر در حال بهینهسازی برای دسترسی به محاسبات با تأخیر کم هستید، بهترین مکانهای سطل GCS برای ذخیره داراییهای COG، US-CENTRAL * هستند. برای اطلاعات بیشتر در مورد سایر ملاحظات، به صفحه مکانهای سطل مراجعه کنید.
داراییهای مجموعه ویژگی صادر شده، ویژگیهایی را که من تنظیم کردهام حفظ نمیکنند.
هیچ تابع Export.table.* ویژگیهای سطح جدول را در خروجی حفظ نمیکند. برای بسیاری از فرمتهای خروجی (مثلاً CSV، GeoJSON)، هیچ پشتیبانی از چنین فرادادههایی وجود ندارد. تابع Export.table.toAsset میتواند از ویژگیهای سطح جدول پشتیبانی کند، اما در حال حاضر این کار را نمیکند.
جداولی که با فرمت CSV به Drive صادر میشوند، به فرمت XLSX تبدیل میشوند.
بسته به تنظیمات گوگل درایو شما، جداول CSV که از Earth Engine خروجی میگیرید، میتوانند به فایلهای XLSX تبدیل شوند که اثرات ناخواستهای مانند تبدیل نوع داده را به همراه دارد. برای تغییر رفتار خروجیهای بعدی، این مراحل را دنبال کنید.
- در گوگل درایو تحت وب، روی چرخدنده تنظیمات در بالا سمت راست کلیک کنید.
- روی تنظیمات کلیک کنید.
- به «تبدیل فایلهای آپلود شده به قالب ویرایشگر Google Docs» بروید و آن را پاک کنید.
ویرایشگر کد
نمیتوانم وارد ویرایشگر کد شوم زیرا از من میخواهد از حساب کاربری اشتباه استفاده کنم.
از سیستم خارج شوید ، حسابی را که برای استفاده از Earth Engine ثبت شده است در صفحه «انتخاب یک حساب» انتخاب کنید و سپس همان حساب را در صفحه دوم «انتخاب یک حساب برای ادامه به ویرایشگر کد Earth Engine» دوباره انتخاب کنید (جملهبندی دقیق ممکن است متفاوت باشد).
میخواهم از یک نقشه جهانی اسکرینشات بگیرم، اما از تصویر وب مرکاتور خوشم نمیآید.
تصویر نقشه مورد استفاده در ویرایشگر کد، وب مرکاتور ('EPSG:3857') است. این تصویر، اندازه اشیاء را در فاصله دورتر از خط استوا، در مقایسه با مناطق نزدیک به خط استوا، بزرگتر نشان میدهد و باعث میشود مناطق با عرض جغرافیایی بالا، بسیار بزرگتر از آنچه که واقعاً هستند، به نظر برسند. شما نمیتوانید تصویر بوم نقشه ویرایشگر کد را تغییر دهید، اما میتوانید با استفاده از روش ee.Image.changeProj ، تصویری را در تصویر مورد نظر خود روی بوم وب مرکاتور "نقاشی" کنید. برای مثالی از نمایش یک DEM جهانی روی نقشه ویرایشگر کد در تصویر رابینسون ، به صفحه مرجع API این روش مراجعه کنید. توجه داشته باشید که این تکنیک فقط باید برای اهداف تجسم استفاده شود، زیرا بازرس و ابزارهای ترسیم ویرایشگر کد هنوز در وب مرکاتور کار میکنند.
اسکریپت من ذخیره نمیشود ( Script error: Unknown commit ).
اگر هنگام ذخیره اسکریپت، پیام Script error: Unknown commit را دریافت کردید، احتمالاً به این معنی است که مخزنی که در آن ذخیره میکنید، همگامسازی نشده است. علت این وضعیت متغیر و تشخیص آن دشوار است. برای حل این مشکل، سعی کنید لیست اسکریپتها را با استفاده از دکمهای که در گوشه سمت راست بالای برگه اسکریپت قرار دارد، رفرش کنید. اگر این کار نکرد، سعی کنید یک مخزن جدید از دکمه New در برگه اسکریپت ایجاد کنید و اسکریپت خود را در آنجا ذخیره کنید (ممکن است لازم باشد اسکریپتها را از مخزن ناهمگام به مخزن جدید منتقل کنید).
چرا در ویرایشگر کد، خطاهای ۴۰۰ مکرر را مشاهده میکنم؟
اگر در ویرایشگر کد، خطای ۴۰۰ مکرر را مشاهده میکنید، به آدرس https://myaccount.google.com/connections بروید، «ویرایشگر کد Earth Engine» را در فهرست برنامهها و سرویسها پیدا کنید، آن را انتخاب کنید و سپس «حذف تمام اتصالاتی که با ویرایشگر کد Earth Engine دارید» را انتخاب کرده و تأیید کنید. سپس ویرایشگر کد را باز کنید و دوباره احراز هویت کنید.