用于空气质量功能的GeoKey扩展
geokey-airqualit的Python项目详细描述
Geokey空气质量
GeoKey扩展Air Quality功能。
安装
GeoKey空气质量要求:
- python 2.7版
- GeoKey 1.6或更高版本
从PYPI安装GeoKey空气质量:
pip install geokey-airquality
或者从克隆存储库:
cd geokey-airquality
pip install -e .
将软件包添加到已安装的应用程序:
INSTALLED_APPS+=(...'geokey_airquality',)
将模型迁移到数据库:
python manage.py migrate geokey_airquality
复制静态文件:
python manage.py collectstatic
设置一个cron作业,用于检查要通过运行完成的测量:
crontab -e
并添加:
15 0 * * * python local_settings/manage.py check_measurements
你现在可以走了!
更新
从PYPI更新GeoKey空气质量:
pip install -U geokey-airquality
将模型迁移到数据库:
python manage.py migrate geokey_airquality
复制静态文件:
python manage.py collectstatic
开发和测试
克隆存储库:
git clone git@github.com:ExCiteS/geokey-airquality.git
安装扩展以进行开发:
cd geokey-airquality
pip install -e .
将软件包添加到已安装的应用程序:
INSTALLED_APPS+=(...'geokey_airquality',)
将模型迁移到数据库:
python manage.py migrate geokey_airquality
复制静态文件:
python manage.py collectstatic
当数据库结构发生更改时,生成迁移文件(在此之后迁移以更改本地数据库):
python manage.py makemigrations geokey_airquality
运行测试:
python manage.py test geokey_airquality
检查代码覆盖范围:
coverage run --source=geokey_airquality manage.py test geokey_airquality
coverage report -m --omit=*/tests/*,*/migrations/*
api
使用OAuth访问令牌对请求进行签名以验证用户。
通过电子邮件发送csv表:
GET /api/airquality/sheet/
get added projects:
GET /api/airquality/projects/
响应:
[
{
"id": 12,
"name": "Air Quality in London"
}
]
获取个人添加的位置:
GET /api/airquality/locations/
响应:
[
{
"id": 115,
"type": "Feature",
"geometry": {
// GeoJSON point
},
"name": "South Bank",
"created": "2015-09-15T09:40:01.747Z",
"properties": {
"height": 2 // height from ground
"distance": 3.5 // distance from road,
"characteristics": null // site characteristics
},
"measurements": [
// a list of measurements
]
}
]
添加新位置
POST /api/airquality/locations/
请求正文:
{
"type": "Feature",
"geometry": {
// GeoJSON point
},
"name": "My new location",
"properties": {
"height": 4.2,
"distance": 7
}
}
响应:
{
"id": 117,
"type": "Feature",
"geometry": {
// GeoJSON point
},
"name": "My new location",
"created": "2015-09-22T07:22:08.147Z",
"properties": {
"height": 4.2,
"distance": 7,
"characteristics": null
},
"measurements": []
}
更新您的位置:
PATCH /api/airquality/locations/:location_id/
请求正文:
{
"type": "Feature",
"geometry": {
// GeoJSON point
},
"name": "My updated location",
"properties": {
"height": 4.2,
"distance": 12
}
}
响应:
{
"id": 117,
"type": "Feature",
"geometry": {
// GeoJSON point
},
"name": "My updated location",
"created": "2015-09-22T07:22:08.147Z",
"properties": {
"height": 4.2,
"distance": 12,
"characteristics": null
},
"measurements": []
}
删除您的位置:
DELETE /api/airquality/locations/:location_id/
向您的位置添加新度量值
POST /api/airquality/locations/:location_id/measurements/
请求正文:
{
"barcode": 145023
"called": "2015-12-22T07:08:08.121Z",
"started": "2015-12-23T09:12:02.247Z"
}
响应:
{
"id": 115,
"barcode": "145023",
"started": "2015-12-23T09:12:02.247Z",
"finished": null,
"properties": {
"results": null, // measurement results
"additional_details": null // additional details (per measurement)
}
}
更新测量值:
PATCH /api/airquality/locations/:location_id/measurements/:measurement_id/
请求正文:
{
"barcode": 145023,
"called": "2015-12-23T09:22:01.147Z",
"finished": "2015-12-23T09:22:01.147Z",
"project": "45",
"properties": {
"results": 64.78,
"additional_details": null
}
}
如果正在描述“完成”,则“调用”也应出现以计算实际时差。否则将使用当前时间。
如果测量已收集“开始”、“完成”和“结果”,则仍将保存,直到“项目”附加到测量。附加时,将创建一个新的贡献,同时完全删除当前度量。
响应(无项目时):
{
"id": 154,
"barcode": "451001",
"started": "2015-11-29T12:01:04.178Z",
"finished": "2015-12-23T09:22:01.147Z",
"properties": {
"results": 64.78,
"additional_details": null
}
}
删除测量值:
DELETE /api/airquality/locations/:location_id/measurements/:measurement_id/