用于空气质量功能的GeoKey扩展

geokey-airqualit的Python项目详细描述


PyPI PackageTravis CI Build StatusCoveralls Test Coverage

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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
与SpringJPA相比,JavaHazelcast内存数据网格非常慢   java如何从Netbeans从命令行创建的ant项目运行单个junit测试?   java多个eclipse概要文件   java集合存储值还是引用?   java从两个自定义对象列表中删除公共元素   java密钥库、HttpClient和HTTPS:有人能给我解释一下这段代码吗?   java使用Appengine中的域别名帐户发送电子邮件   java如何在安卓中获得用户定义的“设备名称”?   java错误:包com。太阳工具。javac。util不存在   导出后Java Eclipse项目出现问题   组织。openqa。硒。WebDriverException:java。网ConnectException:无法连接到本地主机/0:0:0:0:0:0:0   java在字符串中追加文本   java在Pig中按名称获取字段?   java如何打印播放中对象的值   Java静态修饰符对运行时性能有积极影响吗?   Java计时器   java是否值得线程化一个需要1秒才能完成的操作?