יש כמה שיטות של ee.Image
שיוצרות ייצוגים חזותיים של נתוני תמונות בפורמט RGB, למשל: visualize()
, getThumbURL()
, getMap()
, getMapId()
(שמשמש לתצוגת המפה ב-Colab Folium) ו-Map.addLayer()
(שמשמש לתצוגת המפה ב-Code Editor, לא זמין ל-Python). כברירת מחדל, השיטות האלה מקצות את שלושת הערוצים הראשונים לצבעים אדום, ירוק וכחול, בהתאמה. מתיחה שמוגדרת כברירת מחדל מבוססת על סוג הנתונים בפס (למשל, נתוני float מורחבים בטווח [0, 1], נתונים של 16 ביט מורחבים לטווח המלא של הערכים האפשריים). יכול להיות שההתאמה תהיה טובה או לא. כדי לקבל את האפקטים החזותיים הרצויים, אפשר לספק פרמטרים של תצוגה חזותית:
פרמטר | תיאור | סוג |
---|---|---|
bands | רשימה מופרדת בפסיקים של שלושה שמות של פסות שרוצים למפות ל-RGB | list |
min | הערכים שרוצים למפות ל-0 | מספר או רשימה של שלושה מספרים, אחד לכל תחום |
max | הערכים למיפוי לערך 255 | מספר או רשימה של שלושה מספרים, אחד לכל תחום |
gain | הערכים שבהם צריך להכפיל כל ערך פיקסל | מספר או רשימה של שלושה מספרים, אחד לכל תחום |
bias | הערכים שצריך להוסיף לכל DN | מספר או רשימה של שלושה מספרים, אחד לכל תחום |
gamma | גורמי תיקון גאמה | מספר או רשימה של שלושה מספרים, אחד לכל תחום |
palette | רשימה של מחרוזות צבעים בסגנון CSS (תמונות עם פס אחד בלבד) | רשימה של מחרוזות הקסדצימליות מופרדות בפסיקים |
opacity | השקיפות של השכבה (0.0 היא שקיפות מלאה ו-1.0 היא אטימות מלאה) | number |
format | jpg או png | מחרוזת |
קומפוזיטים של RGB
הדוגמה הבאה ממחישה את השימוש בפרמטרים כדי לעצב תמונה של Landsat 8 כתמונה מורכבת בצבעים מזויפים:
Code Editor (JavaScript)
// Load an image. var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); // Define the visualization parameters. var vizParams = { bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5, gamma: [0.95, 1.1, 1] }; // Center the map and display the image. Map.setCenter(-122.1899, 37.5010, 10); // San Francisco Bay Map.addLayer(image, vizParams, 'false color composite');
import ee import geemap.core as geemap
Colab (Python)
# Load an image. image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') # Define the visualization parameters. image_viz_params = { 'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5, 'gamma': [0.95, 1.1, 1], } # Define a map centered on San Francisco Bay. map_l8 = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_l8.add_layer(image, image_viz_params, 'false color composite') display(map_l8)
בדוגמה הזו, הפס 'B5'
מוקצה לאדום, הפס 'B4'
מוקצה לירוק והפס 'B3'
מוקצה לכחול.

לוחות צבעים
כדי להציג רצועה אחת של תמונה בצבע, מגדירים את הפרמטר palette
עם רמפת צבע שמיוצגת על ידי רשימה של מחרוזות צבע בסגנון CSS. (מידע נוסף זמין במאמר הזה). בדוגמה הבאה מוסבר איך להשתמש בצבעים מירוק תכלת ('00FFFF'
) עד כחול ('0000FF'
) כדי ליצור תמונה של
מדד המים המנורמלי (NDWI):
Code Editor (JavaScript)
// Load an image. var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); // Create an NDWI image, define visualization parameters and display. var ndwi = image.normalizedDifference(['B3', 'B5']); var ndwiViz = {min: 0.5, max: 1, palette: ['00FFFF', '0000FF']}; Map.addLayer(ndwi, ndwiViz, 'NDWI', false);
import ee import geemap.core as geemap
Colab (Python)
# Load an image. image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') # Create an NDWI image, define visualization parameters and display. ndwi = image.normalizedDifference(['B3', 'B5']) ndwi_viz = {'min': 0.5, 'max': 1, 'palette': ['00FFFF', '0000FF']} # Define a map centered on San Francisco Bay. map_ndwi = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_ndwi.add_layer(ndwi, ndwi_viz, 'NDWI') display(map_ndwi)
בדוגמה הזו, שימו לב שהפרמטרים min
ו-max
מציינים את טווח ערכי הפיקסלים שאליהם צריך להחיל את הצבעים. ערכים ביניים מורחבים באופן לינארי.
שימו לב גם שהערך של הפרמטר show
מוגדר ל-false
בדוגמה של עורך הקוד. כתוצאה מכך, השכבה לא תהיה גלויה כשהיא תתווסף למפה. תמיד אפשר להפעיל אותו שוב באמצעות מנהל השכבות בפינה השמאלית העליונה של המפה ב-Code Editor.

