¿Existe una forma programática de recuperar imágenes satelitales Landsat 8?

26

No he podido averiguar esto por mí mismo, pero ¿hay alguna forma de acceso programático a las imágenes satelitales Landsat 8? Sé que puedo ir a USGS EarthExplorer para buscar y explorar las escenas, e incluso descargarlas. Pero no quiero descargarlos a mi propia computadora por dos razones, mi internet es lento y mi computadora portátil tiene problemas de enfriamiento.

Entonces, en vez de eso, imagino que quiero transferir las imágenes directamente a una "nube" para el procesamiento de datos. También estaría bien si pudiera descargar y procesar estas imágenes a medida que estén disponibles desde USGS.

¿Hay alguna manera de hacer esto?

    
pregunta Frank 29.09.2013 - 17:55

6 respuestas

11

Vi una publicación de blog de developmentseed para su utilidad de línea de comandos landsat-util.

Herramientas eléctricas para imágenes satelitales

El landsat-util se puede bifurcar desde github y compilar desde la fuente a menos que su sistema operativo lo ofrezca en un binario listo para ir.

El blog lo describe simplemente como:

  

una utilidad de línea de comandos que facilita la búsqueda, descarga y   procesar imágenes de Landsat.

Puede buscar en función de la fecha, el porcentaje de cobertura en la nube y otras cosas, descargarlo inmediatamente o procesarlo una vez que se haya descargado como pansharpen o unir las imágenes.

  

Puedes previsualizar las imágenes antes de descargarlas. Los comandos de búsqueda proporcionan una   enlace a una miniatura para cada imagen.

     

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

     

Usar la bandera --pansharpen tomará más tiempo   para procesar pero producirá imágenes más claras.

     

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

     

También puede realizar todo el procesamiento en imágenes que previamente   descargado.

     

landsat download LC81050682014217LGN00

     

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

Aquí hay un readme con más información.

    
respondido por el SaultDon 31.12.2014 - 00:41
11

¿Qué hay de encender una instancia de EC2 o espacio de racks e instalar la aplicación de descarga masiva EarthExplorer?

enlace

Podría golpear el servicio EarthExplorer con una solicitud POST para enviar trabajos mediante programación:

enlace

Necesitaría proporcionar los parámetros standingRequestName, frequency, suscribente, suscripciones, sus búsquedas y sus parámetros. Esto lo ayudará a comenzar, pero se siente como una puerta trasera y el hecho de que la aplicación de descarga masiva que se ejecuta en una instancia de EC2 sea una opción mejor y que requiera menos tiempo.

    
respondido por el bcollins 29.09.2013 - 18:30
4

Tengo la intención de hacer lo mismo, así que comienzo una instancia de Amazon EC-2 e instalo la descarga masiva en ella. Pero por lo que sé, es una aplicación gráfica y nada en el documento Tutorial de descarga masiva . Esperamos que pueda usarlo. Con el terminal.

Leí aquí acerca de la posibilidad de usar Curl, pero devuelve un < em> 403 acceso denegado

Espero que pueda ayudar a encontrar finalmente una respuesta concreta.

=============================================== ===================================

Después de escribir correos electrónicos a USGS, la respuesta oficial es que la descarga masiva es la única forma de descarga masiva.

Pero Charlie Loyd de Mapbox me escribió otra posibilidad:

Google Storage también refleja gran parte del archivo de Landsat. Puede instalar su "gsutil" (gratis) y luego listar este directorio, que está indexado por el sensor (por ejemplo, L8 es Landsat 8) y ruta / fila: gsutil ls gs: // earthengine-public / landsat /

Tengo que añadir que al navegar por rutas y filas, recuerde que se basa en 3 números. Por ejemplo, si necesita la ruta 210, fila 40, debe buscar la carpeta 210 y luego 040.

    
respondido por el Inclanfunk 20.03.2014 - 20:33
3

Escribí un script de bash para hacer esto. Tenga en cuenta que puede personalizar las ubicaciones de la url y el mouse y los clics en el segmento de código con el comando xdotool que se está utilizando. Aquí está el código fuente:

a través de: Everything Awesome YTC en la lista de reproducción de 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[\[email protected]\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.
    
respondido por el Scott S Hermann 09.09.2017 - 23:27
2

enlace

Este script, con algunos ajustes (problemas de sangrado y algunos comentarios / variables en francés) me ha sido de gran ayuda. Sin embargo, solo puede descargar los datos que ya están en el archivo. Entonces, para los datos que no han sido procesados, usted tiene que ordenarlos. Estoy trabajando en automatizar eso ahora, pero con un comienzo lento (como empecé hace 30 minutos). Eventualmente, quiero que los datos se descarguen en mi servidor en la nube, pero por ahora solo los estoy probando en mi escritorio (solo especifica un directorio de salida y los archivos se colocan allí automáticamente).

También estoy interesado en descargar los datos a medida que estén disponibles, específicamente los datos de reflectancia de la superficie antes de que se desechen (me han dicho que el USGS procesa los datos sin procesar en la reflectancia de la superficie temporalmente antes de desecharlos, aunque algunos se almacenan en el archivo). Háganos saber si ha hecho algún avance.

    
respondido por el user20408 30.12.2014 - 21:08
1

Esta plataforma é simples! descargar faça do KMl e abra-o no google earth. Pesquise um lugar e achara o path / row (lugar central de possiveis imagens) ponha o ruta / fila que se encuentra en la plataforma.

Todas as imagens para aquele local aparecera

Traducción de Google:

¡Esta plataforma es simple! Descarga KML y ábrelo en google earth. Busque un lugar y encuentre la ruta / fila (lugar central de las posibles imágenes) coloque la ruta / fila que encontró para el lugar y colóquela en la plataforma. Todas las imágenes para esa ubicación aparecerán

enlace

    
respondido por el user2342603 31.05.2017 - 17:10

Lea otras preguntas en las etiquetas