All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for all known .ndax (10 new file versions)
- Support for all known .nda (25 new file versions)
- Improved .nda metadata reading
batch-convert-metadataCLI command--versionCLI flag- Support for more step types
- Support for more current ranges
- Performance improvements
- "bdf-pref" for bdf preferred columns
- columns="bdf" changes
step_capacity_ah->step_net_capacity_ahstep_energy_wh->step_net_energy_whstep_index->step_id
- Performance improvements
- step_count in .ndax ndc 17 filetype 18
- Initial nda 23 support
- Python 3.14 support
- Performance improvements
- Option to output with 'Battery Data Format' columns, use
columns="bdf"or--columns=bdf - Initial nda 22 and 26 support
- Performance improvements for non-raw cycle mode
- Repo transferred to https://github.com/EmpaEConversion/fastnda
- Improved BTS9.1 compatibility
- Typos in nda aux columns
step_type_mapfor converting step integer codes
- Bump
pyarrowversion, fixingpandasreading of arrow files
raw_categoriesoption in read() and CLI, returnsstep_typeas integer- NDA8 support
- Improved NDA 130 BTS 9.0 support
step_typecolumn is nowcategoricaltype instead ofenum
- Command-line interface
total_time_scolumn
- Column
statusbecomesstep_type software_cycle_numbermerged intocycle_modeoption
datetimecolumn, useunix_time_sinstead
- More detailed metadata reading
- Filter data using bitmask
- NDA 130 BTS9.1 returns both step time and total time
- NDC17 step count
- Consistent duplicate index handling
- Typos
- More testing
- Improved compatibility for NDC2 and NDC5
- Consistent step type naming
- Tests for auxiliary data
- NDC16 support
- NDC17 with aux support
- Empty aux columns are dropped
- Vectorized file parsing
- Switched from pandas to polars
- ruff formatting
- Time interpolation
- Duplicate indices
- Project forked to https://github.com/g-kimbell/fastnda
- Switched to semantic versioning
- Higher-precision Timestamp interpolation.
- Compatibility with PEP 639.
- Support for ndc file version 17
- Support for current range -40000
- Project moved to https://github.com/d-cogswell/NewareNDA
- Millisecond timestamp accuracy for ndc 11 and 14
- Support for OCV step type
- Additional current range
- Timestamp interpolation bug that occasionally resulted in negative dt
- Additional current range settings
- Addressed a PerformanceWarning related to the Timestamp field
- Support for ndax aux temperature (ndc version 14, filetype 5)
- Added regression tests for NewareNDAcli
- Changed the NewareNDAcli flag from --software_cycle_number to --no_software_cycle_number
- dtype specifications for auxiliary data.
- Addtional current range multipliers.
- Regression tests for software_cycle_number and cycle_mode keywords.
- Millisecond timing now read from BTS 9.1 files.
- Refactored NewareNDAx.py to explicitly treat ndc files based on version and filetype.
- Read aux temperature data from BTS 9.1 files.
- Bug fixes for BTS 9.1.
- setup.py converted to pyproject.toml
- Reworked logging functionality with new log_level keyword.
- Initial support for BTS 9.1 files.
- Additional auxiliary fields read for ndc version 11.
- Incorrect range multiplier
- Active mass and comments are read and returned as a logging messages.
- More regression tests.
- Additional hardware ranges.
- Aux voltage is now read from nda files.
- Correct voltage, current, capacity scalings for ndax files with ndc version 14 data.
- Handling of timestamps now matches Neware. Dates are read as UTC and then converted to local time zone.
- Warning now use logging.warning() instead of warnings.warn().
- Unsupported nda versions now raise exceptions.
- More robust support for nda version 130
- Github workflow with regression testing and code coverage.
- Hardware range settings.
- Issue #50 related to missing Aux data.
- Additional range setting added.
- Resolved FutureWarnings for pandas 3.0
- Expanded ndax aux channel support (ndc version 11).
- 'extras_require' added to setup.py for testing.
- Support for nda files from BTS9.
- New 'cycle_mode' keyword argument to specify how cycle number should be generated.
- Additional current ranges.
- Bug fixes for ndax support.
- Support for ndax from BTS Server 8.
- Additional ndax verison information now returned as logging.
- 'software_cycle_number=True' is now the default for ndax.
- Ability to read auxiliary data from ndax files.
- pytest regression tests for code development.
- Support for constant power charge and discharge.
- Additional current ranges.
- 'software_cycle_number=True' is one again the default behavior for nda.
- Support for constant power charge and discharge.
- Additional current ranges.
- Support for reading ndax.
- Missing current range.
- Performance improvements
- The cycle number is now read directly from the nda file for compatibility with the newest version of BTSDA. Previous numbering can be restored with the new 'software_cycle_number' flag.
- Issue #20, files failing to load.
- Updates to README.
- Significant performance improvement.
- PEP8 code formatting consistency.
- Issue #22 that occasionally resulted in incorrect temperature values.
- Support for additional current ranges and states
- Maintenance updates and code cleanup
- Conditions used for locating first data record
- Additional current ranges
- Improved performance and reduced memory usage.
- Commandline nda file conversion tool
- Performance improvements
- Added missing status and current ranges
- 'Jump' field removed
- Default index is used for the DataFrame and set_index() is no longer called
- Performance improvements
- Added missing status and current range
- Ability to read temperature fields
- Step field now matches Neware output
- Correct handling of 'SIM' steps
- Charge/discharge capacity/energy are now separate fields
- More robust error handling
- Additional hardware ranges implemented
- Cycle and Step now match Neware
- Initial release tested on nda versions 7.6 and 8.0.