(Enfin !) Téléchargement par script des produits de niveau 2A de Sentinel-2 de Theia

=>

La production des données de niveau 2A de Sentinel-2 se poursuit au CNES, mais un peu moins vite que prévu pour le moment.  Nous avons connu un jour faste pendant lequel 600 tuiles ont été produites, mais le rythme de production a souvent été plus lent : nous avons  résolu progressivement de petites anomalies et en même temps, le centre informatique du CNES sur lequel nous nous appuyons a connu de petits soucis.

 

Pendant ce temps, mes collègues de l'équipe MUSCATE, et notamment Dominique Clesse et Remi Mourembles de CAP GEMINI, on ajouté au site de distribution la possibilité de télécharger les données par script, sans un clic.

 

Le script est très facile à utiliser, par exemple, la ligne ci-dessous télécharge les données Sentinel-2 de la tuile 31TCJ (Toulouse), acquises en Septembre 2016 :

python ./theia_download.py -t 'T31TCJ' -c SENTINEL2 -a config_theia.cfg -d 2016-09-01 -f 2016-10-01

 

Les deux lignes ci-dessous ont le même effet :

python ./theia_download.py -l 'toulouse' -c SENTINEL2 -a config_theia.cfg -d 2016-09-01 -f 2016-10-01

python ./theia_download.py --lon 1 --lat 43.5 -c SENTINEL2 -a config_theia.cfg -d 2016-09-01 -f 2016-10-01

 

Il vous suffit de préciser votre compte et mode de passe dans le fichier config_theia.cfg site. Pour obtenir un compte, il faut vous inscrire sur le site Theia . Il existe davantage d'options, et toutes les explications vous sont fournies sur ma page github, et bien sûr, c'est ici que vous pourrez télcharger le script.

 

Si vous êtes allergiques à Python et aux lignes de commandes, le panier de téléchargement sur le site Theia a été réparé (les requêtes étaient filtrées par le garde barrière au delà de 10 produits)

Posted under: Code, Corrections (geometry, atmosphere, clouds), En Français, Sentinel-2, THEIA

8 comments

  • kikvoufo on 19/12/2016 at 16:15 said:

    Bonjour et merci de ce travail.

    Il me semble que le résultat des requetes (search.json) renvoie un indicateur de couvert nuageux non renseigné valeur dite "null" sauf à valoir 0. Cela laisse plus envisager un bug qu'une absence d'information.
    Le script pourrait être enrichi d'un filtre sur le couvert nuageux à condition que la valeur soit bien renseignée en base. D'ailleurs, c'est peut être l'encodage en json qui masque la valeur.

    • Olivier Hagolle on 20/12/2016 at 16:01 said:

      Merci Eric pour ce retour,
      Je télécharge tout systématiquement, aussi je n'avais pas noté cette erreur.
      Chaque pixel clair est bon à prendre...

      Je transmets aux personnes intéressées. Pour le moment toutefois, les cycles de corrections d'anomalies sont un peu longs.
      En attendant, passe de bonnes fêtes.
      Amitiés,
      Olivier

  • Agustin Lobo on 03/08/2017 at 08:13 said:

    Bonjour,

    For the follwoing command
    python theia_download.py --lon 1.65482 --lat 42.09408 -c SENTINEL2 -a config_theia.cfg -d 2017-01-01 -f 2017-01-31

    I get:
    Traceback (most recent call last):
    File "/home/alobo/theia_download-master/theia_download.py", line 237, in
    tmp_data=json.load(f_tmp)
    File "/usr/lib/python2.7/json/__init__.py", line 287, in load
    return loads(fp.read(),
    OverflowError: requested number of bytes is more than a Python string can hold

    I do get a file tmp.tmp of 2.4 Gb that I can unzip resulting into a directory
    SENTINEL2A_20170126-105612-238_L2A_T31TCG_D_V1-4
    of 3.7 Gb that looks correct.

    The problem is that the error prevents downloading more tiles (which I can circumvent with a longer downloading script)

    Any way to fix this? Nobody else experienced this problem?
    (maybe I should have reported this in the issues section of the github?)

    • Olivier Hagolle on 03/08/2017 at 09:39 said:

      Hi Agus,
      yes it would be better to post that king of issues to the github repository, it is much better handled.

      That command works for me : the file is only 34074 bytes.
      I do not know how to help you
      Olivier

  • Agustin Lobo on 03/08/2017 at 10:20 said:

    It seems the problem occurs when the *.zip file
    that is within the tmp.tmp file (which is, actually, a zip file as well) has a size > 2Gb. The size of tmp.tmp does not seem to be critical. I have experienced the error wir a tmp.tmp of 1.7 Gb but with a *.zip file within it of 2.1 Gb.
    So it seems a matter of the final decompression of the *.zip within tmp.tmp in the python script.

  • Agustin Lobo on 04/08/2017 at 14:41 said:

    I can confirm that this is an issue particular to one single machine, probably because it is one with an old 32 bits OS that we use just for downloading. What I still do not understand is why we can decompress tmp.tmp in the same 32 bits OS while the python script issues an error and interrupts the downloading. But no need to worry, we use another machine and forget about it.

  • vincent on 09/11/2017 at 11:08 said:

    Hello !

    Thanks a lot for your script :)

    I would like to know if there is a way to resume download ?
    For one tile, the downloaded time is around 4.5h for me... and the download often stops before the end.

    Thanks !
    Vincent

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>