ee.Image.sampleRegions

Konvertiert jedes Pixel eines Bildes (in einem bestimmten Maßstab), das sich mit einer oder mehreren Regionen überschneidet, in ein Feature und gibt sie als FeatureCollection zurück. Jedes Ausgabefeature hat eine Eigenschaft pro Band des Eingabebilds sowie alle angegebenen Eigenschaften, die aus dem Eingabefeature kopiert wurden.

Geometrien werden an Pixelzentren ausgerichtet.

NutzungAusgabe
Image.sampleRegions(collection, properties, scale, projection, tileScale, geometries)FeatureCollection
ArgumentTypDetails
Dieses: imageBildDas Bild, aus dem die Stichprobe entnommen werden soll.
collectionFeatureCollectionDie Regionen, über die Stichproben genommen werden sollen.
propertiesListe, Standard: nullDie Liste der Attribute, die aus jeder Eingabefunktion kopiert werden sollen. Standardmäßig sind alle Nicht-System-Properties ausgewählt.
scaleGleitkommazahl, Standardwert: nullEine nominale Skala in Metern der Projektion, in der die Stichprobe genommen werden soll. Wenn nichts angegeben ist, wird der Maßstab des ersten Bands des Bildes verwendet.
projectionProjektion, Standardwert: nullDie Projektion, in der die Stichproben genommen werden sollen. Wenn nichts angegeben ist, wird die Projektion des ersten Bands des Bildes verwendet. Wird zusätzlich zur Skalierung angegeben und auf die angegebene Skalierung skaliert.
tileScaleGleitkommazahl, Standardwert: 1Ein Skalierungsfaktor, mit dem die Größe von Aggregationskacheln reduziert wird. Wenn Sie einen größeren tileScale-Wert (z. B. 2 oder 4) verwenden, können Sie möglicherweise Berechnungen durchführen, die mit dem Standardwert nicht möglich sind, weil der Arbeitsspeicher nicht ausreicht.
geometriesBoolescher Wert, Standard: „false“Bei „true“ enthalten die Ergebnisse eine Punktgeometrie pro Stichprobenpixel. Andernfalls werden Geometrien ausgelassen, um Speicherplatz zu sparen.

Beispiele

Code-Editor (JavaScript)

// A Sentinel-2 surface reflectance image.
var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');
Map.setCenter(-122.503881, 37.765588, 18);
Map.addLayer(img, {bands: ['B11', 'B8', 'B3'], min: 100, max: 4500}, 'img');

// A feature collection with two polygon regions each intersecting 36
// pixels at 10 m scale.
var fcPolygon = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Rectangle(
    -122.50620929, 37.76502806, -122.50552264, 37.76556663), {id: 0}),
  ee.Feature(ee.Geometry.Rectangle(
    -122.50530270, 37.76565568, -122.50460533, 37.76619425), {id: 1})
]);
Map.addLayer(fcPolygon, {color: 'yellow'}, 'fcPolygon');

var fcPolygonSamp = img.sampleRegions({
  collection: fcPolygon,
  scale: 10,
  geometries: true
});
// Note that 7 pixels are missing from the sample. If a pixel contains a masked
// band value it will be excluded from the sample. In this case, the TCI_B band
// is masked for each unsampled pixel.
print('A feature per pixel (at given scale) in each region', fcPolygonSamp);
Map.addLayer(fcPolygonSamp, {color: 'purple'}, 'fcPolygonSamp');

// A feature collection with two points intersecting two different pixels.
// This example is included to show the behavior for point geometries. In
// practice, if the feature collection is all points, ee.Image.reduceRegions
// should be used instead to save memory.
var fcPoint = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([-122.50309256, 37.76605006]), {id: 0}),
  ee.Feature(ee.Geometry.Point([-122.50344661, 37.76560903]), {id: 1})
]);
Map.addLayer(fcPoint, {color: 'cyan'}, 'fcPoint');

var fcPointSamp = img.sampleRegions({
  collection: fcPoint,
  scale: 10
});
print('A feature per point', fcPointSamp);

Python einrichten

Weitere Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung finden Sie auf der Seite Python-Umgebung.

import ee
import geemap.core as geemap

Colab (Python)

# A Sentinel-2 surface reflectance image.
img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')
m = geemap.Map()
m.set_center(-122.503881, 37.765588, 18)
m.add_layer(
    img, {'bands': ['B11', 'B8', 'B3'], 'min': 100, 'max': 4500}, 'img'
)
display(m)

# A feature collection with two polygon regions each intersecting 36
# pixels at 10 m scale.
fc_polygon = ee.FeatureCollection([
    ee.Feature(
        ee.Geometry.Rectangle(
            -122.50620929, 37.76502806, -122.50552264, 37.76556663
        ),
        {'id': 0},
    ),
    ee.Feature(
        ee.Geometry.Rectangle(
            -122.50530270, 37.76565568, -122.50460533, 37.76619425
        ),
        {'id': 1},
    ),
])
m.add_layer(fc_polygon, {'color': 'yellow'}, 'fc_polygon')

fc_polygon_samp = img.sampleRegions(
    collection=fc_polygon, scale=10, geometries=True
)
# Note that 7 pixels are missing from the sample. If a pixel contains a masked
# band value it will be excluded from the sample. In this case, the TCI_B band
# is masked for each unsampled pixel.
display('A feature per pixel (at given scale) in each region', fc_polygon_samp)
m.add_layer(fc_polygon_samp, {'color': 'purple'}, 'fc_polygon_samp')

# A feature collection with two points intersecting two different pixels.
# This example is included to show the behavior for point geometries. In
# practice, if the feature collection is all points, ee.Image.reduceRegions
# should be used instead to save memory.
fc_point = ee.FeatureCollection([
    ee.Feature(ee.Geometry.Point([-122.50309256, 37.76605006]), {'id': 0}),
    ee.Feature(ee.Geometry.Point([-122.50344661, 37.76560903]), {'id': 1}),
])
m.add_layer(fc_point, {'color': 'cyan'}, 'fc_point')

fc_point_samp = img.sampleRegions(collection=fc_point, scale=10)
display('A feature per point', fc_point_samp)