Visão geral do recurso

Um Feature no Earth Engine é definido como um elemento GeoJSON. Especificamente, um Feature é um objeto com uma propriedade geometry que armazena um objeto Geometry (ou nulo) e uma propriedade properties que armazena um dicionário de outras propriedades.

Como criar objetos de recursos

Para criar um Feature, forneça ao construtor um Geometry e, opcionalmente, um dicionário de outras propriedades. Exemplo:

Editor de código (JavaScript)

// 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'});

Configuração do Python

Consulte a página Ambiente Python para informações sobre a API Python e o uso de geemap para desenvolvimento interativo.

import ee
import geemap.core as geemap

Colab (Python)

# 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'})

Assim como um Geometry, um Feature pode ser impresso ou adicionado ao mapa para inspeção e visualização:

Editor de código (JavaScript)

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

Configuração do Python

Consulte a página Ambiente Python para informações sobre a API Python e o uso de geemap para desenvolvimento interativo.

import ee
import geemap.core as geemap

Colab (Python)

display(poly_feature)
m = geemap.Map()
m.add_layer(poly_feature, {}, 'feature')
display(m)

Um Feature não precisa ter um Geometry e pode simplesmente agrupar um dicionário de propriedades. Exemplo:

Editor de código (JavaScript)

// 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);

Configuração do Python

Consulte a página Ambiente Python para informações sobre a API Python e o uso de geemap para desenvolvimento interativo.

import ee
import geemap.core as geemap

Colab (Python)

# 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)

Neste exemplo, o dicionário fornecido para Feature contém um valor computado. Criar recursos dessa maneira é útil para exportar computações de longa duração com um resultado Dictionary (por exemplo, image.reduceRegion()). Consulte os guias FeatureCollections e Importação de dados de tabela ou Exportação para mais detalhes.

Cada Feature tem um Geometry principal armazenado na propriedade geometry. Outras geometrias podem ser armazenadas em outras propriedades. Os métodos Geometry, como interseção e buffer, também existem em Feature como uma conveniência para receber o Geometry principal, aplicar a operação e definir o resultado como o novo Geometry principal. O resultado vai manter todas as outras propriedades do Feature em que o método é chamado. Há também métodos para receber e definir as propriedades não geométricas do Feature. Exemplo:

Editor de código (JavaScript)

// 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);

Configuração do Python

Consulte a página Ambiente Python para informações sobre a API Python e o uso de geemap para desenvolvimento interativo.

import ee
import geemap.core as geemap

Colab (Python)

# 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)

No exemplo anterior, as propriedades podem ser definidas com um par de chave-valor ou com um dicionário. Além disso, feature.set() substitui as propriedades existentes.