Sentinel 1A卫星精密轨道数据下载(2021/6/22更新)
前言
新数据的更新导致之前的代码不可用,现增加匹配条件更新代码。
欧空局轨道文件数据查询下载网址 https://qc.sentinel1.eo.esa.int近期一直在维护无法打开。看了网上的绝大多数解决方法是去 https://s1qc.asf.alaska.edu/aux_poeorb/ 下载,但该网站不支持搜索,当我们需要的轨道数据较多时,复杂的文件命名规则和繁琐重复的下载显得有些呆板。于是写了个简单的bash脚本用于下载轨道文件,如有不足还望指正。
一、记录数据ID
在ASF下载影像数据时复制文件ID粘贴到记事本中生成list文件,记录了我们下载的每一幅影像名称。
二、获取精密轨道数据
代码如下(示例):
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
###ASF下载影像时从购物车导出list
###从https://s1qc.asf.alaska.edu/aux_poeorb/读取所有轨道文件列表wholeorb
curl https://s1qc.asf.alaska.edu/aux_poeorb/ -o wholeorb
###读取list每一行,对应每一景数据
cat list | while read line
do
###截取影像日期
date1=`echo $line | cut -c18-25`
echo $date1
###计算并匹配轨道文件
date2=`date +%Y%m%d -d $date1-1day`
date3=`date +%Y%m%d -d $date1+21day`
date4=`date +%Y%m%d -d $date1+20day`
#精轨数据是20天或21天后产生,正则匹配这两个日期data3或者date4
EOF=`grep "S1A_OPER_AUX_POEORB_OPOD_$date3.*$date2" wholeorb|cut -c10-86`
if [ ! -n "$EOF" ]; then
EOF=`grep "S1A_OPER_AUX_POEORB_OPOD_$date4.*$date2" wholeorb|cut -c10-86`
fi
echo $EOF
#
###去除注释可下载并依次放到相应日期目录下,此处选择都放到执行脚本的目录下
# mkdir $date1
# cd $date1
url=https://s1qc.asf.alaska.edu/aux_poeorb/$EOF
###将earth data网站的用户名密码替换为自己的账户密码
wget --http-user=123456 --http-passwd=123456 $url
# cd ..
###或者可以将相应轨道文件url导出成文本用idm添加批量下载
# echo $url >> orbit_url.txt
done
有时也需要科学上网才能下载数据,下载后EOF文件被放置在相应影像日期的目录下
总结
写了个简单的bash脚本批量下载轨道数据