nrgpy is the Python package for processing NRG Data Files
| Website and source | https://github.com/nrgpy/nrgpy | 
| Documentation | https://nrgpy.github.io/nrgpy/index.html | 
| IEA Task 43 Parser | https://github.com/nrgpy/nrg-parser | 
| Support | support@nrgsystems.com | 
It provides tools for:
- Converting binary ".rld" and ".rwd" files to text format
- using locally installed SymphoniePRO Desktop Software and Symphonie Data Retriever
- using NRG Cloud API (compatible with Linux!) *(SymphoniePRO only at this time)
 
- Reading Symphonie text exports, LOGR dat, and Spidar zip/csv files into Pandas dataframes
- Timestamp adjustment (of text files)
- Simple quality checks on data
See our Contributing guidelines for how to be a part of this project.
pip install nrgpy
Log files and NRG Cloud token files will be generated when using the app. These files can be found in your '''home''' directory:
C:\Users\{username}\.nrgpy\
/home/{username}/.nrgpy/
For more examples see the Documentation: https://nrgpy.github.io/nrgpy/index.html
import nrgpy
date_filter = '2018-10' # filter on any text in the filenames
text_folder_name = 'text_outputs/'
converter = nrgpy.local_rld(rld_dir='', out_dir=text_folder_name, file_filter=date_filter)
converter.convert()import nrgpy
file_filter = "000110"
rld_directory = "rlds"
client_id = "https://cloud.nrgsystems.com/data-manager/api-setup"
client_secret = ""
converter = nrgpy.cloud_convert(
    file_filter=file_filter, 
    rld_dir=rld_directory, 
    client_id=client_id,
    client_secret=client_secret,
    start_date="2019-11-01",
    end_date="2019-11-30",
)
converter.process()import nrgpy
filename = "path/to/rld"
txt_dir = "path/to/txt/"
client_id = "https://cloud.nrgsystems.com/data-manager/api-setup"
client_secret = ""
converter = nrgpy.CloudConvert(
    filename=filename, 
    client_id=client_id,
    client_secret=client_secret,
)file_filter = "000110"
import nrgpy
reader = nrgpy.SymProTextRead()
reader.concat_txt(
    txt_dir=text_folder_name, 
    file_filter=file_filter, 
    start_date="2019-11-01",
    end_date="2019-11-30",
)import nrgpy
file_filter = '0434201902' # for Feb 2019 files from site 0434
rwd_directory = 'C:/Users/[user]/rwd/'
out_directory = 'C:/Users/[user]/txt/'
converter = nrgpy.local_rwd(file_filter=file_filter, rwd_dir=rwd_directory, out_dir=out_directory)
converter.convert()import nrgpy
rwd_directory = '/home/user/datafiles/rwd'
out_directory = '/home/user/datafiles/txt'
wine_directory = '/home/user/prefix32/drive_c/' # path to wine's "C:\" drive
converter = nrgpy.local_rwd(
                file_filter=file_filter, 
                rwd_dir=rwd_directory, 
                out_dir=out_directory,
                wine_folder=wine_directory,
                use_site_file=False # set to True to use site files
            )
converter.convert()You can also convert a single file with SDR, and save it in the same directory:
import nrgpy
filename = '/path/to/file'
converter = nrgpy.local_rwd(filename=filename)import nrgpy
dt = 'rwd'
txt_file = '/path/to/file.txt'
reader = nrgpy.read_text_data(data_type=dt, filename=txt_file)or concatenate a whole lot of files:
dt = 'rwd'
txt_dir = '/path/to/text/files'
file_filter = 'text_in_filenames_you_want'
reader = nrgpy.read_text_data(data_type=dt, txt_dir=txt_dir, file_filter=file_filter)
reader.concat()Spidar Vertical Profiler remote sensors generate archived csv data files in a Zip format.
These can be read directly into the spidar_txt_read method. See the docstring in spidar_txt.py for more information.
Eg.
In [1]: import nrgpy
In [2]: fname = "/spidar/1922AG7777_CAG70-SPPP-LPPP_NRG1_AVGWND_2019-07-07_1.zip"                            
In [3]: reader = nrgpy.SpidarRead(filename=fname)                                                                              
In [4]: reader.heights                                                                                                         
Out[4]: [40, 60, 80, 90, 100, 120, 130, 160, 180, 200]
In [5]: reader.data                                                                                                            
Out[5]: 
                     pressure[mmHg]  temperature[C]  ...  dir_200_std[Deg]  wind_measure_200_quality[%]
Timestamp                                            ...                                               
2019-07-06 23:40:00          749.66           24.13  ...             28.77                           68
2019-07-06 23:50:00          749.63           24.08  ...             14.31                            0
2019-07-07 00:00:00          749.64           23.99  ...             20.59                            0
...


