سوالات عمومی
یه مشکلی دارم، به کمک نیاز دارم!
با پیروی از این راهنما، سوالی ارسال کنید و تا حد امکان اطلاعات ارائه دهید ( به راهنمای Stack Overflow برای پرسیدن سوالات خوب مراجعه کنید). این معمولاً به این معنی است:
ارسال لینک به یک اسکریپت در ویرایشگر کد (برای دریافت آن روی دکمه "دریافت لینک" کلیک کنید)
اشتراکگذاری هرگونه دارایی مورد نیاز برای اجرای اسکریپت
for failed batch tasks, report the ID of the failed task. Task IDs look like this:
4C25GIJBMB52PXTEJTF4JLGL. They can be found in the Task tab of the Code Editor. Learn more .
Where can I read about the Earth Engine architecture?
به این مقاله مراجعه کنید: گورلیک و همکاران، ۲۰۱۷ .
Are there any recommended Earth Engine tutorials not created by Google?
به صفحات EDU و منابع آموزشی مراجعه کنید.
آیا آموزشهای پیشنهادی برای سنجش از دور وجود دارد؟
این دوره رایگان مهندسی برق توسط اوجوال گاندی را ببینید که شامل ویدیویی با مقدمهای بر سنجش از دور است.
برنامهنویسی موتور زمینی
خطاهای رایج کدنویسی چیست؟
به راهنمای اشکالزدایی مراجعه کنید.
چرا خطای «... تابع نیست» دریافت میکنم؟
این خطا زمانی رخ میدهد که Earth Engine نمیتواند متد فراخوانی شده را پیدا کند. دلایل رایج زیر را بررسی کنید:
Spelling or case sensitivity : Methods are case-sensitive. Verify spelling against the API Reference .
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
Missing type casts : Values returned from functions like .get() are generic ee.ComputedObject instances and must be explicitly cast. See Unknown object type casting .
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)
Unavailable methods : If the object is properly typed and the method exists in the documentation or has worked previously but now fails, report a bug .
چرا نمیتوانم از محاسبات ریاضی پایه مانند ee.Image("image") * 2 استفاده کنم؟
در EE نباید اشیاء یا عملیات سمت سرور و سمت کلاینت را با هم ترکیب کنید. تمام عملیات روی اشیاء EE در سمت سرور انجام میشوند. هرگونه محاسبات سمت کلاینت، کاری را که شما در نظر دارید انجام نخواهد داد. برای جزئیات بیشتر به این صفحه مراجعه کنید.
چگونه میتوانم از حلقههای for یا دستورات if/else استفاده کنم؟
برنامهنویسی Earth Engine با استفاده از یک زبان تابعی انجام میشود، بنابراین حلقهها و عملیات شرطی باید با استفاده از مفاهیم معادل مانند map یا filter بیان شوند. برای جزئیات بیشتر به این صفحه مراجعه کنید.
چگونه میتوانم برچسبهای متنی را در تصویر یا ویدیوی خود نمایش دهم؟
هیچ پشتیبانی داخلی برای برچسبهای متنی وجود ندارد، اما میتوانید:
- از یک بسته جاوا اسکریپت شخص ثالث استفاده کنید. به مثال مراجعه کنید
- از یک بسته پایتون شخص ثالث geemap استفاده کنید.
- استفاده از QGIS برای وارد کردن تصاویر EE با استفاده از افزونه EE QGIS
آیا میتوانم از برخی پالتهای رنگی استاندارد استفاده کنم؟
از یک بسته جاوا اسکریپت شخص ثالث به نام ee-palettes استفاده کنید.
چگونه میتوانم وبسایت خودم را با استفاده از موتور Earth ایجاد کنم؟
Use Earth Engine Apps for basic applications. In more complex cases, you can build EE-powered App Engine apps .
شناسههای نقشه چگونه کار میکنند؟
شناسههای نقشه (که در سراسر API به mapid گفته میشود) کلیدهایی هستند که به کلاینتها اجازه میدهند کاشیهای نقشه را دریافت کنند. هر شناسه یک هش است که با ارائه یک عبارت تصویر به نقطه پایانی getMapId ایجاد میشود. شناسههای حاصل کلیدهایی هستند که هم به عبارت تصویر و هم به اعتبارنامههای کاربر اشاره میکنند که برای تولید کاشیها در مرحله بعدی استفاده خواهند شد.
Requesting map tiles involves specifying the location of the tile ( x , y , zoom ) as well as the mapid (the key to the image and credentials). The same ID can be reused to load many map tiles. There are no limits on the reuse of mapid keys, but they expire after a few hours. We don't publish specific timeframes about how long they persist, but any code you write should be resilient to the ID expiring.
ایجاد این شناسهها شامل ذخیره مقدار کمی داده و اعتبارسنجی اعتبارنامهها است، بنابراین بهتر است تا حد امکان از آنها استفاده مجدد شود. هیچ سهمیه API به طور خاص با نقطه پایانی getMapId مرتبط نیست، اما هر گردش کاری که شامل ایجاد اشیاء mapid با سرعتی نزدیک به سرعت واکشی کاشیها باشد، احتمالاً کاری اشتباه انجام میدهد. Earth Engine هیچ نقطه پایانی API برای حذف، فهرست کردن یا مدیریت این شناسهها ندارد، زیرا اینها منابع گذرا هستند.
Why does ee.Algorithms.If() print both the true and false case?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
الگوریتم If() درست مانند هر الگوریتم دیگری در Earth Engine کار میکند، به این صورت که قبل از اجرای خود الگوریتم، تمام آرگومانهای آن باید ارزیابی شوند. این الگوریتم هر دو نتیجه trueCase و falseCase را دریافت میکند و سپس بر اساس آرگومان condition ، یکی را انتخاب و برمیگرداند، اما برای اینکه آن مقادیر در وهله اول به الگوریتم منتقل شوند، هر دو مسیر باید اجرا شوند.
I get the error "Request payload size exceeds the limit"
شما در حال تلاش برای ارسال یک درخواست بسیار بزرگ به Earth Engine هستید. این معمولاً زمانی اتفاق میافتد که کد از حلقههای «for» سمت کلاینت زیادی استفاده میکند یا یک FeatureCollection از اشیاء هندسی زیادی میسازد. در حالت دوم، به جای ایجاد چنین هندسههایی در اسکریپت خود، یک فایل CSV حاوی آنها ایجاد کنید و آن را در یک table asset آپلود کنید .
What the difference between ee.Image.clip() and ee.Filter.bounds() ?
به این تاپیک GIS Stack Exchange مراجعه کنید. تابع ee.Image.clip() پیکسلهایی را که با ee.Geometry یا ee.Feature مشخص شده تلاقی نمیکنند، میپوشاند و آنها را در تجسمها شفاف و در محاسبات حذف میکند. میتوانید آن را به عنوان جدا کردن پیکسلها از یک تصویر تصور کنید.
تابع ee.Filter.bounds() اشیاء ee.Image را بر اساس اشتراک تصویر با ee.Geometry یا ee.Feature از ee.ImageCollection فیلتر میکند. این تابع برای محدود کردن دامنه یک تحلیل به تصاویری که یک ناحیه مشخص را قطع میکنند، استفاده میشود که به بهینهسازی عبارات کمک میکند .
چگونه پیکسلهای تصویر را به مجموعه ویژگیها تبدیل کنیم، به طوری که در هر پیکسل یک ویژگی وجود داشته باشد؟
Use the ee.Image.sample() function. See usage examples on the function's API reference page .
تفاوت بین ee.ImageCollection.merge() و ee.ImageCollection.combine() چیست؟
تابع ee.ImageCollection.merge() تمام تصاویر دو مجموعه را در یک مجموعه ادغام میکند، صرف نظر از اینکه تصاویر مربوطه دارای باندها، فرادادهها، CRS یا مقیاس منطبق باشند یا خیر. این عمل، اتحاد دو مجموعه است. متد combine() باندهای تصاویر منطبق را از دو مجموعه در یک مجموعه واحد ترکیب میکند. تصاویر منطبق، شناسه یکسانی (ویژگی system:index ) دارند. این یک پیوند داخلی دو مجموعه بر اساس شناسه تصویر است که در آن باندهای تصاویر منطبق با هم ترکیب میشوند. برای تصاویر منطبق، باندهای تصویر ثانویه به تصویر اصلی اضافه میشوند (بازنویسی اختیاری است). اگر هیچ تصویر منطبقی وجود نداشته باشد، یک مجموعه خالی برگردانده میشود.
How to filter image collections on multiple date intervals?
به این تاپیک 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 خود بارگذاری کنید. به بخش وارد کردن دادههای رستری و وارد کردن دادههای جدولی مراجعه کنید.
یک مجموعه داده موجود، نسخه جدیدی دارد
File a dataset bug following the dataset request guide , and indicate that you are requesting a dataset update.
An existing dataset is not updated or is missing assets
Before reporting a problem, verify, if possible, that the selected assets actually exist on the dataset provider's site. See the guide on missing images for more details.
If you are looking for an asset by filtering an ImageCollection , make sure your filters are not too restrictive.
به طور خاص، توجه داشته باشید که:
Sentinel-2 SR (Level 2 data) were not produced by ESA for early Level 1 scenes.
لندست قبل از سال ۲۰۰۰ پوشش جهانی نداشت.
یک مجموعه داده موجود دارای مقادیر اشتباه است
در انجمن توسعهدهندگان پست بگذارید . اسکریپتی اضافه کنید که روی وضوح اصلی تصویر زوم کند و به وضوح نشان دهد کدام مقادیر اشتباه هستند. توضیح دهید که دقیقاً کجا مقدار جایگزین را مشاهده کردهاید.
کجا میتوانم در مورد مجموعه دادهها سوال بپرسم؟
For questions about NASA datasets, see the NASA Earth Data forum .
برای سوالات مربوط به جعبه ابزارهایی که روی مجموعه دادههای کوپرنیک کار میکنند، به انجمنهای S1 ، S2 و S3 مراجعه کنید.
کاتالوگ EE چقدر بزرگ است؟
تا اکتبر ۲۰۲۳، این کاتالوگ شامل بیش از ۱۰۰۰ مجموعه داده است. حجم آن روی دیسک بیش از ۹۰ پتابایت (پس از در نظر گرفتن فشردهسازی بدون اتلاف) است.
دادهها در EE چند وقت یکبار بهروزرسانی میشوند؟
معمولاً، تمام مجموعه دادههای جاری حداقل روزانه بهروزرسانی میشوند (هرچند همه این مجموعه دادهها هر روز دادههای جدید ندارند). برخی از مجموعه دادهها چندین بار در روز بهروزرسانی میشوند. با این حال، هیچ سیاستی برای تضمین وجود جدیدترین داراییها در کاتالوگ وجود ندارد.
How do I view the contents of the EE catalog programmatically?
فهرست مجموعه دادهها با فرمت 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 است؟
Yes, JSON-LD metadata are embedded in the catalog HTML pages. For example, the Sentinel-2 page contains the following block:
<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 چگونه پیادهسازی میشود؟
The server-side implementation is equivalent to this JavaScript code .
How can I create cloud-free composites from Landsat surface reflectance data?
دادههای لندست سطح ۲ (بازتاب سطح) دارای چندین باند با کیفیت هستند که میتوانند برای پوشاندن ابرها و سایر مصنوعات ناخواسته تصویر استفاده شوند. نمونهای از استفاده از این باندها برای پردازش تصاویر لندست ۸ SR و ایجاد یک ترکیب بدون ابر میانه در این پست GIS Stack Exchange ارائه شده است. همین روش برای ساخت یک ترکیب بدون ابر برای استفاده در مثالهای طبقهبندی نظارت شده در راهنمای توسعهدهندگان استفاده میشود.
آیا هماهنگسازی بازتاب سطحی لندستهای حسگر متقابل مورد نیاز است؟
روی و همکاران، ۲۰۱۶، تحلیلی از تفاوتهای بازتاب بین TOA لندست ۷-۸ و بازتاب سطحی ارائه دادند. آنها ضرایب OLS و RMA را منتشر کردند تا خوانندگان بتوانند مقادیر بازتاب دادههای یک حسگر را به حسگر دیگر تبدیل کنند. در سطر آخر مقاله آمده است: «اگرچه تفاوتهای حسگرها بسیار کوچک است، اما بسته به کاربرد دادههای لندست، ممکن است تأثیر قابل توجهی داشته باشند.» با این حال، این تحلیل بر اساس دادههای پیش از جمعآوری بود.
پیشرفتهای انجامشده در طول پردازش مجدد مجموعه ۱ و مجموعه ۲ ممکن است بر رابطه بین حسگرها تأثیر بگذارد، اما تا آنجا که ما میدانیم، هیچ تحلیلی مشابه روی و همکاران (۲۰۱۶) برای دادههای مجموعه ۱ یا مجموعه ۲ وجود نداشته است. با وجود هیچ تحلیل رسمی، به نظر میرسد که در بین کاربران تأثیرگذار لندست اجماع عمومی وجود دارد که هیچ اصلاحی برای دادههای مجموعه ۲، سطح ۲ (بازتاب سطحی) لازم نیست. به عنوان مثال، در پاسخ به سوالی در مورد نیاز به هماهنگسازی مجموعه ۲، سطح ۲، مایک والدر از تیم علمی لندست خاطرنشان کرد که بسته به ماهیت کاربرد مورد نظر (از جمله نقشهبرداری پوشش زمین و تشخیص تغییرات)، محصولات بازتاب سطحی مجموعه ۲ بسیار مناسب و قابل اعتماد هستند و نیازی به تنظیم متقابل حسگرها ندارند.
چگونه میتوانم ابرها و سایههای ابر را در تصاویر MSS بپوشانم؟
ماژول شخص ثالث msslib برای ویرایشگر کد جاوا اسکریپت شامل پیادهسازی الگوریتم MSScvm و همچنین سایر توابع مفید برای کاوش و آمادهسازی دادههای MSS است.
مدیریت دادهها
چه کسی مالک دادههایی است که من آپلود میکنم؟
According to the Earth Engine Terms of Service , customers own the data that they upload to 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 یا فرمت رستری دیگری که پشتیبانی نمیشود، آپلود کنم؟
Only GeoTIFFs can be uploaded to Earth Engine. Other GDAL-compatible formats can be converted to GeoTIFFs using gdal_translate . Example:
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 files sometimes don't carry a projection that GDAL recognizes. In this case you would need to set the projection and spatial extent in the gdal_translate command line. Example:
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 . برای فایلهایی با این گزینه و باندهای زیاد، ممکن است فرآیند خواندن هرگز تمام نشود زیرا طرحبندی چنین فایلهایی باعث میشود خواندن بسیار کند شود.
Try converting such files to the band-interleaved layout before uploading:
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 باید از کدام محل ذخیرهسازی ابری استفاده کنم؟
The answer depends on what you are trying to optimize for. If you are optimizing for low latency computation access, the best GCS bucket locations to store COG assets are US-CENTRAL *. See the Bucket locations page for information on other considerations.
داراییهای مجموعه ویژگی صادر شده، ویژگیهایی را که من تنظیم کردهام حفظ نمیکنند.
هیچ تابع 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 در برگه اسکریپت ایجاد کنید و اسکریپت خود را در آنجا ذخیره کنید (ممکن است لازم باشد اسکریپتها را از مخزن ناهمگام به مخزن جدید منتقل کنید).