שמירת לוחות צבעים שמוגדרים כברירת מחדל
כדי לשמור לוחות צבעים בתמונה של סיווג, כך שלא תצטרכו לזכור להחיל אותם, תוכלו להגדיר שני מאפייני תמונה של מחרוזת עם שמות מיוחדים לכל פס סיווג.
לדוגמה, אם בתמונה יש פס בשם 'landcover'
עם שלושה ערכים 0, 1 ו-2 שתואמים לכיתות 'מים', 'יער' ו 'אחר',
אפשר להגדיר את המאפיינים הבאים כדי שהתצוגה החזותית שמוגדרת כברירת מחדל תוצג עם צבע מסוים לכל כיתה (הערכים שבהם נעשה שימוש בניתוח לא יושפעו):
landcover_class_values="0,1,2"
landcover_class_palette="0000FF,00FF00,AABBCD"
בדף ניהול הנכסים מוסבר איך להגדיר מטא-נתונים של נכסים.
מסקינג
אפשר להשתמש ב-image.updateMask()
כדי להגדיר את השקיפות של פיקסלים ספציפיים, בהתאם למיקום של פיקסלים בתמונה של המסכה שהערך שלהם שונה מאפס. פיקסלים שערכם אפס במסכה לא נכללים בחשבון, והעכירות מוגדרת ל-0 בתצוגה. בדוגמה הבאה נעשה שימוש בסף NDWI (מידע על ערכי סף זמין
בקטע 'פעולות יחסיות') כדי לעדכן את המסכה בשכבת ה-NDWI שנוצרה קודם:
Code Editor (JavaScript)
// Mask the non-watery parts of the image, where NDWI < 0.4. var ndwiMasked = ndwi.updateMask(ndwi.gte(0.4)); Map.addLayer(ndwiMasked, ndwiViz, 'NDWI masked');
import ee import geemap.core as geemap
Colab (Python)
# Mask the non-watery parts of the image, where NDWI < 0.4. ndwi_masked = ndwi.updateMask(ndwi.gte(0.4)) # Define a map centered on San Francisco Bay. map_ndwi_masked = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_ndwi_masked.add_layer(ndwi_masked, ndwi_viz, 'NDWI masked') display(map_ndwi_masked)
תמונות של תצוגות חזותיות
משתמשים בשיטה image.visualize()
כדי להמיר תמונה לתמונה RGB של 8 ביט להצגה או לייצוא. לדוגמה, כדי להמיר את התמונה המשולבת בצבע מלאכותי ואת NDWI לתמונות תצוגה ב-3 פסים, משתמשים בקוד:
Code Editor (JavaScript)
// Create visualization layers. var imageRGB = image.visualize({bands: ['B5', 'B4', 'B3'], max: 0.5}); var ndwiRGB = ndwiMasked.visualize({ min: 0.5, max: 1, palette: ['00FFFF', '0000FF'] });
import ee import geemap.core as geemap
Colab (Python)
image_rgb = image.visualize(bands=['B5', 'B4', 'B3'], max=0.5) ndwi_rgb = ndwi_masked.visualize(min=0.5, max=1, palette=['00FFFF', '0000FF'])
יצירת פסיפס
אפשר להשתמש במסננים וב-imageCollection.mosaic()
(מידע על מוזיקת מוזאיקה זמין בקטע 'מוזיקת מוזאיקה') כדי ליצור אפקטים קרטוגרפיים שונים. שיטת mosaic()
מרינדרת את השכבות בתמונה הפלט לפי הסדר שלהן באוסף הקלט. בדוגמה הבאה משתמשים בפקודה mosaic()
כדי לשלב את NDWI המוסתר ואת התמונה המשולבת של צבע שקרי, וכך לקבל הדמיה חדשה:
Code Editor (JavaScript)
// Mosaic the visualization layers and display (or export). var mosaic = ee.ImageCollection([imageRGB, ndwiRGB]).mosaic(); Map.addLayer(mosaic, {}, 'mosaic');
import ee import geemap.core as geemap
Colab (Python)
# Mosaic the visualization layers and display (or export). mosaic = ee.ImageCollection([image_rgb, ndwi_rgb]).mosaic() # Define a map centered on San Francisco Bay. map_mosaic = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_mosaic.add_layer(mosaic, None, 'mosaic') display(map_mosaic)
בדוגמה הזו, שימו לב שרשימה של שתי התמונות של התצוגה החזותית מסופקת ל-constructor של ImageCollection
. סדר הרשימה קובע את הסדר שבו התמונות יוצגו במפה.

