SentinelSat API获取S5P数据不全问题求助
SentinelSat API下载S5P数据的问题排查与解决
一、API返回文件名与OpenAccessHub不匹配的原因
- SentinelSat API返回的是简化后的内部命名,OpenAccessHub显示的是完整归档名,两者规则不同:
- API文件名省略了部分冗余标识(比如平台后缀、入库批次标记)
- 核心的产品ID、时间戳、模式标识(Offline/NRTI)完全一致,可通过
product_id字段关联两者
二、Offline模式产品缺失的核心原因
你遇到的2023年5-7月印度区域早7点入库的Offline产品缺失,主要是SentinelSat默认查询参数过滤了这类延迟入库的产品:
- Offline产品入库时间(
ingestiondate)通常比观测时间晚数小时甚至1天,而你的单日查询只限定了观测时间(beginposition/endposition)在目标日期,没覆盖入库时间范围 - 部分Offline产品的空间覆盖边界在API查询时被误判,导致印度区域的边缘覆盖产品没被匹配到
三、具体解决办法
1. 扩展入库时间范围,覆盖延迟产品
修改查询代码,把ingestiondate范围设为目标日期前后1天,确保捕获次日入库的Offline产品:
from sentinelsat import SentinelAPI api = SentinelAPI('你的用户名', '你的密码', 'https://s5phub.copernicus.eu/dhus') # 目标日期示例:2023-05-15 target_date = "20230515" # 入库时间范围:目标日期当天到次日23:59 ingestion_start = f"{target_date[:4]}-{target_date[4:6]}-{target_date[6:8]}T00:00:00.000Z" ingestion_end = f"{target_date[:4]}-{target_date[4:6]}-{str(int(target_date[6:8])+1)}T23:59:59.999Z" products = api.query( area='你的印度区域多边形WKT', # 替换为实际区域 date=(f"{target_date[:4]}-{target_date[4:6]}-{target_date[6:8]}", f"{target_date[:4]}-{target_date[4:6]}-{target_date[6:8]}"), platformname='Sentinel-5 Precursor', producttype='L2__NO2___', # 替换为你需要的产品类型 ingestiondate=(ingestion_start, ingestion_end), # 新增入库时间过滤 producttype='Offline' # 明确指定Offline模式 )
2. 优化空间匹配规则
如果是空间匹配漏查,调整边界或匹配规则:
- 给印度区域的多边形增加0.5度缓冲,覆盖边缘产品
- 把
area_relation设为Intersects,替代默认的Contains,确保只要产品覆盖区域和查询区域有交集就会被返回:
products = api.query( # 其他参数不变 area_relation='Intersects' )
3. 自动校验补全缺失产品
如果还是有漏查,可以先通过OpenAccessHub导出目标日期所有Offline产品的UUID列表,然后对比API查询结果,自动下载缺失的:
# 从OpenAccessHub导出的目标日期UUID列表 target_uuids = ["uuid_1", "uuid_2", ...] # 提取已查询到的产品UUID downloaded_uuids = [prod['uuid'] for prod in products.values()] # 找出缺失的UUID missing_uuids = [uuid for uuid in target_uuids if uuid not in downloaded_uuids] # 批量下载缺失产品 for uuid in missing_uuids: api.download(uuid)
四、额外注意点
- 部分Offline产品的观测时间(
beginposition)可能跨日期,比如目标日期23:50观测,次日7点入库,这时要确保date参数覆盖跨日期的观测时间 - 可以用
api.get_product_odata(uuid)查看产品完整元数据,对比beginposition、ingestiondate、footprint字段,精准排查漏查原因
内容的提问来源于stack exchange,提问作者muilenheinz
相关产品推荐
相关产品推荐

