发布时间:2026/7/14 13:05:48
Earthdata Search API完全手册:轻松集成NASA地球科学数据到你的应用 Earthdata Search API完全手册轻松集成NASA地球科学数据到你的应用【免费下载链接】earthdata-searchEarthdata Search is a web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS Earth Science data holdings.项目地址: https://gitcode.com/gh_mirrors/ea/earthdata-search你是否曾经想要在自己的应用中集成NASA的地球科学数据却不知道从何入手 Earthdata Search API就是你的完美解决方案作为NASA EOSDIS开发的官方数据搜索平台Earthdata Search提供了强大的API接口让你能够轻松访问数以百万计的地球科学数据集。本文将为你详细介绍如何使用Earthdata Search API快速将NASA的地球科学数据集成到你的应用程序中。 什么是Earthdata SearchEarthdata Search是由NASA地球观测系统数据和信息系统EOSDIS开发的Web应用程序用于实现跨EOSDIS地球科学数据资产的数据发现、搜索、比较、可视化和访问。它建立在多个面向公众的服务之上包括用于数据发现和访问的通用元数据存储库CMR、EOSDIS用户注册系统URS认证、用于可视化的全球图像浏览服务GIBS以及数据提供商托管的多个OPeNDAP服务。通过Earthdata Search API你可以访问NASA收集的各种地球科学数据包括气候数据、卫星图像、大气观测等这些数据对于科学研究、环境监测、天气预测等应用至关重要。 Earthdata Search API核心功能1. 数据搜索与发现APIEarthdata Search提供了丰富的API端点让你能够搜索和发现NASA的地球科学数据集集合搜索API通过/collections端点搜索数据集集合数据粒度搜索API通过/granules端点搜索具体的数据粒度时间线搜索API通过/granules/timeline端点获取数据时间线信息这些API端点位于serverless/src/collectionSearch/handler.js、serverless/src/cmrGranuleSearch/handler.js和serverless/src/timelineSearch/handler.js中实现。2. GraphQL数据查询Earthdata Search支持GraphQL查询提供了更灵活的数据查询能力。通过/graphql端点你可以执行复杂的查询来获取精确需要的数据// 示例GraphQL查询 { collections { id title description temporalRange { startDate endDate } spatialCoverage { boundingBox } } }GraphQL处理器位于serverless/src/graphQl/handler.js它作为CMR GraphQL服务的代理提供统一的查询接口。3. 数据检索与订单管理Earthdata Search API允许你提交数据检索请求并管理订单提交检索请求POST /retrievals获取检索状态GET /retrievals/{id}删除检索请求DELETE /retrievals/{id}获取检索列表GET /retrievals这些功能对于批量处理大量数据请求特别有用相关实现可以在serverless/src/submitRetrieval/handler.js和serverless/src/getRetrieval/handler.js中找到。4. 空间数据搜索Earthdata Search提供了强大的空间搜索功能区域搜索APIGET /regions- 搜索特定地理区域的数据形状文件支持POST /shapefiles和GET /shapefiles/{id}- 上传和获取形状文件区域搜索功能在serverless/src/regionSearch/handler.js中实现形状文件支持在serverless/src/saveShapefile/handler.js和serverless/src/getShapefile/handler.js中提供。 快速开始指南步骤1获取认证令牌要使用Earthdata Search API首先需要获取认证令牌。Earthdata Search使用NASA的Earthdata LoginURS系统进行身份验证# 获取JWT令牌 curl -X POST https://urs.earthdata.nasa.gov/oauth/token \ -d grant_typeclient_credentials \ -u your_client_id:your_client_secret步骤2搜索数据集使用认证令牌搜索NASA的地球科学数据集# 搜索包含temperature关键词的数据集 curl -X POST https://search.earthdata.nasa.gov/collections \ -H Authorization: Bearer YOUR_JWT_TOKEN \ -H Content-Type: application/json \ -d { keyword: temperature, temporal: 2023-01-01T00:00:00Z,2023-12-31T23:59:59Z, spatial: { bounding_box: -180,-90,180,90 } }步骤3获取数据粒度信息获取特定数据集中的数据粒度信息# 获取数据集中的数据粒度 curl -X POST https://search.earthdata.nasa.gov/granules \ -H Authorization: Bearer YOUR_JWT_TOKEN \ -H Content-Type: application/json \ -d { collection_concept_id: C123456789-PROVIDER, page_size: 10, page_num: 1 }步骤4提交数据检索请求提交数据检索请求以获取实际的数据文件# 提交数据检索请求 curl -X POST https://search.earthdata.nasa.gov/retrievals \ -H Authorization: Bearer YOUR_JWT_TOKEN \ -H Content-Type: application/json \ -d { collections: [ { id: C123456789-PROVIDER, granules: [ { id: G123456789-PROVIDER } ] } ] } API端点详解公开API端点无需认证端点方法描述实现文件/autocompletePOST自动完成搜索建议serverless/src/autocomplete/handler.js/scale/{concept_type}/{concept_id}GET缩放图像serverless/src/scaleImage/handler.js/regionsGET区域搜索serverless/src/regionSearch/handler.js/decodeGETID解码serverless/src/decodeId/handler.js/colormaps/{product}GET获取颜色映射serverless/src/getColorMap/handler.js需要认证的API端点端点方法描述实现文件/graphqlPOSTGraphQL查询serverless/src/graphQl/handler.js/collectionsPOST集合搜索serverless/src/collectionSearch/handler.js/granulesPOST数据粒度搜索serverless/src/cmrGranuleSearch/handler.js/granules/timelinePOST时间线搜索serverless/src/timelineSearch/handler.js/retrievalsPOST/GET检索管理serverless/src/submitRetrieval/handler.js️ 高级功能与集成1. 数据可视化集成Earthdata Search API与GIBS全球图像浏览服务集成支持数据可视化// 获取颜色映射用于数据可视化 const response await fetch(https://search.earthdata.nasa.gov/colormaps/MODIS_Aqua_CorrectedReflectance_TrueColor); const colormap await response.json();颜色映射功能在serverless/src/getColorMap/handler.js中实现。2. 项目和数据管理Earthdata Search提供了项目和数据管理功能保存项目POST /projects- 保存搜索项目获取项目GET /projects/{id}- 获取特定项目获取项目列表GET /projects- 获取用户的所有项目项目管理功能在serverless/src/saveProject/handler.js和serverless/src/getProject/handler.js中实现。3. 数据导出功能Earthdata Search支持将搜索结果导出为CSV格式# 导出搜索结果 curl -X POST https://search.earthdata.nasa.gov/collections/export \ -H Authorization: Bearer YOUR_JWT_TOKEN \ -H Content-Type: application/json \ -d { collections: [C123456789-PROVIDER], format: csv }数据导出功能在serverless/src/exportSearch/handler.js中实现。 安全与认证Earthdata Search API使用NASA的Earthdata LoginURS系统进行认证。所有需要认证的API端点都需要有效的JWT令牌。认证流程包括用户认证通过URS系统获取认证令牌令牌验证API验证令牌的有效性授权检查检查用户对请求数据的访问权限认证相关的代码位于serverless/src/edlAuthorizer/handler.js和serverless/src/edlOptionalAuthorizer/handler.js。 错误处理与日志记录Earthdata Search API提供了完善的错误处理和日志记录机制错误日志记录POST /error_logger- 记录客户端错误警报日志记录POST /alert_logger- 记录系统警报相关性日志记录POST /relevancy_logger- 记录搜索相关性信息这些日志功能帮助NASA监控API使用情况并改进服务质量相关实现可以在serverless/src/errorLogger/handler.js和serverless/src/alertLogger/handler.js中找到。 最佳实践1. 使用分页提高性能当处理大量数据时始终使用分页{ page_size: 50, page_num: 1 }2. 缓存常用数据对于不经常变化的数据如元数据信息考虑在客户端实现缓存机制以减少API调用。3. 处理速率限制Earthdata Search API可能有速率限制确保你的应用程序能够优雅地处理429Too Many Requests响应。4. 使用异步处理对于大型数据检索请求使用异步处理模式// 提交检索请求 const retrievalResponse await fetch(/retrievals, { method: POST, headers: { Authorization: Bearer YOUR_TOKEN }, body: JSON.stringify(retrievalRequest) }); // 定期检查状态 const retrievalId retrievalResponse.id; const statusResponse await fetch(/retrievals/${retrievalId}); 实际应用场景1. 气候研究应用使用Earthdata Search API获取气候数据构建气候分析和预测工具import requests # 获取气候数据集 response requests.post( https://search.earthdata.nasa.gov/collections, headers{Authorization: Bearer YOUR_TOKEN}, json{ keyword: climate, temporal: 2020-01-01T00:00:00Z,2023-12-31T23:59:59Z } ) # 处理气候数据 climate_data response.json()2. 环境监测仪表板集成Earthdata Search API创建实时环境监测仪表板// 获取实时环境数据 async function getEnvironmentalData(region, timeRange) { const response await fetch(https://search.earthdata.nasa.gov/granules, { method: POST, headers: { Authorization: Bearer YOUR_TOKEN, Content-Type: application/json }, body: JSON.stringify({ spatial: { bounding_box: region }, temporal: timeRange, collections: [environmental-monitoring-collections] }) }); return response.json(); }3. 科学研究数据管道构建自动化数据管道定期获取NASA的最新科学数据#!/bin/bash # 自动化数据获取脚本 TOKENyour_jwt_token DATE$(date -u %Y-%m-%dT%H:%M:%SZ) # 获取最新数据 curl -X POST https://search.earthdata.nasa.gov/granules \ -H Authorization: Bearer $TOKEN \ -H Content-Type: application/json \ -d { \temporal\: \$DATE/P1D\, \collections\: [\your-collection-id\] } latest_data.json 调试与故障排除常见问题解决认证失败确保使用有效的JWT令牌并检查令牌是否已过期数据访问限制某些数据集可能需要特殊权限检查错误消息中的详细信息API限制如果遇到速率限制考虑实现请求队列和重试机制数据格式问题确保请求参数格式正确特别是日期和时间格式调试工具Earthdata Search提供了多种调试工具错误日志API记录和报告问题详细的错误响应API返回详细的错误信息帮助诊断问题文档和示例参考官方文档和示例代码 性能优化建议1. 批量请求优化对于多个相关请求考虑使用批处理// 批量获取多个数据集信息 const batchRequests collectionIds.map(id fetch(/concepts/${id}, { headers: { Authorization: Bearer YOUR_TOKEN } }) ); const responses await Promise.all(batchRequests);2. 数据缓存策略实现智能缓存策略减少重复请求class EarthdataCache { constructor() { this.cache new Map(); this.ttl 3600000; // 1小时 } async getData(key, fetchFunction) { const cached this.cache.get(key); if (cached Date.now() - cached.timestamp this.ttl) { return cached.data; } const data await fetchFunction(); this.cache.set(key, { data, timestamp: Date.now() }); return data; } }3. 连接复用保持HTTP连接复用以减少连接建立开销// 使用连接池 const https require(https); const agent new https.Agent({ keepAlive: true }); // 在请求中使用相同的agent const response await fetch(url, { agent }); 总结Earthdata Search API为开发人员提供了访问NASA地球科学数据的强大接口。通过本文的介绍你应该已经了解了Earthdata Search API的基本架构和核心功能如何认证和使用API端点各种数据搜索和检索方法高级功能如数据可视化和项目管理最佳实践和性能优化技巧无论你是构建气候研究工具、环境监测系统还是科学数据分析平台Earthdata Search API都能为你提供可靠的数据支持。开始探索NASA的地球科学数据宝库为你的应用程序注入来自太空的洞察力记住NASA的地球科学数据是免费开放的通过Earthdata Search API你可以轻松访问这些宝贵资源推动科学研究和创新应用的发展。【免费下载链接】earthdata-searchEarthdata Search is a web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS Earth Science data holdings.项目地址: https://gitcode.com/gh_mirrors/ea/earthdata-search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/7/14 13:00:47

