Announcement: All noncommercial projects registered to use Earth Engine before
April 15, 2025 must
verify noncommercial eligibility to maintain Earth Engine access.
ee.Terrain.aspect
Stay organized with collections
Save and categorize content based on your preferences.
Calculates aspect in degrees from a terrain DEM.
The local gradient is computed using the 4-connected neighbors of each pixel, so missing values will occur around the edges of an image.
Usage | Returns | ee.Terrain.aspect(input) | Image |
Argument | Type | Details | input | Image | An elevation image, in meters. |
Examples
Code Editor (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 setup
See the
Python Environment page for information on the Python API and using
geemap
for interactive development.
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
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[[["\u003cp\u003eCalculates the direction a terrain faces (aspect) in degrees, ranging from 0 to 360.\u003c/p\u003e\n"],["\u003cp\u003eUses a digital elevation model (DEM) as input to determine aspect.\u003c/p\u003e\n"],["\u003cp\u003eEmploys a 4-connected neighborhood method, leading to potential missing values around image edges.\u003c/p\u003e\n"],["\u003cp\u003eOutputs an image where pixel values represent aspect in degrees (0=North, 90=East, 180=South, 270=West).\u003c/p\u003e\n"]]],[],null,["# ee.Terrain.aspect\n\nCalculates aspect in degrees from a terrain DEM.\n\n\u003cbr /\u003e\n\nThe 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.aspect(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```"]]