Recupero programmatico di immagini satellitari Landsat 8?


27

Non sono stato in grado di scoprirlo da solo, ma esiste un modo per accedere a livello di codice alle immagini satellitari di Landsat 8?

So che posso andare su USGS EarthExplorer per cercare e sfogliare le scene e persino scaricarle. Ma non voglio scaricarli sul mio computer per due motivi, la mia connessione Internet è lenta e il mio laptop ha problemi di raffreddamento.

Quindi, invece, immagino di voler trasferire le immagini direttamente su un "cloud", istanza per l'elaborazione dei dati. Sarei anche bello se potessi scaricare ed elaborare queste immagini non appena saranno disponibili da USGS.


Quali prodotti di elaborazione vuoi realizzare?
Willy,

1
Potresti essere interessato a earthengine.google.org/#intro
Willy,

Qualche progresso su questo?
Willy

@Willy La mia intenzione era principalmente di sperimentare, ma stavo pianificando di vedere se riesco a creare uno strumento che aggrega immagini dai miei aggregati di quartiere, che fa serie temporali e avvisi di cambiamenti e anche un'immagine composita senza nuvole. Ho esperienza con alcuni PaaS: es, ma immagino che potrebbero essere troppo limitati e che dovrò usare un IaaS come EC2. Quindi, finché non mi giro per saperne di più, il progetto è morto nelle tracce. Controllerò il tuo link.
Frank,

Secondo me il problema è il parametro "did" nel link, ora non so ancora quale *** sia questo parametro perché dopo pochi giorni il vecchio "did" morirà e ogni volta che si utilizza lo strumento di download del sito Web cambierà. Voglio scaricare Landsat 8 anche da earthexplorer e ancora bloccato qui.
Bằng Rikimaru,

Risposte:


11

Ho visto un post sul blog di developmentseed per la loro utility da riga di comando landsat-util.

Utensili elettrici per immagini satellitari

Il landsat-util può essere biforcato da Github e compilato dal sorgente a meno che il tuo sistema operativo non lo offra in un binario pronto per l'uso.

Il blog lo descrive semplicemente come:

un'utilità da riga di comando che semplifica la ricerca, il download e l'elaborazione delle immagini di Landsat.

Puoi cercare in base a data, percentuale di copertura cloud e altre cose, scaricare immediatamente o elaborare una volta scaricato come pansharpen o unire insieme le immagini.

È possibile visualizzare l'anteprima delle immagini prima di scaricarle. I comandi di ricerca forniscono un collegamento a un'anteprima per ogni immagine.

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

L'uso del flag --pansharpen richiederà più tempo per l'elaborazione ma produrrà immagini più chiare.

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

È inoltre possibile eseguire tutte le elaborazioni sulle immagini precedentemente scaricate.

landsat download LC81050682014217LGN00

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

Ecco un readme con maggiori informazioni.


11

Che ne dite di avviare un'istanza di EC2 o rackspace e installare l'applicazione di download di massa di EarthExplorer:

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

È possibile accedere al servizio EarthExplorer con una richiesta POST per inviare lavori a livello di codice:

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

Dovresti fornire i parametri standingRequestName, frequenza, iscrizione_start, iscrizione_end, ricerca_start, ricerca_end. Questo ti farebbe iniziare, ma sembra una backdoor e che l'applicazione di download di massa in esecuzione su un'istanza EC2 sarebbe un'opzione migliore e che richiede meno tempo.


Dopo alcune esplorazioni, sto suggerendo questo suggerimento. Sembra che tu possa utilizzare gli URL EE se riesci a inviare l'autenticazione con la tua richiesta, ma questa alternativa sarebbe hacker.
chryss,

La mia risposta affinché il sito scarichi tutte le mappe Topo USGS in blocco può aiutare a costruire richieste POST (anche se dovremo aspettare che il governo degli Stati Uniti riprenda le operazioni per scoprirlo).
Matt Wilkie,

4

Ho intenzione di fare lo stesso, quindi avvio un'istanza Amazon EC-2 e installo il Bulk Download su di essa. Ma per quanto ne so è un'applicazione grafica e nulla nel documento Tutorial per il download collettivo lascia sperare che tu possa usarlo con il terminale.

