Eine Feature
in Earth Engine wird als GeoJSON-Element definiert. Ein Feature
ist ein Objekt mit der Property geometry
, in der ein Geometry
-Objekt (oder „null“) gespeichert ist, und der Property properties
, in der ein Wörterbuch mit anderen Properties gespeichert ist.
Feature-Objekte erstellen
Wenn Sie eine Feature
erstellen möchten, übergeben Sie dem Konstruktor einen Geometry
und (optional) ein Wörterbuch mit anderen Properties. Beispiel:
Code-Editor (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'})
Wie bei einer Geometry
kann auch eine Feature
ausgedruckt oder der Karte zur Prüfung und Visualisierung hinzugefügt werden:
Code-Editor (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)
Ein Feature
muss kein Geometry
haben und kann einfach ein Wörterbuch mit Properties umschließen. Beispiel:
Code-Editor (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)
In diesem Beispiel enthält das für Feature
bereitgestellte Dictionary einen berechneten Wert. Auf diese Weise erstellte Elemente sind nützlich, um langlaufende Berechnungen mit einem Dictionary
-Ergebnis (z.B. image.reduceRegion()
) zu exportieren. Weitere Informationen finden Sie in den Anleitungen zu FeatureCollections, zum Importieren von Tabellendaten oder zum Exportieren.
Jede Feature
hat eine primäre Geometry
, die in der Property geometry
gespeichert ist. Zusätzliche Geometrien können in anderen Properties gespeichert werden.
Geometry
-Methoden wie „Schnittmenge“ und „Abstand“ sind auch für Feature
verfügbar. So können Sie die primäre Geometry
abrufen, den Vorgang anwenden und das Ergebnis als neue primäre Geometry
festlegen.
Das Ergebnis behält alle anderen Eigenschaften der Feature
bei, auf die die Methode aufgerufen wird. Es gibt auch Methoden zum Abrufen und Festlegen der nicht geometrischen Eigenschaften von Feature
. Beispiel:
Code-Editor (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)
Beachten Sie im vorherigen Beispiel, dass Properties entweder mit einem Schlüssel/Wert-Paar oder mit einem Dictionary festgelegt werden können. Beachten Sie außerdem, dass vorhandene Properties durch feature.set()
überschrieben werden.