ee.Terrain.products

شیب، جهت شیب و سایه ساده تپه را از DEM زمین محاسبه می‌کند.

انتظار می‌رود تصویری شامل یک باند ارتفاعی واحد، اندازه‌گیری شده بر حسب متر، یا اگر بیش از یک باند وجود داشته باشد، یکی به نام «elevation» باشد. باندهای خروجی به نام‌های «slope» و «aspect» اندازه‌گیری شده بر حسب درجه به علاوه یک باند خروجی بایت بدون علامت به نام «hillshade» برای تجسم اضافه می‌کند. تمام باندها و فراداده‌های دیگر از تصویر ورودی کپی می‌شوند. گرادیان محلی با استفاده از همسایه‌های ۴-متصل هر پیکسل محاسبه می‌شود، بنابراین مقادیر گمشده در اطراف لبه‌های یک تصویر رخ می‌دهند.

کاربرد بازگشت‌ها
ee.Terrain.products(input) تصویر
استدلال نوع جزئیات
input تصویر تصویر ارتفاع، بر حسب متر.

مثال‌ها

ویرایشگر کد (جاوااسکریپت)

// 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 slope, aspect, and hillshade simultaneously using products().
var nasademProducts = ee.Terrain.products(nasadem);

// Visualization parameters.
var elevationVis = {
  min: 0.0,
  max: 3000.0,
  palette:
      ['333399', '00a2e5', '55dd77', 'ffff99', 'aa926b', 'aa928d', 'ffffff']
};
var slopeVis = {min: 0.0, max: 60.0};
var aspectVis = {min: 0.0, max: 359.99};
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(nasademProducts.select('slope'), slopeVis, 'NASADEM Slope');
Map.addLayer(nasademProducts.select('aspect'), aspectVis, 'NASADEM Aspect');
Map.addLayer(
    nasademProducts.select('hillshade'), 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 slope, aspect, and hillshade simultaneously using products().
var glo30Products = ee.Terrain.products(glo30Image);

// Display layers.
Map.addLayer(glo30Image, elevationVis, 'GLO30 Elevation', false);
Map.addLayer(glo30Products.select('slope'), slopeVis, 'GLO30 Slope');
Map.addLayer(glo30Products.select('aspect'), aspectVis, 'GLO30 Aspect');
Map.addLayer(
    glo30Products.select('hillshade'), hillshadeVis, 'GLO30 Hillshade');

تنظیمات پایتون

برای اطلاعات بیشتر در مورد API پایتون و استفاده از geemap برای توسعه تعاملی، به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 slope, aspect, and hillshade simultaneously using products().
nasadem_products = ee.Terrain.products(nasadem)

# Visualization parameters.
elevation_vis = {
    'min': 0.0,
    'max': 3000.0,
    'palette': [
        '333399',
        '00a2e5',
        '55dd77',
        'ffff99',
        'aa926b',
        'aa928d',
        'ffffff',
    ],
}
slope_vis = {'min': 0.0, 'max': 60.0}
aspect_vis = {'min': 0.0, 'max': 359.99}
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_products.select('slope'), slope_vis, 'NASADEM Slope')
m.add_layer(nasadem_products.select('aspect'), aspect_vis, 'NASADEM Aspect')
m.add_layer(
    nasadem_products.select('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 slope, aspect, and hillshade simultaneously using products().
glo30_products = ee.Terrain.products(glo30_image)

# Display layers.
m.add_layer(glo30_image, elevation_vis, 'GLO30 Elevation', False)
m.add_layer(glo30_products.select('slope'), slope_vis, 'GLO30 Slope')
m.add_layer(glo30_products.select('aspect'), aspect_vis, 'GLO30 Aspect')
m.add_layer(
    glo30_products.select('hillshade'), hillshade_vis, 'GLO30 Hillshade'
)
m