news 2026/5/1 9:17:00

别再手动点NASA官网了!用Linux的wget命令批量抓取卫星数据(附GESDISC关联避坑点)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再手动点NASA官网了!用Linux的wget命令批量抓取卫星数据(附GESDISC关联避坑点)

用wget构建NASA卫星数据自动化下载流水线的工程实践

每次手动点击NASA官网下载卫星数据时,那些重复的鼠标操作是否让你感到效率低下?当面对数百个需要下载的TROPOMI/NO2数据文件时,科研人员最需要的是将宝贵时间用在数据分析而非文件收集上。本文将展示如何用Linux的wget命令构建完整的自动化下载流水线,特别针对GESDISC数据存档系统的认证机制提供深度解决方案。

1. 环境准备与账户配置

在开始自动化下载前,需要确保基础环境就绪。不同于简单的wget基础用法,NASA数据下载涉及账户认证和会话保持等专业需求。

1.1 系统环境检查

首先确认你的Linux系统已安装适当版本的wget。虽然大多数现代Linux发行版已预装wget,但版本可能不符合NASA推荐要求:

wget --version | head -n 1

推荐使用wget 1.18+版本,若需升级或安装可使用:

# Ubuntu/Debian sudo apt update && sudo apt install -y wget # CentOS/RHEL sudo yum install -y wget

1.2 NASA账户与GESDISC授权

NASA数据下载需要账户双重认证:

  1. 注册Earthdata账号(若尚未拥有)
  2. 在个人账户的Authorized Apps中启用NASA GESDISC DATA ARCHIVE授权

注意:部分用户可能需要在APPROVE MORE APPLICATIONS中手动查找并启用GESDISC授权,这是后续认证文件生效的前提条件。

2. 认证文件配置与测试

2.1 创建.urs_cookies文件

认证文件是自动化下载的核心,它保存了会话凭证。在home目录下创建:

touch ~/.urs_cookies chmod 600 ~/.urs_cookies

测试认证是否成功:

wget --load-cookies ~/.urs_cookies --save-cookies ~/.urs_cookies --keep-session-cookies "https://urs.earthdata.nasa.gov/profile" -O /dev/null

若返回HTTP 200状态码,说明认证配置正确。

2.2 认证失败排查指南

常见错误及解决方案:

错误现象可能原因解决方案
HTTP 401账户未授权GESDISC检查Authorized Apps中的授权状态
证书验证失败系统CA证书过期更新ca-certificates包
连接超时网络限制尝试使用--no-check-certificate参数

3. 高效生成下载链接列表

3.1 使用官方接口生成Links List

