Google Earth Engine – How to Reproject

coordinate systemgoogle-earth-engine

Link to GEEScript

var L8 = L8.filterBounds(geometry).first()
Map.addLayer(L8,{max:3000},'Before Reprojection')
var proj = ee.Projection('EPSG:4326').getInfo()
var L8r = L8.reproject(proj.crs,proj.transform)
Map.addLayer(L8r,{max:3000},'After Reprojection')

A reprojection to EPSG:4326 would be benefictial. But after Reprojecting, the Image seems Oddly Broken into 3 Large Pixles.

Adding a Picture Manifactured from the Projection will result in much more then 3 Pixels an a usefull looking resolution :

var coordspic = ee.Image.pixelCoordinates(ee.Projection('EPSG:4326')).select('x')
Map.addLayer(coordspic,{max:2,min:-7},'Coordinates')

What am I missing here ?

Best Answer

that is because you did not define a scale for the reprojection. If you would print the scale at which the projection you defined by default, you understand why the image is plotted in three large pixels:

// Specify a projection
var proj = ee.Projection('EPSG:4326');
print('Scale projection == reason for three blocks', proj.nominalScale()); // 111319.49079327357

To set the projection in a scale you find resonable (30m for landsat images), you can reproject by defining a scale:

var L8r = L8.reproject(proj, null, 30)
Map.addLayer(L8r, {min: 0,  max:3000, bands: ['B4', 'B3', 'B2']}, 'After Reprojection')

The link to your code was invalid, so I defined the Landsat collection and geometry myself: Link

Related Question