Programowe pobieranie obrazów satelitarnych Landsat 8?

27

Nie byłem w stanie się tego dowiedzieć, ale czy jest sposób na programowy dostęp do obrazów satelitarnych Landsat 8?

Wiem, że mogę iść do USGS EarthExplorer, aby wyszukiwać i przeglądać sceny, a nawet je pobierać. Ale nie chcę ich pobierać na własny komputer z dwóch powodów: Mój Internet działa wolno, a mój laptop ma problemy z chłodzeniem.

Zamiast tego myślę, że chcę przenieść obrazy bezpośrednio do instancji „chmury” w celu przetwarzania danych. Byłbym również miły, gdybym mógł pobrać i przetwarzać te obrazy, gdy stają się one dostępne z USGS.

Szczery
źródło
Jakie produkty do przetwarzania chcesz zrobić?
Willy
1
Możesz być zainteresowany earthengine.google.org/#intro
Willy
Jakieś postępy w tym zakresie?
Willy,
@Willy Moją intencją było po prostu eksperymentowanie, ale planowałem sprawdzić, czy uda mi się stworzyć narzędzie, które agreguje obrazy z mojej okolicy, które tworzy agregaty czasowe i alarmy o zmianach, a także obraz kompozytowy bez chmur. Mam doświadczenie z kilkoma PaaS: es, ale sądzę, że mogą być one zbyt ograniczone i że będę musiał użyć IaaS jak EC2. Więc dopóki nie dowiem się więcej na ten temat, projekt jest martwy. Sprawdzę twój link.
Frank
Moim zdaniem problemem jest parametr „zrobił” w linku, teraz wciąż nie wiem, co to za *** jest ten parametr, ponieważ po kilku dniach stary „zrobi” umrze i za każdym razem, gdy użyjesz narzędzia do pobierania strony to się zmieni. Chcę też pobrać Landsat 8 z earthexplorer i nadal tu jestem.
Bung Rikimaru

Odpowiedzi:

11

Widziałem post na blogu od dewelopera dla ich narzędzia wiersza polecenia landsat-util.

Elektronarzędzia do zdjęć satelitarnych

Landsat-util może być rozwidlony z github i skompilowany ze źródeł chyba swoje oferty OS to w binarnym gotowe.

Blog opisuje to po prostu jako:

narzędzie wiersza poleceń, które ułatwia wyszukiwanie, pobieranie i przetwarzanie zdjęć Landsat.

Możesz wyszukiwać według daty,% zachmurzenia i innych rzeczy, pobierać natychmiast lub przetwarzać po pobraniu, np. Pansharpen, lub połączyć obrazy.

Możesz wyświetlić podgląd obrazów przed pobraniem. Polecenia wyszukiwania zapewniają link do miniatury każdego obrazu.

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

Użycie flagi --pansharpen zajmie więcej czasu, ale zapewni wyraźniejsze obrazy.

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

Możesz również wykonać wszystkie przetwarzanie na wcześniej pobranych obrazach.

landsat download LC81050682014217LGN00

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

Oto plik Readme z dodatkowymi informacjami.

SaultDon
źródło
11

Co powiesz na odpalenie instancji EC2 lub rackspace i zainstalowanie masowej aplikacji do pobierania EarthExplorer:

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

Możesz skorzystać z usługi EarthExplorer z żądaniem POST, aby programowo przesłać zadania:

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

Musisz podać parametry standingRequestName, częstotliwość ,_start_start, end_ubskrypcji, start_start, parametry search_end. To sprawi, że zaczniesz, ale wydaje się, że to tylne drzwi, a aplikacja do pobierania zbiorczego działająca na instancji EC2 byłaby lepszą i mniej czasochłonną opcją.

bcollins
źródło
Po krótkiej eksploracji popieram tę sugestię. Wygląda na to, że możesz użyć adresów URL EE, jeśli uda ci się wysłać uwierzytelnienie za pomocą swojego żądania, ale taka alternatywa byłaby hackingiem.
chryss
Moja odpowiedź na Witrynę, aby zbiorczo pobrać wszystkie mapy Topo USGS, może pomóc w tworzeniu żądań POST (chociaż będziemy musieli poczekać, aż rząd USA wznowi działanie, aby się dowiedzieć).
matt wilkie
4

