Descripción general de las funciones

Un Feature en Earth Engine se define como un componente GeoJSON. Específicamente, un Feature es un objeto con una propiedad geometry que almacena un objeto Geometry (o nulo) y una propiedad properties que almacena un diccionario de otras propiedades.

Cómo crear objetos Feature

Para crear un Feature, proporciona al constructor un Geometry y, de manera opcional, un diccionario de otras propiedades. Por ejemplo:

// Create an ee.Geometry.
var polygon = ee.Geometry.Polygon([
  [[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]
]);

// Create a Feature from the Geometry.
var polyFeature = ee.Feature(polygon, {foo: 42, bar: 'tart'});

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap
# Create an ee.Geometry.
polygon = ee.Geometry.Polygon(
    [[[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]]
)

# Create a Feature from the Geometry.
poly_feature = ee.Feature(polygon, {'foo': 42, 'bar': 'tart'})

Al igual que con un Geometry, se puede imprimir un Feature o agregarlo al mapa para su inspección y visualización:

print(polyFeature);
Map.addLayer(polyFeature, {}, 'feature');

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap
display(poly_feature)
m = geemap.Map()
m.add_layer(poly_feature, {}, 'feature')
display(m)

Un Feature no necesita tener un Geometry y puede unir un diccionario de propiedades. Por ejemplo:

// Create a dictionary of properties, some of which may be computed values.
var dict = {foo: ee.Number(8).add(88), bar: 'nihao'};

// Create a null geometry feature with the dictionary of properties.
var nowhereFeature = ee.Feature(null, dict);

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap
# Create a dictionary of properties, some of which may be computed values.
dic = {'foo': ee.Number(8).add(88), 'bar': 'nihao'}

# Create a null geometry feature with the dictionary of properties.
nowhere_feature = ee.Feature(None, dic)

En este ejemplo, ten en cuenta que el diccionario proporcionado a Feature contiene un valor calculado. Crear componentes de esta manera es útil para exportar cálculos de larga duración con un resultado Dictionary (p.ej., image.reduceRegion()). Consulta las guías FeatureCollections y Importing Table Data o Exporting para obtener más información.

Cada Feature tiene un Geometry principal almacenado en la propiedad geometry. Las geometrías adicionales se pueden almacenar en otras propiedades. Los métodos Geometry, como intersección y búfer, también existen en Feature como una comodidad para obtener el Geometry principal, aplicar la operación y establecer el resultado como el nuevo Geometry principal. El resultado retendrá todas las demás propiedades de Feature a las que se llama. También hay métodos para obtener y configurar las propiedades no geométricas de Feature. Por ejemplo:

// Make a feature and set some properties.
var feature = ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))
  .set('genus', 'Sequoia').set('species', 'sempervirens');

// Get a property from the feature.
var species = feature.get('species');
print(species);

// Set a new property.
feature = feature.set('presence', 1);

// Overwrite the old properties with a new dictionary.
var newDict = {genus: 'Brachyramphus', species: 'marmoratus'};
var feature = feature.set(newDict);

// Check the result.
print(feature);

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap
# Make a feature and set some properties.
feature = (
    ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))
    .set('genus', 'Sequoia')
    .set('species', 'sempervirens')
)

# Get a property from the feature.
species = feature.get('species')
display(species)

# Set a new property.
feature = feature.set('presence', 1)

# Overwrite the old properties with a new dictionary.
new_dic = {'genus': 'Brachyramphus', 'species': 'marmoratus'}
feature = feature.set(new_dic)

# Check the result.
display(feature)

En el ejemplo anterior, ten en cuenta que las propiedades se pueden establecer con un par clave-valor o con un diccionario. También ten en cuenta que feature.set() reemplaza las propiedades existentes.