Présentation de la fonctionnalité

Dans Earth Engine, un Feature est défini comme un élément géographique GeoJSON. Plus précisément, un Feature est un objet avec une propriété geometry stockant un objet Geometry (ou NULL) et une propriété properties stockant un dictionnaire d'autres propriétés.

Créer des objets Feature

Pour créer un Feature, fournissez au constructeur un Geometry et (facultatif) un dictionnaire d'autres propriétés. Exemple :

Éditeur de code (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'});

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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

Comme pour un Geometry, un Feature peut être imprimé ou ajouté à la carte pour l'inspection et la visualisation:

Éditeur de code (JavaScript)

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

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

import ee
import geemap.core as geemap

Colab (Python)

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

Un Feature n'a pas besoin d'un Geometry et peut simplement encapsuler un dictionnaire de propriétés. Exemple :

Éditeur de code (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);

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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)

Dans cet exemple, notez que le dictionnaire fourni à Feature contient une valeur calculée. Créer des éléments géographiques de cette manière est utile pour exporter des calculs de longue durée avec un résultat Dictionary (par exemple, image.reduceRegion()). Pour en savoir plus, consultez les guides FeatureCollections et Importer des données de table ou Exporter.

Chaque Feature possède un Geometry principal stocké dans la propriété geometry. D'autres géométries peuvent être stockées dans d'autres propriétés. Les méthodes Geometry telles que l'intersection et le tampon existent également sur Feature pour obtenir facilement le Geometry principal, appliquer l'opération et définir le résultat comme nouveau Geometry principal. Le résultat conservera toutes les autres propriétés de l'Feature sur laquelle la méthode est appelée. Il existe également des méthodes permettant d'obtenir et de définir les propriétés non géométriques de Feature. Exemple :

Éditeur de code (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);

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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)

Dans l'exemple précédent, notez que les propriétés peuvent être définies à l'aide d'une paire clé-valeur ou d'un dictionnaire. Notez également que feature.set() écrase les propriétés existantes.