1

Are radar images already processed with speckle filter and in decibels? Below is my code, I am looking for a way to adapt it to those processes, though I don't know if the speckle can be added before obtaining the minimum and maximum values.

//seleccionar la region de donde se realizará la descarga
var table = table.filter(ee.Filter.eq('NOMBRE_DPT', 'CASANARE'));

var sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-01-01', '2021-01-15')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                    .filterBounds(table);
var sentinel2 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-01-16', '2021-01-30')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                    .filterBounds(table);
var sentinel3 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-02-01', '2021-02-15')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                    .filterBounds(table);
var sentinel4 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-02-16', '2021-02-28')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                    .filterBounds(table);
                    
var sentinel5 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-03-01', '2021-03-15')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                    .filterBounds(table);
var sentinel6 = ee.ImageCollection('COPERNICUS/S1_GRD')
                    .filterDate('2021-03-16', '2021-03-31')
                    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
                    .filter(ee.Filter.eq('instrumentMode', 'IW'))
                    .filter(ee.Filter.or((ee.Filter.eq('orbitProperties_pass', 'ASCENDING'), ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))))
                     .filterBounds(table);   

var image1 = sentinel1.select('VH').mean();
var image2 = sentinel2.select('VH').mean();
var image3 = sentinel3.select('VH').mean();
var image4 = sentinel4.select('VH').mean();
var image5 = sentinel5.select('VH').mean();
var image6 = sentinel6.select('VH').mean();


// Crear un stacking de todas las bandas radar

var stacked = ee.ImageCollection.fromImages([image1,image2,image3,image4,image5,image6]);

// Scale all the images

var stacked_scaled = stacked.map(function(image){
  return ee.Image(image).multiply(10).add(350).uint8();
  });
  
//crear minimo y maximo

var min = stacked_scaled.min();
var max = stacked_scaled.max();

Map.addLayer(min, {}, 'min');
Map.addLayer(max, {}, 'max');

print(min);
print(max);

// diferencia entre minimo y maximo
var diff = min.subtract(max);
Map.addLayer(diff,{},'subtraction');

print(diff);
1
  • COPERNICUS/S1_GRD is in decibels and COPERNICUS/S1_GRD_FLOAT is linear. Speckle has not been filtered in any of the collections. Aug 18, 2022 at 11:04

1 Answer 1

0

You may not have access to this paper but Lees et al. (2021) use a simple point buffer to reduce speckle interference, and they're also using Sentinel-1 GRD like you. In their validation with on-the-ground soil moisture indices, it improved correlation by a modest 10% but it's something.

I can't provide any sample code specific to your task here because I don't see any features you're working with, but a simple way I did it with mine is:

var start = '2014-10-03'
var end = '2021-12-31'

var imgVV = ee.ImageCollection('COPERNICUS/S1_GRD')
        .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
        .filter(ee.Filter.eq('instrumentMode', 'IW'))
        .filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
        .filterDate(start, end)
        .filterBounds(MftF_E)
        .select('VV','angle')
        .map(function(image) {
          var edge = image.lt(-30.0);
          var maskedImage = image.mask().and(edge.not());
          return image.updateMask(maskedImage);
        });

var desc = imgVV.select('VV');

var MftF_E_buffered = MftF_E.buffer({'distance': 50})
print("Point buffer:", MftF_E_buffered)

var chart = ui.Chart.image.series(
  desc, MftF_E_buffered, ee.Reducer.mean());
chart.setOptions({title:'Buffered'});
print(chart);

Map.setCenter(-1.8554,53.3826, 13);
Map.addLayer(MftF_E,
             {'color': 'black'},
             'Geometry [black]: point');
Map.addLayer(MftF_E_buffered,
             {'color': 'red'},
             'Result [red]: point.buffer');

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.