חיתוך
השיטה image.clip()
שימושית ליצירת אפקטים קרטוגרפיים. בדוגמה הבאה מופיע קטע מתוך הפסיפס שנוצר קודם לכן, שנחתך לאזור חיץ שרירותי סביב העיר סן פרנסיסקו:
Code Editor (JavaScript)
// Create a circle by drawing a 20000 meter buffer around a point. var roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000); // Display a clipped version of the mosaic. Map.addLayer(mosaic.clip(roi), null, 'mosaic clipped');
import ee import geemap.core as geemap
Colab (Python)
# Create a circle by drawing a 20000 meter buffer around a point. roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000) mosaic_clipped = mosaic.clip(roi) # Define a map centered on San Francisco. map_mosaic_clipped = geemap.Map(center=[37.7599, -122.4481], zoom=10) # Add the image layer to the map and display it. map_mosaic_clipped.add_layer(mosaic_clipped, None, 'mosaic clipped') display(map_mosaic_clipped)
בדוגמה הקודמת, שימו לב שהקואורדינטות ניתנות למבנה Geometry
והאורך של המאגר מצוין כ-20,000 מטרים. מידע נוסף על גיאומטריות זמין בדף Geometries.

רינדור של מפות קטגוריות
צבעים הם שימושיים גם לעיבוד מפה עם ערכים בדידים, למשל מפה של כיסוי פני השטח.
אם יש כמה כיתות, אפשר להשתמש בחלונית הצבעים כדי לספק צבע שונה לכל כיתה.
(השיטה image.remap()
עשויה להיות שימושית בהקשר הזה, כדי להמיר תוויות שרירותיות למספרים שלמים עוקבים). בדוגמה הבאה נעשה שימוש בצבעים כדי ליצור קטגוריות של תמונות סטטיות של שטחים:
Code Editor (JavaScript)
// Load 2012 MODIS land cover and select the IGBP classification. var cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01') .select('Land_Cover_Type_1'); // Define a palette for the 18 distinct land cover classes. var igbpPalette = [ 'aec3d4', // water '152106', '225129', '369b47', '30eb5b', '387242', // forest '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', // shrub, grass '111149', // wetlands 'cdb33b', // croplands 'cc0013', // urban '33280d', // crop mosaic 'd7cdcc', // snow and ice 'f7e084', // barren '6f6f6f' // tundra ]; // Specify the min and max labels and the color palette matching the labels. Map.setCenter(-99.229, 40.413, 5); Map.addLayer(cover, {min: 0, max: 17, palette: igbpPalette}, 'IGBP classification');
import ee import geemap.core as geemap
Colab (Python)
# Load 2012 MODIS land cover and select the IGBP classification. cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1') # Define a palette for the 18 distinct land cover classes. igbp_palette = [ 'aec3d4', # water '152106', '225129', '369b47', '30eb5b', '387242', # forest '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', # shrub, grass '111149', # wetlands 'cdb33b', # croplands 'cc0013', # urban '33280d', # crop mosaic 'd7cdcc', # snow and ice 'f7e084', # barren '6f6f6f', # tundra ] # Define a map centered on the United States. map_palette = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layer to the map and display it. Specify the min and max labels # and the color palette matching the labels. map_palette.add_layer( cover, {'min': 0, 'max': 17, 'palette': igbp_palette}, 'IGBP classes' ) display(map_palette)

