当前位置: 首页 > news >正文

使用 Python 查询和下载 Sentinel-1 轨道数据

本文主要介绍通过 Python 从 美国阿拉斯加大学费尔班克斯分校运营的卫星数据分发平台 https://s1qc.asf.alaska.edu/ 下载哨兵1(Sentinel-1)号轨道数据(AUX_POEORB、AUX_RESORB等)产品数据(2025年9月~12月)。整体流程如下:

申请一个 earthdata 账号
配置 Python 依赖
查询数据
下载数据

1 申请一个 earthdata 账号

申请地址: https://urs.earthdata.nasa.gov/
按步操作,不再赘述:

在账户中生成一个 token

2 配置 Python 依赖

Python: 3.12

安装以下库(内置库或关联库已忽略):

requests: 2.32.3
tqdm: 4.67.1
bs4: 4.12.3

3 查询数据

查询地址:https://s1qc.asf.alaska.edu/

注:查询数据不需要账号

importrequests,re,os,tqdmfrombs4importBeautifulSoup url="https://s1qc.asf.alaska.edu/aux_resorb/"query_res=requests.get(url)months=[202509,202510,202511,202512]pattern=rf'{"|".join([str(m)forminmonths])}'soup=BeautifulSoup(query_res.text,'html.parser')POEORBs=[]# 查询结果forlinkinsoup.find_all('a'):text=link.get('href')if'S1A'intextandbool(re.search(pattern,text)):POEORBs.append(f'{url}/{text}')

查询结果示例:

4 下载数据

注:下载数据需要账号

4.1 登录NASA账号,获得 cookie

经检测,直接通过 requests 登录 NASA 账号依然会报 账户错误。这里使用已登录 NASA 的浏览器 cookies。

步骤一:浏览器(Edge为例)打开查询结果中的一个链接。

步骤二:登录跳转到的 NASA 账户

步骤三:返回步骤一的链接(浏览器已能下载或打开文件)

步骤四:进入浏览器开发人员工具,找到cookies

【···】 --> 【更多工具】 --> 【开发人员工具】

【网络】 --> 【全部】 --> 【名称(文件名)】–>【标头】–>【请求标头】–>【Cookie】


复制 cookie

4.2 通过 cookie 批量下载查询结果

session=requests.Session()cookie='''4.1 复制的 cookie'''headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0","cookie":cookie}session.headers.update(headers)out_path=r'D:\下载\aux_resorb'chunk_size=8192fori,linkinenumerate(POEORBs):out_file=f"{out_path}\\{os.path.basename(link)}"ifos.path.exists(out_file):print(f'跳过已存在的下载({i+1}/{len(POEORBs)}):{out_file}')continueresponse=session.get(link,stream=True)ifresponse.status_code==200:## 创建进度条print(f'当前下载({i+1}/{len(POEORBs)}):{out_file}')total_size=int(response.headers.get('content-length',0))# 数据总大小total=int(np.ceil(total_size/chunk_size))# 分块数量withopen(out_file,"wb")asfile:# 分块下载forchunkintqdm.tqdm(response.iter_content(chunk_size=chunk_size),total=total):ifchunk:file.write(chunk)else:print(f"Error:{response.status_code}.{response.text}")

下载过程示例:

http://www.jsqmd.com/news/125490/

相关文章:

  • LACP协议小结
  • Java计算机毕设之基于springboot的非物质文化遗产再创新系统设计与实现基于SpringBoot和Vue的非物质文化遗产数字化传承网站(完整前后端代码+说明文档+LW,调试定制等)
  • Java毕设选题推荐:基于springboot的旧物回收商城系统的设计与实现springboot废物回收管理商城【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 全面讲解ESP32开发核心外设:GPIO控制基础教学
  • STM32-时钟树编程
  • 上拉电阻在复位电路中的应用:原理详解与实例说明
  • v-scale-screen自适应方案在数据可视化中的应用
  • 2025年10大AI论文生成平台推荐,包含LaTeX模板与智能格式校对
  • ego1开发板大作业vivado中数码管动态显示完整指南
  • STM32CubeMX中文汉化环境下I2C配置流程通俗解释
  • 基于proteus的4位数码管动态扫描实战案例
  • 赋能成长型企业:SAP Business One与奥维奥的数字化共赢之道
  • 有源蜂鸣器和无源区分:手把手教你辨认方法
  • dot1x和RADIUS认证
  • 【毕业设计】基于springboot的非物质文化遗产再创新系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 2025年值得留意的10款AI论文生成平台,支持LaTeX模板与自动格式校对
  • 自定义Java的色环电阻读数器
  • 手把手教你使用USB Burning Tool进行固件烧录
  • 如何正确使用hal_uart_transmit避免数据丢失
  • screen命令手把手教程:搭建稳定远程开发环境步骤
  • ESP32端侧大模型推理内存管理策略解析
  • 共筑敏捷核心:SAP Business One与奥维奥的数字进化论
  • 西门子罗宾康A5E01649325:工业通讯扩展模块
  • ADC驱动设计与实现
  • 今天开博客了
  • 【计算机毕业设计案例】基于SpringBoot+Vue非物质文化遗产文创销售网站基于springboot的非物质文化遗产再创新系统设计与实现(程序+文档+讲解+定制)
  • C++——C/C++连接mysql数据库
  • 西门子罗宾康A5E37356659:电源供应模块 —— 工业系统的稳定供电基石
  • 【课程设计/毕业设计】基于SpringBoot非物质文化网站系统基于springboot的非物质文化遗产再创新系统设计与实现【附源码、数据库、万字文档】
  • 做 简历时,模板比内容更费时间?10 个实用简历模板网站整理