Программно получать спутниковые снимки Landsat 8?

27

Я не смог выяснить это сам, но есть ли способ получить программный доступ к спутниковым снимкам Landsat 8?

Я знаю, что могу зайти в USGS EarthExplorer, чтобы искать и просматривать сцены и даже загружать их. Но я не хочу загружать их на свой компьютер по двум причинам: у меня медленный интернет и у моего ноутбука проблемы с охлаждением.

Поэтому вместо этого я решил перенести изображения непосредственно в «облачный» экземпляр для обработки данных. Также было бы неплохо, если бы я мог загружать и обрабатывать эти изображения по мере их поступления в USGS.

Фрэнк
источник
Какие продукты переработки вы хотите сделать?
Вилли
1
Вы можете быть заинтересованы в earthengine.google.org/#intro
Вилли
Есть ли успехи в этом?
Вилли
@Willy Мое намерение было в основном просто экспериментировать, но я планировал посмотреть, смогу ли я создать инструмент, который объединяет изображения из соседних агрегатов, который создает временные ряды и оповещения об изменениях, а также составное изображение без облаков. У меня есть опыт работы с несколькими PaaS: es, но я полагаю, что они могут быть слишком ограниченными и что мне придется использовать IaaS, такой как EC2. Так что, пока я не найду больше, чтобы узнать больше об этом, проект не работает. Я проверю вашу ссылку.
Франк
На мой взгляд, проблема заключается в параметре «сделал» в ссылке, теперь я до сих пор не знаю, что за *** этот параметр, потому что через несколько дней старый «сделал» умрет, и каждый раз, когда вы используете инструмент загрузки веб-сайта это изменится Я хочу скачать Landsat 8 от earthexplorer и все еще застрял здесь.
Бонг Рикимару

Ответы:

11

Я видел сообщение в блоге от developmentseed для их утилиты командной строки landsat-util.

Электроинструменты для спутниковых снимков

Landsat-Util может быть раздвоенным от GitHub и составлен из источника , если ваши предложения OS это в бинарном готовы не идти.

Блог описывает это просто как:

утилита командной строки, которая упрощает поиск, загрузку и обработку изображений Landsat.

Вы можете выполнять поиск по дате, облачному покрытию% и другим вещам, загружать сразу или обрабатывать, как только он будет загружен, как pansharpen или сшивать изображения вместе.

Вы можете просмотреть изображения перед загрузкой. Команды поиска предоставляют ссылку на миниатюру для каждого изображения.

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

Использование флага --pansharpen займет больше времени, но даст более четкие изображения.

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

Вы также можете выполнить всю обработку изображений, которые вы ранее загрузили.

landsat download LC81050682014217LGN00

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

Вот readme с дополнительной информацией.

SaultDon
источник
11

Как насчет запуска экземпляра EC2 или стойки и установки приложения массовой загрузки EarthExplorer:

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

Вы можете обратиться к службе EarthExplorer с запросом POST для программной отправки заданий:

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

Вам нужно будет указать параметры имя_постоянного_запуска, частоту, подписку_старт, подписку_ конец, поиск_старт, поиск_ конец. Это поможет вам начать работу, но вы почувствуете, что это задняя дверь, и приложение массового загрузчика, работающее на экземпляре EC2, будет лучшим и менее затратным по времени вариантом.

bcollins
источник
После некоторого исследования я поддерживаю это предложение. Кажется, вы можете использовать URL-адреса EE, если вам удастся отправить аутентификацию по вашему запросу, но эта альтернатива была бы хакерской.
13
Мой ответ для Site по загрузке всех топографических карт USGS может помочь в создании запросов POST (хотя нам придется ждать, пока правительство США возобновит работу, чтобы выяснить это).
Мэтт Уилки
4

Я намерен сделать то же самое, поэтому я запускаю экземпляр Amazon EC-2 и устанавливаю на него пакетную загрузку. Но, насколько я знаю, это графическое приложение, и ничто из Руководства по массовой загрузке документации не позволяет надеяться, что вы сможете использовать его с терминалом.

Я читал здесь о возможности использования Curl, но он возвращает 403 отказано в доступе


