0

Does anybody know why I am getting these strips across my Sentinel-1 images and how to fix it?

enter image description here

I am using multiple images over Mozambique between January 1st and January 13th. I want to use this as a "before" image to then calculate flooding extend after a cyclone. I assume I need to merge the images together or something to get median values between the 3 overlapping images?

This is the code I am using (including code to generate flooding extent in each month from March through to October.

// Filter the collection for the VV product from the descending track
var imageCollection = 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(Area)
    .filter(ee.Filter.date('2019-01-01', '2019-10-20'))
    .select(['VV']);
print(imageCollection);

//create map layer of before flooding
var beforeJanuary = imageCollection.filterDate('2019-01-01', '2019-01-13');

//create map layer for every month following cyclone landfall
var afterMarch = imageCollection.filterDate('2019-03-14', '2019-03-29');
var afterApril = imageCollection.filterDate('2019-04-01', '2019-04-30');
var afterMay = imageCollection.filterDate('2019-05-01', '2019-05-31');
var afterJune = imageCollection.filterDate('2019-06-01', '2019-06-30');
var afterJuly = imageCollection.filterDate('2019-07-01', '2019-07-31');
var afterAugust = imageCollection.filterDate('2019-08-01', '2019-08-31');
var afterSeptember = imageCollection.filterDate('2019-09-01', '2019-09-30');
var afterOctober = imageCollection.filterDate('2019-10-01', '2019-10-20');


//Obtain an average pixle value for overlapping vv images
var VVJanuary = beforeJanuary.median();
var VVMarch = afterMarch.median();
var VVApril = afterApril.median();
var VVMay = afterMay.median();
var VVJune = afterJune.median();
var VVJuly = afterJuly.median();
var VVAugust = afterAugust.median();
var VVSeptember = afterSeptember.median();
var VVOctober = afterOctober.median();

//add layers to map
Map.addLayer(VVJanuary, {min: -14, max: -7}, 'Before');
Map.addLayer(VVMarch, {min: -14, max: -7}, 'March');
Map.addLayer(VVApril, {min: -14, max: -7}, 'April');
Map.addLayer(VVMay, {min: -14, max: -7}, 'May');
Map.addLayer(VVJune, {min: -14, max: -7}, 'June');
Map.addLayer(VVJuly, {min: -14, max: -7}, 'July');
Map.addLayer(VVAugust, {min: -14, max: -7}, 'August');
Map.addLayer(VVSeptember, {min: -14, max: -7}, 'September');
Map.addLayer(VVOctober, {min: -14, max: -7}, 'October');
Map.addLayer(Area)

//Centre the map view over our region of interest
Map.centerObject(roi, 20);
1

Those strips look like the different overpass lines. In short, there were slightly different ground conditions on each of the three "before" days shown in your data which caused the sensor to record slightly different values for each day. For example if one day had more overall ground moisture it's going to show up as a darker image.

The images probably don't all have the same min and max values, thus if you apply colors like they do you'll see different shades for the same values (I'm assuming this is what your Map.addLayer() calls are doing with the min and max).

You might also want to consider if slight variations in surrounding land pixel values matter compared to the flooding threshold you're using. Flooded areas tend to have a pretty distinct pixel signature in SAR images. You might also want to check out the flooding maps for Cyclone Idai that the ARIA project out of NASA's Jet Propulsion Lab has produced.

  • Thank you very much for your help! – skinerdean Oct 25 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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