类似的下载步骤很多人写过了,这里放2个链接仅供参考,介绍得很全面:
从USGS批量下载L2级Landsat-4/5/7/8影像_landsat4-5怎么打开_yynjupt0713的博客-CSDN博客
批量下载Landsat遥感影像的方法_landsat遥感影像下载_盈梓的博客小站的博客-CSDN博客
在EarthExplorer查询网站提交订单后,导出元数据(将订单信息做成产品名称列表),将查询结果导出为csv文件,然后把产品名称一列(第一列)另存为txt文本文件(删去首行标题),在ESPA - LSRD提交这个文本订单并下载。
点击New Order菜单进入提交产品列表页面,可以将数据转换为自己需要的投影和分辨率(本人选择了地理投影+GEOTIFF格式)。更多处理选项里面还可以下载反射率产品和NDVI等指数(不同遥感数据能额外计算的指标不一样)。
本人的经验:不能选择input和地表温度,选择了会报错;实际下载的landsat TM 和Landsat OLI影像只能计算光谱指数,该选项可以下载,这里我选了NDVI。
大概12小时,两个订单处理完成,接下来介绍使用python工具批量下载遇到的问题。
工具下载官网:bulk-downloader
可参考以下链接:
espa-bulk-downloader-master批量下载usgs python_biubibiubi的博客-CSDN博客
ESPA网站中Landsat C2L2数据批量下载网站报错问题500 Internal Server Error_空中旋转篮球的博客-CSDN博客
python版本需要3.6及以上,cmd界面打开python所在目录,把bulk-downloader-develop这个解压的文件夹复制过去,输入以下代码:
download_espa_order.py -e 邮箱 -o order ID -d E:\temp\landsat_tm(要下载到的文件夹) -u 用户名 -p 密码
Order ID是一长串字符,espa-*******-数字
运行过程中我先后遇到两个错误,都是在download_espa_order.py里进行修改解决的。
第一个是SSL证书报错:
error: httpsconnectionpool(host='espa.cr.usgs.gov', port=443): max retries exceeded with url
参考:爬虫遇到 HTTPSConnectionPool(host=‘xxxxx‘, port=443) 解决思路_自学AI的鲨鱼儿的博客-CSDN博客
解决方案:关闭 SSL 验证,增加一句 verify=False,如下所示
response = requests.get(self.host+uri, json=data, headers=self.headers,
auth=self.creds, verify=False)
第二个是requests警告,
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
参考:
在urllib3时代,官方强制验证https的安全证书,如果没有通过是不能通过请求的,虽然添加忽略验证的参数,但是依然会给出醒目的 Warning
即在程序开始部分添加代码:
requests.packages.urllib3.disable_warnings()