我自己还无法找到答案,但是有没有办法以编程方式访问Landsat 8卫星图像?

我知道我可以去USGS EarthExplorer搜索和浏览场景,甚至下载它们。但是由于两个原因,我不想将它们下载到我的计算机上:我的互联网速度慢,我的笔记本电脑有散热问题。

所以我想将图像直接传输到“云”中”数据处理实例。如果可以从USGS下载并处理这些图像,我也很好。

评论

您想生产什么加工产品?

您可能对earthengine.google.org/#intro
感兴趣
有什么进展吗?

@Willy我的意图主要只是进行实验,但是我正计划看是否可以制作一个工具,该工具可以汇总来自附近社区的图像,该图像可以进行时间序列和更改警报,还可以生成没有云的合成图像。我确实有一些PaaS:es的经验,但是我认为它们可能太有限了,我将不得不使用像EC2这样的IaaS。因此,直到我四处学习有关该项目的知识之后,该项目才告一段落。我会检查您的链接。

我认为问题是链接中的“ did”参数,现在我仍然不知道***是什么参数,因为几天后,旧的“ did”将消失,并且每次您使用网站下载工具它会改变。我也想从Earthexplorer下载Landsat 8,但仍然停留在这里。

#1 楼

我看到了来自developmentseed的博客文章,介绍了他们的命令行实用程序landsat-util。

用于卫星图像的强大工具

landsat-util可以从github派生并从源代码编译。除非您的操作系统以二进制形式随时提供它。

该博客将其简单描述为:


一个命令行实用程序,可以方便地进行搜索,下载并
处理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


这里是自述文件,提供了更多信息。

#2 楼

如何启动EC2或机架实例并安装EarthExplorer批量下载应用程序:

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

您可以点击EarthExplorer带有POST请求的服务以编程方式提交作业:

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

您需要提供standingRequestName,频率,subscription_start ,subscription_end,search_start,search_end参数。这会让您入门,但是感觉就像是后门,在EC2实例上运行的批量下载器应用程序将是更好且耗时的选择。

评论


经过一番探索,我同意了这个建议。如果您设法通过请求发送身份验证,则似乎可以使用EE URL,但是这种选择会让人讨厌。

–chryss
2013年9月29日在17:11

我对网站进行批量下载所有USGS地形图的回答可能有助于构建POST请求(尽管我们必须等待美国政府恢复行动才能找到答案)。

–马特·威尔基
13-10-7在20:36

#3 楼

我打算这样做,因此我启动了一个Amazon EC-2实例并在其上安装了批量下载。
但据我所知,它是一个图形应用程序,doc批量下载教程中没有任何内容,希望您可以

我在这里阅读了有关使用Curl的可能性,但它会返回403访问被拒绝


给USGS写邮件后,官方答案是,批量下载是进行大规模下载的唯一方法。

但是Mapbox的Charlie Loyd告诉我另一种可能性:


Google Storage也反映了许多Landsat存档。您可以安装其“ gsutil”(免费),然后列出此目录,该目录由传感器索引(例如,L8为Landsat 8)和路径/行:gsutil
ls gs:// earthengine -public / landsat /


我必须补充一点,当浏览路径和行时,请记住,它是基于3的数字。例如,如果您需要路径210第40行,则必须浏览文件夹210,然后浏览040。

评论


关于使用cURL,我认为您必须在其中添加一些cookie。打开浏览器的检查器,查看设置了哪些cookie。

–坦白
2014年3月25日20:49在

@Frank的想法,但是我找不到路。使用以下代码:Curl -v --cookie“ cookieName = MyAuthCookie”“ TheLinkTotheArchive”仍返回403错误。

–《 Inclanfunk》
2014年3月26日22:55



#4 楼

我写了一个bash脚本来做到这一点。请注意,您可以使用xdotool命令自定义代码段中的url和鼠标位置以及按钮单击。这是源代码:

通过:bash播放列表中所有令人敬畏的YTC

 #!/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.
 


#5 楼

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

此脚本经过一些调整(缩进问题和一些注释/变量为法语)对我非常有帮助。但是,它只能下载存档中已经存在的数据。因此,对于尚未处理的数据,您必须对其进行订购。我正在努力实现自动化,但起步很慢(因为我30分钟前才开始)。最终,我希望将数据下载到我的云服务器上,但是现在,我只是在桌面上对其进行测试(您只需指定输出目录,文件就会自动放置在该目录中)。

我也有兴趣下载可用的数据-特别是在丢弃之前将表面反射率数据(我被告知USGS在将其丢弃之前将原始数据临时处理为表面反射率) ,尽管其中一些已存储在档案中)。如果您取得任何进展,请告诉我们。

#6 楼

Esta plataformaé简单! façadownload do KMl e abra-o no Google Earth。 Pesquise um lugar e achara o路径/行(lugar central de possiveis图像)
路径/行queach achou para lugar e ponha na plataforma。


Google翻译:

这个平台很简单!下载KML并在Google Earth中将其打开。搜索位置,然后找到路径/行(可能图像的中心位置),将找到的位置的路径/行放置在平台上。该位置的所有图像都会出现

http://georef.vantis.pt

评论


欢迎使用GIS SE!我们与其他网站略有不同;这不是讨论论坛,而是问答网站。请查看我们的短途旅行,以了解我们重点关注的问答格式。请只用英文发表...

– PolyGeo♦
19年7月15日在6:59

避免公开宣传。社区倾向于否决公开的自我宣传,并将其标记为垃圾内容。发表相关的好答案,如果某些(但不是全部)碰巧与您的产品或网站有关,那就可以了。但是,您必须在答案中公开您的从属关系。实际上,这意味着任何推荐您自己的产品的答案都必须包含诸如“披露:我是开发/发行此软件的[公司]的职位”之类的内容。

– PolyGeo♦
19年7月15日在7:00

请解决以下问题:(1)您的回答必须全部用英语填写;(2)在不披露信息的情况下不包括您自己产品的推荐;(3)直接回答所提出的问题,因为这似乎没有办法“以编程方式访问Landsat 8卫星图像”。

– PolyGeo♦
19年7月15日在7:07