A library for getting data from PIServers
Project description
pyPIAF
Python bindings for the PI AF SDK
This library provides access to the PI AF SDK using the pythonnet library. It also provides simple helper method for common conversions of C# objets to python objects.
Example: Get current value of PIPoint
import pyPIAF.server.connect
import pyPIAF
from OSIsoft.AF.Asset import AFValue
from OSIsoft.AF.PI import PIPoint
from OSIsoft.AF.PI import PIServer
server: PIServer
with pyPIAF.server.connect.connect_server_ctx("SERVER_NAME") as server:
point: PIPoint = PIPoint.FindPIPoint(server, "POINT_NAME")
current_value: AFValue = point.current_value()
Example: Get the actual values in a date range as a pandas DataFrame
import pyPIAF.server.connect
from datetime import datetime
import pandas as pd
import pyPIAF
from OSIsoft.AF.Asset import AFValues
from OSIsoft.AF.Data import AFBoundaryType
from OSIsoft.AF.PI import PIPoint
from OSIsoft.AF.PI import PIServer
from OSIsoft.AF.Time import AFTime
from OSIsoft.AF.Time import AFTimeRange
server: PIServer
with pyPIAF.server.connect.connect_server_ctx("SERVER_NAME") as server:
point: PIPoint = PIPoint.FindPIPoint(server, "POINT_NAME")
end: datetime = datetime.now()
start: datetime = datetime(year=end.year, month=1, day=1)
start_time: AFTime = pyPIAF.to_af_time(start)
end_time: AFTime = pyPIAF.to_af_time(end)
time_range: AFTimeRange = AFTimeRange(start_time, end_time)
boundary_type: AFBoundaryType = AFBoundaryType.Inside
filter_expression: str = ""
include_filtered_values: bool = False
values: AFValues = point.RecordedValues(
time_range,
boundary_type,
filter_expression,
include_filtered_values,
)
data: pd.DataFrame = pyPIAF.to_dataframe(values)
Example: Get interpolated values in a date range as a pandas DataFrame
import pyPIAF.server.connect
from datetime import datetime
from datetime import timedelta
import pandas as pd
import pyPIAF
from OSIsoft.AF.Asset import AFValues
from OSIsoft.AF.PI import PIPoint
from OSIsoft.AF.PI import PIServer
from OSIsoft.AF.Time import AFTime
from OSIsoft.AF.Time import AFTimeRange
from OSIsoft.AF.Time import AFTimeSpan
server: PIServer
with pyPIAF.server.connect.connect_server_ctx("SERVER_NAME") as server:
point: PIPoint = PIPoint.FindPIPoint(server, "POINT_NAME")
end = datetime.now()
start = datetime(year=end.year, month=1, day=1)
span = timedelta(hours=1)
start_time: AFTime = pyPIAF.to_af_time(start)
end_time: AFTime = pyPIAF.to_af_time(end)
time_span: AFTimeSpan = pyPIAF.to_af_time_span(span)
time_range: AFTimeRange = AFTimeRange(start_time, end_time)
interval: AFTimeSpan = pyPIAF.to_af_time_span(span)
filter_expression: str = ""
include_filtered_values: bool = False
values: AFValues = point.InterpolatedValues(
time_range,
interval,
filter_expression,
include_filtered_values,
)
data: pd.DataFrame = pyPIAF.to_dataframe(values)
TODO
- More utility functions
Contributing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pypiaf-4.1.0.tar.gz
(10.7 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pypiaf-4.1.0-py3-none-any.whl
(10.8 MB
view details)
File details
Details for the file pypiaf-4.1.0.tar.gz.
File metadata
- Download URL: pypiaf-4.1.0.tar.gz
- Upload date:
- Size: 10.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9d5428b963d2862de30e39af2ddc8c6c3e3f8730789fd563811d505105d0d65
|
|
| MD5 |
4f7c1f5fdd32f77ec185913f6a9e1e4c
|
|
| BLAKE2b-256 |
74ba3ebf48c5a06e95d8231662591233333ae2cb6a86d259c46e57f2aa03edd4
|
File details
Details for the file pypiaf-4.1.0-py3-none-any.whl.
File metadata
- Download URL: pypiaf-4.1.0-py3-none-any.whl
- Upload date:
- Size: 10.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c97c6f760e5e369cb122b476ba6f0b307be62de243de62520b1b536c0036a08
|
|
| MD5 |
b7f4199f86bb3bccc04b5f7eef935c51
|
|
| BLAKE2b-256 |
9675f5b55be9cf18b20aaef12f067077840e0c14221d3bb9461633845b9ec1ad
|