azuyalabs / waqi
世界空气质量指数API的简单PHP封装
Requires
- php: ^8.2
- ext-json: *
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- fakerphp/faker: ^1.23
- friendsofphp/php-cs-fixer: ^v3.15
- infection/infection: ^0.26
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- vimeo/psalm: ^5.18
This package is auto-updated.
Last update: 2024-08-29 13:42:19 UTC
README
世界空气质量指数API的简单PHP封装
世界空气质量指数项目是一个旨在绘制全球当前和实时空气质量的倡议。空气质量指数基于来自世界各地各种监测站提供的PM2.5、PM10、臭氧、NO2、SO2和CO的小时测量值。
此包使您能够轻松检索您地区的空气质量指数,并基于WAQI项目的实时空气质量数据流(API)。
注意:要使用此包(及其基础AQI API),需要访问令牌。您可以在以下位置获取您的令牌: https://aqicn.org/data-platform/token.。
系统需求
您需要 PHP >= 8.2 才能使用 azuyalabs/waqi
。
安装
您可以通过composer引入此包
composer require azuyalabs/waqi
用法
首先,在您的项目中包含Composer的autoload
文件
<?php require 'vendor/autoload.php';
使用您的AQI访问令牌,创建WAQI对象的实例
use Azuyalabs\WAQI\WAQI; $waqi = new WAQI(<your access token>);
接下来,使用getObservationByStation
方法与所需的市名或监测站名称(例如,“纽约”)。这将获取最新的空气质量观测值
$waqi->getObservationByStation('new york');
空气质量
如果一切顺利,可以使用各种API方法获取所选城市或监测站的空气质量指数的详细信息。
要获取AQI(空气质量指数),请使用getAQI
方法
$waqi->getAQI();
这返回一个包含在测量时间测量的监测站测量的空气质量指数的数组结构。它包含4个元素
- 'aqi':AQI水平(由监测站的主要污染类型定义)
- 'pollution_level':描述空气污染水平的叙述
- 'health_implications':描述与测量污染水平相关的健康影响的叙述
- 'cautionary_statement':与测量污染水平相关的警告声明(仅针对PM2.5)
示例输出(针对“纽约”)
- 'aqi': 15 - 'pollution_level': Good - 'health_implications': Air quality is considered satisfactory, and air pollution poses little or no risk. - 'cautionary_statement': None
除了一般的空气质量信息外,还有特定的污染物水平信息。请注意,并非每个监测站都捕获所有污染物类型,因此某些API函数可能返回“null”。
以下API函数可用于获取特定污染物水平信息
getCO()
:返回在测量时监测站测量的碳一氧化物(CO)水平。getNO2()
:返回在测量时监测站测量的二氧化氮(NO2)水平。getO3()
:返回在测量时监测站测量的臭氧(O3)水平。getSO2()
:返回在测量时监测站测量的二氧化硫(SO2)水平。getPM10()
:返回在测量时在此监测站测量的直径10微米或以下的颗粒物(PM10)水平。getPM25()
:返回在测量时在此监测站测量的直径2.5微米或以下的颗粒物(PM2.5)水平。
监测站
可以通过两种API方法获取监测站的信息。
首先,使用API方法getMonitoringStation()
,将返回有关指定监测站的信息
- 'id':该监测站的唯一ID
- 'name':该监测站的名字(或描述)
- 'coordinates':该监测站的地理坐标('经度'和'纬度'的数组)
- 'url':该监测站的URL
其次,API方法getAttributions()
将返回该监测站的EPA归属列表。
其他
提供其他附加信息的API方法有
getMeasurementTime()
:返回上次测量的日期/时间(作为DateTime
对象)。getHumidity()
:返回测量时该监测站测得的湿度(%)。getTemperature()
:返回测量时该监测站测得的温度(摄氏度)。getPressure()
:返回测量时该监测站测得的气压(毫巴)。getPrimaryPollutant()
:返回测量时该监测站的主要污染物名称(例如:'pm25')。
变更日志
请参阅CHANGELOG以获取更多关于变更的信息。
测试
本软件包附带PHPUnit测试套件。要从项目目录运行测试,请执行以下命令
composer test
,或者也可以用以下方式运行
vendor/bin/phpunit
贡献
欢迎并鼓励贡献;我总是很高兴在GitHub上收到反馈或拉取请求 :) 为错误和新功能创建GitHub Issues并在你感兴趣的方面发表评论。
如果你喜欢我在做的东西,一杯额外的咖啡将非常感激 :) 你的支持帮助我把更多的时间投入到像这样的开源软件项目中。
致谢
许可
本软件包是开源软件,根据MIT许可协议授权。有关更多信息,请参阅LICENSE。