תיאורי שכבות בסגנון
אפשר להשתמש בתיאור שכבת סגנון (SLD) כדי ליצור רינדור של תמונות להצגה. מספקים ל-image.sldStyle()
תיאור בפורמט XML של הסמליות והצבעוניות של התמונה, ובמיוחד של הרכיב RasterSymbolizer
. כאן תוכלו לקרוא מידע נוסף על הרכיב RasterSymbolizer
.
לדוגמה, כדי ליצור עיבוד (רנדור) של מפת כיסוי הקרקע שמתוארת בקטע 'עיבוד (רנדור) של מפות קטגוריות' באמצעות SLD, משתמשים בקוד הבא:
Code Editor (JavaScript)
var cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1'); // Define an SLD style of discrete intervals to apply to the image. var sld_intervals = '<RasterSymbolizer>' + '<ColorMap type="intervals" extended="false">' + '<ColorMapEntry color="#aec3d4" quantity="0" label="Water"/>' + '<ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/>' + '<ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/>' + '<ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/>' + '<ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/>' + '<ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/>' + '<ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/>' + '<ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/>' + '<ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/>' + '<ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/>' + '<ColorMapEntry color="#91af40" quantity="10" label="Grassland"/>' + '<ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/>' + '<ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/>' + '<ColorMapEntry color="#cc0013" quantity="13" label="Urban"/>' + '<ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/>' + '<ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/>' + '<ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/>' + '<ColorMapEntry color="#6f6f6f" quantity="17" label="Tundra"/>' + '</ColorMap>' + '</RasterSymbolizer>'; Map.addLayer(cover.sldStyle(sld_intervals), {}, 'IGBP classification styled');
import ee import geemap.core as geemap
Colab (Python)
cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1') # Define an SLD style of discrete intervals to apply to the image. sld_intervals = """ <RasterSymbolizer> <ColorMap type="intervals" extended="false" > <ColorMapEntry color="#aec3d4" quantity="0" label="Water"/> <ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/> <ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/> <ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/> <ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/> <ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/> <ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/> <ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/> <ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/> <ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/> <ColorMapEntry color="#91af40" quantity="10" label="Grassland"/> <ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/> <ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/> <ColorMapEntry color="#cc0013" quantity="13" label="Urban"/> <ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/> <ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/> <ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/> <ColorMapEntry color="#6f6f6f" quantity="17" label="Tundra"/> </ColorMap> </RasterSymbolizer>""" # Apply the SLD style to the image. cover_sld = cover.sldStyle(sld_intervals) # Define a map centered on the United States. map_sld_categorical = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layer to the map and display it. map_sld_categorical.add_layer(cover_sld, None, 'IGBP classes styled') display(map_sld_categorical)
כדי ליצור תמונה של תצוגה חזותית עם רמפת צבעים, מגדירים את הסוג של ColorMap
כ-ramp. בדוגמה הבאה מוצגת השוואה בין הסוגים 'interval' ו-'ramp' לעיבוד DEM:
Code Editor (JavaScript)
// Load SRTM Digital Elevation Model data. var image = ee.Image('CGIAR/SRTM90_V4'); // Define an SLD style of discrete intervals to apply to the image. Use the // opacity keyword to set pixels less than 0 as completely transparent. Pixels // with values greater than or equal to the final entry quantity are set to // fully transparent by default. var sld_intervals = '<RasterSymbolizer>' + '<ColorMap type="intervals" extended="false" >' + '<ColorMapEntry color="#0000ff" quantity="0" label="0 ﹤ x" opacity="0" />' + '<ColorMapEntry color="#00ff00" quantity="100" label="0 ≤ x ﹤ 100" />' + '<ColorMapEntry color="#007f30" quantity="200" label="100 ≤ x ﹤ 200" />' + '<ColorMapEntry color="#30b855" quantity="300" label="200 ≤ x ﹤ 300" />' + '<ColorMapEntry color="#ff0000" quantity="400" label="300 ≤ x ﹤ 400" />' + '<ColorMapEntry color="#ffff00" quantity="900" label="400 ≤ x ﹤ 900" />' + '</ColorMap>' + '</RasterSymbolizer>'; // Define an sld style color ramp to apply to the image. var sld_ramp = '<RasterSymbolizer>' + '<ColorMap type="ramp" extended="false" >' + '<ColorMapEntry color="#0000ff" quantity="0" label="0"/>' + '<ColorMapEntry color="#00ff00" quantity="100" label="100" />' + '<ColorMapEntry color="#007f30" quantity="200" label="200" />' + '<ColorMapEntry color="#30b855" quantity="300" label="300" />' + '<ColorMapEntry color="#ff0000" quantity="400" label="400" />' + '<ColorMapEntry color="#ffff00" quantity="500" label="500" />' + '</ColorMap>' + '</RasterSymbolizer>'; // Add the image to the map using both the color ramp and interval schemes. Map.setCenter(-76.8054, 42.0289, 8); Map.addLayer(image.sldStyle(sld_intervals), {}, 'SLD intervals'); Map.addLayer(image.sldStyle(sld_ramp), {}, 'SLD ramp');
import ee import geemap.core as geemap
Colab (Python)
# Load SRTM Digital Elevation Model data. image = ee.Image('CGIAR/SRTM90_V4') # Define an SLD style of discrete intervals to apply to the image. sld_intervals = """ <RasterSymbolizer> <ColorMap type="intervals" extended="false" > <ColorMapEntry color="#0000ff" quantity="0" label="0"/> <ColorMapEntry color="#00ff00" quantity="100" label="1-100" /> <ColorMapEntry color="#007f30" quantity="200" label="110-200" /> <ColorMapEntry color="#30b855" quantity="300" label="210-300" /> <ColorMapEntry color="#ff0000" quantity="400" label="310-400" /> <ColorMapEntry color="#ffff00" quantity="1000" label="410-1000" /> </ColorMap> </RasterSymbolizer>""" # Define an sld style color ramp to apply to the image. sld_ramp = """ <RasterSymbolizer> <ColorMap type="ramp" extended="false" > <ColorMapEntry color="#0000ff" quantity="0" label="0"/> <ColorMapEntry color="#00ff00" quantity="100" label="100" /> <ColorMapEntry color="#007f30" quantity="200" label="200" /> <ColorMapEntry color="#30b855" quantity="300" label="300" /> <ColorMapEntry color="#ff0000" quantity="400" label="400" /> <ColorMapEntry color="#ffff00" quantity="500" label="500" /> </ColorMap> </RasterSymbolizer>""" # Define a map centered on the United States. map_sld_interval = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layers to the map and display it. map_sld_interval.add_layer( image.sldStyle(sld_intervals), None, 'SLD intervals' ) map_sld_interval.add_layer(image.sldStyle(sld_ramp), None, 'SLD ramp') display(map_sld_interval)
תבניות SLD שימושיות גם כדי למתוח את ערכי הפיקסלים ולשפר את התצוגה החזותית של נתונים רציפים. לדוגמה, הקוד הבא משווה בין התוצאות של מתיחה לינארית שרירותית לבין 'נורמליזציה' של מינימום-מקסימום ואיזון של 'היסטוגרמה':
Code Editor (JavaScript)
// Load a Landsat 8 raw image. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318'); // Define a RasterSymbolizer element with '_enhance_' for a placeholder. var template_sld = '<RasterSymbolizer>' + '<ContrastEnhancement><_enhance_/></ContrastEnhancement>' + '<ChannelSelection>' + '<RedChannel>' + '<SourceChannelName>B5</SourceChannelName>' + '</RedChannel>' + '<GreenChannel>' + '<SourceChannelName>B4</SourceChannelName>' + '</GreenChannel>' + '<BlueChannel>' + '<SourceChannelName>B3</SourceChannelName>' + '</BlueChannel>' + '</ChannelSelection>' + '</RasterSymbolizer>'; // Get SLDs with different enhancements. var equalize_sld = template_sld.replace('_enhance_', 'Histogram'); var normalize_sld = template_sld.replace('_enhance_', 'Normalize'); // Display the results. Map.centerObject(image, 10); Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 15000}, 'Linear'); Map.addLayer(image.sldStyle(equalize_sld), {}, 'Equalized'); Map.addLayer(image.sldStyle(normalize_sld), {}, 'Normalized');
import ee import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 raw image. image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318') # Define a RasterSymbolizer element with '_enhance_' for a placeholder. template_sld = """ <RasterSymbolizer> <ContrastEnhancement><_enhance_/></ContrastEnhancement> <ChannelSelection> <RedChannel> <SourceChannelName>B5</SourceChannelName> </RedChannel> <GreenChannel> <SourceChannelName>B4</SourceChannelName> </GreenChannel> <BlueChannel> <SourceChannelName>B3</SourceChannelName> </BlueChannel> </ChannelSelection> </RasterSymbolizer>""" # Get SLDs with different enhancements. equalize_sld = template_sld.replace('_enhance_', 'Histogram') normalize_sld = template_sld.replace('_enhance_', 'Normalize') # Define a map centered on San Francisco Bay. map_sld_continuous = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layers to the map and display it. map_sld_continuous.add_layer( image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 15000}, 'Linear' ) map_sld_continuous.add_layer(image.sldStyle(equalize_sld), None, 'Equalized') map_sld_continuous.add_layer( image.sldStyle(normalize_sld), None, 'Normalized' ) display(map_sld_continuous)
הערות לגבי השימוש ב-SLD ב-Earth Engine:
- יש תמיכה ב-OGC SLD 1.0 וב-OGC SE 1.1.
- מסמך ה-XML שמעבירים יכול להיות מלא, או רק הרכיב RasterSymbolizer ומטה.
- אפשר לבחור את הערוצים לפי השמות או המדד שלהם ב-Earth Engine ('1', '2', ...).
- המנגנונים Histogram ו-Normalize contrast stretch לא נתמכים בתמונות של נקודות צפות.
- המערכת מביאה בחשבון את הערך של האטימות רק כשהוא 0.0 (שקוף). ערכים של אטימות שאינם אפס נחשבים לאטומים לחלוטין.
- המערכת מתעלמת כרגע מההגדרה של OverlapBehavior.
- המנגנון ShadedRelief לא נתמך כרגע.
- המנגנון ImageOutline לא נתמך כרגע.
- המערכת מתעלמת מהרכיב Geometry.
- אם מבקשים יישור או נורמליזציה של היסטוגרמה, תמונה הפלט תכלול את המטא-נתונים histogram_bandname.
תמונות ממוזערות
משתמשים בשיטה ee.Image.getThumbURL()
כדי ליצור תמונה ממוזערת בפורמט PNG או JPEG של אובייקט ee.Image
. הדפסת התוצאה של ביטוי שמסתיים בקריאה ל-getThumbURL()
תגרום להדפסה של כתובת URL. כניסה לכתובת ה-URL מפעילה את השרתים של Earth Engine ליצירת התמונה הממוזערת המבוקשת בזמן אמת. התמונה תוצג בדפדפן בסיום העיבוד. אפשר להוריד את התמונה על ידי בחירה באפשרויות המתאימות מתפריט ההקשר של התמונה בלחיצה ימנית.

