Quiero extraer parches de imagen cualificados (por ejemplo, sin nubes) (por ejemplo, de tamaño 128x128) en una imagen grande (por ejemplo, 10000x10000) en Google Earth Engine. Estos parches de imagen pueden solaparse con otros parches calificados. A continuación, voy a alimentar estos parches de imagen a TensorFlow. Buscando en las APIs de Earth Engine, hasta ahora sólo he encontrado ee.Image.clip , ee.Image.clipToBoundsAndScale , ee.ImageCollection.getRegion que puede estar relacionado con mi objetivo. Pero todos ellos requieren alguna geometría o característica o colecciones de características en coordenadas de latitud/longitud como parámetro de límite.
¿Existe una forma de extraer los parches de imagen en Earth Engine como si se tratara de un subarray de una matriz numpy utilizando índices (por ejemplo, image[0:128, 0:128])?
El flujo general de Nicholas Clinton funciona. Hice algunos cambios menores en la máscara y los pasos de la muestra.
Para el paso de la máscara, he utilizado el ee.Image.fastDistanceTransform
para calcular la distancia de Chebyshev a los píxeles con valor distinto de cero (intercambio de 0 y 1 en una máscara normal, es decir SwappedMask
) y crear la máscara con buffer estableciendo un umbral:
var Chebyshev_dist_to_Mask = SwappedMask
.fastDistanceTransform({
neighborhood: 46,
units: 'pixels',
metric: 'chebyshev'
});
var BufferedMask = Chebyshev_dist_to_Mask
.gt(ee.Image(33))
.select(0)
.toByte()
.rename('buffered_mask');
Para el paso de la muestra, he utilizado ee.Image.stratifiedSample
en lugar de ee.Image.sample
para tomar muestras sólo en la clase de píxeles buenos.