=>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-01python ./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)

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

  1. 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.

    1. Merci Eric pour ce retour,\nJe télécharge tout systématiquement, aussi je n’avais pas noté cette erreur.\nChaque pixel clair est bon à prendre…\n \nJe transmets aux personnes intéressées. Pour le moment toutefois, les cycles de corrections d’anomalies sont un peu longs.\nEn attendant, passe de bonnes fêtes.\nAmitiés,\nOlivier

  2. Bonjour,For the follwoing commandpython theia_download.py –lon 1.65482 –lat 42.09408 -c SENTINEL2 -a config_theia.cfg -d 2017-01-01 -f 2017-01-31I 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 holdI do get a file tmp.tmp of 2.4 Gb that I can unzip resulting into a directorySENTINEL2A_20170126-105612-238_L2A_T31TCG_D_V1-4of 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?)

    1. Hi Agus,\nyes it would be better to post that king of issues to the github repository, it is much better handled.\n\nThat command works for me : the file is only 34074 bytes.\nI do not know how to help you\nOlivier

  3. It seems the problem occurs when the *.zip filethat 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.

  4. 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.

  5. 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

    1. Sorry for late answer and for the inconvenience with the data download ! This is not what I observe even from home with a standard ADSL (~10mn) . I think it comes from your side of the network.I found a page about what you ask.https://stackoverflow.com/questions/19728930/how-to-resume-interrupted-download-automatically-in-curlIt seems that wget handles interruptions better than curl, which is used in my tool. I do not have much time to work on it these days. Are you able to give a try ?

  6. Bonjour,
    Ayant tenté la commande
    python ./theia_download.py -t T30UUU -c SENTINEL2 -a config_theia.cfg -d 2015-11-01 -m -1 > T30UUU.txt pour avoir la liste de toutes les images disponibles sur cette tuile je remarque que, à part 3 images des débuts (2015-11-29, 2015-12-22 et 2016-10-04), aucune n’a un CloudCover > 90%.
    Cela veut-il dire que vous ne publiez pas ces images ?
    (Quelle que soit la réponse, je suis bien content de votre script !)
    Cordialement,
    AF

  7. Bonjour Alain,
    merci pour le retour !
    en effet, nous ne terminons pas le traitement des données presque entièrement nuageuses. On gagne du temps de calcul, de la place de stockage, du temps de transfert, et… de la précision, il vaut mieux se méfier des petits trous dans les nuages, affectés par des ombres, des effets d’environnement…
    Cordialement,
    Olivier

Répondre à Olivier Hagolle Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.