zl程序教程

您现在的位置是:首页 >  后端

当前栏目

利用Python自动在CDDIS上下载GNSS数据(观测值、广播星历,电离层格网数据)

Python下载自动数据 利用 广播 观测
2023-09-11 14:20:29 时间

我们在做GNSS数据处理和分析的时候,难免会用到很多天甚至几年的GNSS数据,如果一个一个下载的话未免过于麻烦,因此博主利用Python写了一个较为简单的下载数据的程序,简单调试一下就能实现自动下载啦

自动下载电离层格网文件

# -*- coding: utf-8 -*-
# @Time    : 2022/1/3 14:21
# @Author  : xymeng
# @FileName: 000-i.py 下载I文件专用程序
# @Software: PyCharm
'''
url = https://cddis.nasa.gov/archive/gnss/products/ionex/2021/004/igsg0040.21i.Z
url = 'https://cddis.nasa.gov/archive/gnss/products/ionex/2021/'+doy+'/'+'igsg'+doy+str(0)+'.21i.Z'
'''

from selenium import webdriver
from selenium.webdriver.edge.service import Service
import time
from selenium.webdriver.common.by import By

s = Service("E:\edgedriver_win64\msedgedriver.exe") #这里写本地的msedge的所在路径
driver = webdriver.Edge(service=s)
driver.get("https://urs.earthdata.nasa.gov/oauth/authorize?client_id=gDQnv1IO0j9O2xXdwS8KMQ&response_type=code&redirect_uri=https%3A%2F%2Fcddis.nasa.gov%2Fproxyauth&state=aHR0cDovL2NkZGlzLm5hc2EuZ292L2FyY2hpdmUv") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
driver.find_element(By.ID,'username').send_keys('用户名')
driver.find_element(By.ID,'password').send_keys('密码')
time.sleep(0.5)
driver.find_element(By.NAME,'commit').click()
driver.get('https://cddis.nasa.gov/archive/')
time.sleep(10)
driver.find_element(By.ID,'gnss').click()
driver.find_element(By.ID,'products').click()
driver.find_element(By.ID,'ionex').click()
driver.find_element(By.ID,'2019').click()
for doy in range(93,365):
    doy = str(doy)
    doy = doy.zfill(3)
    driver.find_element(By.ID, doy).click()
    driver.find_element(By.ID, 'igsg'+doy+str(0)+'.19i.Z').click()
    driver.back()
    time.sleep(10)

效果图

在这里插入图片描述

自动下载观测值O文件

# -*- coding: utf-8 -*-
# @Time    : 2022/1/16 16:10
# @Author  : xymeng
# @FileName: 000-o.py 下载O文件专用程序
# @Software: PyCharm

'''
url = https://cddis.nasa.gov/archive/gnss/products/ionex/2021/004/igsg0040.21i.Z
url = 'https://cddis.nasa.gov/archive/gnss/products/ionex/2021/'+doy+'/'+'igsg'+doy+str(0)+'.21i.Z'
'''

from selenium import webdriver
from selenium.webdriver.edge.service import Service
import time
from selenium.webdriver.common.by import By

s = Service("E:\edgedriver_win64\msedgedriver.exe") #这里写本地的msedge的所在路径
driver = webdriver.Edge(service=s)
driver.get("https://urs.earthdata.nasa.gov/oauth/authorize?client_id=gDQnv1IO0j9O2xXdwS8KMQ&response_type=code&redirect_uri=https%3A%2F%2Fcddis.nasa.gov%2Fproxyauth&state=aHR0cDovL2NkZGlzLm5hc2EuZ292L2FyY2hpdmUv") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
driver.find_element(By.ID,'username').send_keys('用户名')
driver.find_element(By.ID,'password').send_keys('密码')
time.sleep(0.5)
driver.find_element(By.NAME,'commit').click()
driver.get('https://cddis.nasa.gov/archive/')
time.sleep(10)
driver.find_element(By.ID,'gnss').click()
driver.find_element(By.ID,'data').click()
driver.find_element(By.ID,'daily').click()
driver.find_element(By.ID,'2021').click()
for doy in range(76,365):
    doy = str(doy)
    doy = doy.zfill(3)
    driver.find_element(By.ID, doy).click()
    driver.find_element(By.ID, '21d').click()
    driver.find_element(By.ID, 'JFNG00CHN_R_2021'+doy+'0000_01D_30S_MO.crx.gz').click()#WUHN00CHN_R_2021
    driver.back()
    driver.back()
    time.sleep(10)

效果图

在这里插入图片描述

自动下载星历n文件

# -*- coding: utf-8 -*-
# @Time    : 2022/1/17 10:32
# @Author  : xymeng
# @FileName: 000-n.py
# @Software: PyCharm

'''
url = https://cddis.nasa.gov/archive/gnss/products/ionex/2021/004/igsg0040.21i.Z
url = 'https://cddis.nasa.gov/archive/gnss/products/ionex/2021/'+doy+'/'+'igsg'+doy+str(0)+'.21i.Z'
'''

from selenium import webdriver
from selenium.webdriver.edge.service import Service
import time
from selenium.webdriver.common.by import By

s = Service("E:\edgedriver_win64\msedgedriver.exe") #这里写本地的msedge的所在路径
driver = webdriver.Edge(service=s)
driver.get("https://urs.earthdata.nasa.gov/oauth/authorize?client_id=gDQnv1IO0j9O2xXdwS8KMQ&response_type=code&redirect_uri=https%3A%2F%2Fcddis.nasa.gov%2Fproxyauth&state=aHR0cDovL2NkZGlzLm5hc2EuZ292L2FyY2hpdmUv") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
driver.find_element(By.ID,'username').send_keys('用户名')
driver.find_element(By.ID,'password').send_keys('密码')
time.sleep(0.5)
driver.find_element(By.NAME,'commit').click()
driver.get('https://cddis.nasa.gov/archive/')
time.sleep(10)
driver.find_element(By.ID,'gnss').click()
driver.find_element(By.ID,'data').click()
driver.find_element(By.ID,'daily').click()
driver.find_element(By.ID,'2020').click()
driver.find_element(By.ID, 'brdc').click()
for doy in range(1,366):
    doy = str(doy)
    doy = doy.zfill(3)
    driver.find_element(By.ID, 'BRDC00IGS_R_2021'+doy+'0000_01D_MN.rnx.gz').click()#BRDC00IGS_R_20210010000_01D_MN.rnx.gz
    time.sleep(10)

效果图

在这里插入图片描述