Récupération par programme d'images satellites Landsat 8?

27

Je n'ai pas pu le découvrir moi-même, mais existe-t-il un moyen d'accéder par programme aux images satellites Landsat 8?

Je sais que je peux aller sur USGS EarthExplorer pour rechercher et parcourir les scènes, et même les télécharger. Mais je ne veux pas les télécharger sur mon propre ordinateur pour deux raisons, mon Internet est lent et mon ordinateur portable a des problèmes de refroidissement.

Donc, au lieu de cela, je pense que je veux transférer les images directement vers une instance «cloud» pour le traitement des données. Je serais également ravi de pouvoir télécharger et traiter ces images dès qu'elles seront disponibles auprès de l'USGS.

Franc
la source
Quels produits de transformation souhaitez-vous fabriquer?
Willy
1
Vous pouvez être intéressé par earthengine.google.org/#intro
Willy
Des progrès à ce sujet?
Willy
@Willy Mon intention était principalement d'expérimenter, mais je prévoyais de voir si je pouvais créer un outil qui agrège les images de mon quartier, qui crée des séries chronologiques et des alertes de changements, ainsi qu'une image composite sans nuages. J'ai de l'expérience avec quelques PaaS: es, mais je pense qu'ils pourraient être trop limités et que je devrai utiliser un IaaS comme EC2. Donc, jusqu'à ce que je me déplace pour en savoir plus, le projet est mort sur les rails. Je vais vérifier ton lien.
Frank
À mon avis, le problème est le paramètre "did" dans le lien, maintenant je ne sais toujours pas quel est le paramètre *** car après quelques jours, l'ancien "did" mourra et à chaque fois que vous utilisez l'outil de téléchargement de site Web ça va changer. Je veux aussi télécharger Landsat 8 de earthexplorer et toujours coincé ici.
Bằng Rikimaru

Réponses:

11

J'ai vu un billet de blog de developmentseed pour leur utilitaire de ligne de commande landsat-util.

Outils électriques pour l'imagerie satellite

Le landsat-util peut être dérivé de github et compilé à partir de la source, à moins que votre système d'exploitation ne le propose dans un binaire prêt à l'emploi.

Le blog le décrit simplement comme:

un utilitaire de ligne de commande qui facilite la recherche, le téléchargement et le traitement des images Landsat.

Vous pouvez effectuer une recherche en fonction de la date, du% de couverture nuageuse et d'autres choses, télécharger immédiatement ou traiter une fois qu'il est téléchargé, comme pansharpen ou assembler les images.

Vous pouvez prévisualiser les images avant de les télécharger. Les commandes de recherche fournissent un lien vers une vignette pour chaque image.

landsat search --cloud 4 --start "August 1 2013" --end "August 25 2014" country 'Vatican'

L'utilisation de l'option --pansharpen prendra plus de temps à traiter mais produira des images plus claires.

landsat search --download --imageprocess --pansharpen --cloud 4 --start "august 11 2013" --end "august 13 2013" pr 191 031

Vous pouvez également effectuer tous les traitements sur les images que vous avez précédemment téléchargées.

landsat download LC81050682014217LGN00

landsat process --pansharpen /your/path/LC81050682014217LGN00.tar.bz

Voici un readme avec plus d'informations.

SaultDon
la source
11

Que diriez-vous de lancer une instance EC2 ou rackspace et d'installer l'application de téléchargement en masse EarthExplorer:

http://earthexplorer.usgs.gov/bulk/

Vous pouvez accéder au service EarthExplorer avec une demande POST pour soumettre des travaux par programme:

http://earthexplorer.usgs.gov/subscription/submit/

Vous devez fournir les paramètres standingRequestName, fréquence, abonnement_début, abonnement_end, recherche_start, recherche_end. Cela vous aiderait à démarrer, mais cela ressemble à une porte dérobée et que l'application de téléchargement en masse s'exécutant sur une instance EC2 serait une option meilleure et moins longue.

bcollins
la source
Après quelques explorations, j'appuie cette suggestion. Il semble que vous puissiez utiliser les URL EE si vous parvenez à envoyer l'authentification avec votre demande, mais cette alternative serait piratée.
chryss
Ma réponse pour que Site télécharge en masse toutes les cartes topographiques USGS peut aider à construire des demandes POST (bien que nous devrons attendre que le gouvernement américain reprenne ses opérations pour le savoir).
matt wilkie
4

J'ai l'intention de faire de même, donc je démarre une instance Amazon EC-2 et j'y installe le téléchargement en bloc. Mais pour autant que je sache, c'est une application graphique et rien dans le doc Bulk Download Tutorial ne laisse espérer que vous pourrez l'utiliser avec le terminal.

J'ai lu ici la possibilité d'utiliser Curl mais cela renvoie un accès 403 refusé