После написания электронных писем в USGS официальный ответ заключается в том, что Bulk Download является единственным способом массовой загрузки.

Но Чарли Лойд из Mapbox написал мне еще одну возможность:

Google Storage также отражает большую часть архива Landsat. Вы можете установить их «gsutil» (бесплатно) и затем перечислить этот каталог, который индексируется датчиком (например, L8 - это Landsat 8) и путь / строка: gsutil ls gs: // earthengine-public / landsat /

Я должен добавить, что при просмотре путей и строк помните, что это основано на 3 числах. Например, если вам нужен путь 210, строка 40, вам нужно найти папку 210, а затем 040.

Inclanfunk
источник
Что касается использования cURL, я думаю, что вы должны кормить его некоторыми куки; Откройте инспектор вашего браузера, чтобы увидеть, какие куки установлены.
Франк
Это идея @Frank, но я не могу найти способ. С помощью следующего кода: Curl -v --cookie "cookieName = MyAuthCookie " " TheLinkTotheArchive " он по-прежнему возвращает ошибку 403.
Inclanfunk
3

Я написал скрипт bash для этого. Обратите внимание, что вы можете настроить расположение URL-адресов, указателей мыши и нажатий кнопок в сегменте кода с помощью команды xdotool. Вот исходный код:

via: Everything Awesome YTC в плейлисте 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

Этот скрипт с некоторыми изменениями (проблемы с отступами и некоторые комментарии / переменные были на французском языке) был чрезвычайно полезен для меня. Однако он может загружать только те данные, которые уже есть в архиве. Так что для данных, которые не были обработаны, вы должны заказать их. Сейчас я работаю над тем, чтобы автоматизировать это, но сейчас я начинаю медленно (как я только начал 30 минут назад). В конце концов я хочу, чтобы данные были загружены на мой облачный сервер, но сейчас я просто тестирую их на своем рабочем столе (вы просто указываете выходной каталог, и файлы автоматически помещаются туда).

Я также заинтересован в загрузке данных по мере их появления, в частности, данных об отражении поверхности до того, как они будут выброшены (мне говорят, что USGS временно обрабатывает необработанные данные в отражении поверхности до их выброса, хотя некоторые хранятся в архиве ). Пожалуйста, дайте нам знать, если вы сделали какой-либо прогресс.

user20408
источник
0

Эста платформа проста! faça download do KMl e abra-o нет Google Earth. Pusquise um lugar e achara o путь / ряд (lugar central de possiveis imagens) ponha o путь / рядок que aouou para o lugar e ponha na plataforma.

Todas as imagens para aquele местные апарецеры

Гугл-перевод:

Эта платформа проста! скачайте KML и откройте его в Google Earth. Найдите место и найдите путь / ряд (центральное место возможных изображений), укажите путь / ряд, который вы нашли для этого места, и поместите его на платформу. Все изображения для этого места появятся

http://georef.vantis.pt

user2342603
источник
Добро пожаловать в ГИС ЮВ! Мы немного отличаемся от других сайтов; это не дискуссионный форум, а сайт вопросов и ответов. Пожалуйста, ознакомьтесь с кратким туром, чтобы узнать о нашем формате вопросов и ответов. Пожалуйста,
оставляйте
Избегайте явной саморекламы. Сообщество имеет тенденцию отклонять открытую саморекламу и помечать ее как спам. Публикуйте хорошие, релевантные ответы, и если некоторые (но не все) касаются вашего продукта или веб-сайта, это нормально. Тем не менее, вы должны раскрывать свою принадлежность в ваших ответах. , На практике это означает, что любой ответ, который рекомендует ваш собственный продукт, должен включать что-то вроде « Раскрытие информации: я [позиция] [компании], которая разрабатывает / распространяет это программное обеспечение».
PolyGeo
Пожалуйста, решите вопросы (1) ваш ответ должен быть полностью на английском языке, (2) чтобы не включать рекомендацию вашего собственного продукта без раскрытия и (3) для прямого ответа на заданный вопрос, потому что это не дает «Программный доступ к спутниковым снимкам Landsat 8».
PolyGeo