All notable changes to FIREDpy will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Regoranized code to allow for Python package installation
- Moved all Python scripts to
firedpy/folder.- Scripts in
src/moved directly intofiredpy/.src/spatial/moved tofiredpy/utilities/spatial/.
- Scripts in
bin/moved directly intofiredpy/.bin/firedpy.pymoved tofiredpy/run.pyto avoid name conflicts with package.
- Scripts in
utilities/moved tofiredpy/utilities/.
- Scripts in
- Moved code within scripts in general reorganization effort
- Moved "HELP" string constants from
src/__init__.pyto dictionary infirepy/help.py. - Various other portions of code shifted around as well, too many to outline briefly.
- Moved "HELP" string constants from
- Moved data in
ref/intofiredpy/data/which is now handled as embedded package data.
- Moved all Python scripts to
-
Began process of refactoring to comply with Python Enhancement Proposal (PEP) recommendations:
- Notable PEP recommendations include:
- PEP-8: Style Guide for Python Code
- This is somewhat flexible, but is generally considered as a set of standards, is beneficial to readability, and is built into code linting checks embedded in continous integration and deployment (CI/CD).
- https://peps.python.org/pep-0008/
- PEP-257: Docstring Conventions
- Provides a human readable description of function/class purpose, arguments, and outputs.
- Will enable automated documentation with tools such as Sphinx (https://www.sphinx-doc.org/en/master/).
- https://peps.python.org/pep-0257/
- PEP-8: Style Guide for Python Code
- Notable PEP recommendations include:
- Pip Dependencies
- Added a
requirements.txtfile. - Replicates the
environment.yamlfor conda. - Is called throught
setup.pywhich is coordinated throughpyproject.tomlvia thedynamicentry ("version" and "dependencies")
- Added a
- Removed most type hinting and began inevitable debate over utility of practice in this context.
- Reasons include:
- Redundancy with docstring type declarations.
- Prioritization of simplicity and quick development time over benefits of IDE integration and enhanced coder type awareness.
- Lack of consistent, dedicated development team for proper implementation (code will be managed by rotating graduate students from different departments).
- Inconsistent use of hints in existing code base.
- Reasons include:
- Packaging code added to
pyproject.tomlfile, which is recommended practice as per PEP-621: - Simple GDAL discovery routine added to
setup.pyscript:- Called through
setup.py. - Enables firedpy to use existing system installations of GDAL/OGR.
- Keeps Python environment lighter weight and reduces installation times.
- Provides an alternative to conda for users who prefer native Python package installations (e.g., Python Installs Packages or pip).
- Is a necessary step for hosting firedpy on the Python Packaging Index (PyPI): https://pypi.org/.
- Called through
- Moved all print statements to logs:
- Initial move, can improve logging later
- Writes logs to a file
- Includes datetime, file, and line number for each statement
- Still prints to stdout
- Map of MODIS tile IDs added to firedpy/data/images
- Should help both to identify target MODIS tiles and to visualize part of the firedpy classification process.
- Temporal range: Nov 2000 - July 2024
- Parameters
- CONUS
- Temporal: 5 days
- Spatial: 1 pixel
- GLOBAL
- Temporal: 5 days
- Sptail: 1 pixel
- CONUS
- Changed spatial and temporal aggregtation to 5 days, 1 pixels for all countries
- Bug fixes
- Optimized edge case algorithm
- New MODIS v6.1
- Extended time series
- Initial FIREDpy release
- Temporal range: 2001 - 2021
- Parameters
- CONUS
- Temporal: 11 days
- Spatial: 5 pixels
- GLOBAL
- Temporal: variable
- Sptail: variable
- CONUS
- Validations: CONUS burned area comparison using MTBS and NIFC perimeters
- New features and capabilities
- New data sources or processing methods
- New output formats or analysis tools
- Improvements to existing functionality
- Performance optimizations
- API updates (backward compatible)
- Features that have been removed
- Bug fixes and error corrections
- Performance improvements
- Documentation updates
- Core algorithm improvements (e.g., Köppen optimization)
- Breaking changes to API or data formats
- Major architectural changes
- Individual improvements (e.g., cFRP integration, speed integration)
- New features that are backward compatible
- New data sources or processing methods
- Bug fixes and small performance updates
- Documentation improvements
- Code refactoring without functional changes
This changelog is maintained as part of the FIREDpy development workflow. See CONTRIBUTING.md for development guidelines and development_workflow.md for versioning policies.