- Deployment: Move from setup.py to pyproject.toml (PR #114, #115)
- Feature: Introduce SofaStream class for reading parts of large Sofa files without reading the entire file (PR #90, 97)
- Documentation: Add improved landing page for documentation on readthedocs.io and harmonize documentation (PR #80, 87, 88, 89, 92, 95, 96, 98, 101, 103, 105, 106, 107, 109)
- Enhancement: When manually updating the conventions with sofar.update_conventions, the conventions are first downloaded to a temporary folder and compared to the existing conventions without overriding them (they were directly overridden before). The user is then informed about the changes and can continue or abort updating the conventions (PR #94)
- Enhancement: Do not write __Encoding field for string variables, because it could cause issues with the Matlab SOFAtoolbox (PR #110)
- Update for numpy 2.0 (PR #100)
- Update documentation to pydata theme (PR #78)
- Update testing for pytest 8.0 and above (PR #79)
- Fix for working with rye package manager (PR #75)
- Add testing for Python 3.12 (PR #76)
- Fix deploying to PyPi.org
- Deprecate FreeFieldDirectivityTV 1.0 in favor of FreeFieldDirectivityTV 1.1 (according to sofaconventoins.org and AES69-2022)
- Add sofar.read_sofa_as_netcdf for reading SOFA files with erroneous data
- Document SOFA conventions on https://sofar.readthedocs.io/en/stable/resources/conventions.html. Sofa.info() will this be deprecated in sofar v1.3.0
- sofar.read_sofa and sofar.write_sofa now accept filenames and path objects
- Add testing for Python 3.11
- Use SOFA conventions of version 2.1 from https://github.com/pyfar/sofa_conventions
- Verify SOFA data against all rules defined in the SOFA standard AES69-2022
- Add Sofa.upgrade_convention for upgrading outdated conventions. This now uses explicit upgrade rules from https://github.com/pyfar/sofa_conventions
- Remove upgrade functionality from Sofa.verify, sofar.write_sofa, and sofar.read_sofa for a more clear separation of functionality
- Add Sofa.add_missing to add missing default data to a SOFA object using the default values specified by the SOFA convention
- Add default parameter value to Sofa.info
- Make sofar.update_conventions a public function again
- Improve documentation and verbosity of command line output
- Add private function to check congruency of conventions stored as part of SOFAtoolbox and on sofaconventions.org
- Move to Circle CI and improve testing
- Improvement sofar.read: Files with unknown Convention versions can now be read by updating to the latest or a specific version.
- Improvement sofar.read: Reporting custom variables when reading SOFA files from disk is now optional and no longer a warning.
- Improvement Sofa.inspect: SOFA objects that violate the SOFA convention can now be inspected. In this case, the violations are printed as message instead of raising an Error.
- Improvement Sofa.verify: SOFA objects can now be verified without any output in case the output is not desired when calling Sofa.inspect.
- Feature: Add sofar.inspect function to get a quicker and better overview of the data inside a SOFA object
- Documentation: Add example of plotting HRIRs/HRTFs on the horizontal plane using pyfar>=0.4.0
- Feature: Add Sofa.delete function to delete optional variables and attributes from SOFA objects
- Bugfix: sofar.read_sofa added data with default values from the SOFA convention even if the data were not contained in the SOFA-files. This is now fixed.
- Bugfix: N:LongName (attribute for SOFA conventions of Type TF, TF-E and TFE) is now optional as defined in AES69-2020.
- Improvement: Do not change time stamp of SOFA files in sofar.read_sofa
- Improvement: Multi-unit strings, e.g., 'degree, degree, meter' can now also be separated by spaces or commas only, e.g., 'degree degree,meter' as suggested by AES69-2020 (Issue #21)
- Improvement: Add testing for creating, writing, and reading Sofa files containing only mandatory data.
- Bugfix: Patch for correctly creating Sofa objects if the path to sofar contains underscores '_'
- Testing: Add missing dependency to setup.py
- Testing: Only test wheel during CI
- Bugfix: Patch for correctly loading SOFA files with custom data
- Documentation: Add examples for using pyfar to work with sofar and SOFA files
- First release on PyPI