跳转到主要内容

EPICS存档设备Python客户端

项目描述

Build Status Coverage Status

Python代码,用于从EPICS存档设备检索数据。

用法

时区说明

当您向aapy传递一个datetime时,它默认不知道该datetime所在的时区。它将假设它是本地时区,但会打印一条警告。如果您传递一个时区感知的datetime,则不会打印警告。您可以使用utc_datetime()作为快捷方式

>>> from aa.utils import utc_datetime
>>> utc_datetime(2019, 10, 7, 17) # 5pm UTC on 7th October 2019

获取数据

要检索数据,创建适当的fetcher

>>> from aa.js import JsonFetcher
>>> jf = JsonFetcher('archappl.diamond.ac.uk', 80)

您可以请求单个事件,返回一个ArchiveEvent对象

>>> from datetime import datetime
>>> event = jf.get_event_at('SR-DI-DCCT-01:SIGNAL', datetime.now())
WARNING:root:Assuming timezone for 2019-10-07 16:42:13.301672 is Europe/London
Archive event for PV SR-DI-DCCT-01:SIGNAL: timestamp 2019-10-07
15:42:04.876639 UTC value [301.33007915] severity 0
>>> event.value
array([300.77982715])
>>> event.utc_datetime
datetime.datetime(2019, 10, 7, 16, 2, 54, 928836, tzinfo=<UTC>)

您也可以请求一系列事件,返回一个ArchiveData对象

>>> data = jf.get_values('SR-DI-DCCT-01:SIGNAL', utc_datetime(2018, 1, 7), utc_datetime(2018, 1, 8))
>>> data.values
array([[2.51189843e-03],
   [1.56371643e-03],
   [5.54392030e-04],
   ...,
   [2.77373366e+02],
   [2.77329542e+02],
   [2.77287664e+02]])
>>> data.utc_datetimes
array([datetime.datetime(2018, 1, 6, 23, 59, 59, 3897, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 0, 0, 2, 3975, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 0, 0, 5, 4066, tzinfo=<UTC>), ...,
   datetime.datetime(2018, 1, 7, 23, 59, 53, 3885, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 23, 59, 56, 3825, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 23, 59, 59, 3726, tzinfo=<UTC>)],
  dtype=object)
>>> len(data)
28764

开发

aapy使用Pipenv来管理其依赖项。

要安装开发需求

pipenv install --dev

要运行测试和静态检查

pipenv run tests

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

aapy-0.12.tar.gz (26.4 kB 查看哈希值)

上传时间:

构建分布

aapy-0.12-py3-none-any.whl (31.0 kB 查看哈希值)

上传时间: Python 3

由以下提供支持