Earth Engine 推出了
非商业配额层级,以保护共享计算资源并确保为所有人提供可靠的性能。非商业项目默认使用 Community
层级,但您可以随时更改项目的层级。
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
ee.Terrain.hillshade
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
根据 DEM 计算简单的山体阴影。
| 用法 | 返回 |
|---|
ee.Terrain.hillshade(input, azimuth, elevation) | 图片 |
| 参数 | 类型 | 详细信息 |
|---|
input | 图片 | 高程图片,以米为单位。 |
azimuth | 浮点数,默认值:270 | 光照方位角(以度为单位,从正北开始测量)。 |
elevation | 浮点数,默认值:45 | 光照仰角(以度为单位)。 |
示例
代码编辑器 (JavaScript)
// Demonstrate ee.Terrain functions with single-image and collection DEMs.
// DEMs in Earth Engine are often distributed as single images per asset
// (e.g., NASA/NASADEM_HGT/001) or as collections of tiled images that need
// to be mosaicked (e.g., COPERNICUS/DEM/GLO30). Terrain analysis functions
// compute values based on neighboring pixels, so care must be taken to
// select and prepare DEM inputs appropriately.
// 1. Single DEM image asset.
// Assets like NASADEM are presented as single images covering large areas.
// They generally have a single projection and can be used in terrain analysis
// with no preprocessing.
var nasadem = ee.Image('NASA/NASADEM_HGT/001').select('elevation');
// Calculate hillshade: grayscale values representing illumination.
var nasademHillshade = ee.Terrain.hillshade(nasadem);
// Visualization parameters.
var elevationVis = {
min: 0.0,
max: 3000.0,
palette:
['333399', '00a2e5', '55dd77', 'ffff99', 'aa926b', 'aa928d', 'ffffff']
};
var hillshadeVis = {min: 150.0, max: 255.0};
// Display layers.
Map.setCenter(-121.603, 47.702, 9);
Map.addLayer(nasadem, elevationVis, 'NASADEM Elevation', false);
Map.addLayer(nasademHillshade, hillshadeVis, 'NASADEM Hillshade');
// 2. Mosaicked DEM ImageCollection asset.
// In contrast to single-image assets like NASADEM, some DEMs like GLO30 are
// provided as a collection of images that need to be mosaicked before use.
// We use this mosaicked DEM for the terrain calculations below.
var glo30collection = ee.ImageCollection('COPERNICUS/DEM/GLO30');
// When mosaicking a DEM collection that will be used for terrain analysis,
// it is best practice to set the mosaic's default projection to the native
// projection of the DEM tiles. If you don't, Earth Engine's default
// projection for mosaics (EPSG:4326 at 1-degree scale) is used, which is
// often too coarse for analysis and can lead to resampling artifacts if
// the result is reprojected to a different CRS during computation.
// See:
// https://developers.google.com/earth-engine/guides/projections#reprojecting
var glo30Proj = glo30collection.first().projection();
var glo30Image =
glo30collection.select('DEM').mosaic().setDefaultProjection(glo30Proj);
// Calculate hillshade.
var glo30Hillshade = ee.Terrain.hillshade(glo30Image);
// Display layers.
Map.addLayer(glo30Image, elevationVis, 'GLO30 Elevation', false);
Map.addLayer(glo30Hillshade, hillshadeVis, 'GLO30 Hillshade');
Python 设置
如需了解 Python API 和如何使用 geemap 进行交互式开发,请参阅
Python 环境页面。
import ee
import geemap.core as geemap
Colab (Python)
# Demonstrate ee.Terrain functions with single-image and collection DEMs.
# DEMs in Earth Engine are often distributed as single images per asset
# (e.g., NASA/NASADEM_HGT/001) or as collections of tiled images that need
# to be mosaicked (e.g., COPERNICUS/DEM/GLO30). Terrain analysis functions
# compute values based on neighboring pixels, so care must be taken to
# select and prepare DEM inputs appropriately.
# 1. Single DEM image asset.
# Assets like NASADEM are presented as single images covering large areas.
# They generally have a single projection and can be used in terrain analysis
# with no preprocessing.
nasadem = ee.Image('NASA/NASADEM_HGT/001').select('elevation')
# Calculate hillshade: grayscale values representing illumination.
nasadem_hillshade = ee.Terrain.hillshade(nasadem)
# Visualization parameters.
elevation_vis = {
'min': 0.0,
'max': 3000.0,
'palette': [
'333399',
'00a2e5',
'55dd77',
'ffff99',
'aa926b',
'aa928d',
'ffffff',
],
}
hillshade_vis = {'min': 150.0, 'max': 255.0}
# Display layers.
m = geemap.Map()
m.set_center(-121.603, 47.702, 9)
m.add_layer(nasadem, elevation_vis, 'NASADEM Elevation', False)
m.add_layer(nasadem_hillshade, hillshade_vis, 'NASADEM Hillshade')
# 2. Mosaicked DEM ImageCollection asset.
# In contrast to single-image assets like NASADEM, some DEMs like GLO30 are
# provided as a collection of images that need to be mosaicked before use.
# We use this mosaicked DEM for the terrain calculations below.
glo30_collection = ee.ImageCollection('COPERNICUS/DEM/GLO30')
# When mosaicking a DEM collection that will be used for terrain analysis,
# it is best practice to set the mosaic's default projection to the native
# projection of the DEM tiles. If you don't, Earth Engine's default
# projection for mosaics (EPSG:4326 at 1-degree scale) is used, which is
# often too coarse for analysis and can lead to resampling artifacts if
# the result is reprojected to a different CRS during computation.
# See:
# https://developers.google.com/earth-engine/guides/projections#reprojecting
glo30_proj = glo30_collection.first().projection()
glo30_image = (
glo30_collection.select('DEM').mosaic().setDefaultProjection(glo30_proj)
)
# Calculate hillshade.
glo30_hillshade = ee.Terrain.hillshade(glo30_image)
# Display layers.
m.add_layer(glo30_image, elevation_vis, 'GLO30 Elevation', False)
m.add_layer(glo30_hillshade, hillshade_vis, 'GLO30 Hillshade')
m
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-04-29。
[null,null,["最后更新时间 (UTC):2026-04-29。"],[],["The core content details how to compute a hillshade from a digital elevation model (DEM) using the `ee.Terrain.hillshade` function. This function takes an elevation image (`input`), an illumination azimuth (`azimuth`, default 270 degrees), and an illumination elevation (`elevation`, default 45 degrees) as arguments, and it returns a hillshade image. The examples showcase using elevation data, multiplying it by an exaggeration factor, then applying the function to produce the final hillshade image.\n"]]