-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP - Cyclefeatures #568
base: master
Are you sure you want to change the base?
WIP - Cyclefeatures #568
Conversation
add class BEEPCycleFeatureMatrix to combine features which were generated at every diagnostic cycle
Add CycleFeatures classes and change existing class names to EarlyFeatures where appropriate. HPPCResistanceVoltageCycleFeatures returns hppc resistance features at every diagnostic. DiagnosticCycleFeatures returns some standard quantities, like discharge capacity of various RPTs across all diagnostic cycles. CyclingProtocol returns cycling protocol information for the cell. This was integrated from the ChargingProtocol class written by Amalie Trewartha.
Update DEFAULT_HYPERPARAMETERS and dependent calls to match updates to intracell_analysis.py. Modify some variable names for easier understanding and consistency across files (e.g. using "diag_pos" in for loop instead of "i"). Update dataframe construction to match updates in intracell_analysis.py.
Modify reference electrode data to be a dictionary of rates and rate file names, instead of file names for one rate; these changes are necessary for other updates which seek to correct for effective rate in the electrodes and utilize multiple rate data of the electrodes. Incorporate changes for using alternative error metrics, such as dVdQ instead of the V-Q curve.
|
I think this is a great idea, thanks for the contribution! The specific implementation can be improved upon. In fact, it might be worth replacing or overhauling the BEEPFeatureMatrix class to accommodate this kind of feature matrix (e.g., n_total_cycles_across_all_files x m_features rather than n_files x m_features). This is something I can do using your fork; this will be faster than going back/forth on changes in a PR. I'll include unit tests for this. To do this though, I need two things from @pasinger
|
Hey @ardunn, sounds good. I should have updated the documentation - the BEEPCycleFeatureMatrix is already outputting a feature matrix of dimensions n_total_cycles_across_all_files x m_features. I am certainly open to reworking the class in other ways if there are benefits to it, though! I'll work on getting you permission now, then I'll send you a csv on slack of expected values for a particular cell. Does that work? |
Hey @pasinger, so after looking at this in depth, these are the things we should do to bring this PR to completion. 1. Merging
|
Done
Still to do (@ardunn)
Still to do (@pasinger )
|
Merging code I have written offline to the main branch. These updates are to enable creation of beep feature matrix with diagnostic features calculated across cycles. Before this update, features are only calculated at the first two diagnostics and a difference of the two is reported.
Updates to intracell_analysis work towards using multiple rate data in the electrodes. Capability for fitting on discharge data has been added and is now the default mode.
Tests need to be written still. I am seeking some guidance on how to do this.
Some class names have changed, so I imagine there may be some changes to files that I did not capture here, such as files that are used to generate the pipeline data and call on the effected classes. I updated dependent files for using the build_feature_matrix notebook.
Issues fixed:
Addresses issue #567