Eine FeatureView
ist eine beschleunigte, nur zur Ansicht bestimmte Darstellung einer FeatureCollection
.
Im Gegensatz zu einer FeatureCollection
, bei der Rasterkartenkacheln „on the fly“ generiert werden, werden FeatureView
-Rasterkacheln vorab berechnet, um ein schnelles Rendering zu ermöglichen.
FeatureView
-Assets ermöglichen nicht nur ein schnelleres Rendering, sondern auch eine zoomebenenabhängige Feature-Elimination. Das hat zur Folge, dass Datensätze mit vielen Daten bei einem herangezoomten Bild unvollständig erscheinen (kleine Elemente werden nicht dargestellt). Wenn Sie heranzoomen, werden mehr Daten sichtbar, was die Ästhetik der Karte bei niedrigeren Zoomstufen verbessern kann. Das Verhalten beim Ausdünnen eines Datensatzes wird durch mehrere Optimierungsparameter gesteuert, die beim Exportieren eines FeatureCollection
-Assets in ein FeatureView
-Asset festgelegt werden.
Da FeatureView
-Objekte nur zur Ansicht verfügbar sind, können sie nicht in Berechnungen oder Ausdrücke einbezogen werden. Sie können jedoch im JavaScript-Code-Editor und in Earth Engine-Apps als FeatureViewLayer
visualisiert und geprüft werden. Sie können auch in Google Maps API-Anwendungen eingebunden werden.
FeatureView erstellen
Zum Erstellen einer FeatureView
müssen Sie eine FeatureCollection
mit Ihren Daten vorbereiten, die Funktion Export.table.toFeatureView
aufrufen und die Exportaufgabe starten. Im folgenden Beispiel wird gezeigt, wie Sie Ansichten des WDPA-Polygon-Datasets exportieren.
Verwenden Sie in Ihrer eigenen Anwendung einen FeatureCollection
-Datensatz, der im Earth Engine Data Catalog archiviert ist, oder erstellen Sie einen eigenen, indem Sie einen Vektordatensatz als Earth Engine-Asset hochladen.
Ein FeatureView
kann mit mehreren Parametern in der Funktion Export.table.toFeatureView
angepasst werden.
maxFeaturesPerTile
: Gibt die maximale Anzahl von Elementen an, die in einer Kartenkachel bei einer bestimmten Zoomstufe angezeigt werden. Mit diesem Parameter können Sie die Geschwindigkeit oder die Funktionsdichte optimieren.thinningStrategy
: Damit wird festgelegt, ob die Feature-Elimination für eine bestimmte Kachel und Zoomebene für eine höhere Dichte oder für eine einheitliche Dichte über alle Kacheln hinweg optimiert werden soll. Hinweis: Die Optimierung für eine höhere Dichte kann dazu führen, dass sich Kachelgrenzen abzeichnen, da die Featuredichte pro Kachel unabhängig ist.thinningRanking
: Hiermit wird die Priorität für die Funktionseinsparung definiert. Sie können die Ausdünnung beispielsweise so optimieren, dass eine bestimmte Merkmal-Property mit hohen Werten beibehalten wird. Wenn Sie also herauszoomen, werden zuerst Elemente mit einem niedrigen Wert für die ausgewählte Property entfernt, sodass die wichtigsten Elemente (gemäß Ihren Regeln) sichtbar bleiben.zOrderRanking
: Hiermit wird die Z-Reihenfolge (Stapelreihenfolge) der auf der Karte angezeigten Features definiert. Mit diesem Parameter wird festgelegt, wie sich überlappende Elemente darstellen lassen. Sie können Prioritätsregeln basierend auf Elementeigenschaften, Geometrietyp und Zoomstufe festlegen. Sie können beispielsweise Features mit hohen Werten einer bestimmten Property priorisieren, damit sie sich überschneidende Features mit niedrigen Werten überlagern.
Weitere Informationen zu diesen Parametern und den zulässigen Argumenten finden Sie auf der Seite FeatureView
-Optimierung.
Im folgenden Beispiel führen die angegebenen Argumente für diese Parameter zu einer FeatureView
, bei der die maximale Anzahl von Elementen pro Kachel bei einer bestimmten Zoomstufe 1.500 beträgt, die Dichte der Elemente pro Kachel unabhängig ist und das Maximum von 1.500 erreichen darf, kleinere Polygone zuerst ausgedünnt werden und kleinere Polygone über größeren liegen.
Code-Editor (JavaScript)
// Import the WDPA feature collection. var wdpa = ee.FeatureCollection('WCMC/WDPA/current/polygons'); // Export the WDPA FeatureCollection as a FeatureView asset. Export.table.toFeatureView({ collection: wdpa, assetId: 'wdpa-featureview-demo', description: 'wdpa-featureview-demo', maxFeaturesPerTile: 1500, thinningStrategy: 'HIGHER_DENSITY', thinningRanking: ['REP_AREA DESC'], zOrderRanking: ['REP_AREA DESC'], });
Wenn Sie das Code-Snippet oben im Code-Editor ausführen, wird eine Exportaufgabe generiert. Führen Sie die Aufgabe aus, um den Export zu starten.
Asset-Standorte für FeatureView
FeatureView
-Assets finden Sie im öffentlichen Data Catalog und unter Ihren persönlichen Assets auf dem Tab Assets im Code-Editor. Alle relevanten FeatureCollection
-Assets im Data Catalog haben ein zugehöriges FeatureView
-Asset mit allgemein anwendbaren Datenaufnahmeeinstellungen. Dein persönliches Asset-Archiv enthält alle von dir erstellten FeatureView
-Assets.
FeatureView-Assets in Scripts importieren
FeatureView
-Assets können über Schaltflächen in den Asset-Dialogfeldern des Code-Editors und über persönliche Asset-Einträge in Code-Editor-Scripts importiert werden. Dazu muss dem ui.Map.FeatureViewLayer
-Konstruktor eine FeatureView
-Asset-ID als Eingabe übergeben werden.
Data Catalog-Asset-Dialogfeld
In den Dialogfeldern für Data Catalog-Tabellen-Assets, auf die über die Suchleiste des Code-Editors zugegriffen wird, befindet sich rechts unten die Schaltfläche Importieren mit einem Drop-down-Menü. Wählen Sie im Drop-down-Menü die Option „FeatureView importieren“ aus. Das Asset wird oben im Script im Abschnitt Imports aufgeführt.
Dialogfeld für persönliches Asset
In den Dialogfeldern für persönliche FeatureView
-Assets, auf die du über den Tab Assets im Code-Editor zugreifen kannst, befindet sich oben rechts die Schaltfläche Importieren.
Wenn du die Schaltfläche aktivierst, wird das Asset oben im Script im Abschnitt Importe aufgeführt. Du kannst auch die Import-Taste (Pfeil nach rechts) verwenden, die angezeigt wird, wenn du den Mauszeiger auf ein Asset auf dem Tab Assets bewegst.
Asset-ID
FeatureView
-Assets haben eine ID, die als Eingabe für den ui.Map.FeatureViewLayer
-Konstruktor angegeben werden kann. So erhalten Sie Zugriff auf das Asset in Ihrem Script. Vordefinierte Import-Snippets finden Sie auf den Asset-Seiten des Data Catalogs und in den Asset-Dialogfeldern im Code-Editor.
Abbildung 1: Data Catalog-Asset-Dialogfeld mit hervorgehobenen FeatureView
Importmethoden
FeatureView-Metadaten
Informationen zu FeatureView
und Metadaten sind in den Asset-Dialogfeldern verfügbar, die oben im Abschnitt Asset-Standorte für Feature-Ansicht erwähnt wurden. Zusätzlich zu der Beschreibung und den Properties, die mit der Quelle FeatureCollection
gemeinsam genutzt werden können, gibt es fünf Properties, die nur für FeatureView
gelten. Dazu gehören die Einstellungen für die Datenaufnahmeparameter, die im Abschnitt FeatureView erstellen beschrieben werden, und sourceVersion
, der Zeitstempel für die letzte Änderung des Tabellen-Assets, aus dem die FeatureView
erstellt wurde. Abbildung 1 oben zeigt FeatureView
-spezifische Eigenschaften in einem Data Catalog-Asset-Dialogfeld. Wie bei anderen Assets können Sie auch Properties programmatisch aus dem von ee.data.getAsset
zurückgegebenen Wörterbuch abrufen.
Feature-Ansicht visualisieren
Ein FeatureView
-Objekt kann im Code-Editor, in Earth Engine-Apps und in Google Maps visualisiert werden.
Code-Editor
Der Code-Editor enthält die Komponente ui.Map.FeatureViewLayer
, mit der FeatureView
-Assets auf einer Karte visualisiert werden können. Im folgenden Beispiel wird eine FeatureView
-Asset-ID definiert, das Asset als FeatureViewLayer
importiert und auf der Karte angezeigt.
Code-Editor (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId); // Add the FeatureViewLayer to the map. Map.add(layer);
Stile
Sie können den Stil von FeatureViewLayer
festlegen, indem Sie der Funktion ui.Map.FeatureViewLayer
ein Stilwörterbuch übergeben oder sie mit der Methode setVisParams
einer Ebene hinzufügen. Unten sehen Sie ein Beispiel, in dem folgende Elemente formatiert werden:
- Umrissfarben basierend auf dem Attribut „MARINE“ (ob sich der Schutzgebiet vollständig oder teilweise in der Meeresumgebung befindet),
- Füllfarbe basierend auf dem Attribut „IUCN_CAT“ (Kategorie der International Union for Conservation of Nature (IUCN)) und
- Füllungsdeckkraft, die von der Größe des durch die Eigenschaft „REP_AREA“ definierten geschützten Bereichs abhängt.
Weitere Informationen zu den verfügbaren Stiloptionen finden Sie auf der Seite Styling von Feature-Ansichten.
Code-Editor (JavaScript)
// Set visualization properties for the defined layer. layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, });
Filtern
Mit Filterregeln können Sie Elemente basierend auf ihren Eigenschaften selektiv formatieren oder ausblenden. Wenn Sie beispielsweise Schutzgebiete herausfiltern möchten, die kleiner als eine bestimmte Fläche sind, die durch ein Schieberegler-Widget angegeben wird, können Sie den folgenden Code verwenden. Weitere Informationen zum Feld rules
finden Sie auf der Seite FeatureView
„Styling“ im Abschnitt Bestimmte Regeln.
Code-Editor (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId, null, 'WDPA FeatureViewLayer'); // Callback function to update FeatureViewLayer style. var updateVisParams = function() { layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, rules: [ { filter: ee.Filter.lt('REP_AREA', filterSlider.getValue()), isVisible: false, }, ], }); }; // Slider widget that calls the updateVisParams function on change. var filterSlider = ui.Slider({ min: 0, max: 10000, step: 10, value: 0, style: { stretch: 'horizontal'}, onChange: updateVisParams, }); var filterSliderLabel = ui.Label( 'Adjust slider to hide features less than the specified area (km²)'); // Add the slider to the map. Map.add(ui.Panel([filterSliderLabel, filterSlider])); // Initialize the FeatureViewLayer style. updateVisParams(); // Add the FeatureViewLayer to the map. Map.add(layer);
Abbildung 2. FeatureViewLayer
-Visualisierung mit einem Schieberegler-Widget, um Elemente auszublenden, die kleiner als der angegebene Bereich sind.
Google Maps API
Die Visualisierung eines FeatureView
-Assets mit der Google Maps API besteht aus vier Schritten: Sie rufen mit ee.data.getFeatureViewTilesKey
einen Kachelschlüssel ab, übergeben ihn an eine Instanz von FeatureViewTileSource
, erstellen eine ee.layer.ImageOverlay
und fügen das Overlay dann Ihrer google.maps.Map
-Instanz hinzu. Unten sehen Sie Beispielcode zum Erstellen der ImageOverlay
in JavaScript.
var tilesKey = ee.data.getFeatureViewTilesKey({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: { … },
});
var tileSource = new ee.layers.FeatureViewTileSource(tilesKey);
var overlay = new ee.layers.ImageOverlay(tileSource);
Anschließend können Sie das Overlay wie unten gezeigt Ihrer google.maps.Map
-Instanz hinzufügen.
// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);
Feature-Ansicht prüfen
Eine FeatureViewLayer
-Ebene, die der Standardkarte des Code-Editors hinzugefügt wurde, kann mit dem Inspect-Tool geprüft werden.
Die Funktionsweise entspricht der eines FeatureCollection
. Hinweis: In den Ergebnissen, die für den angeklickten Ort zurückgegeben werden, sind nur Elemente aufgeführt, die bei der aktuellen Zoomstufe sichtbar sind. Für die geprüften Elemente werden keine Geometrien angezeigt, da sie im Rahmen des FeatureView
-Exportprozesses vereinfacht werden.
Abbildung 3: FeatureViewLayer
prüfen Der Inspector zeigt die Ebene, die Elemente, die Asset-ID und die Visualisierungsparameter an.