Les tuiles de Sentinel-2, comment ça marche ?

=>

J'ai récemment cherché des informations sur la convention de nommage des tuiles sur lesquelles seront découpées les données de Niveau 1C de Sentinel-2, et voici ce que j'ai trouvé :

  • Un Manuel de l'utlisateur pour les produits de Sentinel-2 (qui n'explique pas vraiment la convention de nommage des tuiles)
  • Un fichier kml qui fournit l'emprise de chaque tuile ainsi que son nom. L'accès au fichier se trouve dans le menu "key resources" sur la droite, cliquer sur "Sentinel-2 Level 1C tiling grid"

A partir de ces deux informations, voici ce que j'ai pu deviner :

  • les 2 premiers numéros du nom d'une tuile (comme par exemple 31TCJ) correspondent à la zone UTM. Le monde est divise en 60 zones de 8 degrés de largeur en longitude, avec des numéros qui s'accroissent en allant vers l'est. La zone 1 se trouve sur l'océan pacifique..
  • Chaque zone est divisée en latitude, en bandeaux de 6 degrés. Cette division est représentée par une lettre, qui s’accroît du Sud au Nord. Les deux premiers chiffres, et la lettre définissent donc une grille de cases UTM.
  • Chaque case de ce découpage est divisée en tuiles de 110*110 km², avec une superposition de 10 km des tuiles adjacentes. D'est en Ouest, c'est la 4e Lettre, du Sud au Nord, c'est la 5e lettre.  Ce qui est étonnant, c'est que ces lettres ne commencent pas à A pour chaque case de la grille UTM, mais continuent à croître de case en case, mais sont remises à la valeur A quand le compteur dépasse Z.

Quelques exemples :

  • La tuile de Toulouse porte le numéro, 31TCJ. 31 est la zone UTM, T désigne bandeau en latitude.. C correspond à la position de la tuile sur l'axe ouest-est, et J sur l'axe Sud Nord.
  • Si vous cherchez la tuile à l'Est de Toulouse, qui contient Castres, c'est 31TDJ.
  • Si vous cherchez la tuile au Nord Est de Toulouse, qui contient Aurillac, c'est 31TDK.

 

Il serait pratique d'avoir une formule pour déterminer la ou les tuiles qui contiennent un point de coordonnées (longitude et latitude) connues. Mais ça ne me parait pas évident. Il devrait être plus facile de créer un programme. Si quelqu'un a l'un ou l'autre, merci de nous le faire suivre !

 

Un collègue m'a dit que cette grille est née dans le cerveau d'un militaire américain (oui, les militaires ont un cerveau), en voici une description, pour laquelle on reste sur sa faim quand à la manière dont les deux dernières lettres ont été définies.

 

 

 

 

 

 

Posted under: Comment ça marche /how it works, En Français, Sentinel-2

