Stay organized with collectionsSave and categorize content based on your preferences.
Returns an image containing all bands copied from the first input and selected bands from the second input, optionally overwriting bands in the first image with the same name. The new image has the metadata and footprint from the first input image.
Usage
Returns
Image.addBands(srcImg,names,overwrite)
Image
Argument
Type
Details
this:dstImg
Image
An image into which to copy bands.
srcImg
Image
An image containing bands to copy.
names
List, default: null
Optional list of band names to copy. If names is omitted, all bands from srcImg will be copied over.
overwrite
Boolean, default: false
If true, bands from `srcImg` will override bands with the same names in `dstImg`. Otherwise the new band will be renamed with a numerical suffix (`foo` to `foo_1` unless `foo_1` exists, then `foo_2` unless it exists, etc).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."],[[["\u003cp\u003e\u003ccode\u003eImage.addBands()\u003c/code\u003e returns a new image with bands copied from a source image added to a destination image.\u003c/p\u003e\n"],["\u003cp\u003eYou can select specific bands to copy using the \u003ccode\u003enames\u003c/code\u003e parameter, or copy all bands by default.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eoverwrite\u003c/code\u003e parameter controls whether bands with the same name in the destination image are replaced or renamed.\u003c/p\u003e\n"],["\u003cp\u003eThe new image retains the metadata and footprint of the destination image.\u003c/p\u003e\n"]]],["The `addBands` function combines bands from two images. It copies all bands from the first image and specified or all bands from the second. The user can select specific bands from the second image to add. If band names overlap, the `overwrite` parameter determines if bands from the second image replace those in the first; otherwise, they're renamed with a numerical suffix. The resulting image retains the first image's metadata and footprint.\n"],null,["# ee.Image.addBands\n\nReturns an image containing all bands copied from the first input and selected bands from the second input, optionally overwriting bands in the first image with the same name. The new image has the metadata and footprint from the first input image.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|-----------------------------------------------------|---------|\n| Image.addBands`(srcImg, `*names* `, `*overwrite*`)` | Image |\n\n| Argument | Type | Details |\n|----------------|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| this: `dstImg` | Image | An image into which to copy bands. |\n| `srcImg` | Image | An image containing bands to copy. |\n| `names` | List, default: null | Optional list of band names to copy. If names is omitted, all bands from srcImg will be copied over. |\n| `overwrite` | Boolean, default: false | If true, bands from \\`srcImg\\` will override bands with the same names in \\`dstImg\\`. Otherwise the new band will be renamed with a numerical suffix (\\`foo\\` to \\`foo_1\\` unless \\`foo_1\\` exists, then \\`foo_2\\` unless it exists, etc). |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// A Sentinel-2 surface reflectance image.\nvar img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');\nprint('Original image', img);\n\n// Scale reflectance bands and overwrite the original bands.\nvar reflBands = img.select('B.*').divide(10000);\nimg = img.addBands({\n srcImg: reflBands,\n overwrite: true\n});\n\n// Compute and add a single band (NDVI).\nvar ndvi = img.normalizedDifference(['B8', 'B4']).rename('NDVI');\nimg = img.addBands(ndvi);\n\n// Compute and add multiple bands (NDWI and NBR).\nvar ndwi = img.normalizedDifference(['B3', 'B8']).rename('NDWI');\nvar nbr = img.normalizedDifference(['B8', 'B12']).rename('NBR');\nvar newBands = ee.Image([ndwi, nbr]);\nimg = img.addBands(newBands);\n\nprint('Image with added/modified bands', img);\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 Sentinel-2 surface reflectance image.\nimg = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')\nprint('Original image:', img.getInfo())\n\n# Scale reflectance bands and overwrite the original bands.\nrefl_bands = img.select('B.*').divide(10000)\nimg = img.addBands(srcImg=refl_bands, overwrite=True)\n\n# Compute and add a single band (NDVI).\nndvi = img.normalizedDifference(['B8', 'B4']).rename('NDVI')\nimg = img.addBands(ndvi)\n\n# Compute and add multiple bands (NDWI and NBR).\nndwi = img.normalizedDifference(['B3', 'B8']).rename('NDWI')\nnbr = img.normalizedDifference(['B8', 'B12']).rename('NBR')\nnew_bands = ee.Image([ndwi, nbr])\nimg = img.addBands(new_bands)\n\nprint('Image with added/modified bands:', img.getInfo())\n```"]]