Après avoir écrit des e-mails à l'USGS, la réponse officielle est que le téléchargement en bloc est le seul moyen de téléchargement massif.

Mais Charlie Loyd de Mapbox m'a écrit une autre possibilité:

Google Storage reflète également une grande partie des archives Landsat. Vous pouvez installer leur «gsutil» (gratuit), puis répertorier ce répertoire, qui est indexé par capteur (par exemple, L8 est Landsat 8) et chemin / ligne: gsutil ls gs: // earthengine-public / landsat /

Je dois ajouter que lorsque vous parcourez les chemins et les lignes, n'oubliez pas que c'est basé sur 3 chiffres. Par exemple, si vous avez besoin du chemin 210, ligne 40, vous devez rechercher le dossier 210, puis 040.

Inclanfunk
la source
Concernant l'utilisation de cURL, je pense que vous devez l'alimenter avec des cookies; Ouvrez l'inspecteur de votre navigateur pour voir quels cookies sont installés.
Frank
C'est l'idée @Frank, mais je ne trouve pas le chemin. Avec le code suivant: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive ", il renvoie toujours une erreur 403.
Inclanfunk
3

J'ai écrit un script bash pour ce faire. Notez que vous pouvez personnaliser les emplacements des URL et de la souris et les clics sur les boutons dans le segment de code avec la commande xdotool utilisée. Voici le code source:

via: Everything Awesome YTC dans la playlist bash

#!/bin/bash

echo " "

sudo apt-get install xdotool -y
sleep 2

echo " "
echo "# NASA/NOAA/NHC Hurricane Satellite Imagery Bot [H.S.I.B]"
echo "# Coded by Scott Hermann "
echo "[ YouTube: https://www.youtube.com/user/postulatedstate/videos/ ]"
echo " "

# * * Instructions * *
# 1] Click on map to select area to monitor.
# 2] Set delay variable ( time between saves )
# The script will now refresh and save the images-
# -every X seconds, and save using the filenames
# filename-X.jpg; filename-X.jpg; etc..

export PS1="\e[0;30m[\u@\h \W]\$ \e[m "
# make black prompt - color code=[0;30]

chromsat_loop()
{
 chromium -new-tab https://weather.msfc.nasa.gov
 sleep 2

 notify-send "Your browser will now open the NASA website. Select the section of earth to monitor via Satallite by clicking on it, and then enter Y or N (caps) into the terminal, or press the [Begin] button on the GUI."
 echo " "
}


get_settings()
{
  echo -n "Enter storm name: "; read stormname
  echo -n "Season? [ Ex: 2017 ] "; read season
  echo -n "Month "; read month
  # echo -n "data"; <- remember ;
  sleep 2
  echo " "
  echo "Checking to see if a database for hurricane $stormname of the $season season exist in the month of $month"
  sleep 2
  echo " "
  # if dir $season = true then confirm
  if [ -d /root/Desktop/$season ]; then
     notify-send "The hurricane season exist in the database."
     echo "The hurricane season exist in the database."
     echo " "
  else
     echo "It doesn't appear that this season is in the database. I will create it for you."
     mkdir /root/Desktop/$season
  fi

  # if dir $season/$month = true then confirm

  if [ -d /root/Desktop/$season/$month ]; then
     notify-send "The month entered has data in the database."
     echo "The month entered has data in the database."
     echo " "
  else
     mkdir /root/Desktop/$season/$month
  fi

  # if dir $season/$month/$stormname = true then confirm

  if [ -d /root/Desktop/$season/$month/$stormname ]; then
     notify-send "This storm is in the database."
     echo "This storm is in the database."
  else
     echo "Adding the storm to the database."
     notify-send "Adding the storm to the database."
     echo " "
     sleep 1
     mkdir /root/Desktop/$season/$month/$stormname
  fi
  echo " "
  sleep 2

  echo -n "Enter data retrieval delay variable: ( 1200 = 20 minutes ) "; read delay

  echo " "
  sleep 2

  echo " "
  echo "1] Chromium"
  echo "2] Firefox"
  echo "3] Qupzilla"
  echo "4] Modori"
  echo " "
  echo -n "Which Web-Browser are you using? "; read browser


  if [ "$browser" = "1" ]; then

       echo "Initializing NASA Data Transfer..."
       chromsat_loop
  fi

  if [ "$browser" = "2" ]; then

       echo "$browser set to Firefox"
  fi


# End Of Function
}

get_settings

# Note: Calling functions in bash -> fun_ction

# Create 4 functions for the 4 browsers it will support..