以TROPOMI/NO2数据为例:

  1. 在GESDISC数据搜索界面选择目标数据集
  2. 设置时间范围和数据筛选条件
  3. 点击"Get Data"生成下载链接表
  4. 保存Download Links List为文本文件(如no2_links.txt

3.2 链接列表预处理技巧

原始链接列表可能包含元数据行,需清理为纯URL列表:

grep -E '^https://' no2_links.txt > clean_links.txt

对于大规模下载,建议将列表分割为多个文件并行处理:

split -l 50 clean_links.txt batch_

4. 构建生产级下载流水线

4.1 基础下载命令优化

标准下载命令可扩展为:

wget --load-cookies ~/.urs_cookies \ --save-cookies ~/.urs_cookies \ --keep-session-cookies \ --content-disposition \ --trust-server-names \ --no-parent \ --random-wait \ --continue \ -i clean_links.txt

关键参数说明:

  • --content-disposition:保留服务器建议的文件名
  • --random-wait:避免触发反爬机制
  • --continue:支持断点续传

4.2 高级批量处理方案

对于TB级数据下载,建议使用GNU parallel实现并行下载:

parallel -j 4 --progress \ 'wget --load-cookies ~/.urs_cookies \ --save-cookies ~/.urs_cookies \ --keep-session-cookies \ -q {}' :::: clean_links.txt

其中-j 4表示同时4个并发下载,可根据网络带宽调整。

4.3 下载监控与日志管理

创建完整的日志系统:

timestamp=$(date +%Y%m%d_%H%M%S) log_file="download_${timestamp}.log" wget [参数...] -i clean_links.txt -o $log_file

关键日志分析命令:

# 统计成功下载数量 grep -c "saved" $log_file # 查看失败链接 grep "failed" $log_file | awk '{print $NF}'

5. 生产环境中的最佳实践

5.1 自动化脚本模板

保存为nasa_downloader.sh

#!/bin/bash # 配置区 COOKIE_FILE="$HOME/.urs_cookies" LINK_FILE="clean_links.txt" OUTPUT_DIR="./data" LOG_DIR="./logs" # 创建目录 mkdir -p "$OUTPUT_DIR" "$LOG_DIR" # 下载函数 download_batch() { local input_file=$1 local log_file="$LOG_DIR/download_$(date +%s).log" wget --load-cookies "$COOKIE_FILE" \ --save-cookies "$COOKIE_FILE" \ --keep-session-cookies \ --content-disposition \ --directory-prefix="$OUTPUT_DIR" \ --no-parent \ --random-wait \ --continue \ -i "$input_file" \ -o "$log_file" } # 主流程 download_batch "$LINK_FILE"

赋予执行权限:chmod +x nasa_downloader.sh

5.2 错误恢复机制

当下载中断后,可通过以下步骤恢复:

  1. 找出已下载完成的文件:

    ls $OUTPUT_DIR > downloaded.txt
  2. 生成剩余链接列表:

    comm -23 <(sort clean_links.txt) <(awk -F/ '{print $NF}' downloaded.txt | sort) > remaining.txt
  3. 重新运行下载器:

    ./nasa_downloader.sh remaining.txt

5.3 性能优化参数

针对不同网络环境的建议配置:

网络类型推荐参数组合说明
高速稳定-j8 --limit-rate=10M最大化带宽利用率
不稳定网络-j2 --wait=5 --tries=10降低并发防止频繁失败
跨国连接--dns-timeout=30 --connect-timeout=60增加超时阈值

在长期运行的下载任务中,建议配合tmux或screen使用,避免因SSH断开导致任务终止:

tmux new -s nasa_download ./nasa_downloader.sh # 按Ctrl+B然后D脱离会话
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:09:35

Overpass Mono等宽字体应用:程序员和代码显示的最佳选择

Overpass Mono等宽字体应用&#xff1a;程序员和代码显示的最佳选择 【免费下载链接】Overpass Overpass open source web font family — Sponsored by Red Hat 项目地址: https://gitcode.com/gh_mirrors/ov/Overpass Overpass Mono是一款专为开发者打造的开源等宽字体…

作者头像 李华
网站建设 2026/5/1 9:08:26

WarcraftHelper完整指南:让魔兽争霸3在现代Windows系统完美运行

WarcraftHelper完整指南&#xff1a;让魔兽争霸3在现代Windows系统完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏魔兽争霸3在…

作者头像 李华
网站建设 2026/5/1 8:57:50

中文作文智能体实战项目:基于大语言模型的Web端写作助手设计与实现

目录1. 项目背景与目标2. 系统架构与技术选型2.1 整体架构2.2 关键技术点3. 核心功能详解3.1 文体与字数选择3.2 会话管理3.3 写作指导侧边栏4. 使用流程与界面说明4.1 快速开始步骤4.2 界面区域划分5. 关键代码解析5.1 流式生成核心函数5.2 提示词工程6. 数据持久化与安全6.1 …

作者头像 李华
网站建设 2026/5/1 8:48:22

Redis------单节点

Redis 介绍 Redis 最常用的功能是作为缓存数据库&#xff0c;保存的数据都存放在内存中&#xff0c;这样读写的速度极快&#xff0c;也分担了主数据库的部分压力。Redis 也可以将保存在内存的数据持久化到硬盘中&#xff0c;这样重启Redis 时&#xff0c;Redis的key:value 数据…

作者头像 李华