# Descargar ortomosaicos Sentinel-2 de zonas especificas desde Google Earth Engine

En esta entrada vamos a ver paso a paso como descargar ortomosaicos Sentinel-2 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: \*'\_\*Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-2A\_, sus características pueden verse en este [sitio web](https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED)
    

```
var l8sr = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED");
```

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 20 %*
    

```
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('CLOUDY_PIXEL_PERCENTAGE', 'less_than', 20); //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: ['B4', 'B3', 'B2'], min: 0, max: 5000};
Map.addLayer(composite, visParams1, 'composite');
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695710032616/70ce49b9-f2a8-4c86-b6de-636e1cc4211a.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/v1695710012027/0a0232ff-b98e-42c4-b6d9-ac16ac678140.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('B4', 'B3', '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/8e2e03a68a291379d10f7def8bb8c6e7)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695710325647/6c7ccd89-dd20-48cc-b3a3-693307a2ffa9.png align="center")

Dejanos tus comentarios y dudas.