ready_ornot()
{
  notify-send "In 45 seconds, the script will begin data retrieval.. Go ahead and select the portion of the storm on the map that you wish to monitor. Save the first image to the directory on your desktop. It's listed under the year, the month, and the storm. From there, the bot will save the images to that folder."
  echo "In 45 seconds, the script will begin data retrieval.. Go ahead and select the portion of the storm on the map that you wish to monitor. It's listed under the year, the month, and the storm. From there, the bot will save the images to that folder."

  newloop=0
  until [ "$newloop" = "45" ]
  do
     sleep 1
     echo "Initializing data retrieval process in 45 seconds. @ $newloop second(s)...."
     newloop=`expr $newloop + 1`
  done

  notify-send "Initializing data retrieval process.. "
  echo "Initializing data retrieval process.."
  echo " "

}

ready_ornot

begin_dataretr()
{
 sleep 2
 notify-send "@ Data Retrieval Function."
 # url opened in new tab waiting
 # variables=value; = NO space [x]-> var = 1<-(wrong)
 forever=1
 looper=1
 while [ "$forever" == "1" ];
 do
     # refresh chromium page
     sleep $delay && echo $delay # 60 for test; 1800=30 mins
     # Save images after refresh;
     # plug\/ looper \/ variable in filenames
     # file1.jpg file2.jpg file3.jpg etc.


     # <!--#!/bin/bash-> to be modified and completed * * * * * * * * * #!/bin/bash -!>


     # CD to folder 
     # /root/Desktop/season/month/stornname
     # ( that should make the save as file dialog box open in our folder )
     echo " " 
     echo "Done sleeping.."
     echo " "
     # xdotool getmouselocation --shell

     xdotool mousemove 765 438
     # mouse positioned to click on save file box
     # for loop through var to save file name as
     sleep 1
     xdotool click 1
     # text box clicked and waiting.
     sleep 1
     xdotool key F5
     sleep 7
     xdotool mousemove 953 229
     sleep 1
     xdotool click 1
     sleep 5
     xdotool click 3
     sleep 3
     xdotool key Down
     xdotool key Down
     sleep 2
     xdotool mousemove 983 261
     sleep 1
     xdotool click 1
     sleep 1
     # xdotool key Enter
     sleep 1   
     xdotool mousemove 1146 763
     sleep 1
     xdotool click 1
     notify-send "New data retrieval has been saved to database.."

     # <!--#!/bin/bash-> to be modified and completed * * * * * * * * * #!/bin/bash -!>

 done
}
begin_dataretr
# no () when calling functions.
#  - - - - - -  - only when def them.
Scott S Hermann
la source
2

https://github.com/olivierhagolle/LANDSAT-Download

Ce script, avec quelques ajustements (problèmes d'indentation et certains commentaires / variables étaient en français) m'a été extrêmement utile. Cependant, il ne peut télécharger que les données qui sont déjà dans l'archive. Donc, pour les données qui n'ont pas été traitées, vous devez les commander. Je travaille sur l'automatisation maintenant, mais à un démarrage lent (comme je viens de commencer il y a 30 minutes). Finalement, je veux que les données soient téléchargées sur mon serveur cloud, mais pour l'instant je ne fais que les tester sur mon bureau (vous spécifiez simplement un répertoire de sortie et les fichiers y sont automatiquement placés).

Moi aussi, je suis intéressé par le téléchargement des données dès qu'elles deviennent disponibles - en particulier les données de réflectance de surface avant de les jeter (on me dit que l'USGS traite les données brutes en réflectance de surface temporairement avant de les jeter, bien que certaines soient stockées dans l'archive ). Veuillez nous informer si vous avez fait des progrès.

user20408
la source
0

Esta plataforma é simples! faça télécharger do KMl e abra-o no google earth. Pesquise um lugar e achara o chemin / ligne (lugar central de possiveis imagens) ponha o chemin / ligne que achou para o lugar e ponha na plataforma.

Todas as imagens para aquele local aparecera

Google Traduction:

Cette plateforme est simple! téléchargez KML et ouvrez-le dans google earth. Recherchez un lieu et trouvez le chemin / la ligne (lieu central des images possibles) mettez le chemin / la ligne que vous avez trouvé pour le lieu et placez-le sur la plate-forme. Toutes les images de cet emplacement apparaîtront

http://georef.vantis.pt

user2342603
la source
Bienvenue dans GIS SE! Nous sommes un peu différents des autres sites; ce n'est pas un forum de discussion mais un site de questions / réponses. Veuillez consulter notre brève visite pour en savoir plus sur notre format de questions et réponses ciblé. Veuillez poster uniquement en anglais aussi ...
PolyGeo
Veuillez aborder les problèmes de (1) votre réponse devant être entièrement en anglais, (2) de ne pas inclure une recommandation de votre propre produit sans divulgation et (3) de répondre directement à la question posée car cela ne semble pas offrir un moyen pour "accéder par programme aux images satellites Landsat 8".
PolyGeo