** 因美国政府安全要求不再允许CDDIS通过传统的未加密匿名ftp提供数据;该服务于2020年10月31日终止。所有数据仍然可用,但是必须通过HTTPS或ftp-ssl进行访问。**
NASA CDDIS分析中心给出了官方推荐的下载方式[推荐方式详情]:
首先你需要注册一个具有Earthdata的登录帐户:注册链接地址,记住自己的注册账户与密码。其中在使用cURL时,用户将需要创建一个.netrc文件,.netrc文件格式:
machine urs.earthdata.nasa.gov login [username] password [password]
-
其中username和password是创建Earthdata登录帐户时设置的。
-
cURL在下载时登录时间过长,且当需要循环批量下载时重复登录也会浪费大量时间;
-
经多次试验,循环批量单个文件下载时(如精密星历sp3文件/卫星钟clk文件/广播星历brdc/brdm文件/GNSS SLR DORIS的sinex文件等)使用wget方式下载;
-
获取目录下遍历文件(站点观测rinex文件/VLBI的sinex文件等)使用lftp/wget方式下载。
1 单个文件下载:
需要特别注意的是wget版本需≥1.18,我使用的是ubuntu16.04,默认wget稳定版本是1.17,需要更新至较高版本:更新方式;以精密星历为例,user@163.com为注册邮箱:
wget --ftp-user anonymous --ftp-password user@163.com ftps://gdc.cddis.eosdis.nasa.gov/gps/products/2086/igs20863.sp3.Z
2 批量文件下载:
推荐使用bash/python,以年积日为循环生成文件名,计算GPS周以得到文件所在目录;
bash:
igsfile="igs${gpsweek}${doyofweek}.sp3"
if [ ! -f "${igsfile}" ]; then
wget --ftp-user anonymous --ftp-password user@163.com ftps://gdc.cddis.eosdis.nasa.gov/gps/products/${gpsweek}/${igsfile}.Z
uncompress ${igsfile}.Z
fi
python可采用subprocess等方式直接调用shell语言[调用方式参考]。
3 遍历目录下载:
使用lftp登录服务器之后,可以使用mget指令从服务器获取文件,其中mget指令可以使用通配符以实现遍历下载(以VLBI数据为例):
lftp -d -u anonymous,user@163.com -e 'set ftp:ssl-force true' -e "mget vlbi//ivsproducts/daily_sinex/ivs2017a/20*;exit" gdc.cddis.eosdis.nasa.gov
这是实验至今较为稳定的下载方式,配合bash中并行下载方式可快速大量的进行文件下载。
如有更快速的下载方式可私信或评论讨论。