Zamierzam zrobić to samo, więc uruchamiam instancję Amazon EC-2 i instaluję na niej Bulk Download. Ale o ile wiem, jest to aplikacja graficzna i nic w dokumencie Samouczek pobierania zbiorczego nie daje nadziei, że można go używać z terminalem.

Przeczytałem tutaj o możliwości używania Curl, ale zwraca on odmowę dostępu 403


Po napisaniu wiadomości e-mail do USGS oficjalna odpowiedź jest taka, że ​​pobieranie zbiorcze jest jedynym sposobem na masowe pobieranie.

Ale Charlie Loyd z Mapbox napisał mi inną możliwość:

Google Storage także odzwierciedla dużą część archiwum Landsat. Możesz zainstalować ich „gsutil” (za darmo), a następnie wyświetlić ten katalog, który jest indeksowany przez czujnik (na przykład L8 to Landsat 8) i ścieżkę / wiersz: gsutil ls gs: // earthengine-public / landsat /

Muszę dodać, że podczas przeglądania ścieżek i wierszy pamiętaj, że jest on oparty na 3 liczbach. Na przykład, jeśli potrzebujesz Ścieżki 210 wiersz 40, musisz wyszukać folder 210, a następnie 040.

Inclanfunk
źródło
Jeśli chodzi o używanie cURL, myślę, że musisz go karmić ciasteczkami; Otwórz inspektora przeglądarki, aby zobaczyć, które pliki cookie są ustawione.
Frank
To pomysł @Frank, ale nie mogę znaleźć drogi. Z następującym kodem: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive " nadal zwraca błąd 403.
Inclanfunk
3

Napisałem skrypt bash, aby to zrobić. Uwaga: możesz dostosować lokalizację adresu URL i myszy oraz kliknięcia przycisku w segmencie kodu przy użyciu polecenia xdotool. Oto kod źródłowy:

via: Everything Awesome YTC na liście odtwarzania 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
źródło
2

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

Ten skrypt, z pewnymi poprawkami (problemy z wcięciami i niektóre komentarze / zmienne były po francusku) był dla mnie niezwykle pomocny. Może jednak pobierać tylko dane, które są już w archiwum. Tak więc dla danych, które nie zostały przetworzone, musisz je zamówić. Pracuję nad automatyzacją tego teraz, ale zacząłem powoli (jak zacząłem 30 minut temu). W końcu chcę, aby dane zostały pobrane na mój serwer w chmurze, ale na razie testuję je tylko na pulpicie (wystarczy określić katalog wyjściowy, a pliki zostaną tam automatycznie umieszczone).

Ja też jestem zainteresowany pobieraniem danych w miarę ich udostępniania - w szczególności danych odbicia powierzchni przed ich wyrzuceniem (powiedziano mi, że USGS przetwarza surowe dane na współczynnik odbicia powierzchni przed ich wyrzuceniem, chociaż niektóre są przechowywane w archiwum ). Daj nam znać, jeśli poczyniłeś jakieś postępy.

użytkownik20408
źródło
0

Esta plataforma é simples! faça pobierz do KMl i abra-o bez Google Earth. Pesquise um lugar e achara o path / row (lugar central de possiveis images) ponha o path / row que achou para o lugar e ponha na plataforma.

Todas as imagens para aquele local aparecera

Tłumaczenie Google:

Ta platforma jest prosta! pobierz KML i otwórz go w Google Earth. Wyszukaj miejsce i znajdź ścieżkę / wiersz (centralne miejsce możliwych obrazów), umieść ścieżkę / wiersz znaleziony dla tego miejsca i umieść je na platformie. Pojawią się wszystkie obrazy dla tej lokalizacji

http://georef.vantis.pt

użytkownik2342603
źródło
Witamy w GIS SE! Różnimy się nieco od innych stron; to nie jest forum dyskusyjne, ale strona pytań i odpowiedzi. Zapoznaj się z naszą krótką prezentacją, aby dowiedzieć się więcej o naszym ukierunkowanym formacie pytań i odpowiedzi. Proszę
pisać
Proszę rozwiązać problemy z (1) odpowiedzią, która musi być w całości w języku angielskim, (2), aby nie podawać rekomendacji własnego produktu bez ujawnienia oraz (3), aby bezpośrednio odpowiedzieć na zadane pytanie, ponieważ nie wydaje się, że jest to sposób „programowo uzyskać dostęp do obrazów satelitarnych Landsat 8”.
PolyGeo