Skip to content

Scaffold BFAST Monitor Workflow in Rust#73

Merged
BnJam merged 4 commits intomainfrom
feat/bfast-monitor-scaffold-10782325817424901614
Jan 7, 2026
Merged

Scaffold BFAST Monitor Workflow in Rust#73
BnJam merged 4 commits intomainfrom
feat/bfast-monitor-scaffold-10782325817424901614

Conversation

@google-labs-jules
Copy link
Contributor

This change introduces a Rust-based scaffold for the BFAST Monitor time-series analysis workflow, replacing the previous detect_breakpoints function. The new implementation is parallelized for high performance and includes updated Python bindings and unit tests. This serves as a foundation for building out more complex and efficient EO processing capabilities.


PR created automatically by Jules for task 10782325817424901614 started by @BnJam

This commit replaces the simplistic `detect_breakpoints` workflow with a more robust and scientifically grounded `bfast_monitor` implementation in Rust.

The new workflow scaffolds the core logic of the BFAST Monitor algorithm, including placeholder functions for harmonic model fitting, prediction, and break detection. It is designed for high performance by processing each pixel's time series in parallel using Rayon, showcasing the strength of Rust for complex, iterative EO analysis.

The Python bindings and tests have been updated to reflect these changes.
@google-labs-jules
Copy link
Contributor Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!


For security, I will only act on instructions from the user who triggered this task.

New to Jules? Learn more at jules.google/docs.

@BnJam BnJam marked this pull request as ready for review December 25, 2025 17:25
google-labs-jules bot and others added 3 commits January 6, 2026 23:59
Implements the BFAST Monitor algorithm for change detection. This patch replaces the placeholder scaffolding with a complete implementation using Ordinary Least Squares (OLS) to fit a harmonic model and an OLS-MOSUM process to detect breaks.

Key changes:
- Replaced the `ndarray-linalg` dependency with `nalgebra` to avoid linker issues with OpenBLAS.
- Implemented the full OLS harmonic model fitting and prediction logic.
- Implemented the OLS-MOSUM change detection process.
- Updated the Python wrapper and type stubs to match the new Rust function signature.
- Added a comprehensive test case to validate the implementation.
Implements the BFAST Monitor algorithm for change detection. This patch replaces the placeholder scaffolding with a complete implementation using Ordinary Least Squares (OLS) to fit a harmonic model and an OLS-MOSUM process to detect breaks.

Key changes:
- Replaced the `ndarray-linalg` dependency with `nalgebra` to avoid linker issues with OpenBLAS.
- Implemented the full OLS harmonic model fitting and prediction logic.
- Implemented the OLS-MOSUM change detection process.
- Updated the Python wrapper and type stubs to match the new Rust function signature.
- Added a comprehensive test case to validate the implementation.
- Fixed clippy warnings for `unnecessary_cast` and `too_many_arguments`.
@BnJam BnJam merged commit f507014 into main Jan 7, 2026
5 checks passed
@BnJam BnJam deleted the feat/bfast-monitor-scaffold-10782325817424901614 branch January 7, 2026 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant