本文代码思路参考了博文[https://blog.csdn.net/weixin_39672353/article/details/109852755] 在此基础上做了些优化
GNSS数据的下载工作繁琐重复,本文通过python实现了数据的自动下载,可以支持MGEX观测文件(.crx 和.o文件)、广播星历(brdm),精密轨道与钟差(.sp3,.clk)、电离层数据(.i文件)、DCB。所有类型文件均可自动解压,其中.crx文件将自动转换为o文件,自动按年积日进行分类存放。由于CDDIS分析中心从2020年10月31日不再支持匿名的FTP下载,目前的数据下载只能通过HTTPS or ftp-ssl,并需要事先注册EARTHDATA的账号。
开发环境python 3(除了pandas,其他均为python自带标准库,使用前需要提前安装pandas),通过curl方式下载,需要提前配置好,下文中给出了配置方法。
可以直接到官网下载python安装包,不过更推荐直接安装Anaconda,Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
建议通过清华镜像站下载,速度较快,镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/。Anaconda 安装教程可以参考博文:(1条消息) Anaconda 的安装教程(图文)_艺术艺术的博客-CSDN博客_anaconda安装教程 安装时建议添加环境变量,如下图所示,由于本脚本使用了pandas库,需要自行安装,python环境安装完成后,可以直接在命令行中使用以下命令安装(安装时添加了环境变量才可这样使用)
pip install pandas
-
关于curl以及如何使用curl下载CDDIS的数据可以参考以下两篇文章,讲的非常详细:
一共有三个python脚本,main.py、StationList.py和timeCov.py,main.py调用其他两个,station.py储存测站列表,可以在其中输入自己需要下载的站点名称,一列表格式存放,用于下载观测值文件,timeCov.py包含一些时间转换函数。QualifiedStaiontlist为gobs下载命令时的输出文件,MgexQualifiedStaiontlist为mobs命令下的输出文件,输出的站点为指定的日期范围内所有历元数据都成功下载的站点列表。除了python脚本时,还有两个exe文件,gzip用于文件解压,crx2rnx用于将.crx文件转换为.yyo文件。
python [pyfile] [YYYY] [MM] [DD] [type] [ndays]
pyfile: python file name(main.py)
YYYY: 4-digit year
MM: 2-digit month
DD: 2-digit day of month
type: gobs/mobs/gbm/nav/ion/sp3/clk/dcb/
ndays: number of days
type | 含义 |
---|---|
gobs | 观测文件(gps/data/daily/year/doyyyo/) |
mobs | 多系统观测文件(mgex/daily/rinex3/year/doy/) |
ion | COD i文件 电离层数据("https://cddis.nasa.gov/archive/gps/products/ionex/year/doy/") |
gbm | GFZ机构的精密卫星轨道和钟差改正,包含.clk和.sp3文件 ftp://ftp.gfz-potsdam.de/pub/GNSS/products/mgex/gpsweek/ |
dcb | CAS的DCB产品https://cddis.nasa.gov/archive/gnss/products/mgex/dcb/year/ |
brdm | 多系统广播星历,p文件 |
sp3 | SP3文件,需要输入第二参数,可选择产品机构(COD GFZ GRG IAC JAX SHA WUM) |
clk | CLK文件,需要输入第二参数,可选择产品机构(COD GFZ GRG IAC JAX SHA WUM) |
该python脚本实现了自动下载GNSS数据,可以自动下载GNSS obs/sp3/clk/brdm/dcb/ion数据,并且扩展起来也十分方便,同时解压分类文件转换等功能也能自动完成,避免了很多重复性的工作。
参考文档: