ee.Image.sample

Próbkuje piksele obrazu i zwraca je jako FeatureCollection. Każda cecha będzie miała 1 właściwość na pasmo w obrazie wejściowym. Pamiętaj, że domyślnie cechy, które przecinają zamaskowane piksele, są usuwane, co powoduje, że właściwości mają wartość null (patrz argument dropNulls).

WykorzystanieZwroty
Image.sample(region, scale, projection, factor, numPixels, seed, dropNulls, tileScale, geometries)FeatureCollection
ArgumentTypSzczegóły
to: imageObrazObraz do próbkowania.
regionGeometria, domyślnie: nullRegion, z którego ma pochodzić próbka. Jeśli nie zostanie podany, używana jest cała powierzchnia obrazu.
scaleLiczba zmiennoprzecinkowa, domyślnie: nullSkala nominalna w metrach projekcji, w której ma być przeprowadzane próbkowanie.
projectionPrognoza, domyślnie: nullProjekcja, w której ma być przeprowadzane próbkowanie. Jeśli nie zostanie określona, używana jest projekcja pierwszego pasma obrazu. Jeśli jest określony dodatkowo do skali, jest przeskalowywany do określonej skali.
factorLiczba zmiennoprzecinkowa, domyślnie: nullWspółczynnik próbkowania poniżej 1, w zakresie (0, 1]. Jeśli ten parametr jest określony, nie można określić parametru „numPixels”. Domyślnie nie jest stosowane podpróbkowanie.
numPixelsDługi, domyślny: nullPrzybliżona liczba pikseli do próbkowania. Jeśli określono parametr „factor”, nie można określić parametru „factor”.
seedLiczba całkowita, domyślnie: 0Wartość początkowa randomizacji do użycia w próbkowaniu.
dropNullsWartość logiczna, domyślnie: truePo przefiltrowaniu wyników usuń obiekty, które mają właściwości o wartości null.
tileScaleLiczba zmiennoprzecinkowa, domyślnie: 1Współczynnik skalowania używany do zmniejszania rozmiaru kafelka agregacji.Użycie większej wartości tileScale (np. 2 lub 4) może umożliwić obliczenia, które w przypadku domyślnego ustawienia wyczerpują pamięć.
geometriesWartość logiczna, domyślnie: falseJeśli wartość to „true”, do właściwości geometrycznej obiektu wyjściowego zostanie dodany środek próbkowanego piksela. W przeciwnym razie geometrie zostaną pominięte (co pozwoli zaoszczędzić pamięć).

Przykłady

Edytor kodu (JavaScript)

// Demonstrate extracting pixels from an image as features with
// ee.Image.sample(), and show how the features are aligned with the pixels.

// An image with one band of elevation data.
var image = ee.Image('CGIAR/SRTM90_V4');
var VIS_MIN = 1620;
var VIS_MAX = 1650;
Map.addLayer(image, {min: VIS_MIN, max: VIS_MAX}, 'SRTM');

// Region to sample.
var region = ee.Geometry.Polygon(
  [[[-110.006, 40.002],
    [-110.006, 39.999],
    [-109.995, 39.999],
    [-109.995, 40.002]]], null, false);
// Show region on the map.
Map.setCenter(-110, 40, 16);
Map.addLayer(ee.FeatureCollection([region]).style({"color": "00FF0022"}));

// Perform sampling; convert image pixels to features.
var samples = image.sample({
  region: region,

  // Default (false) is no geometries in the output.
  // When set to true, each feature has a Point geometry at the center of the
  // image pixel.
  geometries: true,

  // The scale is not specified, so the resolution of the image will be used,
  // and there is a feature for every pixel. If we give a scale parameter, the
  // image will be resampled and there will be more or fewer features.
  //
  // scale: 200,
});

// Visualize sample data using ee.FeatureCollection.style().
var styled = samples
  .map(function (feature) {
    return feature.set('style', {
      pointSize: feature.getNumber('elevation').unitScale(VIS_MIN, VIS_MAX)
          .multiply(15),
    });
  })
  .style({
    color: '000000FF',
    fillColor: '00000000',
    styleProperty: 'style',
    neighborhood: 6,  // increase to correctly draw large points
  });
Map.addLayer(styled);

// Each sample feature has a point geometry and a property named 'elevation'
// corresponding to the band named 'elevation' of the image. If there are
// multiple bands they will become multiple properties. This will print:
//
// geometry: Point (-110.01, 40.00)
// properties:
//   elevation: 1639
print(samples.first());

Konfiguracja Pythona

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

import ee
import geemap.core as geemap

Colab (Python)

# Demonstrate extracting pixels from an image as features with
# ee.Image.sample(), and show how the features are aligned with the pixels.

# An image with one band of elevation data.
image = ee.Image('CGIAR/SRTM90_V4')
vis_min = 1620
vis_max = 1650
m = geemap.Map()
m.add_layer(image, {'min': vis_min, 'max': vis_max}, 'SRTM')

# Region to sample.
region = ee.Geometry.Polygon(
    [[
        [-110.006, 40.002],
        [-110.006, 39.999],
        [-109.995, 39.999],
        [-109.995, 40.002],
    ]],
    None,
    False,
)
# Show region on the map.
m.set_center(-110, 40, 16)

m.add_layer(ee.FeatureCollection([region]).style(color='00FF0022'))

# Perform sampling convert image pixels to features.
samples = image.sample(
    region=region,
    # Default (False) is no geometries in the output.
    # When set to True, each feature has a Point geometry at the center of the
    # image pixel.
    geometries=True,
    # The scale is not specified, so the resolution of the image will be used,
    # and there is a feature for every pixel. If we give a scale parameter, the
    # image will be resampled and there will be more or fewer features.
    #
    # scale=200,
)


def scale_point_size(feature):
  elevation = feature.getNumber('elevation')
  point_size = elevation.unitScale(vis_min, vis_max).multiply(15)
  feature.set('style', {'pointSize': point_size})
  return feature


# Visualize sample data using ee.FeatureCollection.style().
styled = samples.map(scale_point_size).style(
    color='000000FF',
    fillColor='00000000',
    styleProperty='style',
    neighborhood=6,  # increase to correctly draw large points
)
m.add_layer(styled)
display(m)

# Each sample feature has a point geometry and a property named 'elevation'
# corresponding to the band named 'elevation' of the image. If there are
# multiple bands they will become multiple properties. This will print:
#
# geometry: Point (-110.01, 40.00)
# properties:
#   elevation: 1639
display(samples.first())