nrgpy.api package#

Submodules#

nrgpy.api.auth module#

class nrgpy.api.auth.nrg_api(client_id='', client_secret='')[source]#

Bases: object

Parent class for NRG API functionality

load_token(filename='.nrgpy_token')[source]#

read session token from pickle file

maintain_session_token(filename='.nrgpy_token')[source]#

maintain a current/valid session token for data service api

prepare_file_bytes(filename='')[source]#
request_session_token()[source]#

generates a new session token for convert service api

requires an active account with NRG Systems. to sign up for an account, go to: https://services.nrgsystems.com

Parameters:
client_idstr

obtained from NRG Systems

client_secretstr
Returns:
session_tokenstr

valid for 24 hour

session_start_timedatetime

start time of 24 hour countdown

save_token(filename='.nrgpy_token')[source]#

save session token in token pickle file

token_valid()[source]#

check if token is still valid

Parameters:
session_start_timedatetime

generated at time of token request

Returns:
statusbool

true if still valid, false if expired

nrgpy.api.catalog module#

class nrgpy.api.catalog.nrg_api_catalog(serial_number='', site_number='', start_date='2014-01-01', end_date='2023-12-31', client_id='', client_secret='', **kwargs)[source]#

Bases: nrg_api

Uses NRG hosted web-based API to catalog of available data in text format To sign up for the service, go to https://services.nrgsystems.com/

Parameters:
serial_numberstr or int

serial number of data logger (like, 820612345)

site_numberstr or int

up to 6-digit site number

start_datestr

“YYYY-MM-DD HH:MM:SS” format, if just date it will return the whole day times are in logger local time

end_datestr

“YYYY-MM-DD HH:MM:SS” format, if just date it will return the whole day times are in logger local time

client_idstr

provided by NRG Systems

client_secretstr

provided by NRG Systems

Returns:
object

export object

Examples

Check for available data files for site number 6

>>> import nrgpy
>>> client_id = "contact support@nrgsystems.com for access"
>>> client_secret = "contact support@nrgsystems.com for access"
>>> catalog = nrgpy.nrg_api_catalog(
        client_id=client_id,
        client_secret=client_secret,
        site_number=6,
        serial_number=820600019,
        start_date="2020-05-01",
        end_date="2020-05-03",
        save_file=False
    )
data_catalog()[source]#

nrgpy.api.convert module#

class nrgpy.api.convert.nrg_api_convert(rld_dir='', out_dir='', filename='', site_filter='', filter2='', start_date='1970-01-01', end_date='2150-12-31', client_id='', client_secret='', encryption_pass='', header_type='standard', nec_file='', export_type='meas', export_format='csv_zipped', progress_bar=True, **kwargs)[source]#

Bases: nrg_api

Uses NRG hosted web-based API to convert RLD and RWD files to text format To sign up for the service, go to https://services.nrgsystems.com/

Parameters:
rld_dirstr (path-like)

path to rld file directory

out_dirstr (path-like)

path to save text export files

filenamestr

provide for single file conversion

site_filterstr, optional

text filter for limiting file set

filter2str, optional

another text filter…

start_datestr, optional

text start date to filter on “YYYY-mm-dd”

end_datestr, optional

text end date to filter on “YYYY-mm-dd”

client_idstr

provided by NRG Systems

client_secretstr

provided by NRG Systems

tokenstr

deprecated, for beta conversion service users

encryption_passstr, optional

password for rld files (set in logger)

header_typestr

[standard], columnonly, or none

nec_filestr, optional

path to NEC file for custom export formatting

export_typestr

[meas], samples, diag, comm

Examples

Convert a single raw data file to Text with NRG Convert API

>>> import nrgpy
>>> filename = "/home/user/data/sympro/000123/000123_2019-05-23_19.00_003672.rld
>>> client_id = "contact support@nrgsystems.com for access"
>>> client_secret = "contact support@nrgsystems.com for access"
>>> converter = nrgpy.nrg_api_convert(
        file_filter=file_filter,
        filename=filename,
        client_id=client_id,
        client_secret=client_secret,
    )

Convert a folder of raw data files to Text with NRG Convert API

>>> import nrgpy
>>> file_filter = "000175"
>>> rld_directory = "rlds"
>>> txt_dir = "/home/user/data/sympro/000123/txt/"
>>> client_id = "contact support@nrgsystems.com for access"
>>> client_secret = "contact support@nrgsystems.com for access"
>>> converter = nrgpy.nrg_api_convert(
        file_filter=file_filter,
        rld_dir=rld_directory,
        out_dir=txt_dir,
        client_id=client_id,
        client_secret=client_secret,
        start_date="2020-01-01",
        end_date="2020-01-31",
    )
>>> converter.process()
process()[source]#
single_file(rld)[source]#

nrgpy.api.export module#

class nrgpy.api.export.nrg_api_export(out_dir='', serial_number='', out_file='', start_date='2014-01-01', end_date='2023-12-31', client_id='', client_secret='', nec_file='', export_type='meas', text_timestamps=False, save_file=True, **kwargs)[source]#

Bases: nrg_api

Uses NRG hosted web-based API to download data in text format To sign up for the service, go to https://services.nrgsystems.com/

Parameters:
out_dirstr (path-like)

path to save exported data

out_filestr

(optional) filename to save

serial_numberstr or int

serial number of data logger (like, 820612345)

start_datestr

“YYYY-MM-DD HH:MM:SS” format, if just date it will return the whole day times are in logger local time

end_datestr

“YYYY-MM-DD HH:MM:SS” format, if just date it will return the whole day times are in logger local time

client_idstr

provided by NRG Systems

client_secretstr

provided by NRG Systems

save_filebool

(True) whether to save the result to file

nec_filestr, optional

path to NEC file for custom export formatting

text_timestampsbool

get export data with text timestamps instead of datetime

export_typestr

[meas], samples, diag, comm

Returns:
object

export object that includes an nrgpy reader object

Examples

Download 3 days of data with an NEC file applied

>>> import nrgpy
>>> client_id = "contact support@nrgsystems.com for access"
>>> client_secret = "contact support@nrgsystems.com for access"
>>> exporter = nrgpy.nrg_api_export(
        client_id=client_id,
        client_secret=client_secret,
        out_dir=txt_dir,
        nec_file='12vbat.nec',
        serial_number=820600019,
        start_date="2020-05-01",
        end_date="2020-05-03",
        text_timestamps=False,
        save_file=False
    )
>>> reader = exporter.reader
>>> reader.format_site_data()
>>> if reader:
>>>     print(f"Site number               : {reader.site_number}")
>>>     print(f"Site description          : {reader.site_description}")
>>>     reader.interval_check = nrgpy.check_intervals(reader.data)
>>> else:
>>>     print("unable to get reader")
export()[source]#

nrgpy.api.upload module#

class nrgpy.api.upload.nrg_api_upload(client_id='', client_secret='', filename='', rld_dir='', site_filter='', site_filter2='', start_date='1970-01-01', end_date='2150-12-31')[source]#

Bases: nrg_api

upload_directory(progress_bar=True)[source]#
upload_file()[source]#

Module contents#