• This repository has been archived on 15/Jul/2021
  • Stars
    star
    199
  • Rank 195,502 (Top 4 %)
  • Language
    PHP
  • License
    GNU Lesser Genera...
  • Created over 11 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Air Quality Index (AQI) history database for mainland China

中国大陆重点城市空气质量历史数据库

声明:本项目提供的数据所有权权归原始方所有,在未获得所有方任何形式认可的情况下,请勿将本数据用作商业目的。本程序提供的数据仅用作参考,不做任何形式的承诺、担保以及负责。

下载

如果您只是想获取最终数据,请您访问 http://www.gracecode.com/aqi.html

数据源

目前基于 中华人民共和国环境保护部信息中心 等其他公共数据来源抓取并汇总而成,提供给网友作为当地空气质量的历史数据参考。如有其他的数据源,欢迎网友提供。

数据库

数据库使用 SQLite 数据格式,单一的压缩文件,方便随时调用以及嵌入。

字段说明

以下是 SQLite 的主要表的字段说明,省去索引部分说明。

sqlite> .schema
        -- 空气质量主数据表
CREATE TABLE aqi (
            ID INTEGER NOT NULL PRIMARY KEY,          
            division UNSIGNED BIG INT(10) NOT NULL,     - 行政编码
            areaName VARCHAR(12) DEFAULT NULL,          - 地区名
            value INTEGER NOT NULL,                     - 值
            pollutant INTEGER DEFAULT NULL,             - 污染类型
            recordDate DATE NOT NULL,                   - 记录时间
            _fetchDate DATE NOT NULL,                   - 抓取时间
            source VARCHAR(8) DEFAULT NULL              - 来源
        );
        -- 地区表
CREATE TABLE areas (
            ID INTEGER NOT NULL PRIMARY KEY,
            division UNSIGNED BIG INT(10) NOT NULL,     - 行政编码 
            name VARCHAR(12) NOT NULL,                  - 地区名
            engName VARCHAR(64),                        - 地区英文名
            pinyinName VARCHAR(64),                     - 地区中文拼音
            bottom BOOLEAN DEFAULT FALSE,               - 是否是最后一级地区
            superior UNSIGNED BIG INT(10)               - 上级地区编码,顶级为0
        );
        -- 污染类型表
CREATE TABLE pollutant (
            ID INTEGER NOT NULL PRIMARY KEY,
            name VARCHAR(32) NOT NULL                   - 污染类型名称
        );

扩展

扩展使用其他数据源

主要功能为继承 include/Base.inc.php 中的基类,同时编写对对应的代码,程序入口为 run 函数。为了方便管理,建议将抓取的对应类文件放到 fetcher 目录中。

参考 FetcherMep.inc.phps 的实例代码:

// 其中 DumpDataFromMep 基于 Base 函数
class FetcherMep extends DumpDataFromMep {
    public function run() {
        // 请求线上地址
        $this->getDateFromUrl($url);
        // ...
        // 插入到数据库
        $this->insertAqiData($item['division_id'], 
                      $item['value'], $item['record_date'], $item['pollutant'], 
                      $item['area_name'], self::FLAG_SOURCE);
    }
}

然后修改 fetcher.php 文件中需要执行的类加入到数组中:

$builders = array('FetcherMep');

它们就会顺序执行。

定时抓取

强烈建议使用 crontab 等工具定时抓取线上数据,可以考虑使用

$make fetch 

方法,详细可以参见 Makefile 文件

参考

  1. http://en.wikipedia.org/wiki/Air_quality_index#Mainland_China
  2. 中国大陆地区的行政区划参见 assets/area.json 文件,JSON 格式

空气质量指数(AQI)范围及相应的空气质量类别对应表

空气质量指数空气质量状况对健康影响情况建议采取的措施
0~50空气质量令人满意,基本无空气污染各类人群可正常活动
51~100空气质量可接受,但某些污染物可能对极少数异常敏感人群健康有较弱影响极少数异常敏感人群应减少户外活动
101~150轻度污染易感人群症状有轻度加剧,健康人群出现刺激症状儿童、老年人及心脏病、呼吸系统疾病患者应减少长时间、高强度的户外锻炼
151~200度污染进一步加剧易感人群症状,可能对健康人群心脏、呼吸系统有影响儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外锻炼,一般人群适量减少户外运动
201~300重度污染心脏病和肺病患者症状显著加剧,运动耐受力降低,健康人群普遍出现症状儿童、老年人及心脏病、肺病患者应停留在室内,停止户外运动,一般人群减少户外运动
>300严重污染健康人群运动耐受力降低,有明显强烈症状,提前出现某些疾病儿童、老年人和病人应停留在室内,避免体力消耗,一般人群避免户外活动

