ee.Image.sampleRegions

Konvertiert jedes Pixel eines Bildes (in einem bestimmten Maßstab), das einen oder mehrere Bereiche schneidet, 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
So gehts: 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 jedem Eingabe-Feature 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 erstellt 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 verringert wird. Wenn Sie einen größeren tileScale-Wert verwenden (z. B. 2 oder 4) können Berechnungen ermöglicht werden, die mit dem Standardwert nicht möglich sind, weil der Arbeitsspeicher nicht ausreicht.
geometriesBoolescher Wert, Standard: „false“Wenn „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

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)