ee.Image.changeProj

  • The Image.changeProj method adjusts the projection of an input image by moving each pixel from its original projection to the same coordinates in a new projection.

  • This method takes two arguments: srcProj (the original projection) and dstProj (the new projection).

  • The method returns an Image object with the adjusted projection.

Tweaks the projection of the input image, moving each pixel from its location in srcProj to the same coordinates in dstProj.

UsageReturns
Image.changeProj(srcProj, dstProj)Image
ArgumentTypeDetails
this: inputImage
srcProjProjectionThe original projection.
dstProjProjectionThe new projection.

Examples

Code Editor (JavaScript)

// A DEM image object.
var img = ee.Image('MERIT/DEM/v1_0_3');

// Construct a projection object from a WKT string or EPSG code, for example,
// the Robinson projection (https://epsg.io/54030).
var proj = ee.Projection(
  'PROJCS["World_Robinson",' +
      'GEOGCS["GCS_WGS_1984",' +
          'DATUM["WGS_1984",' +
              'SPHEROID["WGS_1984",6378137,298.257223563]],' +
          'PRIMEM["Greenwich",0],' +
          'UNIT["Degree",0.017453292519943295]],' +
      'PROJECTION["Robinson"],' +
      'UNIT["Meter",1]]'
)
// Optionally adjust projection scale; stretch layer larger in this case.
.scale(0.9, 0.9);

// "Paint" the image in the desired projection onto the projection of
// the map canvas ('EPSG:3857').
var imgProj = img.changeProj(proj, 'EPSG:3857');

// Add an overlay image to the map to cover the default base layers.
Map.setCenter(0, 0, 2);
Map.addLayer(ee.Image(1), {palette: 'grey'}, 'Grey background', false);

// Add the projection-tweaked image to the map.
Map.addLayer(imgProj, {min: 0, max: 3000}, 'DEM in Robinson projection');

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 DEM image object.
img = ee.Image('MERIT/DEM/v1_0_3')

# Construct a projection object from a WKT string or EPSG code, for example,
# the Robinson projection (https://epsg.io/54030).
proj = (
    ee.Projection(
        'PROJCS["World_Robinson",'
        + 'GEOGCS["GCS_WGS_1984",'
        + 'DATUM["WGS_1984",'
        + 'SPHEROID["WGS_1984",6378137,298.257223563]],'
        + 'PRIMEM["Greenwich",0],'
        + 'UNIT["Degree",0.017453292519943295]],'
        + 'PROJECTION["Robinson"],'
        + 'UNIT["Meter",1]]'
    )
    # Optionally adjust projection scale stretch layer larger in this case.
    .scale(0.9, 0.9)
)

# "Paint" the image in the desired projection onto the projection of
# the map canvas ('EPSG:3857').
img_proj = img.changeProj(proj, 'EPSG:3857')

# Add an overlay image to the map to cover the default base layers.
m = geemap.Map()
m.set_center(0, 0, 2)
m.add_layer(ee.Image(1), {'palette': 'grey'}, 'Grey background', False)

# Add the projection-tweaked image to the map.
m.add_layer(
    img_proj,
    {'min': 0, 'max': 3000},
    'DEM in Robinson projection',
)
m