Ho letto qui sulla possibilità di utilizzare Curl ma restituisce un accesso 403 negato


Dopo aver scritto e-mail a USGS, la risposta ufficiale è che il download collettivo è l'unico modo per il download di massa.

Ma Charlie Loyd From Mapbox mi ha scritto un'altra possibilità:

Google Storage rispecchia anche gran parte dell'archivio di Landsat. Puoi installare il loro "gsutil" (gratuito) e quindi elencare questa directory, che è indicizzata dal sensore (ad esempio, L8 è Landsat 8) e percorso / riga: gsutil ls gs: // earthengine-public / landsat /

Devo aggiungere che quando si sfogliano percorsi e righe ricordare che si basa su 3 numeri. Ad esempio, se hai bisogno di Path 210 Row 40, devi cercare la cartella 210 e quindi 040.


A proposito dell'utilizzo di cURL, penso che sia necessario alimentarlo con alcuni cookie; Apri la finestra di ispezione del tuo browser per vedere quali cookie sono impostati.
Frank,

Che l'idea @ Frank, ma non riesco a trovare la strada. Con il seguente codice: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive " restituisce comunque un errore 403.
Inclanfunk,

3

Ho scritto uno script bash per farlo. Nota che puoi personalizzare la posizione dell'URL e del mouse e i clic sui pulsanti nel segmento di codice con il comando xdotool utilizzato. Ecco il codice sorgente:

via: Tutto fantastico YTC nella 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.

2

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

Questo script, con alcune modifiche (problemi di rientro e alcuni commenti / variabili erano in francese) mi è stato estremamente utile. Tuttavia, può solo scaricare i dati già presenti nell'archivio. Quindi, per i dati che non sono stati elaborati, è necessario ordinarli. Sto lavorando per automatizzarlo adesso, ma partendo lentamente (come ho appena iniziato 30 minuti fa). Alla fine voglio che i dati vengano scaricati sul mio server cloud, ma per ora sto solo testandoli sul mio desktop (basta specificare una directory di output e i file vengono automaticamente messi lì).

Anch'io sono interessato a scaricare i dati non appena disponibili, in particolare i dati di riflettanza della superficie prima che vengano eliminati (mi è stato detto che USGS elabora temporaneamente i dati grezzi in riflettanza della superficie prima di eliminarli, anche se alcuni vengono archiviati nell'archivio ). Fateci sapere se avete fatto qualche passo avanti.


0

Esta plataforma é simples! faça download do KMl e abra-o no google earth. Indagini e colonne o percorso (fila centrale di immagini immaginarie) ponha o percorso / riga che viene visualizzato per il percorso e la riga.

Todas as imagec para aquele local aparecera

Traduzione di Google:

Questa piattaforma è semplice! scarica KML e aprilo in google earth. Cerca un luogo e trova il percorso / riga (luogo centrale delle immagini possibili) inserisci il percorso / riga che hai trovato per il luogo e posizionalo sulla piattaforma. Appariranno tutte le immagini per quella posizione

http://georef.vantis.pt


Benvenuti in GIS SE! Siamo un po 'diversi dagli altri siti; questo non è un forum di discussione ma un sito di domande e risposte. Dai un'occhiata al nostro breve tour per conoscere il nostro formato di domande e risposte mirato. Si prega di pubblicare solo in inglese anche ...
PolyGeo

Evitare l'autopromozione esplicita. La comunità tende a votare apertamente l'autopromozione e contrassegnarla come spam. Pubblica risposte valide e pertinenti e se alcuni (ma non tutti) si verificano sul tuo prodotto o sito Web, va bene. Tuttavia, devi rivelare la tua affiliazione nelle tue risposte. . In pratica, ciò significa che qualsiasi risposta che consiglia il proprio prodotto deve includere qualcosa come " Disclosure: I am the [position] of [company] che sviluppa / distribuisce questo software".
PolyGeo

Per favore, affronta i problemi di (1) la tua risposta che deve essere tutta in inglese, (2) per non includere una raccomandazione del tuo prodotto senza divulgazione e (3) per rispondere direttamente alla domanda posta perché questo non sembra offrire un modo a "accedere a livello di codice alle immagini satellitari di Landsat 8".
PolyGeo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.