# Descargar ortomosaicos landsat de zonas especificas desde Google Earth Engine

En esta entrada vamos a ver paso a paso como descargar ortomosaicos Landsat de sitios y fechas específicas.

1. Lo primero que tenemos que hacer es seleccionar la colección de imágenes, en este caso vamos a ocupar: *'USGS Landsat 8 Level 2'* e importe el *tier 1*, sus características pueden verse en este [sitio web](https://developers.google.com/earth-engine/datasets/catalog/landsat)
    

```
var l8sr = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2");
```

1. Ahora usando la herramienta **<mark>Drawing tools</mark>** vamos a crear un polígono del área donde necesitamos la imagen. Nótese que al crear un polígono este se guarda en la parte superior de nuestro script
    

![Creando un poligono](https://cdn.hashnode.com/res/hashnode/image/upload/v1695709075229/fcd5168e-c1a1-419e-9611-ebad6123eaf7.png align="center")

1. Vamos filtrar las imágenes de la colección usando tres características: *La geometría, intervalo de fechas específicas y el porcentaje de nubosidad máximo que deben tener las imágenes*. -La primer características es con respecto al polígono que creamos al inicio -La segunda característica ustedes los pueden definir, en este caso vamos seleccionar fechas del 2023. -En la tercera característica vamos filtrar imágenes que además cumplan con el criterio de una nubosidad menos a 10 %
    

```
var filtradaPorFechaYNubes = l8sr
    .filterBounds(geometry) //filtro de la colección de imagenes por geometria
    .filterDate('2023-01-01', '2023-08-31') //filtro por fechas
    .filterMetadata('CLOUD_COVER', 'less_than', 10); //filtro por nubosidad
```

1. Hasta este punto ya tenemos la colección de imágenes según nuestros requisitos, ahora lo que falta es generar un ortomosaicos, es decir, pasar de una colección de imágenes a una sola imagen. Por tanto, podemos usar la propiedad media (*ImageCollection.mean()*) o mediana (*ImageCollection.median()*). En el caso de la media: se Reduce una colección de imágenes calculando la media de todos los valores en cada píxel en la pila de todas las bandas coincidentes. Las bandas se emparejan por nombre.
    

```
var composite = filtradaPorFechaYNubes.mean();
```

1. Ahora podemos crear una visualización indicando las bandas que nos interesa mostrar y los rangos de valores. Posteriormente agregamos la capa *composite* (que creamos anteriormente) al mapa.
    

```
//creamos una variable visualizacion
var visParams1 = {bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 0, max: 30000};
Map.addLayer(composite, visParams1, 'composite');
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695709119509/844f8ea0-1466-47c1-9d53-aae06c45036b.png align="center")

1. Si deseamos cortar la visualización de acuerdo al borde de nuestro poligono podemos usar la propiedad *.clip()* directamente cuando agregamos el mapa. Ademas acercamos el mapa a nuestra geometria usando *Map.centerObject*
    

```
Map.addLayer(composite.clip(geometry), visParams1, 'compositeRecortado');
Map.centerObject(geometry,10)
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695709145301/38c520c4-7cc1-447e-8955-5cda6d03b002.png align="center")

1. Una forma para exportar nuestro ortomosaico (composite) fuera de Google Earth Engine es mediante el siguiente código, donde especificamos la colección de imágenes, el folder, la región o borde, escala de salida y el sistema de referencia (si no lo conocen busquen en QGIS).
    

```
Export.image.toDrive({
  image: composite.select('SR_B4', 'SR_B3', 'SR_B2'),
  description: 'img',
  folder: 'CursoGEE',
  region: geometry,
  scale: 30,
  crs: 'EPSG:4326',
  formatOptions: {
    cloudOptimized: true
  }
});
```

El codigo completo lo pueden encontrar [<mark>aquí</mark>](https://code.earthengine.google.com/5581bd1c93469907bf0805ace80dc9c5)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695709162271/a2269bef-cb32-4974-b21f-63e3ec38355d.png align="center")

Dejanos tus comentarios y dudas.
