信息速览
一个哥伦比亚市镇的卫生官员想在雨季之前判断辖区里的登革热会不会抬头,最直接的凭据是既往病例,而病例要在哨点报到、层层汇总,等到数字可用时,干预窗口往往已经关了一半。换个思路是从天上看:气温、积水、建筑密度、聚居形态,这些驱动蚊媒繁殖的东西都会落在地表纹理里,哨兵二号每五天从头顶过一次,影像本身免费且公开。真正卡人的是中间那一步——把原始底档变成一组"同一个市镇、相邻两张间隔固定、尽量没有云"的图片序列。这一步要会用 Sentinel Hub 之类的接口、要懂最小云量镶嵌、要处理缺图与全黑帧,还要有下载和算力的预算。它把绝大多数公共卫生团队挡在门外,也解释了为什么类似的指标体系在拉美、东南亚、非洲被反复提出,最后落地的人却总是同一小批遥感或机器学习课题组。
哥伦比亚多模态公共卫生数据集(PhysioNet slug:multimodal-satellite-data)做的,是把这一步提前做完并公开发布:哥伦比亚 81 个市镇,2016 至 2018 年,每个流行病学周一张 12 波段的 GeoTIFF,另配一张覆盖 2007 至 2019 年的人口、社会经济、逐周登革热病例与逐月气温降水的宽表。代价同样清楚:地理范围只有这 81 个市镇,影像本身没有任何肉眼可读的标签,地表的"贫"与"富"要使用者自己标定。它不是一张能立刻给出结论的表,而是一条已经替你跑完的管道。规模、来源、许可与配套论文的一屏速览如下。
| 维度 | 内容 |
|---|---|
| 全名 | A Multi-Modal Satellite Imagery Dataset for Public Health Analysis in Colombia |
| 托管与维护方 | PhysioNet;主页标明数据集由 MIT 计算生理实验室(MIT Laboratory for Computational Physiology)维护 |
| 首次发布 | 2024 年 1 月 30 日,版本号 1.0.0,至今仅此一版 |
| 影像总量 | 12636 张 |
| 覆盖空间单元 | 哥伦比亚 81 个市镇(municipality) |
| 覆盖时间 | 2016 至 2018 年,按流行病学周(epi-week)取样 |
| 单市镇影像数 | 156 张(文件目录所见;81 × 156 = 12636,与官方影像总数一致) |
| 影像来源 | Sentinel-2 L1C 与 L2A(官方数据说明中写作 Sentinel-2-L1C / Sentinel-2-L1A) |
| 重访周期 | 5 天(官方数据说明) |
| 波段数 | 12 个 Sentinel-2 波段编号 |
| 空间分辨率 | 官方称全部波段经最近邻插值上采样至 10 米;文件内地理标签登记的像素尺度为 0.0001 度 |
| 元数据 | metadata.csv,7.1 MB,1017 列 × 1121 行,覆盖 2007 至 2019 年 |
| 文件格式 | GeoTIFF(12 波段、每波段 8 位、Deflate 压缩)+ CSV 宽表 |
| 许可 | Creative Commons Zero 1.0 Universal 公有领域奉献(CC0 1.0),开放访问,无需注册 |
| 未压缩体积 | 官方标注 65.0 GB,打包 ZIP 为 64.4 GB |
| DOI | 版本 DOI 10.13026/xr5s-xe24;最新版本 DOI 10.13026/s5kt-3p13 |
| 配套论文 | Scientific Data 2024;11:634(框架名 SatelliteBench);DengueNet 预印本 arXiv:2401.11114 |
§1 它要解决的具体麻烦
1.1 数据缺口发生在两个方向
传统公共卫生数据在中低收入国家的断链,通常出现在两个方向上。第一个方向是时间滞后:法定传染病要经过发现、填卡、上报、审核、汇总几个环节,中间任何一环延迟,决策层拿到的都是过去的画像。官方页面把这层背景写得很直白——正因为常规采集成本高,才有必要寻找替代数据源。第二个方向是空间空缺:同一套监测系统里,大城市的数据密、偏远市镇的数据稀,缺口恰好落在资源最少、干预最贵的地方。
卫星影像被寄予厚望的理由就在这里:它不由地方财政供养,它对行政边界不作区分,它给所有地方同一套基准,并且已经在天上飞了很多年,存档完整。但把这么一份免费数据真正用起来,中间隔着至少三道工程活。第一道是取图:要对着 Sentinel Hub 之类的接口说清楚坐标框、时间窗、云量门槛,还要处理同一周多景影像怎么拼。第二道是清洗:热带雨季经常整周看不到地面,取回来的帧里一部分是全黑的或被云盖住的。第三道是对齐:影像按景或按请求存放,公共卫生数据按普查年度或法定报病周存放,两套时间的粒度不同步,需要使用者自己定义"这一帧代表哪一个流行病学周"。
这三道活在论文里通常只占方法节的一小段,却是实验室之外最挡人的部分。本数据集的价值坐标就定在这里:取图、清洗、对齐三步都做完了,结果按"市镇代码—日期"的目录结构摆好,使用者直接进入第四步建模。这也是它名字里"多模态"的实际含义:影像是一路模态,人口普查派生的社会经济量与法定监测的报病数是另一路模态,两者被同一个市镇代码和同一个周次绑在一起。
1.2 四条常见的错误期待
第一条,把它当成"带标签的遥感训练集"。影像本身没有任何标签:没有地块边界、没有贫富分级、没有病媒孳生地标注。任何视觉任务的输出,都要先从 metadata.csv 里取出自己定义的标签,再回头跟影像对齐(§4.4)。
第二条,把它当成"哥伦比亚全国数据"。81 个市镇只是哥伦比亚一千多个市镇里的一小部分,且官方明确说入选偏向登革热高发城市;想覆盖别的市镇,官方给的答案是用配套的 satellite.extractor 自己重取(§5.3)。
第三条,以为 v1.0 与 v2.0 的区别是多出了市镇或年份。官方数据说明写得很清楚:差异只在"缺图用什么邻居替换"的策略上,覆盖范围与元数据完全一样(§3.3)。
第四条,以为 10 米分辨率意味着每个像素精确的 10 米。官方表述是经最近邻上采样到 10 米;同一批文件的地理标签 ModelPixelScale 登记的却是 0.0001 度。两者都对,含义不同——前者说的是重采样后的名义地面分辨率,后者说的是存储时登记的经纬度步长(§2.2)。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 一段稳定、干净、可直接喂模型的卫星影像时间序列 | 81 市镇 × 156 周,已剔除云遮挡与全黑帧 | 够,这是它被设计出来的原因 |
| 影像与公共卫生数据在时间上对齐 | 影像按流行病学周命名存放,元数据含逐周病例列 | 够;周对齐由文件名承担,逐周病例列未被官方描述符逐条列出 |
| 登革热预测模型的训练集 | 逐周病例(2007—2019)+ 每周影像(2016—2018) | 两个时间区间不完全重合,需自行裁到交集 |
| 贫困程度或教育可及性推断 | 元数据含住房分层、教育、就业、水电与网络可及性等结构 | 够做市级,做不到家户级 |
| 多模态融合方法研究 | 影像加表格的结构天然具备 | 够,官方配套论文即以三个任务验证融合管线 |
| 单张影像的目标检测(积水容器、屋顶材质) | 无此类标注 | 不够,一个标注框也没有 |
| 影像层面的因果推断 | 无干预记录、无个体数据 | 不够,它只支持市级关联分析 |
| 非流行区(高海拔山地城市)的研究 | 官方提示这类地区可能被排除 | 不够,取图前须核对市镇代码表 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 想验证"从天上看比入户问卷便宜"这类主张 | 影像与同一批市镇的社会经济指标同源齐备,可直接对比 | 先复现官方三任务(登革热、贫困、教育可及性)中的一项 |
| 做遥感基座模型,缺一块周级时间序列 | 三年连续 156 周、同地同名的重复采样,适合做时序自监督 | 注意年份只有三年,季节内变化充分、年际变化不足 |
| 做多模态融合方法 | 影像与宽表天然对齐到同一主键 | 主键只有"市镇代码 + 周",跨年份需自行处理人口口径漂移 |
| 教地理信息或全球卫生课 | 一个国家、一套现成市镇代码、一张宽表,当天可演示 | 按 §9.2 的最短流程先跑通一个市镇 |
| 搭建低收入地区的决策支持原型 | 整体 CC0,可商用可再分发,也可配合公开的嵌入 | 标注版本与来源,别把 81 个市镇的结果外推成国家结论 |
| 只想先看看值不值得下载 | metadata.csv 只有 7.1 MB,可以先不看影像 | 先读 §2.4 的字段字典,确认目标变量在宽表里存在 |
1.5 一句话判断
它卖的不是影像——影像在哥白尼计划里本来免费——它卖的是"取图、去云、按流行病学周对齐、与普查和报病数据绑在一张表上"这一整套已经跑完的工序,以及这套工序可以在任何地方重跑的承诺。
1.6 不适合谁:四条边界
不适合做家户级或个体级推断。 最小的空间单元是市镇,最小的监督信号也是市级汇总值。任何"从屋顶推断某户收入"的任务,都缺少与之对应的真值。
不适合做影像目标检测。 数据集里没有一个标注框、没有一张语义分割掩膜。它是弱监督与多模态结构的研究素材,不是视觉检测库。
不适合直接外推到其他国家。 官方使用说明点明了这一点:非流行地区(例如山地城市)可能在选点时被排除,覆盖别的地方要用 satellite.extractor 按同一套流程重取,而不是拿这里的模型去预测别处。
不适合做精细时序的因果推断。 病例是被动监测的报病数,不是主动筛查的发病率;影像是某个周次的瞬时快照,不是暴露量的连续测量。两者相加可以支撑关联分析,撑不起剂量—反应式的推断。
§2 数据构成与规格
2.1 三个子集,一张宽表
根目录只有四样东西:三个影像目录、一张宽表、一个许可文件、一份校验和清单。三个影像目录对应官方数据说明里点名的三份子集:
| 目录 | 覆盖单元 | 缺帧替换策略 | 子目录与文件命名 |
|---|---|---|---|
10_municipalities/images/ |
登革热病例最多的前 10 个城市 | single forward:用时间上最近的后续邻帧替换 | 按市镇代码建目录,文件名 image_YYYY-MM-DD.tiff |
81_municipalities_v1.0/81_municipalities_v1.0/ |
81 个市镇 | single forward | 按市镇代码建目录,文件名 <市镇代码>_YYYY-MM-DD.tiff |
81_municipalities_v2.0/81_municipalities_v2.0/ |
同上 81 个市镇 | forward-backward:从过去或未来两侧取最近邻帧替换 | 同上 |
两处容易踩的目录约定值得先说清。一是 81 市镇的两个版本各多套了一层同名目录,真实路径是 81_municipalities_v1.0/81_municipalities_v1.0/<代码>/ 这种重复形态。二是 10 市镇子集里的文件名用 image_ 前缀,81 市镇版本改用市镇代码作前缀;官方数据说明专门解释了这次改名,目的是让每张图自带归属信息。
根目录另外三件的规格(取自官方文件清单):metadata.csv 7.1 MB,修改日期 2023-12-17;LICENSE.txt 6.5 KB,内容为 CC0 1.0 全文;SHA256SUMS.txt 3.2 MB,用于全库完整性校验。
2.2 一张影像究竟是什么
以市镇代码 5001(Medellín)的第一帧为例,把文件的 TIFF 头部逐项读出来,得到下表。这些都是文件自身携带的属性,不含任何推断。
| 属性 | 观测值 | 说明 |
|---|---|---|
| 文件格式 | 大端字节序 TIFF,含 GeoTIFF 扩展标签 | 主流读写库均可打开 |
| 每像素采样数 | 12 | 与官方列出的 12 个 Sentinel-2 波段数一致 |
| 位深 | 每波段 8 位 | 官方提到该框架支持 16 位与 8 位两种浮点精度选择 |
| 宽 × 高 | 747 × 745(5001);748 × 745(76001) | 不同市镇的栅格尺寸略有出入,不可假设全库固定 |
| 压缩方式 | 32946(Adobe Deflate),无损 | 解码后端需支持该压缩标记 |
| 光度解释 | 1(BlackIsZero) | 每个波段按单通道灰阶解释,不是 RGB 合成图 |
| 每条带行数 | 8 | 分条存储,随机读块时需留意条带边界 |
| 像素尺度 | ModelPixelScale 为 0.0001 度 | 约合十余米,与"10 米"的名义分辨率是两个口径 |
| 地理配准点 | ModelTiepoint 落在经度 −75.6085、纬度 6.2784(5001) | 影像左上角已在地理坐标系中定位 |
| 坐标系 | WGS 84(GeoKey 记录 EPSG:4326,ASCII 参数写 “WGS 84”) | 经纬度坐标系而非投影坐标系,做面积计算前需投影 |
| 单文件体积 | 约 3.5 MB(5001 的首帧为 3,549,466 字节) | 单市镇 156 张合计量级在数百 MB |
比这些参数更要紧的是文件名的语义:<市镇代码>_<该周起始日期>.tiff。仍以 5001 为例,目录下的文件名从 5001_2016-01-03.tiff 起,每隔七天一张,直到 5001_2018-12-23.tiff,中间每周七天间隔,未见缺档。也就是说,时间维度完全写进了文件名与目录名,不看任何外部索引也能排出序列。
2.3 十二个波段的来路
官方数据说明给出的波段清单与原生分辨率如下。表中"通用名称"一列是 Sentinel-2 各波段的通行叫法,用来帮助判断该波段能做什么;官方页面本身只给了编号与原生分辨率。
| 波段编号 | Sentinel-2 通用名称 | 官方标注的原生分辨率 |
|---|---|---|
| B01 | Coastal aerosol 海岸/气溶胶 | 60 米 |
| B02 | Blue 蓝 | 10 米 |
| B03 | Green 绿 | 10 米 |
| B04 | Red 红 | 10 米 |
| B05 | Red Edge 1 红边一 | 20 米 |
| B06 | Red Edge 2 红边二 | 20 米 |
| B07 | Red Edge 3 红边三 | 20 米 |
| B08 | NIR 近红外 | 10 米 |
| B09 | Water vapour 水汽 | 60 米 |
| B10 | Cirrus 卷云 | 60 米 |
| B11 | SWIR 1 短波红外一 | 20 米 |
| B12 | SWIR 2 短波红外二 | 20 米 |
官方明确写到:通过 Sentinel Hub 接口,全部波段经最近邻插值上采样到 10 米后统一输出。这里有两件事要在方法节里如实交代。第一,上采样不等于原生分辨率:20 米与 60 米波段的信息量并没有变多,用红边波段做植被胁迫分析时,名义网格是 10 米、实际信息仍是 20 米。第二,每像素 12 采样、每波段 8 位:每个波段的反射率被压成 0—255 的整数,而不是原始浮点反射率;做 NDVI 这类比值指标时,如何处理这层量化要写清楚,尤其当对照组数据用的是未量化的浮点数时。
2.4 metadata.csv 的字段字典
这张宽表是整个数据集的标签来源,也是最容易被低估的部分。按列名形态可以切成六块:
| 区块 | 列数 | 覆盖时间 | 列名样例 |
|---|---|---|---|
| 标识列 | 2 | — | Municipality code、Municipality |
| 年度人口 | 13 | 2007—2019 | Population2007 … Population2019 |
| 年度登革热病例 | 13 | 2007—2019 | Cases2007 … Cases2019 |
| 社会经济与人口结构 | 25 | 官方说明取自 DANE 2018 年普查 | Age0-4(%)、Men(%)、NumberofhospitalsperKm2 |
| 逐周病例 | 676 | 2007/w01 — 2019/w52 |
2016/w01 |
| 逐月气温与降水 | 144 + 144 | 2007-01 — 2018-12 | TEMPERATURE_jan_07、PRECIPITATION_dec_18 |
| 合计 | 1017 列,1121 行 | — | — |
三点要提醒。其一,列数远超官方描述符。官方页面的 Metadata Descriptor 列出了 21 项字段说明,而实际 CSV 有 1017 列——描述符讲的是"有哪几类信息",不是"有多少列"。其二,逐周列没有被官方文档点名:那 676 列 YYYY/wNN 形态的列,官方描述符里找不到对应条目;按列名形态与年度 Cases 列的量级关系,最自然的读法是"该市镇该周的登革热病例数",但官方没有明文确认这层对应关系(§10)。其三,社会经济块的时间口径是 2018 年普查,而影像是 2016—2018 年、人口与病例是 2007—2019 年,三者时间跨度不一样宽,跨模块联合建模时要先想清楚哪一刻用哪一列。
官方描述符点名的指标覆盖面大致为:年龄段构成、非裔与原住民人口比例、残障人口比例、不识字人口比例、中等及以上教育比例、就业与失业比例、家务人口比例、退休人口比例、男女比例、缺水住户比例、缺网住户比例、建筑分层 1 至 6 级构成、每平方公里医院数与住房数。
2.5 主键与对齐
整份数据的主键由两半拼成:市镇代码负责空间,周次负责时间。两半各自来自不同形态的地方:
| 维度 | 影像一侧 | 元数据一侧 | 对齐方式 |
|---|---|---|---|
| 市镇 | 目录名即市镇代码(5001、76001 …) |
Municipality code 列 |
字面相等,直接连接 |
| 年份 | 文件名里的日期(2016-01-03) |
年度列的四位数字(Population2016) |
从日期取年份 |
| 周 | 文件名里的日期,每七天一帧 | 2016/w01 形态的列 |
流行病学周序号,官方未给出正式的对照字典 |
| 地名 | 无 | Municipality 列(如 Medellín) |
仅元数据一侧可读 |
官方描述符写得很实在:每一 Municipality 与每一张影像都由"市镇代码"与"市镇名"两列标识,随后才是各年份的各项统计量。这意味着影像侧没有地名,元数据侧没有坐标,想把两边拼起来,只能通过市镇代码这一条路。10 市镇子集用 image_ 前缀、文件名里不含代码,因此那份子集要靠目录名反查代码——这正是官方在 81 市镇版本里改名的实际动机。
2.6 与同类公开遥感素材的差异
| 对比项 | 本数据集 | Sentinel-2 原始存档直接自取 | 常见的单时相公开影像样本 |
|---|---|---|---|
| 交付形态 | 已裁到市镇、已拼接、已去伪影 | 原始颗粒,需自行处理 | 多为已裁好的单张或少量 |
| 时间对齐 | 已对齐到流行病学周 | 取决于重访与轨道 | 多为单时相 |
| 云与缺帧处理 | 已做,并给出两套策略 | 需自己做云掩膜 | 多为人工挑的无云帧 |
| 配套元数据 | 有,且与影像共享主键 | 无 | 通常无 |
| 许可 | CC0,可商用可再分发 | 哥白尼开放数据政策 | 因来源而异 |
最后一行最容易被跳过:多模态的价值有一半来自"能不能把这份素材同时用在多个任务上"。CC0 意味着它可以被接收进商业原型、被切包再分发,不必担心许可靠条链的复杂性——这一点在做面向资源受限地区的产品原型时常常是决定性的。
§3 它是谁的数据
3.1 贡献者与机构
官方页面列出 14 位署名作者,来自六个国家的多家机构。这份名单本身说明了它的组织方式:不是一家机构立项采集,而是一批关注"资源受限地区数据公平"的研究者,围绕一个开源提取框架自发协作。
| 角色 | 人 | 机构(取自页面署名信息) |
|---|---|---|
| 第一作者 | Sebastian A Cajas | Harvard University;University College Dublin;Ireland’s Center for Applied AI |
| 并列作者 | David Restrepo | MIT 计算生理实验室;Universidad del Cauca 远程信息系 |
| 并列作者 | Dana Moukheiber | MIT |
| — | Kuan Ting Kuo | Carnegie Mellon University |
| — | Chenwei Wu | University of Michigan;Harvard University |
| — | David Santiago Garcia Chicangana | University Carlos III of Madrid |
| — | Atika Rahman Paddo | Indiana University Purdue University Indianapolis |
| — | Mira / Lama / Sulaiman Moukheiber | MIT / MIT / Worcester Polytechnic Institute |
| — | Saptarshi Purkayastha | Indiana University |
| — | Diego M Lopez | University of Cauca |
| — | Po-Chih Kuo | National Tsing Hua University |
| 通讯 | Leo Anthony Celi | MIT |
致谢页还列出了 MIT Critical Data 团队的多位成员与多位外部合作者。资金与算力支持写得很明确:ESA Network of Resources Initiative(申请号 1c081a)与 Oracle for Research 的云额度;长期托管则由 NIBIB、NHLBI 与 NIH 主任办公室的多项基金支撑(U24EB037545、R01EB030362)。
3.2 时间线
| 时间 | 事件 | 意义 |
|---|---|---|
| 2023-12-17 | metadata.csv 的文件修改日期 |
元数据早于影像集一个多月就已定型 |
| 2024-01-20 | DengueNet 预印本上线(arXiv:2401.11114) | 方法先于数据公开发布 |
| 2024-01-30 | v1.0.0 在 PhysioNet 上线,分配 DOI 10.13026/xr5s-xe24 | 首次公开 |
| 2024-06-15 | SatelliteBench 框架论文见刊 Scientific Data 11:634 | 数据与框架在同一刊物上对应 |
| 2024—2025 | 主页 Cited by 记录 4 篇引用文献 | 使用面从登革热预测扩展到多模态分割等方法 |
这里要承认一件事:官方只维护了一个版本。这个事实既是"稳定"也是"无人跟进"的两面说法,评价它的持续性时要两面都考虑到(§7.5)。
3.3 取图过程与两版之差
官方 Methods 与 Data Description 交代了三级流程。第一级是时空检索与镶嵌:框架被装进 Docker 容器内,通过 Sentinel Hub 接口按流行病学周请求影像,用最小云量镶嵌排序算法挑出该周最优的一帧。第二级是缺帧与伪影处理:递归地剔除全黑或像素和为零的帧,云遮挡严重时以最近邻帧替换。single forward 策略只用后续的帧替换,forward-backward 策略允许从过去或未来两侧取最近的邻居。第三级是重复影像识别:用差值哈希(dhash)给每一帧算一个对尺度、亮度、对比不敏感的指纹,用于评估时空变化与识别重复帧。
dhash 这一环容易被漏看。它的实际作用不是压缩,而是提供一种廉价的抽样审计手段:如果同一市镇连续若干周的指纹极为接近,就说明那段时间地表几乎没变,或者——更值得警惕的情形——替换策略把同一帧复制到了多个周次上。做时间序列建模之前,自己重算一遍指纹是很值得的一步(§5.6)。
3.4 数据的四个层次
理解这份数据要分清它叠了四层:Sentinel-2 原始底档(哥白尼计划产出,不由本数据集所有)→ Sentinel Hub 返回的每周镶嵌(由接口参数决定)→ 经去伪影与替换后发布的 GeoTIFF(本数据集的主要内容)→ 外部的普查、监测与再分析产品(DANE、SIVIGILA、WorldClim、MODIS、CHIRPS 等,被收进 metadata.csv)。只有第三层与第四层是本数据集的贡献;第二层决定了影像在信息量上的天花板,第一层决定了它的可得性与许可。
分清这四层的实际用途,是让人写方法节时不夸大:作者做的是与 Sentinel Hub 交互、选帧、去伪影、与外部数据对齐;他们没有重新发射卫星,也没有改写市级报病的质量。由此推出的结论边界就清楚了——数据质量的上限受制于重访周期与当时的云量,标签质量的上限受制于哥伦比亚法定监测系统的灵敏度。
§4 它最独特的东西
4.1 稀缺点不在影像,在"已经对齐"
在"用卫星做公共卫生"这条线上,影像本身从来不是稀缺品。真正稀缺的是三种对齐同时做到:空间对齐(同一范围逐周保持同一边框)、时间对齐(固定为流行病学周而不是某一景的过境时刻)、标签对齐(标签来自另外一个系统,却与影像共用同一主键)。多数公开发布的影像只做到第一层(拼一张云少的图),多数公共卫生数据只做到第三层(按市汇总),把三层串起来并公开发布的工作,数量上远少于"下载一批影像跑个卷积网络"的工作。
因此它更应该被理解为一条被提前跑完的管道,而非一批新的观测。它的可复制性也来自这一点:satellite.extractor 与公开的嵌入都是可获取的,换个国家的市镇代码与坐标框就能重跑。
4.2 三处差异化的具体做法
| 差异化项 | 官方给出的做法 | 使用者得到的便宜 |
|---|---|---|
| 最小云量镶嵌 | 按 least cloud coverage mosaicking order 挑每周最优帧 | 不必自己做云掩膜与多景拼接 |
| forward-backward 替换 | v2.0 允许从过去或未来两侧取最近邻替换全黑帧 | 多云雾的地区缺档更少,序列更完整 |
| dhash 重复检测 | 对每帧计算尺度、亮度与对比不敏感的指纹 | 可直接做重复帧审计,不必自建 heavy pipeline |
这三项里,第二项最容易引起误解:替换策略意味着某些周次的影像并不是那一周的真实观测。视觉上这是必要的(否则序列断掉一大半),方法上却是一笔债务。尤其做"发病前几周的降水与影像联合预警"这类任务时,如果用替换帧冒充真实观测,等于把滞后结构搅乱。稳妥做法是在替换发生的位置留痕——用指纹审计出连续相同的帧,把它们单独标记(§7.3)。
4.3 案例:Medellín 三年 156 周
市镇代码 5001 是 Medellín。它在宽表里的一行很直观:Municipality 为 Medellín,Population2016 为 2420516,Cases2016 为 17306,同年第一周列 2016/w01 的取值为 235,TEMPERATURE_jan_16 为 22.35、PRECIPITATION_jan_16 为 67.45。影像侧则是 5001_2016-01-03.tiff 起步到 5001_2018-12-23.tiff 收尾的 156 帧,栅格 747 × 745,左上角配准在经度 −75.6085、纬度 6.2784。
这一个市镇就把本数据集的结构示范完了:同一主键上有三种不同粒度的时间——人口年度值说的是"这一年",逐周病例说的是"这一周",影像说的是"这一周的起点当日"。拼起来建模时,第一件事是决定预测目标落在第几周、输入窗口向前取多少帧、影像用哪一帧。官方论文把这类处理放在自回归式的多模态融合管线上,落脚点恰恰是这个方法论的要害:历史监测数据在真实场景里常常拿不出来,而这里提供了从头到尾排好的 156 帧,让"用影像替补缺失的历史监测"成为可做的题目。
4.4 标签的粒度:影像无标签,约束来自外部登记
这一点值得单独拎出来,因为它决定了谁能用、用到什么程度。影像中没有监督信号:没有地块、没有建筑轮廓、没有贫富等级、没有孳生地标记。所有可用的标签都在 metadata.csv 里,且全部是市级汇总。标签的时间粒度分三档:年度(人口、年度病例)、逐周(YYYY/wNN 列)、逐月(气温降水)。标签的口径各不相同:报病数来自被动监测(官方写明取自 SIVIGILA 网站),社会经济结构来自 2018 年一次普查,气候来自 WorldClim 与 Google Earth Engine 派生的产品。
由此可以直接推出两条使用纪律。第一,标签不等于真值:登革热报病数受就诊行为与检测能力影响,资源匮乏的市镇反而可能报得少——这正好与"用卫星影像替补缺失统计"的初衷形成张力,讨论节里要 Hold 住这个回路。第二,不同档的标签不可混用:把年度人口当协变量配逐周病例是常规操作;把建筑分层这种只存在于一次普查的值当成随时间变化的协变量,就错了。
4.5 边界条件
| 条件 | 是否适用 | 判断依据 |
|---|---|---|
| 周级影像时间序列建模 | 适用,这是设计目标 | 每市镇 156 帧,七天一帧 |
| 多模态融合方法研究 | 适用 | 影像与表格共享同一主键 |
| 贫困与教育可及性的市级推断 | 适用 | 宽表含教育、就业、住房分层等指标 |
| 家户级或个体级推断 | 不适用 | 最小单元为市镇 |
| 影像目标检测与语义分割 | 不适用 | 没有任何空间标注 |
| 其他国家或城市的预测 | 不适用 | 官方写明须重跑提取框架 |
| 非流行山区城市的研究 | 谨慎 | 官方写明这类地区可能被排除 |
| 2020 年之后的业务化运行 | 不适用 | 影像截至 2018 年,宽表截至 2019 年 |
| 只要几张示意性影像 | 不必用它 | 单帧需求直接从 Sentinel Hub 取更快 |
| 需要浮点反射率的定量遥感 | 谨慎 | 每波段为 8 位量化存储 |
§5 怎么拿到
5.1 目录结构与下载面
| 路径 | 内容 | 规格 |
|---|---|---|
/files/multimodal-satellite-data/1.0.0/LICENSE.txt |
CC0 1.0 全文 | 6.5 KB |
/files/multimodal-satellite-data/1.0.0/SHA256SUMS.txt |
全库校验和 | 3.2 MB |
/files/multimodal-satellite-data/1.0.0/metadata.csv |
宽表 | 7.1 MB,1017 列 × 1121 行 |
…/10_municipalities/images/<代码>/ |
前 10 城,每市镇一个目录 | 文件名 image_YYYY-MM-DD.tiff |
…/81_municipalities_v1.0/81_municipalities_v1.0/<代码>/ |
81 市镇,single forward | 文件名 <代码>_YYYY-MM-DD.tiff |
…/81_municipalities_v2.0/81_municipalities_v2.0/<代码>/ |
81 市镇,forward-backward | 同上 |
官方给出的入口有四种:网页下载 ZIP(64.4 GB)、PhysioNet 的 Python 包、wget 递归、AWS 匿名同步。由于总量在 65 GB 量级,不建议一次全取:先确认要哪个版本、哪些市镇。官方数据说明对三份子集的定位已经很清楚——81 市镇 v2.0 是去伪影最充分的一版;如果只做方法演示,前 10 个登革热高发城市的子集足够跑通全流程。
5.2 批量下载
#-- 先拿元数据与许可:几兆字节,几分钟就能确认要不要继续
wget -N https://physionet.org/files/multimodal-satellite-data/1.0.0/metadata.csv
wget -N https://physionet.org/files/multimodal-satellite-data/1.0.0/LICENSE.txt
#-- 只取一个市镇试跑;注意 81 市镇版本多套了一层同名目录
wget -r -N -c -np --accept=tiff \
https://physionet.org/files/multimodal-satellite-data/1.0.0/81_municipalities_v2.0/81_municipalities_v2.0/5001/
#-- 确认无误后再放开整站递归(约 65 GB)
#-- wget -r -N -c -np https://physionet.org/files/multimodal-satellite-data/1.0.0/
#-- AWS 匿名同步:跨国带宽通常更好,且天然支持断点续传
#-- aws s3 sync --no-sign-request s3://physionet-open/multimodal-satellite-data/1.0.0/ ./dest
最后一行被注释掉是有意的:整库 65 GB 的递归很容易在不知情的情况下跑掉半天。官方同时提供 Python 包入口:physionet download multimodal-satellite-data --version 1.0.0。
5.3 匿名列举与按需取子集
import boto3
from botocore import UNSIGNED
from botocore.client import Config
#-- PhysioNet 的开放桶允许匿名列举与下载,不需要账号或凭证
s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))
base = 'multimodal-satellite-data/1.0.0/81_municipalities_v2.0/81_municipalities_v2.0/'
codes = []
for page in s3.get_paginator('list_objects_v2').paginate(
Bucket='physionet-open', Prefix=base, Delimiter='/'):
for p in page.get('CommonPrefixes', []):
codes.append(p['Prefix'].rstrip('/').split('/')[-1])
print(len(codes), codes[:5]) #-- 期望读到 81 个市镇代码
#-- 按需下载单帧,避免整包解压
s3.download_file('physionet-open',
base + '5001/5001_2016-01-03.tiff',
'5001_2016-01-03.tiff')
这段代码点出了它的一个工程便利:整棵树放在对象存储里,可以只列举、只下载真正要的那一段。对"只做某几个省"的研究问题,这一步比下载整包省心得多。
5.4 转成能训练的数组
import glob, re
import numpy as np
import rasterio
#-- 文件名自带日期,排序后即为流行病学周序列
files = sorted(glob.glob('5001/*.tiff'))
dates = [re.search(r'(\d{4}-\d{2}-\d{2})', f).group(1) for f in files]
print(len(files), dates[0], dates[-1]) #-- 156 张,七天一帧
#-- 官方称 12 个波段已统一到 10 米网格
stack = []
for f in files:
with rasterio.open(f) as src:
stack.append(src.read()) #-- 形状 (12, H, W)
stack = np.stack(stack) #-- (156, 12, H, W)
#-- 读一帧的地理标签,确认坐标系与通道排布
with rasterio.open(files[0]) as src:
print(src.crs, src.transform[0], src.count, src.dtypes[0])
两个提醒。第一,不要假设波段在数组里的排布顺序:官方页面列出了 12 个波段编号,却没有给出它们在 TIFF 内的排列顺序;要么用一帧参照数据确认,要么在方法节里写明假设。第二,不要假设全库栅格尺寸一致:抽样到的两帧分别是 747 × 745 与 748 × 745,拼批量之前要做裁剪或缩放。
5.5 元数据表的读法
import re
import pandas as pd
meta = pd.read_csv('metadata.csv', low_memory=False)
print(meta.shape) #-- (1121, 1017)
#-- 影像目录名即市镇代码,先确认代码在表里有行
codes_img = {'5001', '76001'}
have = set(meta['Municipality code'].astype(str))
print(codes_img - have) #-- 期望为空集
#-- 三类时间列要分开处理,不要用同一套逻辑解析列名
week_cols = [c for c in meta.columns if re.fullmatch(r'\d{4}/w\d{2}', c)]
temp_cols = [c for c in meta.columns if c.startswith('TEMPERATURE_')]
case_cols = [c for c in meta.columns if c.startswith('Cases')]
print(len(week_cols), len(temp_cols), len(case_cols))
#-- 取出某个市镇的某一年:年度值与逐周序列并行
row = meta.loc[meta['Municipality code'].astype(str) == '5001'].iloc[0]
print(row['Municipality'], row['Population2016'], row['Cases2016'],
row['2016/w01'], row['TEMPERATURE_jan_16'])
那个空集检查是必需的:宽表有 1121 行,远多于影像覆盖的 81 个市镇,宽表并不专属于影像集合。这张表把当年可得的更广范围的哥伦比亚市镇都收了进来,影像只是其中 81 个。做连接时如果对这一点不加处理,就会拿一堆没有影像的行去训练。
5.6 五个最容易出错的地方
| 位置 | 错误写法 | 后果 | 正确做法 |
|---|---|---|---|
| 路径 | 按 81_municipalities_v1.0/<代码>/ 拼 |
目录不存在 | 中间多一层同名目录,按 §5.1 的树拼 |
| 版本 | 以为 v2.0 覆盖更多市镇 | 白下载,误以为样本更大 | 两版覆盖同一批 81 个市镇 |
| 时间 | 把逐周列的范围当成 2007—2018 | 与影像区间错位 | 逐周列到 2019/w52,影像到 2018-12-23 |
| 波段 | 假设第 0、1、2 通道就是蓝绿红 | 合成色错、比值指标反 | 先读一帧确认排布,并在方法节声明 |
| 尺寸 | 假设全库 747 × 745 | 批量拼不起来 | 尺寸按市镇而异,先检索再裁剪 |
| 重复帧 | 直接拿相邻帧做差分 | 差分全零,误判地表不变 | 用 dhash 思路先做重复帧审计 |
§6 与库内条目的关系
6.1 关系图谱
| 站内数据集 | 它的主轴 | 与本数据集的关系 |
|---|---|---|
| SINAN-Dengue(巴西法定通报) | 法定传染病通报记录 | 同一病原体、纯监测视角;本数据集补的是同一疾病的环境侧连续观测 |
| 世界卫生调查 WHS | 多国健康横断面 | 同为国家级抽样,那边是问卷,这边是影像 |
| DHS Program 人口与健康调查 | 家户调查 | 家户级标签的典范,可与本数据集形成"问卷标定—影像外推"的对照 |
| WHO 全球卫生观察 GHO | 国家级健康指标 | 尺度更高一级,本数据集提供的是市镇级的变化量 |
| Datasus(巴西统一卫生系统) | 多子系统行政数据 | 同为拉美国家系统数据,做跨国对照时的现成参照 |
| GHED 全球卫生支出账 | 卫生系统投入 | 与影像侧的地表特征可拼成"投入—环境—结局"三段 |
这条关系线的价值在于:把周围这批数据摆在桌上之后,本数据集补的正是其中最贵的一段——环境暴露与地表变化的连续测量。
6.2 检索路径
| 你想找什么 | 站内检索词 | 会落到哪里 |
|---|---|---|
| 同一病原体的监测一侧 | dengue、SINAN |
SINAN-Dengue(巴西法定通报) |
| 家户级社会经济标签的范例 | DHS、人口与健康 |
DHS Program |
| 国家级指标对照 | WHO、GHO、卫生支出 |
WHO 全球卫生观察、GHED |
| 拉美卫生系统数据 | Datasus、巴西 |
Datasus |
| 多模态方法基准 | multimodal |
多模态急诊基准、眼疾多模态数据集 |
| 人群健康横断面 | 世界卫生调查、WHS |
世界卫生调查 |
6.3 分工判据
| 你的任务 | 主粮仓该用什么 | 本数据集的位置 |
|---|---|---|
| 登革热流行病学描述 | 法定通报或监测数据 | 环境侧补充,不能替代病例计数 |
| 家户级贫困预测 | 家户调查(DHS 类) | 提供市镇级影像特征,用于跨尺度迁移 |
| 国家间卫生投入比较 | GHED、GHO | 不适用 |
| 遥感时序方法研究 | 无可替代,81 × 156 帧现成可用 | 主力 |
| 多模态融合方法研究 | 任意表格加影像的组合 | 主力,主键干净 |
| 卫生政策评估 | 行政数据与中断时间序列 | 辅助协变量来源 |
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
最常见的误判是把"影像已经去云"读成"数据已经干净"。去云只是把不可用的帧换掉了,同时带来一个新问题:使用者并不知道某一帧是不是替换来的(除非自己做重复性审计)。这两件事不是同一个概念。下面几个小节里关于质量的讨论,都建立在这个区分之上。
7.1 五维评分
按数据集评价的常用维度打分,每项 1—5 分,分数针对"作为中低收入国家多模态公共卫生研究数据"这个用途:
| 维度 | 分数 | 理由 |
|---|---|---|
| 数据规模 | 4 | 12636 帧 × 12 波段,加上 1017 列宽表;但空间单元只有 81 个 |
| 标注质量 | 2 | 影像无标签,外部标签来自被动监测与一次普查,口径混杂 |
| 任务适配 | 5 | 时空对齐到流行病学周,与官方三个验证任务直接对应 |
| 文档完整 | 4 | 方法、字段名、使用注意与伦理声明齐全;但逐周列未被点名 |
| 可获取性 | 4 | CC0 开放、多种下载方式、可按需子集;65 GB 仍需要本地预算 |
五项合计 19 分(满分 25)。这个分数结构说明它的短板非常集中:空间单元太少、外部标签口径不一。这两点不能靠技术手段弥补,只能靠表述上的克制。
7.2 质量的三个层次
第一层是影像本身的质量。上限由 Sentinel-2 的重访周期与当地云量决定:官方说五天重访,热带雨季实际可用的帧远少于这个数。取出的产品是 8 位量化、最近邻上采样的结果,适合深度学习,不适合辐射定量的物理推算。
第二层是处理结果的质量。这里有 single forward 与 forward-backward 两套策略,后者更完整但可能引入被复制的邻帧;官方用 dhash 提供了审计入口,却没有逐帧标注"哪些帧是替换来的"。这一层的管理责任落在使用者一侧。
第三层是标签的质量。登革热病例来自被动收集的报病系统,受就诊率与检测能力影响;社会经济结构来自 2018 年一次普查,与 2016 至 2018 年的影像只能近似同期;气温降水来自再分析或插值产品。三层之中,第一层最不受控,第二层可用技术手段自查,第三层需要在使用范围的限制里讨论。
7.3 可枚举的偏差
| 偏差 | 表现 | 影响 |
|---|---|---|
| 选点偏差 | 81 个市镇偏向登革热高发城市,山区非流行城市可能被排除 | 模型学到的地表纹理缺少对照组 |
| 时间跨度偏差 | 影像只有三年,不含 2019 年之后 | 年际变化不足,跨年泛化难以验证 |
| 替换帧偏差 | 缺档由邻周帧替换,可能出现连续重复 | 逐周差分与滞后建模失真 |
| 量化偏差 | 每波段 8 位整数 | 辐射定量受限 |
| 上采样偏差 | 20 米与 60 米波段经最近邻上采样 | 名义 10 米网格不携带原生信息 |
| 标签口径偏差 | 报病数为被动监测,普查为单点一次 | 预测目标本身不完全可靠 |
| 空间单元偏差 | 最小单元为市镇 | 市级关联不等于个体风险 |
| 版本差异 | v1.0 与 v2.0 内容不同但覆盖相同 | 跨论文数字不可直接对比 |
最后一行值得强调:两篇论文即使都用了这个库,若分别用 v1.0 与 v2.0,其输入像素已经不同。方法节必须写明用的是哪一个子集——这一条在现有文献里并不总能做到。
7.4 外部验证矩阵
主页 Cited by 记录了 4 篇公开引用文献,加上官方自身论文,可以拼出下表:
| 角色 | 做法 | 讲得通的地方 | 风险 |
|---|---|---|---|
| 框架论文(Scientific Data 2024) | 用本数据集评估三个任务:登革热病例预测、贫困评估、教育可及性 | 主键干净,多任务可复用同一批影像 | 三任务都是市级监督,结论限于市级 |
| DengueNet 预印本 | 以本数据集为时空素材做登革热预测 | 周级序列与报病数天然配对 | 预印本未经同行评议,细节以代码为准 |
| 全球登革热动态研究(PLoS NTD 2025) | 多来源因素的机器学习分析 | 本数据集作为其中一源 | 多源融合时各源口径差异难以剥离 |
| 低资源多模态学习预印本(medRxiv 2024) | 向量嵌入对齐 | 可复用公开的现成嵌入 | 嵌入与新框架版本可能不匹配 |
| 分割方法论文(LNCS 2024) | 引作背景相关工作 | 说明它的影响半径已超出公共卫生 | 与该库的实际距离较远,属背景性引用 |
这张表要说的只有一件事:引用不等于深度使用。四条引文里真正把它当主料的,只有官方团队自己的两篇。以背景方式引用的人是多数——这与它在库内的实际生态位一致:一个方便复用的素材源,而不是一个有公认标签的评测基准。
7.5 为何至今只有一个版本
自 2024 年 1 月发布以来没有新版本。这件事有两面读法。乐观的一面:卫星影像类数据一次提取之后长期稳定,不像临床数据那样需要持续脱敏审批与伦理审查,也不需要持续随访补录。悲观的一面:无人持续维护意味着使用者不能指望有人补 2019 年之后的影像、更新黑帧清单或修正已知的元数据源链接。
真正让它站住的不是更新频率,而是它的做法可以被复制到别处:官方明确写到该框架适用于任意位置与任意时间点,只要元数据能与统一的时间间隔对齐。对一个想在资源受限地区复现同类分析的研究组来说,这一句比多给几个副本更有价值。
§8 生态位与历史
8.1 历史沿革
官方 Background 把这个故事的起点放在"数据可得性是实现全球发展目标的关键环节"上:近年来,数据缺失与记录不全被列为发展中国家追赶过程中的核心障碍之一。与此同时,遥感一侧发生了实质性变化——Sentinel-2 自 2015 年起提供全球 10 至 60 米的多光谱存档且政策免费开放;2010 年代末出现了用卫星影像 predict 贫困的代表工作;2020 年代初这套方法迁移到教育可及性与虫媒病预测上。本数据集落在这个序列的末端:不是提出新方法,而是把已经验证的方法做成一份所有人都能直接用的成品。
8.2 与 SatelliteBench 的关系
这是最容易混淆的一层。Scientific Data 2024 那篇论文提出的是框架 SatelliteBench,本数据集是运行这套框架产出的一批数据。论文给的是"怎么做",数据集给的是"做出来的那一份"。两者作者高度重叠,发布时间相差约五个月(数据 1 月、期刊论文 6 月),引用规范也要求分开引用:数据集用 DOI 10.13026/xr5s-xe24,同时还要引用 DengueNet 与 PhysioNet 平台综述。
混成一篇来引会留下一个后果:别人想复现你的取图流程(应追溯到 SatelliteBench),抓到的却是一个静态数据集(内容是哥伦比亚那 81 个市镇,覆盖不到别处)。两条参考文献各归其位,是写作上最省事也最诚实的做法。
8.3 生态位
| 角色 | 可复用的取图框架 | 静态数据集 |
|---|---|---|
| 典型代表 | SatelliteBench、satellite.extractor | 本数据集 |
| 适用情形 | 想换国家、换年份、换分辨率 | 想立刻开始建模 |
| 所需成本 | 接口凭证、算力、工程时间 | 约 65 GB 磁盘(或按需取子集) |
| 失败模式 | 参数没调好、提取失败 | 把 81 个市镇的结论外推到别处 |
本数据集坐在右边这一列。它之所以能被直接用在教学、原型与方法研究里,前提是有人愿意开源左边那一列——在这类项目中并不总是发生。
8.4 谁在用,用来做什么
从主页 Cited by 与官方使用说明拼出来的使用画像大致有三类:做全球或多国虫媒病预测的团队(把它当作多源数据中的影像源)、做资源受限环境多模态方法的团队(把它当作现成的融合素材)、做资源受限场景模型压缩与迁移的团队(直接取公开的嵌入,避开从零训练的高昂成本)。第三类最少,也最接近它不可替代的位置——因为算力紧张的团队往往下载不起整份数据,只能复用别人已经取好的那一份。
§9 使用指引
9.1 三种角色的路径
| 角色 | 第一天 | 第一周 | 注意事项 |
|---|---|---|---|
| 全球卫生研究者 | 先读宽表的字段字典,确认目标变量在表里 | 取一个市镇三年序列复现一项官方任务 | 标签口径要与官方说明一致 |
| 遥感与地学工程师 | 取单帧确认坐标系、通道排布与像素尺度 | 建立读取脚本与重复帧审计脚本 | 不可假设全库栅格尺寸一致 |
| 教学与原型开发 | 用 10 市镇子集做演示 | 先用宽表建立一个不含影像的基线 | 讲清 extrapolation 结论外推的边界 |
9.2 一条最短的可用流程
#-- 1. 元数据与许可,几兆字节
wget -N https://physionet.org/files/multimodal-satellite-data/1.0.0/metadata.csv
#-- 2. 取一个市镇试跑(数百 MB 量级)
wget -r -N -c -np --accept=tiff \
https://physionet.org/files/multimodal-satellite-data/1.0.0/81_municipalities_v2.0/81_municipalities_v2.0/5001/
import glob
import pandas as pd
import rasterio
#-- 3. 从宽表取出该市镇的标签:年度值加逐周序列
meta = pd.read_csv('metadata.csv', low_memory=False)
row = meta.loc[meta['Municipality code'].astype(str) == '5001'].iloc[0]
print(row['Population2016'], row['Cases2016'], row['2016/w01'])
#-- 4. 读影像首帧,确认波段数、尺寸、坐标系与像素尺度
files = sorted(glob.glob('*/5001_*.tiff'))
with rasterio.open(files[0]) as src:
print(src.count, src.width, src.height, src.crs, src.transform[0])
两段跑完之后,你就拥有一套"影像为特征、该市镇逐周病例为标签"的最小可用结构。正式实验之前还有三件事要改:一是明确用哪个子集并把名字写进方法节;二是按 §5.6 做重复帧审计;三是把宽表 1121 行与影像侧 81 个代码的差集处理干净。
9.3 引用方式
官方页面要求同时引用三样东西:
| 引用对象 | 内容 |
|---|---|
| 数据集 | Cajas, S. A., Restrepo, D., Moukheiber, D., Kuo, K. T., Wu, C., Garcia Chicangana, D. S., Paddo, A. R., Moukheiber, M., Moukheiber, L., Moukheiber, S., Purkayastha, S., Lopez, D. M., Kuo, P., & Celi, L. A. (2024). A Multi-Modal Satellite Imagery Dataset for Public Health Analysis in Colombia (version 1.0.0). PhysioNet. RRID:SCR_007345. doi:10.13026/xr5s-xe24 |
| 原始论文 | Kuo KT, Moukheiber D, Ordonez SC, 等. DengueNet: Dengue Prediction using Spatiotemporal Satellite Imagery for Resource-Limited Countries. arXiv:2401.11114, doi:10.48550/arXiv.2401.11114 |
| 平台 | Pollard, T., Moody, B. E., Lehman, L., Gow, B., Fernandes, C., Xie, C., Johnson, A., Mark, R. G., & Heldt, T. (2026). PhysioNet as a global platform for biomedical research. Nature Health. doi:10.1038/s44360-026-00096-z |
写论文时还建议注明三条:使用的子集目录名(10 市镇、81 市镇 v1.0 还是 v2.0)、影像与目标变量的时间交集(两者不一样长)、是否做过重复帧剔除。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑把关结构与事实 |
| 数字来源 | 规模、结构、边界三类数字来自 PhysioNet 官方页面与直接读取的文件本身(metadata.csv、文件目录、单个 TIFF 头部) |
| 文件核验 | metadata.csv、LICENSE.txt、81 市镇两版目录清单、三个市镇目录的文件清单、单帧 TIFF 头部均经直接访问确认 |
| 不一致说明 | 官方称波段上采样至 10 米,而文件内地理标签登记为 0.0001 度,两者口径不同,已在 §1.2 与 §2.2 说明 |
| 论文信息 | 论文信息取自 arXiv 摘要、Scientific Data 摘要与 PhysioNet 主页 Cited by 列表,未读全文 |
| 未核验内容 | 逐周 YYYY/wNN 列与年度 Cases 列的数据关系;TIFF 内部 12 个波段的排放顺序;全库每个市镇的帧数与栅格尺寸是否严格一致;2018 年普查类列在时间上的适用范围 |
| 图像 | 无配图;封面为生成式提示词,不含真实卫星影像 |
| 免责 | 本文不构成公共卫生建议;影像为被动遥感观测,不能用于个体诊断 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 「它有 12636 个市镇」 | 81 个市镇,12636 是影像张数 | 官方摘要写明来自 81 个市镇、共 12636 张影像 |
| 「影像是 Sentinel-2 原始底档」 | 经 Sentinel Hub 镶嵌、最小云量筛帧、去黑帧与去云伪影处理 | 官方 Methods 与 Data Description |
| 「每张影像都带标签」 | 影像无标签,标签在 metadata.csv 里,且为市级汇总 | 官方 Metadata Descriptor 只列市镇级字段 |
| 「v2.0 覆盖了更多市镇」 | 覆盖相同,区别只在缺帧是单向替换还是双向替换 | 官方对三份子集的说明 |
| 「下载需要 PhysioNet 账号」 | 开放访问,CC0 1.0,主页写明任何人在许可条款下都可访问 | 官方 Access 与 License 两段 |
| 「10 米就是像素精确 10 米」 | 文件内 ModelPixelScale 登记为 0.0001 度 | 单帧 TIFF 的 GeoTIFF 标签 33550 |
| 「元数据只有描述符里那 21 项」 | 实际 1017 列,其中包含 676 个逐周列 | metadata.csv 直接读取 |
| 「元数据与影像的时间跨度一致」 | 影像 2016—2018,宽表 2007—2019 | 官方描述符与文件名日期区间 |
| 「它能预测任何国家的登革热」 | 官方明确要求换地点时用 satellite.extractor 重跑 | 官方 Usage Notes |
| 「用了 CC0 就不用引用」 | 官方仍要求引用数据集、原始论文与平台三项 | 官方 When using this resource 段 |
FAQ
Q1:81 个市镇和 12636 张影像这两个数字怎么对得上?
按文件目录读到的标准形态,每个市镇目录有 156 个 TIFF,81 × 156 = 12636,与官方影像总数精确吻合。156 就是三年在流行病学周历下的帧数:抽样到的序列自 2016-01-03 起、到 2018-12-23 止,相邻两帧正好相隔七天。10 市镇子集是另外一份,不计入这个乘积。
Q2:该下载 v1.0 还是 v2.0?
用于严肃建模时取 v2.0:官方说明它是用 forward-backward 替换缺帧的一版,序列残缺更少。若要与某篇特定论文对比,则先确认对方用了哪一版再决定。两版覆盖的市镇与时间完全相同,不存在"哪一版数据更多"的说法。
Q3:影像里到底有没有标签?
没有。没有任何空间标注:没有地块、没有建筑轮廓、没有贫富分级。所有监督信号都要从 metadata.csv 取,而且是市级汇总值。做"影像到某个指标"的任务时,标签的定义、口径与时间位置都由使用者自己定,并应在方法节写明。
Q4:为什么同一个分辨率会有 10 米与 0.0001 度两种说法?
两者说的不是一件事。官方说"全部波段上采样到 10 米",指的是重采样后的名义地面分辨率;文件内 TIFF 的 ModelPixelScale 登记为 0.0001 度,指的是存储时登记的经纬度步长,坐标系为 WGS 84 而非投影坐标。做面积或距离计算前必须先投影,不能把 0.0001 直接当成 10 米。
Q5:65 GB 一定要全下吗?
不必。整棵树放在 PhysioNet 的开放对象存储里,支持匿名列举与单对象下载(§5.3)。最快的起步方式是只取 metadata.csv 加一个市镇目录:几兆字节加几百兆字节,就能把全流程跑通。
Q6:它能用来做其他国家的研究吗?
不能直接用。官方使用说明写明,本数据集取自哥伦比亚特定城市的登革热流行情况,想要别的市镇、别的国家或别的用途,应该用 satellite.extractor 按同一套流程重新提取。此外还提示非流行区(例如山地城市)可能被排除,选点时要核对市镇代码表。
Q7:引用该给哪些?
官方要求三样:数据集本身(DOI 10.13026/xr5s-xe24)、原始论文 DengueNet(arXiv:2401.11114)、以及 PhysioNet 平台综述(Nature Health 2026)。此外建议注明所用的子集目录名与时间交集——这两项决定了别人能否复现你的结果。
Q8:许可允许商业使用吗?
允许。CC0 1.0 是公有领域奉献,放弃了著作权及相关权利,不需要署名即可再分发与商用;但官方仍要求在使用时按规范引用数据集、原始论文与平台。伦理段落也写明:数据源自开放存取与公开发布的库,无需额外许可。
术语表
| 术语 | 解释 |
|---|---|
| Sentinel-2 哨兵二号 | 哥白尼计划的对地观测卫星星座,提供 10 至 60 米多光谱存档 |
| 流行病学周 epi-week | 公共卫生监测使用的一周编号,用于跨年统一时间序列 |
| Sentinel Hub | 提供哨兵数据按需镶嵌与下载的云接口 |
| 镶嵌 mosaicking | 把同一时间窗内的多景影像拼合成一帧的处理 |
| 最小云量镶嵌排序 | 官方使用的拼接顺序算法,优先采用云量最少的像素 |
| dhash 差值哈希 | 一种对尺度、亮度、对比不敏感的图像指纹 |
| GeoTIFF | 带地理参考标签的 TIFF,内含坐标系、像素尺度与配准点 |
| ModelPixelScale | GeoTIFF 标签,登记像素在地图单位下的步长 |
| ModelTiepoint | GeoTIFF 标签,登记像素坐标与地图坐标的对应点 |
| WGS 84 | 经纬度坐标系,EPSG 编号 4326 |
| SDOH | 健康的社会决定因素,指教育、就业、住房等影响健康的条件 |
| DANE | 哥伦比亚国家统计署,2018 年全国人口与住房普查的实施方 |
| SIVIGILA | 哥伦比亚公共卫生监测系统,登革热病例数据的来源 |
| WorldClim | 全球气候栅格产品,本数据集月值气候的来源之一 |
| MODIS 与 CHIRPS | 地表温度与降水产品,用于派生逐周气温与降水 |
| 自回归预测 | 用历史序列预测下一时刻的建模方式 |
| 宽表 | 以大量列表达多类变量的二维表,metadata.csv 属此类 |
| CC0 | 公有领域奉献许可,放弃著作权,允许无条件再利用 |
| 最近邻上采样 | 把粗分辨率波段放到细网格上的插值方式,不增加信息量 |
| Mosquito 生态学谬误 | 用市级关联推断个体风险时可能犯的推断错误 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 影像总数 | 12636 | 官方页面摘要与方法节 | 官方页面 |
| 市镇数 | 81 | 官方页面摘要;文件目录 | 官方页面与文件目录 |
| 单市镇帧数 | 156 | 文件目录直接读取 | 官方文件 |
| 影像覆盖时间 | 2016-01-03 至 2018-12-23 | 文件名序列 | 官方文件 |
| 帧间隔 | 7 天 | 文件名序列 | 官方文件 |
| 波段数 | 12 | 官方页面;TIFF 每像素采样数标签 | 官方页面与文件 |
| 位深 | 8 位 | TIFF 位深标签 | 官方文件 |
| 栅格尺寸 | 747 × 745(5001);748 × 745(76001) | TIFF 宽高标签 | 官方文件 |
| 像素尺度 | 0.0001 度 | TIFF 的 ModelPixelScale | 官方文件 |
| 坐标系 | WGS 84(EPSG:4326) | TIFF 的 GeoKey 与 ASCII 参数 | 官方文件 |
| 单帧体积 | 约 3.5 MB | HTTP 响应头 | 官方文件 |
| 未压缩总量 | 65.0 GB | 官方页面文件区 | 官方页面 |
| ZIP 体积 | 64.4 GB | 官方页面下载入口 | 官方页面 |
| 宽表规格 | 1017 列 × 1121 行 | metadata.csv 直接读取 | 官方文件 |
| 逐周列数 | 676(2007/w01 至 2019/w52) | metadata.csv 列名 | 官方文件 |
| 逐月气温与降水列数 | 144 + 144(2007-01 至 2018-12) | metadata.csv 列名 | 官方文件 |
| 年度人口与病例列数 | 13 + 13(2007 至 2019) | metadata.csv 列名 | 官方文件 |
| 社会经济列数 | 25 | metadata.csv 列名 | 官方文件 |
| 版本 | 1.0.0(唯一版本) | 官方页面版本区 | 官方页面 |
| 发布日期 | 2024-01-30 | 官方页面 | 官方页面 |
| 版本 DOI | 10.13026/xr5s-xe24 | 官方页面 | 官方页面 |
| 最新版本 DOI | 10.13026/s5kt-3p13 | 官方页面 | 官方页面 |
| 许可 | Creative Commons Zero 1.0 Universal | 官方页面;LICENSE.txt | 官方页面与文件 |
| 访问策略 | 开放访问,任何人在许可条款下可取 | 官方页面 Access 段 | 官方页面 |
| 重访周期 | 5 天 | 官方页面数据说明 | 官方页面 |
| 主题标签 | multimodality、satellite imagery | 官方页面 Topics | 官方页面 |
| 被引记录 | 4 篇 | 官方页面 Cited by(数据来自 OpenAlex) | 官方页面 |
| 项目浏览数 | 764(当前版本与全部版本数值相同) | 官方页面 Project Views | 官方页面 |
附录 B:数字的来源分层
第一层:官方页面。 影像总数、市镇数、覆盖年份、波段清单与原生分辨率、重访周期、去云与去伪影策略、许可以及 DOI。这些数字可直接点到出处。
第二层:官方文件本身。 单市镇帧数、日期区间与七天间隔、栅格尺寸、位深、像素尺度与坐标系、单帧体积、metadata.csv 的行列数与列名构成。这些由直接读取文件与目录得到,不由推断产生,属于结构类信息。
第三层:论文摘要与聚合型列表。 官方论文的三个评估任务、SatelliteBench 框架名、被引文献清单。摘要只能支撑"有人这样用过",不能支撑"用起来效果如何"。
第四层:未核实。 逐周 YYYY/wNN 列与年度 Cases 列的数据关系;TIFF 内部 12 个波段的排放顺序;全库各市镇的帧数与栅格尺寸是否逐个一致;2018 年普查类列在时间上的适用范围。这些需要全量下载后逐一统计,本文按要求只写规模、结构、边界三类数字(§10)。
附录 C:完整参考文献
| 编号 | 文献 | 链接 | 用途 |
|---|---|---|---|
| 1 | A Multi-Modal Satellite Imagery Dataset for Public Health Analysis in Colombia v1.0.0 | https://physionet.org/content/multimodal-satellite-data/1.0.0/ | 全部规模、结构、边界数据的来源 |
| 2 | 该数据集的 PhysioNet 文件目录 | https://physionet.org/files/multimodal-satellite-data/1.0.0/ | 目录树、metadata.csv、TIFF 头部 |
| 3 | Moukheiber D, Restrepo D, Cajas SA, 等. A multimodal framework for extraction and fusion of satellite images and public health data. Scientific Data 11:634(2024) | https://doi.org/10.1038/s41597-024-03366-1 | SatelliteBench 框架与三个评估任务 |
| 4 | Kuo KT, Moukheiber D, Ordonez SC, 等. DengueNet | https://doi.org/10.48550/arXiv.2401.11114 | 官方指定同时引用的原始论文 |
| 5 | Pollard T, 等. PhysioNet as a global platform for biomedical research. Nature Health(2026) | https://doi.org/10.1038/s44360-026-00096-z | 平台引用规范 |
| 6 | satellite.extractor 代码库 | https://github.com/sebasmos/satellite.extractor | 换地点重跑的实现 |
| 7 | MIT Critical Data(HuggingFace) | https://huggingface.co/MITCriticalData | 现成嵌入与模型权重 |
| 8 | DANE 2018 年人口与住房普查 | 官方页面参考文献 24 | 社会经济列的来源 |
| 9 | SIVIGILA 常规监测统计 | 官方页面参考文献 25 | 登革热病例的来源 |
| 10 | WorldClim、MODIS、CHIRPS | 官方页面参考文献 25—27 | 气温与降水列的来源 |
附录 D:任务代码
任务一:按市镇把影像与逐周标签拉齐
import glob, re
import pandas as pd
import rasterio
import numpy as np
ROOT = '81_municipalities_v2.0/81_municipalities_v2.0/'
code = '5001'
meta = pd.read_csv('metadata.csv', low_memory=False)
row = meta.loc[meta['Municipality code'].astype(str) == code].iloc[0]
files = sorted(glob.glob(f'{ROOT}{code}/*.tiff'))
#-- 文件名里的日期既是流行病学周起点,也是连接元数据的时间键
dates = [re.search(r'(\d{4})-(\d{2})-(\d{2})', f).groups() for f in files]
xs = []
for f in files:
with rasterio.open(f) as src:
xs.append(src.read()) #-- 形状 (12, H, W),不同市镇 H、W 可能不同
print(np.stack(xs).shape, row['Population2016'], row['Cases2016'])
任务二:重复帧审计
import cv2
import glob
def dhash(path, size=8):
#-- 差值哈希对尺度、亮度与对比不敏感,官方用它识别重复影像
img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (size + 1, size))
bits = 0
for r in range(size):
for c in range(size):
bits = (bits << 1) | int(img[r, c] > img[r, c + 1])
return bits
prev, dup = None, []
for f in sorted(glob.glob('5001/*.tiff')):
h = dhash(f)
if prev is not None and bin(h ^ prev).count('1') == 0:
dup.append(f)
prev = h
print('相邻全等帧数:', len(dup))
print(dup[:5])
第二段是最值得先跑一次的脚本。官方用 dhash 做时空变化评估与重复影像识别,但没有逐帧发布"哪些帧是替换来的"标记;自己重算一遍,是确认相邻周是否真的发生了变化的唯一办法。
附录 E:如果只记五件事
| 序号 | 记住什么 | 为什么 |
|---|---|---|
| 1 | 81 个市镇 × 156 周 = 12636 帧,时间写在文件名里 | 这四个数字定义了全部用法与限制 |
| 2 | 影像没有标签,标签全在 metadata.csv 且是市级汇总 | 任何视觉任务都要先自己定义标签 |
| 3 | 影像 2016—2018,宽表 2007—2019,两者时长不同 | 目标与特征的时间交集要自己裁 |
| 4 | v1.0 与 v2.0 的区别只在缺帧替换策略 | 跨论文比较数字前必须确认版本 |
| 5 | CC0 开放,但换国家要重跑 satellite.extractor | 结论不能外推出这 81 个市镇 |
编辑说明
本文的核验时间为 2026 年 10 月 29 日。核对方式为直接访问 PhysioNet 项目页与文件目录:读取项目主页全文(摘要、背景、方法、数据描述、使用说明、伦理、致谢、许可、DOI、版本与被引列表),下载 metadata.csv 并确认其列名构成与行列数,列举多个市镇目录以确认每市镇 156 帧与七天间隔,并读取单帧 TIFF 的头部标签以确定波段数、位深、栅格尺寸、压缩方式、像素尺度与坐标系。论文侧只读取了摘要与 Cited by 列表,未读全文。
凡涉及推算可能的部分,本文一律只做定性处理。未覆盖的内容包括:逐周 YYYY/wNN 列与年度 Cases 列的数据关系、TIFF 内部 12 个波段的排放顺序、全库各市镇帧数与栅格尺寸是否逐个一致、以及 2018 年普查类列在时间上的适用范围;这些已列入 §10 与附录 B 的第四层,需全量下载后逐一核对。官方"上采样至 10 米"与文件登记的 0.0001 度像素尺度之间的差异,已在 §1.2 与 §2.2 各说明一次。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与该数据集共享多个主题标签的相关数据集,按相关度降序排列:
- sinan-dengue — 共享标签:传染病 / 公共卫生 / 监测数据
- datasus — 共享标签:公共卫生 / 人口健康 / 区域数据
- world-health-survey — 共享标签:人口健康 / 多国数据 / 公共卫生
- dhs-program — 共享标签:人口健康 / 社会决定因素
- who-gho — 共享标签:公共卫生 / 健康指标
- who-mortality-db — 共享标签:公共卫生 / 人口统计
- ghed — 共享标签:公共卫生 / 卫生系统投入
- oecd-health — 共享标签:卫生统计 / 跨国对照
- cdc-wonder — 共享标签:公共卫生统计 / 查询平台
- multimodal-emergency-benchmark — 共享标签:多模态数据
- mimic-eye-multimodal-datasets — 共享标签:多模态数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