6 comments

  • Jean Louis Dalla Verde on 02/11/2015 at 10:58 said:

    Je pense que le moyen le plus sûr est d'utiliser le fichier définissant ces (> 34000 !!) tuiles (le KML cité ici fait l'affaire si on n'a pas accès au GIPP original qui est exploité lors de la fabrication des images L1C)
    Désolé pas de prog sous la main qui fait ça, mais voici un pseudo code (entrée : coordonnées lon/lat)
    A partir de lon/lat on retient les zones UTM candidates (2 maximum : outre le recouvrement de 10km des tuiles, elles peuvent aussi se recouvrir au changement de zone)
    Dans chacun de ces faisceaux, on traduit lon/lat en X/Y (les tuiles sont rectangulaires en UTM, pas en coordonnées géo 4326)
    On parcourt alors la liste des défs des tuiles en fitrant dans un premier temps par zone UTM (la zone est une des caractéristiques de déf de tuile) et en ne retenant que les identifiants mgrs des tuiles pour lesquelles le rectangle de la bounding box contient X/Y (simple calcul d'appartenance à un rectangle)

    Exemple de la tuile 30TYP extraite du fichier kml

    OOps le XML ne passe pas dans les posts..
    Voici une nouvelle version
     <Placemark>
      <name>30TYP</name>
      ...
      <ExtendedData>
       <SchemaData schemaUrl="#s2a_L1C_global_tiling_gipp_v5_ovlp">
        <SimpleData name="epsg">32630</SimpleData>
        <SimpleData name="utm_ul_x">699960</SimpleData>
        <SimpleData name="utm_ul_y">4900020</SimpleData>
        <SimpleData name="res1">10</SimpleData>
        <SimpleData name="res1_rows">10980</SimpleData>
        <SimpleData name="res1_cols">10980</SimpleData>...
    -> zone UTM 30N (epsg 32630), tuile contenant toutes les coordonnées UTM (mètres) variant de 699960+10*10980 en X et 4900020-10*10980 en Y.

  • Iskander Benhadj on 17/02/2017 at 19:18 said:

    Bonjour

    J'ai implementé un script Matlab qui extrait les tuiles S2 en fonction de la zone géographique definie par l'utilisateur [topLeft Lat/Lon et bottomRight Lat/Lon].
    Voici le lien pour télécharger le script
    https://drive.google.com/file/d/0B0mCZ3I3CFSXQ1Vpa1U4MkpiMFU/view?usp=sharing

    Instructions to follow
    -------------------------

    - prepare your bounding box coordinates defined by top left latitude/longitude and bottom right latitude/longitude
    - Open the S2_tilefinder.m script and just fill in these parameters using your own coordinates
    topLeftLat = 52;
    topLeftLon = 5;
    bottomRightLat = 50;
    bottomRightLon = 8;
    -run the matlab script.

    The script will ouptut the Sentinel2 tiles intersecting your region of interest. Below an example of output using the exmaple coordinates listed above:

    Found possible 31U UTM zone search
    Found possible 32U UTM zone search
    Found S2 tile :31UFR [minLon = 4.385169,minLat = 49.619417,maxLon = 5.821311,maxLat = 50.543380]
    Found S2 tile :31UGR [minLon = 5.769058,minLat = 49.613658,maxLon = 6.000000,maxLat = 50.517741]
    Found S2 tile :31UFS [minLon = 4.411339,minLat = 50.517741,maxLon = 5.876292,maxLat = 51.442352]
    Found S2 tile :31UGS [minLon = 5.821311,minLat = 50.513270,maxLon = 6.000000,maxLat = 51.415884]
    Found S2 tile :31UFT [minLon = 4.438877,minLat = 51.415884,maxLon = 5.934190,maxLat = 52.341175]
    Found S2 tile :31UGT [minLon = 5.876292,minLat = 51.412780,maxLon = 6.000000,maxLat = 52.313844]
    Found S2 tile :32UKA [minLon = 6.000000,minLat = 49.613658,maxLon = 6.230942,maxLat = 50.517741]
    Found S2 tile :32ULA [minLon = 6.178689,minLat = 49.619417,maxLon = 7.614831,maxLat = 50.543380]
    Found S2 tile :32UMA [minLon = 7.588661,minLat = 49.644257,maxLon = 9.000000,maxLat = 50.551932]
    Found S2 tile :32UKB [minLon = 6.000000,minLat = 50.513270,maxLon = 6.178689,maxLat = 51.415884]
    Found S2 tile :32ULB [minLon = 6.123708,minLat = 50.517741,maxLon = 7.588661,maxLat = 51.442352]
    Found S2 tile :32UMB [minLon = 7.561123,minLat = 50.543380,maxLon = 9.000000,maxLat = 51.451182]
    Found S2 tile :32UKC [minLon = 6.000000,minLat = 51.412780,maxLon = 6.123708,maxLat = 52.313844]
    Found S2 tile :32ULC [minLon = 6.065810,minLat = 51.415884,maxLon = 7.561123,maxLat = 52.341175]
    Found S2 tile :32UMC [minLon = 7.532122,minLat = 51.442352,maxLon = 9.000000,maxLat = 52.350293]
    Elapsed time is 2.644927 seconds.

    In addition to output script, a figure is displayed showing :
    - the requested bounding box in blue color
    - the tested S2 tilesin red
    - the selected S2 tiles green

    Any remarks or suggestion, please contact me iskander.benhadj@vito.com

    Iskander Benhadj (VITO)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>