Page Summary
-
This function calculates aspect in degrees from a terrain Digital Elevation Model (DEM).
-
Missing values will occur around the edges of an image because the local gradient is computed using 4-connected neighbors.
-
The function
ee.Terrain.aspect(input)takes an elevation image as input and returns an Image. -
The returned aspect units are in degrees, where 0 is North, 90 is East, 180 is South, and 270 is West.
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)
// 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 aspect: degrees, 0=N, 90=E, 180=S, 270=W. var nasademAspect = ee . Terrain . aspect ( nasadem ); // Visualization parameters. var elevationVis = { min : 0.0 , max : 3000.0 , palette : [ '333399' , '00a2e5' , '55dd77' , 'ffff99' , 'aa926b' , 'aa928d' , 'ffffff' ] }; var aspectVis = { min : 0.0 , max : 359.99 }; // Display layers. Map . setCenter ( - 121.603 , 47.702 , 9 ); Map . addLayer ( nasadem , elevationVis , 'NASADEM Elevation' , false ); Map . addLayer ( nasademAspect , aspectVis , 'NASADEM Aspect' ); // 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 aspect. var glo30Aspect = ee . Terrain . aspect ( glo30Image ); // Display layers. Map . addLayer ( glo30Image , elevationVis , 'GLO30 Elevation' , false ); Map . addLayer ( glo30Aspect , aspectVis , 'GLO30 Aspect' );
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 aspect: degrees, 0=N, 90=E, 180=S, 270=W. nasadem_aspect = ee . Terrain . aspect ( nasadem ) # Visualization parameters. elevation_vis = { 'min' : 0.0 , 'max' : 3000.0 , 'palette' : [ '333399' , '00a2e5' , '55dd77' , 'ffff99' , 'aa926b' , 'aa928d' , 'ffffff' , ], } aspect_vis = { 'min' : 0.0 , 'max' : 359.99 } # 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_aspect , aspect_vis , 'NASADEM Aspect' ) # 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 aspect. glo30_aspect = ee . Terrain . aspect ( glo30_image ) # Display layers. m . add_layer ( glo30_image , elevation_vis , 'GLO30 Elevation' , False ) m . add_layer ( glo30_aspect , aspect_vis , 'GLO30 Aspect' ) m

