> 技术文档 > 微软行星云计算:微软研究院城市创新小组领导的低成本空气质量监测网络数据集

微软行星云计算:微软研究院城市创新小组领导的低成本空气质量监测网络数据集


项目Eclipse网络概述

项目Eclipse网络是一个低成本的城市空气质量监测网络,由微软研究院城市创新小组领导的研究项目。目前在美国伊利诺伊州芝加哥市部署了超过100个监测点。

部署信息

  • 部署时间:2021年7月开始
  • 合作机构
    • 芝加哥市政府
    • 万物互联项目
    • JCDecaux芝加哥
    • 环境法律与政策中心
    • 当地环境正义组织

数据存储

  • 存储位置:Azure Blob Storage西欧区域
  • 容器地址https://ai4edataeuwest.blob.core.windows.net/eclipse
  • 数据组织
    • 按日期文件夹存储(Chicago/YYYY-MM-DD)
    • 每个快照包含7天的传感器数据(Parquet格式)
    • 示例路径:https://ai4edataeuwest.blob.core.windows.net/eclipse/chicago/2022-01-01/data_*.parquet

其他信息

  • 校准文档:提供Pm2.5、O3和NO2校准的PDF文档
  • 引用文献:Daepp, Cabral, Ranganathan等(2022)《Eclipse:一种用于城市低成本、超本地环境监测的端到端平台》
  • 联系方式:msrurbanops@microsoft.com
  • 项目主页:Microsoft Research中的Eclipse项目概述

数据集技术信息

基本信息

类别 详情 STAC集合 https://planetarycomputer.microsoft.com/api/stac/v1/collections/eclipse 提供方 城市创新(生产/许可/处理), 微软(托管) 许可 使用条款 空间范围 美国伊利诺伊州芝加哥市 数据区域 西欧(westeurope) 时间范围 2021年1月1日至今

数据列说明

列名 描述 数据类型 City 设备部署城市 Byte_array DeviceId 设备ID Int32 LocationName 设备位置描述 Byte_array Latitude 纬度 Double Longitude 经度 Double ReadingDateTimeUTC 读数UTC时间 Int96 PM25 未校准PM2.5(µg/m³) Double CalibratedPM25 校准PM2.5(µg/m³) Double CalibratedO3 校准臭氧(PPB) Double CalibratedNO2 校准二氧化氮(PPB) Double CO 未校准一氧化碳(PPM) Double Temperature 温度(℃) Double Humidity 相对湿度 Double BatteryLevel 电池电压(V) Double PercentBattery 电池百分比 Double CellSignal 蜂窝信号强度(dB) Double

数据集资源

资源 STAC密钥 描述 角色 内容类型 abfs://eclipse/Chicago/ data 完整Parquet数据集 Data application/x-parquet abfs://items/eclipse.parquet geoparquet-items STAC项目GeoParquet快照 Stac-items application/x-parquet

案例

项目 Eclipse 网络是一个低成本的城市空气质量监测网络,由微软研究院的城市创新小组领导的研究项目。
clipse 项目数据以一组 parquet 文件形式分布——每周一个。我们可以使用 STAC API 来搜索特定一周的文件。

import pystac_clientimport planetary_computercatalog = pystac_client.Client.open( \"https://planetarycomputer.microsoft.com/api/stac/v1\", modifier=planetary_computer.sign_inplace,)search = catalog.search(collections=[\"eclipse\"], datetime=\"2022-03-01\")items = search.item_collection()print(f\"Found {len(items)} item\")item = items[0]item
import geopandasimport pandas as pdasset = item.assets[\"data\"]df = pd.read_parquet( asset.href, storage_options=asset.extra_fields[\"table:storage_options\"])df

微软行星云计算:微软研究院城市创新小组领导的低成本空气质量监测网络数据集

df = df[(df.Longitude > -89) & (df.Longitude < -86)]len(df)
df.CalibratedO3
ts = df.resample(\"h\", on=\"ReadingDateTimeUTC\")[ [\"CalibratedPM25\", \"Humidity\", \"CalibratedO3\", \"CalibratedNO2\", \"CO\"]].mean()ts.plot(subplots=True, sharex=True, figsize=(12, 12));

该数据集包含每个传感器的许多观测值。我们可以使用 geopandas 绘制每个传感器的位置,只需选择该传感器的第一个观测值即可。

gdf = geopandas.GeoDataFrame( df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude), crs=\"epsg:4326\")gdf[[\"LocationName\", \"geometry\"]].drop_duplicates( subset=\"LocationName\").dropna().explore(marker_kwds=dict(radius=8))

微软行星云计算:微软研究院城市创新小组领导的低成本空气质量监测网络数据集
使用命名聚合,我们可以计算每个传感器的汇总数据,并在地图上绘制。将鼠标悬停在标记上,即可查看每个传感器的平均校准 PM2.5 值。

average_pm25 = geopandas.GeoDataFrame( gdf.groupby(\"LocationName\").agg( mean_pm25=(\"CalibratedPM25\", \"mean\"), geometry=(\"geometry\", \"first\") ), crs=\"epsg:4326\",)average_pm25.explore( marker_kwds=dict(radius=10),)

读取完整数据集

STAC 集合包含一个 data 资产,它链接到 Parquet 数据集的根目录。这可以用来跨时间读取所有数据。我们将使用 Dask 来读取数据集。

eclipse = catalog.get_collection(\"eclipse\")asset = planetary_computer.sign(eclipse.assets[\"data\"])
import adlfsimport dask.dataframe as ddfs = adlfs.AzureBlobFileSystem(**asset.extra_fields[\"table:storage_options\"])files = [f\"az://{x}\" for x in fs.ls(asset.href)]ddf = dd.read_parquet( files, storage_options=asset.extra_fields[\"table:storage_options\"])ddf

娱乐新闻