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

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

文章目录

  • python脚本实现GNSS数据自动下载
  • 功能简介
  • 1.使用前的准备
    • python环境的搭建:
    • curl的下载和配置:
  • 2.脚本的使用
    • V1.0的使用方法
      • 命令行格式:
      • 下表给出了各个type命令的下载的文件类型:
      • 脚本使用示例:
    • 2021-03-26更新 V2.0
  • 3.总结

功能简介

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

  • curl的下载和配置:

    ​ 关于curl以及如何使用curl下载CDDIS的数据可以参考以下两篇文章,讲的非常详细:

    1. CURL版IGS-CDDIS下载GNSS数据-山东大学空间科学研究院卫星导航与遥感研究中心
    2. CDDIS官方的CDDIS | | About | CDDIS File Download Documentation

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/)
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)
  • 脚本使用示例:

  • 需要输入路径,若目标文件夹不存在会自动创建一个同名文件夹,观测值文件会自动创建文件夹并按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
ion COD i文件 电离层数据(“https://cddis.nasa.gov/archive/gps/products/ionex/year/doy/”)
liststas 获取指定日期下的所有测站,提取测站名称生成stalist.txt文件,可将其要下载的站点复制到StationsList.py中使用下载命令下载观测文件
dcb CAS的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

python脚本实现GNSS数据自动下载相关推荐

  1. ASF网站自带python脚本完成sentinel-1数据自动下载

    1.将要下载的数据加入购物车,点击Data Download下载python脚本. 2.将下载的脚本用UE脚本编辑器打开或者其他编辑器打开,可以查看到已经自动生成要下载的数据链接脚本. 3.如果电脑没 ...

  2. GNSS数据自动下载脚本(使用CDDIS账号)

    GNSS数据自动下载脚本(使用CDDIS账号) 文章目录 GNSS数据自动下载脚本(使用CDDIS账号) 前言 1.注册EARTHDATA账号 2.使用前的准备工作 3.脚本的使用 总结 Q& ...

  3. 用python脚本实现JRA-55数据批量下载

    今天开完组会,小小放松一下哈哈,更新一下许久没更新的CSDN(登陆太少,好多私信和评论都没回复,尴尬哈哈) 我之前下载JRA-55的monthly数据,上ftp用手点!用手点!!![破音] 太惨了,简 ...

  4. Python中使用sentinelsat包自动下载Sentinel系列数据

    Python中使用sentinelsat包自动下载Sentinel系列数据 前言 普通下载 使用工具批量下载Sentinel 数据 使用SNAP批量下载 第三方软件或网站批量下载 Sentinel-1 ...

  5. android 加固服务器,Python 脚本构建Android APK 自动加固、打渠道包并上传服务器

    Python 脚本构建Android APK 自动加固.打渠道包并上传服务器 常规流程 打出原始apk 使用乐固工具加固并打出响应渠道包 将生成的渠道包上传对应服务器,生成推广链接 因为每一步都需要人 ...

  6. 【python】使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来

    使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来 dataCleaning4multiple.py 源码如下: import os, random, shutil import s ...

  7. python从文件中读取数据_使用Python脚本从文件读取数据代码实例

    这篇文章主要介绍了使用Python脚本从文件读取数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近自学Python的进度比较慢,工作之 ...

  8. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集的下载(基于python语言根据爬虫技术自动下载MNIST数据集)

    Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集的下载(基于python语言根据爬虫技术自动下载MNIST数据集) 目录 数据集下载的所有代码 1.主文件 mni ...

  9. python登录交换机执行命令_利用Python脚本登录交换机实现自动配置备份的方法

    主机参考:服务器测评参考推荐网,专注分享服务器优惠信息!如果您想在本站投放您的广告,点此直达!如果您不想付费,您也可以免费投稿您的产品信息,点此直达!联系我们 部分文章发布时间较久远,可能存在未知因素 ...

最新文章

  1. 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
  2. Redhat9安装firefox详解
  3. 011_SpringBoot视图层技术thymeleaf-日期格式化
  4. c# 获取当前活动窗口句柄,获取窗口大小及位置
  5. Delphi中的dll操作
  6. 绝对不能错过!计算机视觉Polygon Mesh Processing读书笔记——4微分几何中的曲线
  7. c语言中变量的转换,C语言中,指针变量之间的类型转换
  8. Atitit.git的存储结构and 追踪
  9. sqlserver2005-error:4064
  10. 图书管理系统/库存管理系统等计算机毕业论文设计
  11. 金万维怎么使用远程服务器,远程桌面如何设置?
  12. 关于计算机高中英语作文,关于电脑的高中英语作文:Computers
  13. 2019NIvidia ASIC PD笔试题概念解析
  14. 排序算法——梳排序 Comb sort
  15. 数学之路-python计算实战(4)-Lempel-Ziv压缩(2)
  16. matlab绘制三维立体图
  17. Python小测验(01)
  18. c语言——数字特征值题
  19. MATLAB在线工具,画图啥的都不用安装了,超级实用
  20. Kinect开发遇到的问题

热门文章

  1. not executable: 64-bit ELF file 已解决
  2. pc无线连接多台移动设备
  3. TLS握手协议分析与理解——某HTTPS请求流量包分析
  4. 什么是JSON(详解)
  5. JavaScript(WebAPI) (前端)
  6. [eNSP]→静态路由、负载分担、备用链路
  7. 关于ntko从后台传输文档时发生文件存取错误,暨关于response使用的注意点
  8. Session注销方式
  9. Direct2D 图形计算
  10. 九年级计算机教学课时计划,信息技术教学计划(精选3篇)