Source code for preparenovonix.novonix_prep
import sys
import numpy as np
import preparenovonix.novonix_variables as nv
from preparenovonix.novonix_io import get_infile
from preparenovonix.novonix_io import icolumn
from preparenovonix.novonix_io import isnovonix
from preparenovonix.novonix_add import create_reduced_protocol
from preparenovonix.novonix_add import novonix_add_loopnr
from preparenovonix.novonix_add import novonix_add_state
from preparenovonix.novonix_clean import cleannovonix
[docs]def prepare_novonix(
file_to_open, addstate=False, lprotocol=False, overwrite=False, verbose=False
):
"""
Given a Novonix data file, it prepare it to be handled.
Parameters
-----------
infile : string
Name of the input Novonix file
addstate : boolean
Yes = add a State column
lprotocol : boolean
Yes = add to the initial header a 'reduced' protocol with a step per line and add lines with the loop number and protocol lines
overwrite: boolean
Yes : overwrite the input file
No : a new file will be created, appending '_prep' at the end of the
original file file
verbose : boolean
Yes = print out some informative statements
Notes
-----
This function returns a clean Novonix file with, possibly,
3 extra columns.
Examples
---------
>>> import preparenovonix.novonix_prep as prep
>>> prep.prepare_novonix('example_data/example_data.csv',addstate=True,lprotocol=True,overwrite=False,verbose= False)
File example_data_prep.csv has been prepared.
"""
# Get the input file to work on
infile, fname = get_infile(file_to_open, overwrite=overwrite)
# Check if the file has the expected structure for a Novonix file
answer = isnovonix(infile)
if not answer:
sys.exit("STOP Input not from Novonix, {}".format(infile))
# Clean the Novonix file
cleannovonix(infile)
if addstate:
# Check if the file has a State column and if not, create it
novonix_add_state(infile, verbose=verbose)
if lprotocol:
# Check if the file has a Loop number and Protocol line columns
# and if not, create it
novonix_add_loopnr(infile, verbose=verbose)
print("File {} has been prepared.".format(fname))
if __name__ == "__main__":
if len(sys.argv) > 1:
prepare_novonix(
sys.argv[1], addstate=True, lprotocol=True, overwrite=False, verbose=True
)