Renewable Data Transfer (RENEWXfer) is an EPRI-developed Python application that enables secure, standardized extraction, staging, and transfer of renewable energy system data to external systems via SFTP.
The application supports three EPRI renewable benchmarking platforms:
- SUPER – Solar Performance and Reliability Benchmarking
- LEAP – Wind Performance Benchmarking
- BEST – BESS Benchmarking
RENEWXfer provides configuration-driven execution and auditable delivery of performance and tracker data across all supported platforms.
---
RENEWXfer provides a controlled and standardized mechanism for transferring renewable operational data. It is designed to support EPRI data collection, integration, and governance objectives through:
- Secure, auditable delivery of time-series data
- Configurable support for multiple renewable platforms (SUPER, LEAP, BEST)
- Standardized workflows for data extraction and transfer
- Support for multiple data historian sources (PI, Canary)
- Alignment with EPRI cybersecurity and data governance practices
This repository contains the core application, configuration templates, and supporting artifacts required to deploy and operate RENEWXfer.
---
- Secure SFTP transfer using SSH key- or password-based authentication
- Configurable execution across SUPER, LEAP, and BEST platforms
- Support for multiple data historian sources (PI Historian, Canary)
- Channel list–driven data extraction and tag mapping
- Time- and size-based partitioning of output data files
- Automated generation, compression, and transfer of execution logs
- Validation scripts for verifying PI tag connectivity
- Modular Python architecture for extensibility and maintainability
---
RENEWXfer/ ├── Main.py Primary execution entry point ├── validate_LEAP.py LEAP PI tag validation script ├── validate_SUPER.py SUPER PI tag validation script ├── requirements.txt Python dependency definitions ├── Pipfile Pipenv dependency management ├── constants.env Environment configuration file ├── Channel_List/ Channel lists and tag mappings │ ├── Tag_mapping_list_SUPER.csv │ ├── Tag_mapping_list_LEAP.csv │ └── Tag_mapping_list_BEST.csv ├── Functions/ Core functional modules │ ├── PI/ PI Historian data source modules │ ├── Canary/ Canary data source modules │ ├── Archive/ Archived/legacy modules │ └── Test/ Test validation scripts ├── Log_Files/ Execution and transfer logs │ ├── SUPER/ SUPER platform logs │ │ └── Trackers/ SUPER tracker-specific logs │ ├── LEAP/ LEAP platform logs │ └── BEST/ BEST platform logs ├── File_Staging/ Staged output data files │ ├── SUPER/ SUPER staged data │ │ └── Trackers/ SUPER tracker staged data │ ├── LEAP/ LEAP staged data │ └── BEST/ BEST staged data └── SSH_KEYS/ SSH private keys for authentication
---
- Python 3.8 or later
- Windows or Linux operating system with SFTP capability
- Network access to the configured data historian (PI Server or Canary API)
- Network access to the configured SFTP endpoint (if SFTP is enabled)
- Authorized SSH private key or SFTP credentials for authentication
Install dependencies using:
pip install -r requirements.txt
Alternatively, Pipenv can be used for dependency management:
pipenv install
---
Application behavior is controlled via the constants.env file. This file
defines execution parameters, platform selection, data historian source, and
transfer settings.
DATA_HISTORIAN– Set toPIfor PI Historian orCanaryfor Canary. Determines which module set underFunctions/is loaded at runtime.
SUPER– Enable SUPER data processing (1 or 0)LEAP– Enable LEAP data processing (1 or 0)BEST– Enable BEST data processing (1 or 0)
Multiple platforms can be enabled simultaneously.
Each platform has its own set of parameters:
CHANNEL_LIST_SUPER/CHANNEL_LIST_LEAP/CHANNEL_LIST_BEST– Channel list filename for data extractionDATA_FILE_MAX_LENGTH_SUPER/DATA_FILE_MAX_LENGTH_LEAP/DATA_FILE_MAX_LENGTH_BEST– Maximum number of days per output fileRAW_DATA_INTERVAL_SUPER/RAW_DATA_INTERVAL_LEAP/RAW_DATA_INTERVAL_BEST– Data extraction interval (in minutes)REMOTE_UPLOAD_FOLDER_SUPER/REMOTE_UPLOAD_FOLDER_LEAP/REMOTE_UPLOAD_FOLDER_BEST– Remote SFTP upload directoryCHANNEL_LIST_VERSION_FLAG_SUPER– Channel list version flag for SUPER (0 for old version)PERFORMANCE_ONLY– Process only performance data, excluding tracker data (1 or 0; SUPER only)
Tracker-specific parameters (SUPER only):
DATA_FILE_MAX_LENGTH_TRACKERS– Maximum days per tracker output fileRAW_DATA_INTERVAL_TRACKERS– Tracker data extraction interval (in minutes)REMOTE_UPLOAD_FOLDER_TRACKERS– Remote SFTP directory for tracker files
All referenced files (channel lists, SSH keys) must be present in their respective directories prior to execution.
---
Run the application using:
python Main.py
Execution behavior is determined by the configuration in constants.env:
- Platform selection – Which platforms (SUPER, LEAP, BEST) are enabled
- Data historian – PI Historian or Canary data source
- Workflow mode – Performance-only or combined performance + tracker (SUPER)
- SFTP transfer – Enabled or disabled per execution
For each enabled platform, RENEWXfer will:
- Load the appropriate channel list from
Channel_List/ - Extract time-series data from the configured data historian
- Stage output files in
File_Staging/<platform>/ - Transfer files to the remote SFTP endpoint (if SFTP is enabled)
- Compress and upload execution logs
---
RENEWXfer generates logs to support traceability and operational auditing. Logs are organized by platform:
Log_Files/SUPER/– SUPER performance data logsLog_Files/SUPER/Trackers/– SUPER tracker-specific logsLog_Files/LEAP/– LEAP data logsLog_Files/BEST/– BEST data logs
Each platform directory also contains an SFTP_Logs.log file for SFTP
transfer audit trails.
At the end of execution, log files are compressed and transferred to the configured SFTP destination.
---
This software is provided for authorized use under applicable EPRI agreements. Use, modification, and distribution are subject to EPRI policies and contractual terms.