OpenNEM澳大利亚能源数据
opennem的Python项目详细描述
OpenNEM能源市场数据访问
OpenNEM项目旨在使国家电力市场(NEM)数据的丰富性更容易被更多的用户访问。在
该工具包支持从各种网络下载、镜像和访问能源数据
位于https://opennem.org.au的项目主页
在Docker上提供https://hub.docker.com/r/opennem/opennem
目前支持:
- 澳大利亚NEM:https://www.nemweb.com.au/
- 西澳大利亚能源市场:http://data.wa.aemo.com.au/
要求
- Python3.7+(参见
.python-version
和pyenv
) - Docker和
docker-compose
如果您想运行本地开发堆栈
快速启动
用诗歌:
$ poetry install
$ source .venv/bin/activate
$ ./init.sh
使用pip+venv:
^{pr2}$安装
您可以使用python pip
安装此项目:
$ pip install opennem
也可以选择docker:
$ docker pull opennem/opennem
与sqlite支持捆绑在一起。其他数据库驱动程序是可选的,默认情况下不安装。安装受支持的数据库驱动程序:
博士后:
$ pip install psycopg2
安装附加组件
该软件包包含可安装的额外模块:
$ poetry install -E postgres
额外服务列表包括:
postgres
-Postgres数据库驱动程序server
-API服务器
使用
列出爬虫
$ scrapy list
爬行
$ scrapy crawl au.nem.current.dispatch_scada
发展
此项目使用新的pyproject.toml
项目和生成规范文件。要使用它,请使用可安装在Windows、MacOS和Linux上的poetry
工具:
https://python-poetry.org/docs/
诗歌安装说明见:
https://python-poetry.org/docs/#installation
默认情况下,poetry将在您的主元数据目录中安装虚拟环境。一个好的替代方法是使用以下设置在本地为每个项目安装venv
:
$ poetry config virtualenvs.in-project true
这将在名为.venv
的文件夹中的项目文件夹中创建虚拟环境。默认情况下,git会忽略此文件夹。在
使用诗歌设置虚拟环境和安装需求:
$ poetry install
要激活虚拟环境:
$ poetry shell
或者您可以只激活标准venv
$ source .venv/bin/activate
从环境变量读取设置。环境变量可以从文件夹根目录下的.env
文件中读取。通过将.env.sample
文件复制到.env
来设置环境。示例文件中的默认值映射到docker-compose.yml
中的设置
有一个docker-compose
文件将带来一个本地数据库:
$ docker-compose up -d
使用alembic启动数据库迁移:
$ alembic upgrade head
在根文件夹中运行scrapy以获取选项:
$ scrapy
opennem
cli接口提供了其他选项和设置:
$ opennem -h
Visual Studio代码的设置存储在.vscode
中。使用pylint
、black
和{
测试
测试在tests/
使用以下内容运行测试:
$ pytest
运行后台测试观察程序
$ ptw
生成发布
脚本build-release.sh
将标记一个新版本,构建docker映像,标记git版本,推送到GitHub并推送最新版本
发布到PyPi
体系结构概述
该项目使用Scrapy从受支持的能源市场获取数据,SQLAlchemy用于存储数据,Alembic用于数据库迁移。数据库存储已经用sqlite、postgres和mysql进行了测试。在
scrapy架构概述:
代码导航
opennem/spiders
中的Spider定义- 正在处理
opennem/pipelines
中爬网的管道 - 支持能源市场的数据库模型存储在
opennem/db/models
部署爬网程序
您可以通过以下方式将爬网程序部署到scrapyd服务器:
$ scrapyd-deploy
如果您没有该命令并且它不可用,请使用以下命令安装它:
$ pip install scrapyd-client
它将安装scrapyd-client工具。项目设置从scrapy.cfg
读取在
- 项目
标签: