Programmgesteuertes Abrufen von Landsat 8-Satellitenbildern?

27

Ich habe das selbst nicht herausgefunden, aber gibt es eine Möglichkeit, programmgesteuert auf Landsat 8-Satellitenbilder zuzugreifen?

Ich weiß, dass ich zu USGS EarthExplorer gehen kann, um die Szenen zu durchsuchen und zu durchsuchen und sie sogar herunterzuladen. Ich möchte sie jedoch aus zwei Gründen nicht auf meinen eigenen Computer herunterladen: Mein Internet ist langsam und mein Laptop hat Probleme mit der Kühlung.

Stattdessen möchte ich die Bilder direkt in eine "Cloud" -Instanz zur Datenverarbeitung übertragen. Ich wäre auch nett, wenn ich diese Bilder herunterladen und verarbeiten könnte, sobald sie von USGS erhältlich sind.

Frank
quelle
Welche Verarbeitungsprodukte möchten Sie herstellen?
Willy
1
Sie könnten an earthengine.google.org/#intro
Willy
Irgendwelche Fortschritte dabei?
Willy
@Willy Ich wollte eigentlich nur experimentieren, aber ich wollte herausfinden, ob ich ein Tool entwickeln kann, das Bilder aus meinen Nachbarschaftsaggregaten aggregiert, Zeitreihen und Warnmeldungen zu Änderungen erstellt sowie ein zusammengesetztes Bild ohne Wolken. Ich habe Erfahrung mit ein paar PaaS: es, aber ich denke, dass sie möglicherweise zu begrenzt sind und ich ein IaaS wie EC2 verwenden muss. Also, bis ich herumkomme, um mehr darüber zu erfahren, ist das Projekt tot in den Gleisen. Ich überprüfe deinen Link.
Frank
Meiner Meinung nach ist das Problem der "did" -Parameter im Link, jetzt weiß ich immer noch nicht, was der *** dieser Parameter ist, da nach einigen Tagen das alte "did" stirbt und jedes Mal, wenn Sie das Website-Download-Tool verwenden es wird sich ändern. Ich möchte Landsat 8 auch vom Earhexplorer herunterladen und stecke hier noch fest.
Bằng Rikimaru

Antworten:

11

Ich habe einen Blog-Eintrag von developmentseed für das Kommandozeilen-Dienstprogramm landsat-util gesehen.

Elektrowerkzeuge für Satellitenbilder

Das landsat-util kann von Github aus gegabelt und aus dem Quellcode kompiliert werden, es sei denn, Ihr Betriebssystem bietet es in einer Binärdatei an, die einsatzbereit ist.

Der Blog beschreibt es einfach als:

Ein Befehlszeilendienstprogramm, mit dem Landsat-Bilder einfach gesucht, heruntergeladen und verarbeitet werden können.

Sie können anhand des Datums, der Wolkenbedeckung (%) und anderer Kriterien suchen, die Bilder sofort herunterladen oder nach dem Herunterladen wie Pansharpen verarbeiten oder zusammenfügen.

Sie können eine Vorschau der Bilder anzeigen, bevor Sie sie herunterladen. Suchbefehle bieten einen Link zu einer Miniaturansicht für jedes Bild.

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

Die Verwendung des --pansharpen-Flags dauert länger, erzeugt jedoch klarere Bilder.

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

Sie können die gesamte Verarbeitung auch für zuvor heruntergeladene Bilder ausführen.

landsat download LC81050682014217LGN00

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

Hier ist eine Readme-Datei mit weiteren Informationen.

SaultDon
quelle
11

Wie wäre es, eine EC2- oder Rackspace-Instanz zu starten und die Massen-Download-Anwendung EarthExplorer zu installieren:

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

Sie können den EarthExplorer-Dienst mit einer POST-Anforderung zum programmgesteuerten Senden von Jobs aufrufen:

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

Sie müssen die Parameter standingRequestName, frequency, subscription_start, subscription_end, search_start und search_end angeben. Das würde Ihnen den Einstieg erleichtern, aber es fühlt sich wie eine Hintertür an und die Massen-Download-Anwendung, die auf einer EC2-Instanz ausgeführt wird, wäre eine bessere und weniger zeitaufwendige Option.

bcollins
quelle
Nach einigem Nachforschen unterstütze ich diesen Vorschlag. Es scheint, dass Sie die EE-URLs verwenden können, wenn Sie die Authentifizierung mit Ihrer Anfrage senden können, aber diese Alternative wäre hackisch.
chryss
Meine Antwort für Site zum Herunterladen aller USGS Topo Maps in großen Mengen kann beim Erstellen von POST-Anfragen hilfreich sein (wir müssen jedoch warten, bis die US-Regierung den Betrieb wieder aufnimmt, um dies herauszufinden).
Matt Wilkie
4

