שאלות כלליות
יש לי בעיה, דרושה לי עזרה!
פרסום שאלה לפי המדריך הזה, עם כמה שיותר פרטים (ראו המדריך של Stack Overflow לניסוח נכון של שאלות). בדרך כלל המשמעות היא:
שליחת קישור לסקריפט בכלי לעריכת קוד (לוחצים על הלחצן 'קבלת קישור' כדי לקבל אותו)
שיתוף הנכסים שנדרשים להפעלת הסקריפט
לגבי משימות באצווה שנכשלו, יש לדווח על המזהה של המשימה שנכשלה. מזהי המשימות נראים כך:
4C25GIJBMB52PXTEJTF4JLGL
. אפשר למצוא אותם בכרטיסייה 'משימות' של עורך הקוד. מידע נוסף
איפה אפשר לקרוא על הארכיטקטורה של Earth Engine?
ראו את המאמר הזה: Gorelick et al. 2017.
האם יש הדרכות מומלצות ל-Earth Engine שלא נוצרו על ידי Google?
אפשר לעיין בדפים EDU ומשאבי הדרכה.
האם יש הדרכות מומלצות בנושא חישה מרחוק?
מומלץ לעיין בקורס החינמי הזה בנושא EE של Ujaval Gandhi, שכולל סרטון עם מבוא לחישת מרחוק.
תכנות ב-Earth Engine
מהן כמה שגיאות נפוצות בקוד?
למה אי אפשר להשתמש בחשבון בסיסי כמו ee.Image("image") * 2
?
ב-EE אסור לשלב אובייקטים או פעולות בצד השרת ובצד הלקוח. כל הפעולות על אובייקטים של EE מתבצעות בצד השרת. חישובים בצד הלקוח לא יבצעו את הפעולות שאתם מתכוונים לבצע. בדף הזה מפורט מידע נוסף.
איך משתמשים בלולאות for
או במשפטי if/else
?
התכנות ב-Earth Engine מתבצע באמצעות שפה פונקציונלית, ולכן צריך להביע לולאות ופעולות מותנות באמצעות מושגים מקבילים כמו map
או filter
. בדף הזה מפורט מידע נוסף.
איך אפשר להציג תוויות טקסט בתמונה או בסרטון?
אין תמיכה מובנית בתוויות טקסט, אבל אתם יכולים:
- שימוש בחבילת JS של צד שלישי. לעיון בדוגמה
- שימוש בחבילת Python של צד שלישי, geemap.
- שימוש ב-QGIS עם פלאגין EE QGIS להעלאת תמונות של EE
האם אפשר להשתמש בלוחות צבעים סטנדרטיים?
משתמשים בחבילת JS של צד שלישי ee-palettes.
איך יוצרים אתר משלכם שמשתמש ב-Earth Engine?
שימוש ב-Earth Engine Apps לאפליקציות בסיסיות. במקרים מורכבים יותר, אפשר ליצור אפליקציות App Engine מבוססות EE.
איך פועלים מזהי המפה?
מזהי המפה (שנקראים mapid
ב-API) הם מפתחות שמאפשרים ללקוחות לאחזר משבצות מפה. כל מזהה הוא גיבוב שנוצר על ידי העברת ביטוי תמונה לנקודת הקצה getMapId
. המזהים שמתקבלים הם מפתחות שמפנים גם לביטוי התמונה וגם לפרטי הכניסה של המשתמש שישמשו ליצירת המשבצות בשלב מאוחר יותר.
כדי לבקש משבצות מפה, צריך לציין את המיקום של המשבצת (x
, y
, zoom
) ואת הערך של mapid
(המפתח לתמונה ולפרטי הכניסה). אפשר להשתמש שוב באותו מזהה כדי לטעון הרבה משבצות מפה. אין הגבלות על שימוש חוזר במפתחות mapid
, אבל התוקף שלהם פג אחרי כמה שעות. אנחנו לא מפרסמים מסגרות זמן ספציפיות לגבי משך הזמן שבו הם נשמרים, אבל כל קוד שתכתבו צריך להיות עמיד במקרה שהתוקף של המזהה יפוג.
יצירת המזהים האלה כוללת אחסון של כמות קטנה של נתונים ואימות של פרטי הכניסה, לכן מומלץ לעשות בהם שימוש חוזר למשך זמן רב ככל האפשר. אין מכסה API שמשויכת באופן ספציפי לנקודת הקצה getMapId
, אבל כל תהליך עבודה שכולל יצירה של אובייקטים מסוג mapid
בקצב שדומה לקצב אחזור המשבצות הוא כנראה תהליך שגוי. ב-Earth Engine אין נקודת קצה של API להסרת המזהים האלה, להצגת רשימה שלהם או לניהול שלהם, כי מדובר במשאבים זמניים.
למה הפונקציה ee.Algorithms.If()
מדפיסה גם את המקרה שבו הערך true וגם את המקרה שבו הערך false?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
אלגוריתם If()
פועל בדיוק כמו כל אלגוריתם אחר ב-Earth Engine, כלומר צריך להעריך את כל הארגומנטים שלו לפני שהאלגוריתם עצמו יכול לפעול.
האלגוריתם מקבל את התוצאות של trueCase
ושל falseCase
, ואז בוחר אחת מהן ומחזיר אותה על סמך הארגומנט condition
. עם זאת, היה צריך להריץ את שני הנתיבים כדי שהערכים האלה יועברו לאלגוריתם מלכתחילה.
מוצגת לי השגיאה "Request payload size exceeds the limit"
אתם מנסים לשלוח ל-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()
. דוגמאות לשימוש מופיעות בדף העזרה של ה-API של הפונקציה.
מה ההבדל בין ee.ImageCollection.merge()
לבין ee.ImageCollection.combine()
?
הפונקציה ee.ImageCollection.merge()
ממזגת את כל התמונות משני אוספים לאוסף אחד, גם אם בתמונות שלהם יש אותם פסים, מטא-נתונים, מערכת קואורדינטות או קנה מידה. זהו איחוד של שני אוספים. השיטה 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
, חשוב לוודא שהמסננים לא מגבילים מדי.
חשוב לזכור במיוחד את הנקודות הבאות:
נתוני Sentinel-2 SR (רמה 2) לא נוצרו על ידי ESA עבור סצנות מוקדמות ברמה 1.
ל-Landsat אין כיסוי גלובלי לפני שנת 2000.
ערכים שגויים במערך נתונים קיים
פרסום פוסט בפורום המפתחים כדאי לכלול סקריפט שמגדיל את הרזולוציה המקורית של הנכס ומאפשר לראות בבירור אילו ערכים שגויים. צריך להסביר איפה בדיוק ראיתם את הערך החלופי.
איפה אפשר לשאול שאלות נוספות על מערכי נתונים?
לשאלות על מערכי נתונים של NASA, אפשר להיעזר בפורום NASA Earth Data.
אם יש לכם שאלות לגבי ערכות הכלים שפועלות במערכי הנתונים של Copernicus, תוכלו להיכנס לפורומים S1, S2 ו-S3.
מהו היקף הקטלוג של EE?
נכון לאוקטובר 2023, הקטלוג מכיל יותר מ-1,000 מערכי נתונים. הגודל שלו בדיסק הוא יותר מ-90 פטה-בייט (לאחר שמביאים בחשבון דחיסה ללא אובדן נתונים).
באיזו תדירות מתעדכנים הנתונים ב-EE?
בדרך כלל, כל מערכי הנתונים המתמשכים מתעדכנים לפחות מדי יום (אבל לא לכל מערכי הנתונים האלה יש נתונים חדשים מדי יום). חלק מערכי הנתונים מתעדכנים כמה פעמים ביום. עם זאת, אין מדיניות שמבטיחה את נוכחות הנכסים העדכניים ביותר בקטלוג.
איך אפשר להציג את התוכן של קטלוג EE באופן פרוגרמטי?
רשימת מערכי הנתונים מיוצאת בפורמט STAC אל קטגוריה gs://earthengine-stac
ב-Google Cloud Storage.
קובץ הרשומה הוא catalog.json.
האם אפשר להשתמש בנתונים או בתמונות של מפות Google לצורך ניתוח?
Google לא מוכרת או מעניקה רישיון לנתוני מפות בסיס לצורך ניתוח.
איך אפשר למצוא את התאריך שבו נכס הוטמע?
מאפיין הנכס 'system:version'
הוא חותמת הזמן של הטמעת הנתונים, בפורמט של מיקרו-שניות מאז ראשית זמן יוניקס (Unix epoch). הנה דוגמה להמרת חותמת הזמן של הטמעת נתונים של תמונה מ-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
איך מטמיעים את האלגוריתם simpleComposite
?
ההטמעה בצד השרת זהה לקוד ה-JavaScript הזה.
איך אפשר ליצור קומפוזיטים ללא עננים מנתוני ההחזרה של פני השטח של Landsat?
לנתוני Landsat ברמה 2 (החזרה של קרינה מהמשטח) יש כמה פסים של איכות שאפשר להשתמש בהם כדי להסתיר עננים וארטיפקטים לא רצויים אחרים בתמונה. בפוסט הזה ב-GIS Stack Exchange מופיעה דוגמה לשימוש בתחומים האלה כדי לעבד תמונות SR של Landsat 8 וליצור תמונה משולבת של חציון ללא עננים. אותו תהליך משמש ליצירת קומפוזיט ללא ענן לשימוש בדוגמאות לסיווג בפיקוח במדריך למפתחים.
האם יש צורך בהתאמה של ההחזרה של פני השטח ב-Landsat בין חיישנים שונים?
Roy et al., 2016, שבו נערך ניתוח של ההבדלים בקרינת השתקפות בין TOA של Landsat 7-8 לבין קרינת השתקפות של פני השטח. הם פרסמו את המקדמים של OLS ו-RMA כדי שהקוראים יוכלו להמיר את ערכי ההחזרה של נתונים של חיישן אחד לנתונים של חיישן אחר. השורה האחרונה במאמר קובעת: "למרות שההבדלים בין החיישנים קטנים למדי, הם עשויים להשפיע באופן משמעותי בהתאם לאפליקציה של נתוני Landsat". עם זאת, הניתוח הזה מבוסס על נתונים שנאספו לפני ההפעלה.
השיפורים שבוצעו במהלך העיבוד מחדש של אוסף 1 ואוסף 2 עשויים להשפיע על הקשר בין החיישנים, אבל עד כמה שידוע לנו, לא בוצעו ניתוחים דומים לזה של Roy et al. (2016) לגבי נתוני אוסף 1 או אוסף 2. למרות שלא בוצעה ניתוח רשמי, נראה שיש הסכמה כללית בקרב משתמשי Landsat בעלי השפעה על כך שאין צורך בתיקון לנתונים של אוסף 2, רמה 2 (החזרה של קרינה מהמשטח). לדוגמה, בתשובה לשאלה לגבי הצורך בהתאמה של Collection 2 ברמה 2, מייק וולדר (Mike Wulder) מצוות המדענים של Landsat ציין שלפי אופי היישום הרצוי (כולל מיפוי של כיסוי פני השטח וזיהוי שינויים), מוצרי ההחזרה של פני השטח של Collection 2 מתאימים מאוד ואמינים, ללא צורך בהתאמה בין חיישנים.
איך אפשר להסתיר עננים ואת הצללים שלהם בתמונות MSS?
מודול msslib של צד שלישי ל-JavaScript Code Editor כולל הטמעה של אלגוריתם MSScvm, וגם פונקציות מועילות אחרות לבדיקה ולתכנון של נתוני MSS.
ניהול נתונים
מי הבעלים של הנתונים שאני מעלה?
בהתאם לתנאים ולהגבלות של Earth Engine, הלקוחות הם הבעלים של הנתונים שהם מעלים ל-Earth Engine.
לא הצלחתי להעלות נתונים
בודקים את סטטוס המשימה של ההעלאה בחלונית Tasks (משימות) בפינה השמאלית העליונה של Code Editor (כלי לעריכת קוד). אפשר גם להיכנס לדף הייעודי של המשימה.
אם אין משימה, סביר להניח שניסיתם להעלות את הקובץ דרך Code Editor, אבל בגלל בעיה ברשת ההעלאה של הקובץ לא הושלמה, ולכן המשימה לא נוצרה. מנסים להשתמש בדפדפן אחר או במחשב אחר.
אם יש משימה שנכשלה, בודקים את השגיאה שמוצגת. אם לא מופיעה הודעת שגיאה ספציפית, קודם צריך לוודא שהקובץ לא פגום. כדי לעשות זאת, מריצים את הפקודה 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 או בפורמט רסטר אחר שאינו נתמך?
אפשר להעלות ל-Earth Engine רק קובצי GeoTIFF. אפשר להמיר פורמטים אחרים שתואמים ל-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 בזמן אמת, אפשר להשתמש ב-DEFLATE, ב-JPEG, ב-LZW או ב-ZSTD. ZSTD הוא בחירה טובה באופן כללי, כי הוא מאפשר דחיסה טובה של רוב התמונות, וגם קל לבצע את הפעולה ההפוכה (הפעלת דחיסה).
כדי להחיל דחיסת ZSTD כשמשתמשים ב-gdal_translate
, מוסיפים את האפשרויות הבאות. אם בנתונים יש ערכים של נקודה צפה, משנים את הערך של PREDICTOR
ל-3.
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
. בקבצים עם האפשרות הזו ועם הרבה פסים, יכול להיות שהטמעת הנתונים לעולם לא תסתיים כי הפריסה של קבצים כאלה גורמת לקריאה איטית מאוד.
לפני ההעלאה, כדאי לנסות להמיר קבצים כאלה לפריסה של מקבץ פסים:
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 או בתמונות של מסיכות ביטים, צריך להשתמש במדיניות הפירמידה SAMPLE
.
מופיעה השגיאה הבאה: No data value -128.0 cannot be applied to band #0 of type 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, העמודה geometry יכולה להכיל GeoJSON.
אני רוצה להעלות נתונים באמצעות Python או להעלות הרבה קבצים בבת אחת.
משתמשים בהעלאה באמצעות שורת הפקודה. כדי לבצע העלאות כאלה, קובצי המקור צריכים להימצא קודם בקטגוריה ב-GCS (Google Cloud Storage). השימוש ב-GCS לא כרוך בתשלום כל עוד אתם לא חורגים מהמגבלות של הרמה החינמית – בדף התמחור.
אני רוצה להעלות מוזיקת ראסט גדולה שמחולקת לכמה אריחים.
אם לכל הקבצים יש את אותה הקרנה ואותו גודל פיקסלים, אפשר פשוט להעלות אותם יחד לאותו נכס – הם ימוזגו לתמונה מוזיאלית באופן אוטומטי.
אם לקבצים יש תצוגות או גדלי פיקסלים שונים, אי אפשר ליצור מהם מוזיקת אסף (mosaic) בנכס רסטר יחיד. במקום זאת, צריך להעלות כל משבצת כנכס נפרד לאותו ImageCollection
, שאפשר ליצור ממנו פסיפס באמצעות ImageCollection.mosaic()
.
ניסיתי להעלות פסיפס וקיבלתי שגיאות לגבי משבצות לא תואמות.
לתמונות המוזאיקה הרסטריות ב-Earth Engine חייב להיות אותו פרויקציה ואותו גודל פיקסל. בנוסף, המשבצות צריכות להיות מותאמות בדיוק לגבולות הפיקסלים.
אני מנסה להעלות קובץ מקטגוריית GCS, אבל מערכת Earth Engine לא מצליחה למצוא אותו.
יכול להיות שהשתמשתם בחשבונות Google שונים להעלאה ל-GCS ולהתחברות ל-Earth Engine. מוודאים שאפשר לקרוא את קובץ ה-GCS באמצעות החשבון שבו אתם משתמשים כדי להתחבר ל-Earth Engine. אם אתם מתקשים להתחבר לכמה חשבונות בו-זמנית בדפדפן, תוכלו להתחבר ל-Earth Engine בחלון פרטי בדפדפן.
אני רוצה לייצא הרבה נכסים בבת אחת.
צריך לייצא כל תמונה בנפרד.
אני רוצה להעביר או למחוק Folder
או ImageCollection
באמצעות פקודה אחת.
קודם צריך להעביר או למחוק כל נכס, ואז להעביר או למחוק את התיקייה או הקולקציה ההורה. אם יש הרבה נכסי צאצא, צריך לכתוב לולאה של מעטפת או Python כדי לבצע איטרציה עליהם.
אני רוצה לגשת ישירות לנתוני Earth Engine מחוץ ל-EE.
ל-QGIS יש פלאגין של Earth Engine.
ל-GDAL יש מנהל התקן של Earth Engine.
מערכות אחרות יכולות להשתמש ב-API ל-REST של EE.
אני רוצה לעדכן חלק מנכס Earth Engine שלי בלי להטמיע אותו מחדש לגמרי.
לא ניתן לעדכן נתוני וקטורים או נתוני רסטר שהועלו ל-EE. אפשר לעדכן רק מאפייני מטא-נתונים של נכסים.
איבדתי את הגישה לחשבון שלי. מה עושים עם הנכסים?
אם המדיניות של החשבון המקורי מאפשרת העברת נתונים, עליך לשתף את הנכסים עם חשבון אחר ולאחר מכן להעתיק את הנכסים כך שהם יהיו בבעלות החשבון החדש. אם צריך להעביר הרבה נכסים, כדאי להשתמש בכלי ההעתקה בשורת הפקודה.
אם חשבון נמחק, לא ניתן יותר לגשת לנכסים שבבעלותו.
התמונה המיוצאת נמצאת במקום הלא נכון.
בחלק מהמיפויים, כמו מיפוי סינוסואידלי או חרוט, לפעמים לא ניתן לאחסן את כל הפרמטרים הנדרשים של המיפוי בקובצי GeoTIFF. כתוצאה מכך, הקובץ שיוצאו יופיע במקום הלא נכון כשמציגים אותו בכלים של GIS למחשב או כשמבצעים הטמעה חוזרת ב-EE.
כדי לפתור את הבעיה, צריך לציין פרמטר crs
לייצוא שידוע שהוא פועל היטב עם קובצי GeoTIFF. לדוגמה, אפשר להשתמש בקוד EPSG של תחום UTM שמכיל את אזור העניין.
באיזה מיקום של קטגוריה ב-Cloud Storage כדאי לאחסן נכסי COG?
התשובה תלויה במה שאתם מנסים לבצע אופטימיזציה עבורו. אם אתם מבצעים אופטימיזציה לגישה לחישוב עם זמן אחזור נמוך, המיקומים הטובים ביותר של קטגוריות GCS לאחסון נכסי COG הם US-CENTRAL*. מידע נוסף על שיקולים אחרים זמין בדף מיקומי קטגוריות.
נכסים של אוספי תכונות שיוצאו לא שומרים את המאפיינים שהגדרתי.
אף אחת מהפונקציות של Export.table.*
לא שומרת מאפיינים ברמת הטבלה בפלט.
בפורמטים רבים של פלט (למשל CSV, GeoJSON), אין תמיכה במטא-נתונים כאלה. הפונקציה Export.table.toAsset
יכולה לתמוך בנכסים ברמת הטבלה, אבל בשלב זה היא לא תומכת בכך.
טבלאות שיוצאו ל-Drive בפורמט CSV מומרו לפורמט XLSX.
בהתאם להגדרות שלכם ב-Google Drive, טבלאות CSV שאתם מייצאים מ-Earth Engine יכולות להפוך לקובצי XLSX עם השפעות לא רצויות, כמו המרות של סוגי נתונים. כדי לשנות את ההתנהגות בייצוא הבא, פועלים לפי השלבים הבאים:
- ב-Google Drive באינטרנט, לוחצים על גלגל השיניים של ההגדרות בפינה השמאלית העליונה.
- לוחצים על 'הגדרות'.
- גוללים לאפשרות 'המרת קבצים שהועלו לפורמט של עורך Google Docs' ומבטלים את הסימון שלה.
עורך קוד
אי אפשר להיכנס ל-Code Editor כי מוצגת בקשה להשתמש בחשבון שגוי.
יוצאים מהחשבון, בוחרים את החשבון המורשה לשימוש ב-Earth Engine בדף 'בחירת חשבון', ובוחרים שוב את אותו חשבון בדף השני 'בחירת חשבון כדי להמשיך ל-Earth Engine Code Editor' (הניסוח המדויק עשוי להיות שונה).
אני רוצה לצלם מסך של מפה גלובלית, אבל לא אוהב את הקרנת Web Mercator.
הקרנת המפה שנעשה בה שימוש בכלי לעריכת קוד היא Web Mercator ('EPSG:3857'). הוא מגדיל את הגודל של אובייקטים הרחק מהאקלים, כך שאזורים בקו הרוחב הגבוה נראים גדולים בהרבה ממה שהם באמת, בהשוואה לאזורים ליד קו המשווה. אי אפשר לשנות את הקרנה של לוח המפה של Code Editor, אבל אפשר "לצייר" תמונה בקרנה שבחרתם על לוח המפה של Web Mercator באמצעות השיטה ee.Image.changeProj
.
בדף העזר של ה-API של ה-method מופיעה דוגמה להצגת DEM גלובלי במפה של Code Editor בתצוגה פרויקטיבית של רובינסון.
חשוב לזכור שצריך להשתמש בשיטה הזו רק למטרות ויזואליזציה, כי הכלי לבדיקה וכלי הציור של Code Editor עדיין פועלים ב-Web Mercator.
הסקריפט שלי לא נשמר (Script error: Unknown commit
).
אם מופיעה הודעת Script error: Unknown commit
כששומרים סקריפט, סביר להניח שהמאגר שבו שומרים את הסקריפט לא מסונכרן.
הסיבה למצב הזה משתנה וקשה לזהות אותה. כדי לפתור את הבעיה, אפשר לנסות לרענן את רשימת הסקריפטים באמצעות הלחצן בפינה השמאלית העליונה של הכרטיסייה Script. אם הבעיה נמשכת, נסו ליצור מאגר חדש באמצעות הלחצן 'חדש' בכרטיסייה 'סקריפט' ולשמור בו את הסקריפט (יכול להיות שתצטרכו להעביר סקריפטים מהמאגר הלא מסונכרן למאגר החדש).