es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtrado de errores de JavaScript en Google Earth Engine por fecha.

Hola, no sé nada de esto, pero solo tengo un error en mi código y no sé por qué.

// Cargar características de países desde el conjunto de datos de Límites Internacionales a Gran Escala (LSIB).
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
var roi = countries.filter(ee.Filter.eq('country_code', 'CB'));
Map.addLayer(roi, {}, 'Camboya');

// Centremos la vista del mapa en nuestra ROI.
Map.centerObject(roi, 6);

// Filtrar la colección para el producto VV de la pista descendente
var collectionVV = ee.ImageCollection('COPERNICUS/S1_GRD')
    .filter(ee.Filter.eq('instrumentMode', 'IW'))
    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
    .filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
    .filterBounds(roi)
    .select(['VV'])
    .median();

// Filtrar la colección para el producto VH de la pista descendente
var collectionVH = ee.ImageCollection('COPERNICUS/S1_GRD')
    .filter(ee.Filter.eq('instrumentMode', 'IW'))
    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
    .filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
    .filterBounds(roi)
    .select(['VH'])
    .median();

// Agregar la capa VV al mapa en una fecha específica
var image = ee.Image(collectionVV.filterDate('2020-10-14', '2020-10-20').median());
Map.addLayer(image.clip(roi), { min: -25, max: 5 }, 'Image_VV');

Es por la última línea que obtengo:

Line 29: collectionVV.filterDate is not a function

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El error “collectionVV.filterDate no es una función” significa que la función filterDate no es reconocida como una función válida para el objeto collectionVV. Esto podría ser porque el objeto no tiene la función filterDate o hay un error de sintaxis en el código.

    Al examinar el código, la función filterDate se utiliza en el objeto collectionVV en la última línea. Sin embargo, en el código, collectionVV se crea como el valor medio de una ImageCollection, y no como una ImageCollection en sí misma. Por lo tanto, la función filterDate no se puede usar en él.

    Para solucionar este error, puedes modificar el código para filtrar la ImageCollection antes de tomar la mediana y crear el objeto collectionVV.

    Aquí tienes un ejemplo de corrección de código que debería funcionar:

    // Cargar las características del país desde el conjunto de datos de Límite Internacional a Gran Escala (LSIB).
    var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
    var roi = countries.filter(ee.Filter.eq('country_co', 'CB'));
    Map.addLayer(roi, {}, 'Camboya');
    
    // Centremos la vista del mapa en nuestra ROI.
    Map.centerObject(roi, 6);
    
    // Filtrar la colección para el producto VV de la pista descendente
    var collectionVV = ee.ImageCollection('COPERNICUS/S1_GRD')
        .filter(ee.Filter.eq('instrumentMode', 'IW'))
        .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
        .filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
        .filterBounds(roi)
        .select(['VV'])
        .filterDate('2020-10-14', '2020-10-20');
    
    // Tomar la mediana de la colección filtrada y agregarla al mapa
    var image = collectionVV.median();
    Map.addLayer(image.clip(roi), {min: -25, max: 5}, 'Imagen_VV');
    

    En esta corrección, filtramos la ImageCollection utilizando filterDate antes de tomar la mediana, y luego agregamos la imagen resultante al mapa.

Comments are closed.