ee.Image.sample

Muestra los píxeles de una imagen y los devuelve como un FeatureCollection. Cada atributo tendrá 1 propiedad por banda en la imagen de entrada. Ten en cuenta que el comportamiento predeterminado es descartar las entidades que se intersecan con los píxeles enmascarados, lo que genera propiedades con valores nulos (consulta el argumento dropNulls).

UsoMuestra
Image.sample(region, scale, projection, factor, numPixels, seed, dropNulls, tileScale, geometries)FeatureCollection
ArgumentoTipoDetalles
esta: imageImagenEs la imagen de la que se tomará la muestra.
regionGeometría, valor predeterminado: nuloEs la región de la que se tomará la muestra. Si no se especifica, se usa la huella completa de la imagen.
scaleNúmero de punto flotante, valor predeterminado: nuloEs una escala nominal en metros de la proyección en la que se debe tomar la muestra.
projectionProyección, valor predeterminado: nuloEs la proyección en la que se tomará la muestra. Si no se especifica, se usa la proyección de la primera banda de la imagen. Si se especifica además de la escala, se ajusta a la escala especificada.
factorNúmero de punto flotante, valor predeterminado: nuloEs un factor de submuestreo dentro de (0, 1]. Si se especifica, no se debe especificar "numPixels". La configuración predeterminada es sin submuestreo.
numPixelsLarga, valor predeterminado: nuloEs la cantidad aproximada de píxeles que se deben muestrear. Si se especifica, no se debe especificar "factor".
seedNúmero entero, valor predeterminado: 0Es una semilla de aleatorización que se usará para el submuestreo.
dropNullsBooleano, valor predeterminado: verdaderoFiltra el resultado después de la publicación para descartar las entidades que tienen propiedades con valores nulos.
tileScaleNúmero de punto flotante, valor predeterminado: 1Es un factor de ajuste que se usa para reducir el tamaño de la segmentación de agregación. Si se usa un tileScale más grande (p. ej., 2 o 4) puede habilitar cálculos que se agotan de memoria con la configuración predeterminada.
geometriesBooleano, valor predeterminado: falsoSi es verdadero, agrega el centro del píxel muestreado como la propiedad de geometría del elemento de salida. De lo contrario, se omitirán las geometrías (lo que ahorra memoria).

Ejemplos

Editor de código (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());

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

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())