¿Recuperando mediante programación imágenes de satélite Landsat 8?

27

No he podido descubrir esto yo mismo, pero ¿hay alguna manera de acceder mediante programación a las imágenes de satélite Landsat 8?

Sé que puedo ir al USGS EarthExplorer para buscar y explorar las escenas, e incluso descargarlas. Pero no quiero descargarlos en mi propia computadora por dos razones, mi internet es lento y mi computadora portátil tiene problemas de enfriamiento.

Por lo tanto, creo que quiero transferir las imágenes directamente a una instancia de "nube" para el procesamiento de datos. También sería bueno si pudiera descargar y procesar estas imágenes a medida que estén disponibles desde USGS.

Franco
fuente
¿Qué productos de procesamiento quieres hacer?
Willy
1
Te puede interesar earthengine.google.org/#intro
Willy
¿Algún progreso en esto?
Willy
@Willy Mi intención era principalmente experimentar, pero estaba planeando ver si puedo hacer una herramienta que agregue imágenes de mi vecindario que haga series de tiempo y alertas de cambios y también una imagen compuesta sin nubes. Tengo experiencia con algunos PaaS: es, pero creo que pueden ser demasiado limitados y que tendré que usar un IaaS como EC2. Entonces, hasta que llegue a aprender más sobre eso, el proyecto está muerto en el camino. Comprobaré tu enlace.
Frank
En mi opinión, el problema es el parámetro "did" en el enlace, ahora todavía no sé cuál es el parámetro *** porque después de unos días el viejo "did" morirá y cada vez que use la herramienta de descarga del sitio web va a cambiar Quiero descargar Landsat 8 desde earthexplorer también y todavía estoy atrapado aquí.
Bằng Rikimaru

Respuestas:

11

Vi una publicación de blog de developmentseed para su utilidad de línea de comando 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 usar.

El blog lo describe simplemente como:

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

Puede buscar en función de la fecha, el porcentaje de cobertura de la nube y otras cosas, descargar de inmediato o procesar una vez que se haya descargado, como agudizar o unir las imágenes.

Puede obtener una vista previa de las imágenes antes de descargar. Los comandos de búsqueda proporcionan un enlace a una miniatura para cada imagen.

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

El uso del indicador --pansharpen tardará más en procesarse 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 las imágenes que descargó previamente.

landsat download LC81050682014217LGN00

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

Aquí hay un archivo Léame con más información.

SaultDon
fuente
11

¿Qué hay de activar una instancia de EC2 o espacio en rack e instalar la aplicación de descarga masiva EarthExplorer:

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

Puede acceder al servicio EarthExplorer con una solicitud POST para enviar trabajos mediante programación:

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

Debería proporcionar los parámetros standingRequestName, frecuencia, suscripción_inicio, suscripción_end, búsqueda_inicio, búsqueda_end parámetros. Esto lo ayudaría a comenzar, pero se siente como una puerta trasera y que la aplicación de descarga masiva que se ejecuta en una instancia de EC2 sería una opción mejor y menos lenta.

bcollins
fuente
Después de un poco de exploración, estoy secundando esta sugerencia. Parece que puede usar las URL de EE si logra enviar autenticación con su solicitud, pero esa alternativa sería hackea.
chryss
Mi respuesta para que el sitio descargue todos los mapas topográficos de USGS en masa puede ayudar a construir solicitudes POST (aunque tendremos que esperar a que el gobierno de los EE. UU. Reanude las operaciones para averiguarlo).
Matt Wilkie
4

Tengo la intención de hacer lo mismo, así que inicio una instancia de Amazon EC-2 e instalo la descarga masiva en él. Pero hasta donde sé, es una aplicación gráfica y nada en el Tutorial de descarga masiva de documentos espera que puedas usarlo con el terminal.

Leí aquí sobre la posibilidad de usar Curl pero devuelve un acceso 403 denegado


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 Landsat. Puede instalar su "gsutil" (gratis) y luego enumerar este directorio, que está indexado por sensor (por ejemplo, L8 es Landsat 8) y ruta / fila: gsutil ls gs: // earthengine-public / landsat /

Tengo que agregar que cuando navegue 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.

Inclanfunk
fuente
Sobre el uso de cURL, creo que debe alimentarlo con algunas cookies; Abra el inspector de su navegador para ver qué cookies están configuradas.
Frank
Que la idea @Frank, pero no puedo encontrar el camino. Con el siguiente código: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive " aún devuelve un error 403.
Inclanfunk
3

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

vía: 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[\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
fuente
2

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

Este script, con algunos ajustes (problemas de sangría y algunos comentarios / variables estaban en francés) me ha sido extremadamente útil. Sin embargo, solo puede descargar los datos que ya están en el archivo. Entonces, para los datos que no se han procesado, debe solicitarlos. Estoy trabajando en automatizar eso ahora, pero comencé lentamente (como recién comencé hace 30 minutos). Finalmente, 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 automáticamente allí).

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 dijeron que USGS procesa los datos en bruto en la reflectancia de la superficie temporalmente antes de desecharlos, aunque algunos se almacenan en el archivo ) Háganos saber si ha avanzado.

usuario20408
fuente
0

Esta plataforma es simple! faça descarga do KMl e abra-o no google earth. Pesquise um lugar e achara o path / row (lugar central de possiveis imágenes) ponha o path / row que achou para o lugar e ponha na plataforma.

Todas como imágenes 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 posibles imágenes) coloque la ruta / fila que encontró para el lugar y colóquelo en la plataforma. Aparecerán todas las imágenes de esa ubicación.

http://georef.vantis.pt

usuario2342603
fuente
Bienvenido a GIS SE! Somos un poco diferentes de otros sitios; Este no es un foro de discusión, sino un sitio de preguntas y respuestas. Consulte nuestro breve recorrido para conocer nuestro formato específico de preguntas y respuestas. Por favor, publique solo en inglés también ...
PolyGeo
Evite la autopromoción abierta. La comunidad tiende a rechazar la autopromoción abierta y marcarla como spam. Publique respuestas buenas y relevantes, y si algunas (pero no todas) son sobre su producto o sitio web, está bien. Sin embargo, debe divulgar su afiliación en sus respuestas. . En la práctica, esto significa que cualquier respuesta que recomiende su propio producto debe incluir algo como " Divulgación: soy la [posición] de [compañía] que desarrolla / distribuye este software".
PolyGeo
Por favor, aborde los problemas de (1) su respuesta debe estar todo en inglés, (2) para no incluir una recomendación de su propio producto sin divulgación y (3) para responder directamente a la pregunta formulada porque esto no parece ofrecer una manera para "acceder mediante programación a las imágenes de satélite Landsat 8".
PolyGeo