公告:凡是在
2025 年 4 月 15 日前註冊使用 Earth Engine 的非商業專案,都必須
驗證非商業用途資格,才能繼續存取 Earth Engine。
ee.Terrain.products
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
從地形 DEM 計算坡度、坡向和簡單的陰影。
圖片應包含以公尺為單位的單一海拔高度帶,或多個帶 (其中一個帶的名稱為「elevation」)。新增以度為單位的「坡度」和「方位」輸出波段,以及用於視覺化的「山陰」無符號位元組輸出波段。所有其他波段和中繼資料都會從輸入圖片複製。系統會使用每個像素的 4 連通鄰域計算局部漸層,因此圖片邊緣會出現遺漏值。
用量 | 傳回 |
---|
ee.Terrain.products(input) | 圖片 |
引數 | 類型 | 詳細資料 |
---|
input | 圖片 | 海拔高度圖片,單位為公尺。 |
範例
程式碼編輯器 (JavaScript)
// A digital elevation model.
var dem = ee.Image('NASA/NASADEM_HGT/001').select('elevation');
// Calculate slope. Units are degrees, range is [0,90).
var slope = ee.Terrain.slope(dem);
// Calculate aspect. Units are degrees where 0=N, 90=E, 180=S, 270=W.
var aspect = ee.Terrain.aspect(dem);
// Display slope and aspect layers on the map.
Map.setCenter(-123.457, 47.815, 11);
Map.addLayer(slope, {min: 0, max: 89.99}, 'Slope');
Map.addLayer(aspect, {min: 0, max: 359.99}, 'Aspect');
// Use the ee.Terrain.products function to calculate slope, aspect, and
// hillshade simultaneously. The output bands are appended to the input image.
// Hillshade is calculated based on illumination azimuth=270, elevation=45.
var terrain = ee.Terrain.products(dem);
print('ee.Terrain.products bands', terrain.bandNames());
Map.addLayer(terrain.select('hillshade'), {min: 0, max: 255}, 'Hillshade');
Python 設定
請參閱
Python 環境頁面,瞭解 Python API 和如何使用 geemap
進行互動式開發。
import ee
import geemap.core as geemap
Colab (Python)
# A digital elevation model.
dem = ee.Image('NASA/NASADEM_HGT/001').select('elevation')
# Calculate slope. Units are degrees, range is [0,90).
slope = ee.Terrain.slope(dem)
# Calculate aspect. Units are degrees where 0=N, 90=E, 180=S, 270=W.
aspect = ee.Terrain.aspect(dem)
# Display slope and aspect layers on the map.
m = geemap.Map()
m.set_center(-123.457, 47.815, 11)
m.add_layer(slope, {'min': 0, 'max': 89.99}, 'Slope')
m.add_layer(aspect, {'min': 0, 'max': 359.99}, 'Aspect')
# Use the ee.Terrain.products function to calculate slope, aspect, and
# hillshade simultaneously. The output bands are appended to the input image.
# Hillshade is calculated based on illumination azimuth=270, elevation=45.
terrain = ee.Terrain.products(dem)
display('ee.Terrain.products bands', terrain.bandNames())
m.add_layer(terrain.select('hillshade'), {'min': 0, 'max': 255}, 'Hillshade')
m
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003eComputes terrain attributes like slope, aspect, and hillshade from a Digital Elevation Model (DEM).\u003c/p\u003e\n"],["\u003cp\u003eTakes an elevation image as input and adds output bands named 'slope', 'aspect', and 'hillshade'.\u003c/p\u003e\n"],["\u003cp\u003eSlope is measured in degrees (0-90), aspect in degrees (0=N, 90=E, 180=S, 270=W), and hillshade as an unsigned byte (0-255).\u003c/p\u003e\n"],["\u003cp\u003eOffers functions for individual attribute calculation (ee.Terrain.slope, ee.Terrain.aspect) and combined calculation (ee.Terrain.products).\u003c/p\u003e\n"],["\u003cp\u003eUses a 4-connected neighborhood for calculations, resulting in missing values at image edges.\u003c/p\u003e\n"]]],[],null,["# ee.Terrain.products\n\nCalculates slope, aspect, and a simple hillshade from a terrain DEM.\n\n\u003cbr /\u003e\n\nExpects an image containing either a single band of elevation, measured in meters, or if there's more than one band, one named 'elevation'. Adds output bands named 'slope' and 'aspect' measured in degrees plus an unsigned byte output band named 'hillshade' for visualization. All other bands and metadata are copied from the input image. The local gradient is computed using the 4-connected neighbors of each pixel, so missing values will occur around the edges of an image.\n\n| Usage | Returns |\n|------------------------------|---------|\n| `ee.Terrain.products(input)` | Image |\n\n| Argument | Type | Details |\n|----------|-------|--------------------------------|\n| `input` | Image | An elevation image, in meters. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// A digital elevation model.\nvar dem = ee.Image('NASA/NASADEM_HGT/001').select('elevation');\n\n// Calculate slope. Units are degrees, range is [0,90).\nvar slope = ee.Terrain.slope(dem);\n\n// Calculate aspect. Units are degrees where 0=N, 90=E, 180=S, 270=W.\nvar aspect = ee.Terrain.aspect(dem);\n\n// Display slope and aspect layers on the map.\nMap.setCenter(-123.457, 47.815, 11);\nMap.addLayer(slope, {min: 0, max: 89.99}, 'Slope');\nMap.addLayer(aspect, {min: 0, max: 359.99}, 'Aspect');\n\n// Use the ee.Terrain.products function to calculate slope, aspect, and\n// hillshade simultaneously. The output bands are appended to the input image.\n// Hillshade is calculated based on illumination azimuth=270, elevation=45.\nvar terrain = ee.Terrain.products(dem);\nprint('ee.Terrain.products bands', terrain.bandNames());\nMap.addLayer(terrain.select('hillshade'), {min: 0, max: 255}, 'Hillshade');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# A digital elevation model.\ndem = ee.Image('NASA/NASADEM_HGT/001').select('elevation')\n\n# Calculate slope. Units are degrees, range is [0,90).\nslope = ee.Terrain.slope(dem)\n\n# Calculate aspect. Units are degrees where 0=N, 90=E, 180=S, 270=W.\naspect = ee.Terrain.aspect(dem)\n\n# Display slope and aspect layers on the map.\nm = geemap.Map()\nm.set_center(-123.457, 47.815, 11)\nm.add_layer(slope, {'min': 0, 'max': 89.99}, 'Slope')\nm.add_layer(aspect, {'min': 0, 'max': 359.99}, 'Aspect')\n\n# Use the ee.Terrain.products function to calculate slope, aspect, and\n# hillshade simultaneously. The output bands are appended to the input image.\n# Hillshade is calculated based on illumination azimuth=270, elevation=45.\nterrain = ee.Terrain.products(dem)\ndisplay('ee.Terrain.products bands', terrain.bandNames())\nm.add_layer(terrain.select('hillshade'), {'min': 0, 'max': 255}, 'Hillshade')\nm\n```"]]