遗传算法求解100皇后问题的Python工程实践

1. 项目概述:从理论到代码落地的遗传算法实战复现你有没有试过用纯逻辑推理去解一个100100棋盘上的N皇后问题?不是8个,不是20个,是整整100个皇后——每个都得独占一行、一列、两条对角线,彼此之间不能“看见”对方。手…

2026/7/14 13:00:47

AI生图与Prompt工程实战指南

1. 从文本到画面的AI创作革命 去年夏天,我在为一个儿童绘本项目绘制插图时,第一次真正体会到AI生图技术的威力。当时需要在三天内完成30张风格统一的场景图,传统手绘根本来不及。抱着试试看的心态,我打开了Stable Diffusion&#…

2026/7/14 14:20:52

Docker部署gala-anteater的3个高效技巧:新手也能轻松搞定

Docker部署gala-anteater的3个高效技巧:新手也能轻松搞定 【免费下载链接】gala-anteater A time-series anomaly detection platform for operating system 项目地址: https://gitcode.com/openeuler/gala-anteater 前往项目官网免费下载:https:…

2026/7/14 14:20:52

三层架构:一个“过时”技术的幽灵,如何统治了今天的互联网?

——从笨重单体到微服务,我们从未逃离,只是学会了与它共舞 开篇引言 你有没有想过这样一个场景? 在一个慵懒的周末早晨,你拿起手机,熟练地打开一款咖啡App,下单了一杯拿铁。几秒钟后,订单确认,开始制作。二十分钟后,外卖员敲响了你的家门。

2026/7/14 14:15:52

SleeperX:终极Mac睡眠管理解决方案,3步实现智能电源控制

SleeperX:终极Mac睡眠管理解决方案,3步实现智能电源控制 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 你是否曾经遇到过这样的…

2026/7/14 12:47:32

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/13 14:26:14

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/13 18:07:53

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/14 0:04:21

5分钟掌握足球PBR材质制作:Photoshop与Unity高效工作流

1. 项目概述:为什么是足球PBR材质?在游戏开发,尤其是体育竞技类游戏的制作中,一个看起来“对味”的足球,往往比我们想象中更重要。它不仅是赛场上的核心道具,更是玩家视觉焦点和沉浸感的重要来源。一个塑料…

2026/7/14 0:04:21

ChatGPT联网搜索失败,92%开发者误判为网络问题——真实根因竟是LLM推理会话上下文污染导致Search Agent进程静默退出(含strace复现脚本)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT 联网搜索失败 当 ChatGPT 的联网搜索功能无法正常工作时,用户常遇到“搜索不可用”“未连接到互联网”或空白响应等现象。该问题并非模型本身缺陷,而是由权限配置、网络…

2026/7/14 12:47:31

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…