GNSS数据自动下载脚本(使用CDDIS账号)
前言
由于CDDIS分析中心从2020年10月31日不再支持匿名的FTP下载,目前的数据下载只能通过HTTPS or ftp-ssl,并需要事先注册EARTHDATA的账号。因此之前的数据下载脚本无法再使用,本文使用python重新撰写了相关下载脚本。可以支持MGEX观测文件、导航星历、精密轨道与钟差、DCB、IGS的erp、snx文件下载。
相应的代码托管在GitHub上,链接为https://github.com/Dream-t/GNSSdatadownload.git
以下是本篇文章正文内容。
1.注册EARTHDATA账号
进入到earthdata的官网:https://urs.earthdata.nasa.gov/,点击注册,按照流程走完即可。
2.使用前的准备工作
(1)使用脚本前的准备工作:
- 脚本编写采用python语言,运行脚本前需要安装python,我的python版本是py3.6。代码中只使用了一些基本库(包):os,sys,calendar,因此一般的python版本都可以使用,我也没有测试过其他版本。
- 由于CDDIS需要账号才能下载,因此在第一步注册完成后,我们需要配置一个.netrc文件,用于登录。新建一个txt文件,然后输入下面一行,并将login和password替换为自己的账号和密码,再将其重命名为.netrc即可。最后将其放在你的用户目录下,如果你不知道自己的用户目录,按住WIN+R,输入cmd,打开的cmd窗口中的路径一般就是你的用户目录。需要注意的是,.netrc文件在windows下要重命名为_netrc。
machine urs.earthdata.nasa.gov login <你的账号> password <你的密码>
- 脚本需要使用curl,gzip,如果没有,自己下载并放到和脚本同一个目录下即可,我也在GitHub项目中放入了curl和gzip工具,可以使用。
3.脚本的使用
一共有三个python脚本,download_batch.py、stations.py和timeCov.py,download_batch.py调用其他两个,station.py存储一些MGEX测站信息,用于下载观测值文件,timeCov.py包含一些时间转换函数。
需要注意的是:使用前需要修改download_batch.py中的保存路径为自己电脑中的路径。
使用方法:
python [pyfile] [YYYY] [MM] [DD] [type] [AC] [ndays]
pyfile: python file name
YYYY: 4-digit year
MM: 2-digit month
DD: 2-digit day of month
type: obs/nav/sp3/clk/erp/dcb/snx
AC: analytic center for sp3/clk,it can be set 0 if you choose other type
ndays: number of days
示例:
总结
编写了python脚本自动下载GNSS数据,可以自动下载GNSS obs/nav/sp3/clk/erp/dcb/snx数据,并且扩展起来也十分方便,代码托管在https://github.com/Dream-t/GNSSdatadownload.git,欢迎大家使用和fork,如果有什么问题和建议,希望能够反馈给我。
Q&A 2020-12-14
- 报not in gzip format这个错误
这个问题意味着下载失败,可能有两个原因:(1)相应的网址上没有当前要下载的文件 ,这个原因导致的错误没办法解决,只能去其他分析中心网址上找找看。(2)_netrc配置不正确,这个应该是大部分情况下出现的原因。解决方法在代码中指定_netrc文件,不再使用-n选项,改为 --netrc-file _netrc,并将_netrc放在和python脚本同一个目录下。
最新更新 2021/09/19
由于国外IGS数据下载方式变了,去年写的个小脚本,用来自己下载数据,但可能做的不是很完善,就在那里瞎折腾哈。不久前发现一个别人写的自动下载工具,https://github.com/zhouforme0318/GAMPII-GOOD.自己用过感觉挺好用的,也能自己扩展。有需要的话,可以下载看看,基本都是通过wget/curl这些下载工具,搭配组合命令的方式,反正折腾来折腾去也就会了,哈哈哈。