השיטה getThumbURL()
כוללת פרמטרים שמפורטים בטבלת הפרמטרים של התצוגה החזותית שלמעלה.
בנוסף, הפונקציה מקבלת ארגומנטים אופציונליים של dimensions
, region
ו-crs
, שמאפשרים לקבוע את ההיקף המרחבי, הגודל והמיקום של התצוגה של התמונה הממוזערת.
פרמטר | תיאור | סוג |
---|---|---|
dimensions | מידות התמונה הממוזערת ביחידות פיקסלים. אם מציינים מספר שלם יחיד, הוא מגדיר את הגודל של מידת הגובה-רוחב הגדולה יותר של התמונה, והמידה הקטנה יותר משתנה באופן יחסי. ברירת המחדל היא 512 פיקסלים ליחס הגובה-רוחב של התמונה הגדולה יותר. | מספר שלם יחיד או מחרוזת בפורמט: 'רוחבxגובה' |
region | האזור הגיאו-מרחבי של התמונה לעיבוד. התמונה כולה כברירת מחדל, או הגבולות של גיאומטריה שצוינה. | GeoJSON או רשימה דו-מימדית של לפחות שלוש קואורדינטות של נקודות שמגדירות טבעת ליניארית |
crs | הקרנת היעד, למשל 'EPSG:3857'. ברירת המחדל היא WGS84 ('EPSG:4326'). | מחרוזת |
format | הגדרת הפורמט של התמונה הממוזערת כ-PNG או כ-JPEG. פורמט ה-PNG שמוגדר כברירת מחדל מיושם בתור RGBA, שבו ערוץ האלפא מייצג פיקסלים תקינים ולא תקינים, שמוגדרים על ידי mask() של התמונה. פיקסלים לא חוקיים הם שקופים. הפורמט האופציונלי JPEG מיושם כ-RGB, שבו פיקסלים לא חוקיים של תמונה מתמלאים באפס בכל הערוצים של RGB.
|
מחרוזת, 'png' או 'jpg' |
תמונה עם פס אחד תהיה ברירת המחדל בצבעים אפורים, אלא אם תספקו את הארגומנט palette
. תמונה עם כמה פסגות תופיע כברירת מחדל בתצוגה חזותית של RGB של שלוש הפסגות הראשונות, אלא אם תספקו את הארגומנט bands
. אם מציינים רק שני פסים, הפס הראשון ימופה לאדום, השני ימופה לכחול והערוץ הירוק יאוכלס באפסים.
בהמשך מפורטות כמה דוגמאות לשילובים שונים של ארגומנטי הפרמטרים של getThumbURL()
. כדי להציג את התמונות הממוזערות, לוחצים על כתובות ה-URL שמודפסות כשמריצים את הסקריפט הזה.
Code Editor (JavaScript)
// Fetch a digital elevation model. var image = ee.Image('CGIAR/SRTM90_V4'); // Request a default thumbnail of the DEM with defined linear stretch. // Set masked pixels (ocean) to 1000 so they map as gray. var thumbnail1 = image.unmask(1000).getThumbURL({ 'min': 0, 'max': 3000, 'dimensions': 500, }); print('Default extent:', thumbnail1); // Specify region by rectangle, define palette, set larger aspect dimension size. var thumbnail2 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'], 'dimensions': 500, 'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]), }); print('Rectangle region and palette:', thumbnail2); // Specify region by a linear ring and set display CRS as Web Mercator. var thumbnail3 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'], 'region': ee.Geometry.LinearRing([[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]]), 'dimensions': 500, 'crs': 'EPSG:3857' }); print('Linear ring region and specified crs', thumbnail3);
import ee import geemap.core as geemap
Colab (Python)
# Fetch a digital elevation model. image = ee.Image('CGIAR/SRTM90_V4') # Request a default thumbnail of the DEM with defined linear stretch. # Set masked pixels (ocean) to 1000 so they map as gray. thumbnail_1 = image.unmask(1000).getThumbURL({ 'min': 0, 'max': 3000, 'dimensions': 500, }) print('Default extent:', thumbnail_1) # Specify region by rectangle, define palette, set larger aspect dimension size. thumbnail_2 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': [ '00A600', '63C600', 'E6E600', 'E9BD3A', 'ECB176', 'EFC2B3', 'F2F2F2', ], 'dimensions': 500, 'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]), }) print('Rectangle region and palette:', thumbnail_2) # Specify region by a linear ring and set display CRS as Web Mercator. thumbnail_3 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': [ '00A600', '63C600', 'E6E600', 'E9BD3A', 'ECB176', 'EFC2B3', 'F2F2F2', ], 'region': ee.Geometry.LinearRing( [[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]] ), 'dimensions': 500, 'crs': 'EPSG:3857', }) print('Linear ring region and specified crs:', thumbnail_3)