反馈&联系

More Repositories

1

php-readability

Back the fun of reading - PHP Port for Arc90′s Readability
PHP
521
star
2

chrome-plugin-to-replace-fuck-flash-player

将中国大陆主流视频网站的 Flash 播放器替换为 HTML5 播放器
JavaScript
490
star
3

socks5lb

A simple socks5 proxy load balance and transparent proxy
Go
452
star
4

dell-optiplex-9020m-hackintosh

Hackintosh for Dell OptiPlex 9020m, including configures and tools.
167
star
5

Tracker

在 Android 手机中记录 GPS 轨迹并显示、统计、和输出
Java
146
star
6

iZhihu

随时随地获得「知乎」每日最新精选内容!(停止维护)
Java
116
star
7

deploy-k8s-within-aliyun-mirror

使用阿里云镜像快速部署 Kubernetes 集群
100
star
8

lenovo-thinkcentre-m93p-hackintosh

Mixed configurations and tools for Lenovo M93P Hackintosh
93
star
9

Rainville

Rain Noise for Android
Java
83
star
10

pornhub-dl

NFSW: A minimalistic command-line application to download videos from PornHub.
Go
47
star
11

Presentation

读图时代,从「花瓣」(huaban.com)上阅读每日更新的数据图
Java
47
star
12

Gojuon

Material 风格的日语五十音助记软件
Java
42
star
13

obsync

国内主流云对象存储服务同步工具
Go
22
star
14

prometheus-on-phicomm-n1

在 Phicomm(斐讯)N1 上部署 Prometheus 和 Grafana
18
star
15

chrome-plugin-simple-qr-generator

Chrome 小插件,简单 QR 码生成器:生成当前页面的 QR 码
JavaScript
16
star
16

my-vertx-scaffold

基于 Vert.x 的简单脚手架,整合使用了 gRPC、RxJava 等库
Java
9
star
17

icurl

Online cURL debug proxy
PHP
8
star
18

android-bluetooth-gps-provider

Connect to an external bluetooth NMEA compatible GPS device.
8
star
19

prometheus-smart-exporter

Simple S.M.A.R.T disk export for Prometheus
Shell
8
star
20

genpasswd

A simple password generator written in golang.
Go
6
star
21

resource-compiler

Online CSS, Javascript compiler tool
PHP
6
star
22

raspberry-pi3-syncthing

Syncthing(including discovery & relay server) Docker image for Raspberry Pi3 (arm32v7) platform.
Dockerfile
6
star
23

pidfile

This package provides structure and helper functions to create and remove PID file.
Go
6
star
24

creole-wiki-parser

Creole Wiki Parser // Creole Wiki 语法解析器
PHP
5
star
25

upyun-cli

基于又拍云 Python SDK https://github.com/upyun/python-sdk 的命令行工具
Python
5
star
26

NOKIA5110-LCD

Arduino library for Nokia 5110 Graphic LCD(PCD854) with tiny foot.
C++
5
star
27

simplyddns

根据指定的 IP 地址,动态更新对应的 DNS 记录。
Go
4
star
28

ghoul

Tiny sqlite blog platform with some nice apis.
PHP
4
star
29

url-zipper

A tool for batch short url quickly and easily
PHP
3
star
30

php-emojify

PHP Emojify - The PHP Port of Emojify
PHP
3
star
31

boot-arch-on-32bit-efi

Boot 64bit Linux(eg. Arch) on 32bit EFI / 在 32 位 EFI 上启动 64 位的 Linux
2
star
32

lenovo-p310-e3-rx560-hackintosh

A Hackintosh for Xeno E3-1231
2
star
33

motion.js

Tiny & simiple javascript motion toolkit
JavaScript
2
star
34

apcupsd_guarder

跨平台的 APC UPS 守护和监控进程
Go
1
star
35

Invoke-Golang

针对 Windows 的 Golang 多版本管理工具
PowerShell
1
star
36

i3wm.conf

明城的 i3wm 配置,以及相关的环境配置文件和脚本
1
star
37

north-korea

朝鲜行,普通人眼中的朝鲜
HTML
1
star