Un Feature de Earth Engine se define como un GeoJSON Feature. Es un objeto con una propiedad de tipo Geometry y una propiedad de properties que almacena un diccionario de otras propiedades. Entonces, necesitamos un objeto Geometry y opcionalmente un diccionario con los atributos de ese Feature.
// La geometría
var poligono = ee.Geometry.Polygon(
[[[-63.33892822265625, -25.150878651548442],
[-63.33824157714844, -25.17791290009134],
[-63.31043243408203, -25.17760219565173],
[-63.31043243408203, -25.15025710411473]]]);
//La declaración del Feature:
var miFeature = ee.Feature(poligono,
{variable_1: 100,
variable_2: 'Hola'});
print(miFeature);
Map.addLayer(miFeature, {}, 'Mi Feature!');
Map.centerObject(miFeature, 12);
Los Features tienen las mismas funcionalidades para gestionar sus geometrías que los objetos Geometry. Además, poseen otros métodos setters & getters para el manejo de las propiedades.
var feature_ejemplo = ee.Feature(
ee.Geometry.Point([-64.4913, -25.2314]))
.set('Nombre', 'El Tunal')
.set('Area_ha', 3800);
// Recupero una propiedad del feature
var nombre = feature_ejemplo.get('Nombre');
print(nombre);
print(feature_ejemplo);
// Asigno una nueva propiedad
feature_ejemplo = feature_ejemplo.set('Altura_max', 41);
// Sobreescribo un nuevo diccionario
var newDict = {Nombre: 'Embalse El Tunal', Area_ha: 3290};
var feature_ejemplo = feature_ejemplo.set(newDict);
print(feature_ejemplo);
// Se muestran los resultados
Map.addLayer(feature_ejemplo, {'color':'CC0011'}, 'Ejemplo 2');
Los grupos de features relacionados se pueden combinar en una FeatureCollection (FC), para permitir operaciones adicionales en todo el conjunto tales como: filtrado, clasificación y renderizado. Además de simples features (geometría + propiedades), FeatureCollection también puede contener otras colecciones.
Podemos construir un FeatureCollection a partir de una lista de features, donde estos pueden tener o no el mismo tipo de geometría.
var features = [
ee.Feature(ee.Geometry.Point(-65.4027, -24.7154), {Localidad:'Vaqueros'}),
ee.Feature(ee.Geometry.Point(-65.0511, -24.6605), {Localidad:'Guemes'}),
ee.Feature(ee.Geometry.Point(-65.48832, -24.8961 ), {Localidad: 'Cerrillos'}),
ee.Feature(ee.Geometry.Point(-65.656, -24.9061), {Localidad: 'Campo Quijano'})];
var fc_desdeUnaLista = ee.FeatureCollection(features);
print(fc_desdeUnaLista);
Map.addLayer(fc_desdeUnaLista, {}, 'FC_Puntos');
Map.centerObject(fc_desdeUnaLista,8);
También podemos incorporar un FeatureCollection a partir de un Google Fusion Table. Google Fusion Tables (GFT) es un servicio de Google que permite manejar tablas. Esto habilita la importación de archivos vectoriales a la plataforma GEE a través de archivos vectoriales en formato KML.
Estas tablas las gestionamos desde Google Drive, Debemos conectar a la Aplicación Tablas Dinámicas y crear una tabla dinámica de Google.
Para la creación del Fusion Table debemos importar desde el sistema de archivos un documento .kml.
Para poder importar este archivo a GEE necesitamos el ID de la tabla, para ello vamos a File y seleccionamos About this table. Ahí encontraremos el identificador (Id).
Ej. 1BqbNEHsacJn5xWbOwznChvc77xJ66tutV3u7axq_
Para cargar una FeatureCollection desde una Fusion Table, proporcione al constructor (ee.FeatureCollection) el ID de tabla agregado a ft:. Por ejemplo:
var desdeFT = ee.FeatureCollection('ft:1BqbNEHsacJn5xWbOwznChvc77xJ66tutV3u7axq_');
print(desdeFT);
Map.addLayer(desdeFT, {}, 'Región Chaqueña');
Map.centerObject(desdeFT);
Es posible instanciar un FC utilizando tablas que tenemos almacenadas en un Assets. Para crear esta nueva tabla podemos utilizar un Shapefile o un .zip que contenga todos los archivos que componen el Shapefile. El tamaño máximo permitido es 10GB.
Secuencia de pantallas para cargar un shape file a GEE
La carga del archivo (upload) no es instantáneo y puede demorar algunos minutos dependiendo de la congestión de la plataforma y el tamaño que tenga el archivo. Podemos verificar el progreso desde la solapa Task: Podemos incluir este FC de dos formas. La primera es desde la solapa Assest. Importar el FC. Automáticamente se incorpora al código en la sección import.:
Secuencia de pantallas para cargar un shape file a GEE
La segunda forma es:
var segunda_forma = 'users/hernanelena/Santa_maria_este_cuenca';
var cuenca = ee.FeatureCollection(segunda_forma);
print(cuenca);
Map.addLayer(cuenca, {color:'fec44f'}, 'Cuenca');
Al igual que mostramos anteriormente como dibujar geometrías, es posible definir FeaturesCollection dibujando desde el mapa.
Secuencia de pantallas para generar una geometría en el editor de código
Segunda secuencia de pantallas para generar una geometría en el editor de código
Mapa Conceptual de la lección 4