Trabajar con shapefiles en Google Earth Engine
Aprende a filtrar y visualizar correctamente shapefiles en Google Earth Engine con filter y filterMetadata.
Introducción #
En este taller aprenderemos a trabajar con shapefiles en Google Earth Engine (GEE). Los shapefiles son conjuntos de entidades geoespaciales que pueden usarse para análisis y visualización en GEE. Exploraremos cómo filtrarlos, visualizarlos en un mapa y realizar análisis espaciales básicos.
Objetivos #
- Aprender a filtrar shapefiles utilizando
filteryfilterMetadata. - Visualizar shapefiles en un mapa interactivo.
- Comprender cómo realizar análisis espaciales básicos utilizando las Feature Collections.
Shapefiles en Google Earth Engine #
Los shapefiles en GEE son conjuntos de entidades geoespaciales que representan objetos del mundo real, como países, ciudades, cuerpos de agua o parcelas agrícolas. Estas colecciones están compuestas por características geométricas y atributos asociados que describen cada entidad de manera única.
- Cada elemento de una Feature Collection representa una entidad, como un punto, una línea o un polígono, con una localización geográfica específica. A eso lo llamamos entidad geoespacial.
- Además de su geometría, cada entidad puede tener atributos numéricos, categóricos o de texto, desde la población de una ciudad hasta el nombre de un país.
- Las colecciones pueden contener desde unas pocas hasta millones de entidades, así que escalan muy bien para análisis grandes.
Función filter #
La función filter permite filtrar una Feature Collection utilizando una condición específica. Su sintaxis general es la siguiente.
var nuevaColeccion = featureCollection.filter(ee.Filter.operador(atributo, valor));
featureCollectiones la colección que queremos filtrar.atributoes el nombre del campo sobre el que aplicamos la condición.operadordefine el tipo de comparación.valores aquello con lo que comparamos el atributo.
Estos son los operadores que más vas a usar.
| Operador | Selecciona entidades donde el atributo… |
|---|---|
| ee.Filter.eq | es igual a un valor |
| ee.Filter.gt | es mayor que un valor |
| ee.Filter.lt | es menor que un valor |
Función filterMetadata #
La función filterMetadata permite filtrar una Feature Collection usando los metadatos asociados a las entidades. Su sintaxis general es la siguiente.
var nuevaColeccion = featureCollection.filterMetadata(nombreMetadato, operador, valor);
featureCollectiones la colección que queremos filtrar.nombreMetadatoes el nombre del metadato que usamos para filtrar.operadordefine el tipo de comparación.valores aquello con lo que comparamos el metadato.
Estos son los operadores que más vas a usar.
| Operador | Selecciona entidades donde el metadato… |
|---|---|
| "equals" | es igual a un valor |
| "greater_than" | es mayor que un valor |
| "less_than" | es menor que un valor |
Recursos #
- Shapefiles de países (FAO GAUL nivel 0)
- Shapefiles de ciudades (FAO GAUL nivel 2)
- Más límites administrativos en el catálogo de Earth Engine
Paso 1: Filtrar con filter #
Con filter nos quedamos solo con Colombia dentro de la colección de países.
// Cargar la colección de países var Countries = ee.FeatureCollection("FAO/GAUL/2015/level0"); // Filtrar la colección para obtener solo Colombia var Colombia = Countries.filter(ee.Filter.eq("ADM0_NAME", "Colombia"));
La condición de igualdad se aplica al atributo ADM0_NAME (nombre del país), que debe ser igual a "Colombia", y el resultado es una nueva colección que contiene solo ese país.
Paso 2: Filtrar con filterMetadata #
Con filterMetadata hacemos lo mismo con la colección de ciudades para quedarnos con Bogotá.
// Cargar la colección de ciudades var cities = ee.FeatureCollection("FAO/GAUL_SIMPLIFIED_500m/2015/level2"); // Filtrar la colección para obtener solo Bogotá var Bogota = cities.filterMetadata("ADM2_NAME", "equals", "Santafe De Bogota D.c.");
La condición se aplica al metadato ADM2_NAME (nombre de la ciudad), que debe ser igual a "Santafe De Bogota D.c.", así que el resultado contiene solo Bogotá.
Paso 3: Visualizar en el mapa #
Una vez filtrados, mostramos los shapefiles en el mapa con Map.addLayer, cuya sintaxis general es esta.
Map.addLayer(eeObject, visParams, name, shown);
eeObjectes el objeto que queremos ver, ya sea una Image, una FeatureCollection, una Geometry u otro.visParamsreúne los parámetros de visualización, como el color, la opacidad o la escala.namees el nombre que aparece en el panel de capas.shownvaletrueofalsee indica si la capa se ve al cargar el mapa.
Así queda aplicado a nuestras capas.
// Centrar el mapa en Colombia Map.centerObject(Colombia, 5); // Añadir los shapefiles al mapa Map.addLayer(Colombia, {color: "red"}, "Colombia", true); // Añadir Bogotá al mapa Map.addLayer(Bogota, {color: "white"}, "Bogotá", true);

Código completo #
Este es el script completo del tutorial. Cópialo, pégalo en el Code Editor y presiona Run.
// Colección de países (FAO GAUL nivel 0) --> https://developers.google.com/earth-engine/datasets/catalog/FAO_GAUL_2015_level0 // Colección de ciudades (FAO GAUL nivel 2) --> https://developers.google.com/earth-engine/datasets/catalog/FAO_GAUL_2015_level2 // Más límites administrativos: https://developers.google.com/earth-engine/datasets/tags/borders /////////////////////////////////////////////////////////////////////////////////// // PROCESO /////////////////////////////////////////////////////////////////////////////////// // 1 --> Filtrar colecciones con filter() // 1.1 --> Visualizar las colecciones en el mapa // 2 --> Filtrar colecciones con filterMetadata() // 2.1 --> Visualizar las colecciones en el mapa //throw("stop"); /////////////////////////////////////////////////////////////////////////////////// // 1 --> Filtrar colecciones con filter() /////////////////////////////////////////////////////////////////////////////////// //// Cargar la colección de países var Countries = ee.FeatureCollection("FAO/GAUL/2015/level0"); print("paises: ", Countries.limit(10)); var Colombia=Countries.filter(ee.Filter.eq("ADM0_NAME","Colombia")); /////////////////////////////////////////////////////////////////////////////////// // 2 --> Visualizar las colecciones en el mapa /////////////////////////////////////////////////////////////////////////////////// Map.centerObject(Colombia,5); Map.addLayer(Colombia,{color:"red"},"Colombia", true); /////////////////////////////////////////////////////////////////////////////////// // 1 --> Filtrar colecciones con filterMetadata() /////////////////////////////////////////////////////////////////////////////////// //// Cargar la colección de ciudades var cities =ee.FeatureCollection("FAO/GAUL_SIMPLIFIED_500m/2015/level2"); print("Ciudades: ", cities.limit(10)); var Bogota=cities.filterMetadata("ADM2_NAME", "equals", "Santafe De Bogota D.c."); /////////////////////////////////////////////////////////////////////////////////// // 2 --> Visualizar las colecciones en el mapa /////////////////////////////////////////////////////////////////////////////////// Map.addLayer(Bogota,{color:"white"},"Bogotá", true);
Conclusiones #
En este taller aprendimos a trabajar con shapefiles en Google Earth Engine, desde filtrarlos hasta verlos en un mapa interactivo y hacer análisis básicos. Estas habilidades son fundamentales para cualquier proyecto de análisis espacial en GEE.