Ich habe vor, dasselbe zu tun, also starte ich eine Amazon EC-2-Instanz und installiere den Massen-Download darauf. Soweit ich weiß, handelt es sich jedoch um eine grafische Anwendung, und nichts im Bulk-Download-Tutorial lässt hoffen, dass Sie sie mit dem Terminal verwenden können.

Ich habe hier über die Möglichkeit der Verwendung von Curl gelesen , aber es wird ein Zugriff von 403 verweigert


Nachdem Sie E-Mails an USGS geschrieben haben, lautet die offizielle Antwort, dass der Massen-Download der einzige Weg für den Massen-Download ist.

Aber Charlie Loyd von Mapbox schrieb mir eine andere Möglichkeit:

Google Storage spiegelt auch einen Großteil des Landsat-Archivs wider. Sie können ihr "gsutil" (kostenlos) installieren und dann dieses Verzeichnis auflisten, das vom Sensor indiziert wird (z. B. L8 ist Landsat 8) und Pfad / Zeile: gsutil ls gs: // earthengine-public / landsat /

Ich muss hinzufügen, dass beim Durchsuchen von Pfaden und Zeilen zu berücksichtigen ist, dass es sich um eine 3-Zahlen-Basis handelt. Wenn Sie beispielsweise Pfad 210 Zeile 40 benötigen, müssen Sie nach Ordner 210 und dann nach 040 suchen.

Inclanfunk
quelle
Über die Verwendung von cURL denke ich, dass Sie es mit einigen Cookies füttern müssen; Öffnen Sie den Inspektor Ihres Browsers, um zu sehen, welche Cookies gesetzt sind.
Frank
Das ist die Idee @Frank, aber ich kann den Weg nicht finden. Mit dem folgenden Code: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive " gibt es immer noch einen 403-Fehler zurück.
Inclanfunk
3

Ich habe dazu ein Bash-Skript geschrieben. Beachten Sie, dass Sie die URL- und Mauspositionen sowie die Tastenklicks im Codesegment anpassen können, indem Sie den Befehl xdotool verwenden. Hier ist der Quellcode:

via: Everything Awesome YTC in der Bash-Playlist

#!/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
quelle
2

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

Dieses Skript mit einigen Optimierungen (Einrückungsprobleme und einige Kommentare / Variablen waren auf Französisch) war für mich äußerst hilfreich. Es können jedoch nur die Daten heruntergeladen werden, die sich bereits im Archiv befinden. Für Daten, die nicht verarbeitet wurden, müssen Sie diese bestellen. Ich arbeite daran, das jetzt zu automatisieren, aber langsam zu starten (da ich gerade vor 30 Minuten angefangen habe). Schließlich möchte ich, dass die Daten auf meinen Cloud-Server heruntergeladen werden, aber jetzt teste ich sie nur auf meinem Desktop (Sie geben nur ein Ausgabeverzeichnis an und die Dateien werden automatisch dort abgelegt).

Ich bin auch daran interessiert, die Daten herunterzuladen, sobald sie verfügbar sind - insbesondere die Daten zum Oberflächenreflexionsgrad, bevor sie verworfen werden (USGS verarbeitet die Rohdaten vorübergehend in Oberflächenreflexionsgrad, bevor sie verworfen werden, obwohl einige im Archiv gespeichert werden ). Bitte lassen Sie uns wissen, ob Sie Fortschritte erzielt haben.

user20408
quelle
0

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

Todas as imagens para aquele local aparecera

Google Übersetzung:

Diese Plattform ist einfach! Laden Sie KML herunter und öffnen Sie es in Google Earth. Suchen Sie nach einem Ort und finden Sie den Pfad / die Zeile (zentrale Stelle möglicher Bilder). Geben Sie den Pfad / die Zeile ein, den / die Sie für den Ort gefunden haben, und legen Sie sie auf die Plattform. Alle Bilder für diesen Ort werden angezeigt

http://georef.vantis.pt

user2342603
quelle
Willkommen bei der GIS SE! Wir unterscheiden uns ein wenig von anderen Websites. Dies ist kein Diskussionsforum, sondern eine Q & A-Site. Schauen Sie sich unsere kurze Tour an, um mehr über unser fokussiertes Q & A-Format zu erfahren. Bitte auch nur auf Englisch
posten
Bitte sprechen Sie die folgenden Punkte an: (1) Ihre Antwort muss ausschließlich auf Englisch sein, (2) Sie dürfen keine Empfehlung für Ihr eigenes Produkt ohne Offenlegung enthalten, und (3) Sie müssen die gestellte Frage direkt beantworten, da dies anscheinend keinen Weg bietet um "programmgesteuert auf Landsat 8-Satellitenbilder zuzugreifen".
PolyGeo