Package to extract binary files into pandas dataframes
Project description
RPH extraction
Contains a tool to read a .rph file into a RphData structure.
Usage
A simple example is given below:
from AmiAutomation import RphData
data = RphData.rphToDf(path = "path_to_rph_file")
# Table data inside a dataframe
dataframe = data.dataFrame
Binaries extraction
This package contains the tools to easily extract binary data from PX3's:
- Heat Log
- 2 Second Log
- Wave Log
- Composite
- Histogram
Into a pandas dataframe for further processing
Usage
Importing a function is done the same way as any python package:
from AmiAutomation import PX3_Bin, LogData
From there you can call a method with the module prefix:
dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries")
or
dataFrame = LogData.binFileToDF(path = "C:\\Binaries")
LogData Methods
You can get Binary log data in a LogData format that contains useful data about the binary file, including samples inside a pandas dataframe
LogData.binFileToDF
Unpacks binary file into LogData
-
Parameters:
-
path : str Complete file path
-
extension : str, optional Explicitly enforce file extension. ex: 'bin'
-
null_promoting : dict, optional A dictionary with a .NET Source Type key and a value of either one of the following (default, object, float, Int64, string, error).
The possible dictionary keys are the .NET simple types:
- "SByte" : Signed Byte
- "Byte" : Unsigned Byte
- "Int16" : 16 bit integer
- "UInt16" : 16 bit unsigned integer
- "Int32" : 32 bit integer
- "UInt32" : 32 bit unsigned integer
- "Int64" : 64 bit integer
- "UInt64" : 64 bit unsigned integer
- "Char" : Character
- "Single" : Floating point single precision
- "Double" : Floating point double precision
- "Boolean" : bit
- "Decimal" : 16 byte decimal precision
- "DateTime" : Date time
This dictionary values determines how null values in deserialization affect the resulting LogData dataframe column:
- "default" : use pandas automatic inference when dealing with null values on a column
- "object" : The returned type is the generic python object type
- "float" : The returned type is the python float type
- "Int64" : The returned type is the pandas Nullable Integer Int64 type
- "string" : Values are returned as strings
- "error" : Raises and exception when null values are encountered
-
-
Returns:
- LogData
- Structure containing most file data
- LogData
Examples
Simple file conversion
from AmiAutomation import LogData
#This returns the whole data
logData = LogData.binFileToDF("bin_file_path.bin")
#To access samples just access the dataframe inside the LogData object
dataFrame = logData.dataFrame
Conversion with null promoting
from AmiAutomation import LogData
#Adding null promoting to handle missing values in these types of data as object
logData = LogData.binFileToDF("bin_file_path.bin", null_promoting={"Int32":"object", "Int16":"object", "Int64":"object"})
#To access samples just access the dataframe inside the LogData object
dataFrame = logData.dataFrame
This method can also be used to retrive the data table from inside a ".cpst" or ".hist" file, detection is automatic based on file extension, if none is given, ".bin" is assumed
PX3_Bin Methods
This method returns a single pandas dataframe containing extracted data from the provided file, path or path with constrained dates
-
file_to_df ( path, file, start_time, end_time, verbose = False )
-
To process a single file you need to provide the absolute path in the file argument
dataFrame = PX3_Bin.file_to_df(file = "C:\\Binaries\\20240403T002821Z$-4038953271967.bin")
- To process several files just provide the directory path where the binaries are (binaries inside sub-directories are also included)
dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\")
- You can constrain the binaries inside a directory (and sub-directories) by also providing a start-date or both a start date and end date as a python datetime.datetime object
import datetime
time = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM
### This returns ALL the data available in the path from the given date to the actual time
dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time)
import datetime
time_start = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM
time_end = datetime.datetime(2020,2,15,13,45) # February 15th 2020, 1:45 PM
### This returns all the data available in the path from the given 15 minutes
dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time_start, end_time=time_end )
Tested with package version
- pythonnet 2.5.1
- pandas 1.1.0
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
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
File details
Details for the file AmiAutomation-0.1.4.2.tar.gz.
File metadata
- Download URL: AmiAutomation-0.1.4.2.tar.gz
- Upload date:
- Size: 118.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebe9d22652bb75a8e380642b9d3e44a8cd5f6346cf1fa3ca5c4077dbbe0d3d8e
|
|
| MD5 |
fbbc09bdb6bac7ca48ced3619247c310
|
|
| BLAKE2b-256 |
6cb51a9152dd7bb2e02b011f50ad0c5e57c7686ac57ff6598942d4fa1948d1d5
|
File details
Details for the file AmiAutomation-0.1.4.2-py3-none-any.whl.
File metadata
- Download URL: AmiAutomation-0.1.4.2-py3-none-any.whl
- Upload date:
- Size: 118.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c982c3df15f6a1be2e9a96d169422949a7280fed170496a97c92a5353db6db48
|
|
| MD5 |
a08c026a433ff013e2d76c87be08f3e3
|
|
| BLAKE2b-256 |
3bf2dd643aff1d3860ae7f4fff17bb30dedba9ba58e2f3c43adb3347630d5d5a
|