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