Like Walshe pointed out, the images are split into a fixed grid. There are tiles that never get completely covered by a single image, so filtering out scenes is probably not a good idea. Normally, this isn't a problem. I suppose you could re-assemble the tiles by joining images from same day/spacecraft/orbit-number:
var aoi = ee.Geometry.Polygon(
[[[24.06, 21.91],
[24.06, 3.48],
[35.53, 3.48],
[35.53, 21.91]]], null, false);
var s2 = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(aoi)
.filterDate('2019-01-01', '2019-01-05')
.map(function (image) {
return image
.set('date', image.date().format('yyyy-MM-dd'));
});
var daily = ee.ImageCollection(
ee.Join.saveAll('images').apply({
primary: s2,
secondary: s2,
condition: ee.Filter.and(
ee.Filter.equals({
leftField: 'date',
rightField: 'date'
}),
ee.Filter.equals({
leftField: 'SPACECRAFT_NAME',
rightField: 'SPACECRAFT_NAME'
}),
ee.Filter.equals({
leftField: 'SENSING_ORBIT_NUMBER',
rightField: 'SENSING_ORBIT_NUMBER'
})
)
})
)
.map(function (image) {
return ee.ImageCollection(ee.List(image.get('images')))
.mosaic()
.set('system:time_start', ee.Date(image.get('date')).millis());
});
Map.centerObject(aoi, 6);
Map.addLayer(daily.first(), {bands: 'B4,B3,B2', min: 300, max: 3000});
https://code.earthengine.google.com/e79ee0f3353ab2ef1890a3376905fd5c