L'image coupée n'est pas de forme dans Google Earth Engine
Dans l'API Python de Google Earth Engine, lorsque je sélectionne un polygone autour d'une région à haute latitude et que .clip()je l'utilise pour découper une image sur le polygone (dans mon exemple, j'ai utilisé les données de couverture terrestre MODIS, mais cela semble arriver à tous les autres ensembles de données que je regarde ) le résultat est une image avec des bords supérieurs et inférieurs incurvés. Comment résoudre ce problème pour que l'image soit tronquée aux limites du polygone? Un exemple du code et une image résultante sont ci-dessous, avec le polygone également mis en évidence:
boundaries = ee.Geometry.Polygon([[[4.1103796959,75.8666447688],
[36.5792269069,75.8666447688],
[36.5792269069,81.1817566002],
[4.1103796959,81.1817566002],
[4.1103796959,75.8666447688]]])
clipped_img = ee.ImageCollection('MODIS/006/MCD12Q1')\
.select('LC_Type1')\
.filter(ee.Filter.calendarRange(2010,2010,'year'))\
.first()\
.clip(boundaries)
Réponses
L'appel ee.Geometry.Polygon(coordinates)sans autre option vous donne un polygone avec des arêtes géodésiques . Les arêtes géodésiques sont définies pour emprunter le chemin le plus court du globe entre deux points. Lorsqu'elles sont visualisées dans une projection où les lignes horizontales sont des lignes de latitude, elles semblent être concaves vers l'équateur.
Le découpage est fidèle à cette définition, mais la visualisation de votre polygone ne semble pas en tenir compte, en dessinant des lignes droites projetées à la place.
Si vous voulez des lignes projetées, vous devez le spécifier dans la définition du polygone:
boundaries = ee.Geometry.Polygon(
[[[4.1103796959,75.8666447688],
[36.5792269069,75.8666447688],
[36.5792269069,81.1817566002],
[4.1103796959,81.1817566002],
[4.1103796959,75.8666447688]]],
None, # projection (defaults to 'EPSG:4326' WGS 84 degrees lon/lat, i.e. what you have now)
False) # non-geodesic
Démonstration des deux types dans l'éditeur de code Earth Engine