python脚本实现GNSS数据自动下载

8 篇文章 2 订阅

python脚本实现GNSS数据自动下载

本文代码思路参考了博文[https://blog.csdn.net/weixin_39672353/article/details/1098525] 在此基础上做了些优化

功能简介

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方式下载,需要提前配置好,下文中给出了配置方法。

1.使用前的准备


  • python环境的搭建:

​ 可以直接到官网下载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

第五步2

2.脚本的使用


一共有三个python脚本,main.py、StationList.py和timeCov.py,main.py调用其他两个,station.py储存测站列表,可以在其中输入自己需要下载的站点名称,一列表格式存放,用于下载观测值文件,timeCov.py包含一些时间转换函数。QualifiedStaiontlist为gobs下载命令时的输出文件,MgexQualifiedStaiontlist为mobs命令下的输出文件,输出的站点为指定的日期范围内所有历元数据都成功下载的站点列表。除了python脚本时,还有两个exe文件,gzip用于文件解压,crx2rnx用于将.crx文件转换为.yyo文件。
在这里插入图片描述

V1.0的使用方法

代码下载链接:https://gitee.com/hyisoe/gnss-data-downloasd/tree/master/%20GnssDataDownload_V1.0

  • 命令行格式:
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命令的下载的文件类型:
type含义
gobs观测文件(gps/data/daily/year/doyyyo/)
mobs多系统观测文件(mgex/daily/rinex3/year/doy/)
ionCOD i文件 电离层数据(“https://cddis.nasa.gov/archive/gps/products/ionex/year/doy/”)
gbmGFZ机构的精密卫星轨道和钟差改正,包含.clk和.sp3文件 ftp://ftp.gfz-potsdam.de/pub/GNSS/products/mgex/gpsweek/
dcbCAS的DCB产品https://cddis.nasa.gov/archive/gnss/products/mgex/dcb/year/
brdm多系统广播星历,p文件
sp3SP3文件,需要输入第二参数,可选择产品机构(COD GFZ GRG IAC JAX SHA WUM)
clkCLK文件,需要输入第二参数,可选择产品机构(COD GFZ GRG IAC JAX SHA WUM)
  • 脚本使用示例:
  • 需要输入路径,若目标文件夹不存在会自动创建一个同名文件夹,观测值文件会自动创建文件夹并按doy命名存放
    在这里插入图片描述
    在这里插入图片描述

2021-03-26更新 V2.0

本次更新主要更新为下载长文件,有的产品命名变化。

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/ion/liststas/brdm/clksp3
ndays:  number of days

下载地址 https://gitee.com/hyisoe/gnss-data-downloasd/tree/master/%20GnssDataDownload_V2.0
CDDIS的数据命名发生了更新GBM 、gbm 开头的文件都变为了GFZ、gfz,广播星历下载改为了长文件,为了适应自己的程序需要,长文件下载后命名都改为了短文件格式,详细使用更改请查看下表。liststas可以将指定日期下的站点列表提取出来,保存在stalist.txt文件,可将其要下载的站点复制到StationsList.py中使用下载命令下载指定站点的观测文件 。

type含义
obs观测文件(gps/data/daily/year/doyyyo/)需要在StationsList.py文件中配置需要下载的测站列表
mobs多系统观测文件(mgex/daily/rinex3/year/doy/) 格式*%SSSS.crx.gz 下载后重命名为*%SSSS%DDD0.%yyo
ionCOD i文件 电离层数据(“https://cddis.nasa.gov/archive/gps/products/ionex/year/doy/”)
liststas获取指定日期下的所有测站,提取测站名称生成stalist.txt文件,可将其要下载的站点复制到StationsList.py中使用下载命令下载观测文件
dcbCAS的DCB产品https://cddis.nasa.gov/archive/gnss/products/mgex/dcb/year/
brdm多系统广播星历 BRDM00DLR_S_%YYYY*%DDD0000_01D_MN.rnx.gz 下载后重命名为:brdm%DDD0.%Y*Yp
clksp3下载同一机构的 CLK和SP3文件,需要输入第二参数,可选择产品机构(COD GFZ GRG IAC JAX SHA WUM gfz igs)小写命令下载的为短文件,大写下载的为长文件,下载后命名统一更改为短文件格式

3.总结

该python脚本实现了自动下载GNSS数据,可以自动下载GNSS obs/sp3/clk/brdm/dcb/ion数据,同时解压分类文件转换等功能也能自动完成,避免了很多重复性的工作。

参考文档:


  • https://blog.csdn.net/weixin_43715458/article/details/100096496

  • https://navrs.wh.sdu.edu.cn/info/1621/1487.htm

  • https://cddis.nasa.gov/About/CDDIS_File_Download_Documentation.html

  • https://blog.csdn.net/weixin_39672353/article/details/109852755

  • 20
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值