Omówienie funkcji

Feature w Earth Engine jest zdefiniowany jako element GeoJSON. W szczególności Feature to obiekt z właściwością geometry przechowującą obiekt Geometry (lub null) oraz z właściwością properties przechowującą słownik innych właściwości.

Tworzenie obiektów Feature

Aby utworzyć obiekt Feature, prześlij do konstruktora obiektu Geometry i (opcjonalnie) słownik innych właściwości. Na przykład:

Edytor kodu (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'});

Konfiguracja Pythona

Informacje o interfejsie Python API i o używaniu pakietu geemap do programowania interaktywnego znajdziesz na stronie Python Environment.

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

Podobnie jak w przypadku Geometry, Feature można wydrukować lub dodać do mapy w celu sprawdzenia i wizualizacji:

Edytor kodu (JavaScript)

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

Konfiguracja Pythona

Informacje o interfejsie Python API i o używaniu pakietu geemap do programowania interaktywnego znajdziesz na stronie Python Environment.

import ee
import geemap.core as geemap

Colab (Python)

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

Obiekt Feature nie musi mieć elementu Geometry i może po prostu zawierać słownik właściwości. Na przykład:

Edytor kodu (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);

Konfiguracja Pythona

Informacje o interfejsie Python API i o używaniu pakietu geemap do programowania interaktywnego znajdziesz na stronie Python Environment.

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)

Zwróć uwagę, że w tym przykładzie słownik podany do parametru Feature zawiera wartość obliczoną. Tworzenie funkcji w ten sposób jest przydatne do eksportowania długotrwałych obliczeń z wynikiem Dictionary (np. image.reduceRegion()). Więcej informacji znajdziesz w artykułach FeatureCollectionsImportowanie danych tabeli lub w przewodniku Eksportowanie.

Każdy element Feature ma jeden podstawowy element Geometry przechowywany w właściwości geometry. Dodatkowe geometrie mogą być przechowywane w innych właściwościach. Metody Geometry, takie jak intersection i buffer, są też dostępne w Feature, aby ułatwić uzyskiwanie podstawowej Geometry, stosowanie operacji i ustawianie wyniku jako nowej podstawowej Geometry. Wynik zachowa wszystkie inne właściwości obiektu Feature, w którym wywołano metodę. Istnieją też metody pobierania i ustawiania właściwości innych niż geometria obiektu Feature. Na przykład:

Edytor kodu (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);

Konfiguracja Pythona

Informacje o interfejsie Python API i o używaniu pakietu geemap do programowania interaktywnego znajdziesz na stronie Python Environment.

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)

W poprzednim przykładzie właściwości można ustawić za pomocą pary klucz-wartość lub słownika. Pamiętaj też, że feature.set() zastępuje istniejące właściwości.