Scaffold Geospatial Workflows#65
Conversation
Introduces a new `src/workflows.rs` module. Adds placeholder functions for `land_cover_classification`, `burn_severity_assessment`, and `water_body_extraction`. Integrates the new module into the main library and exposes the functions via PyO3. Adds corresponding Python wrappers and placeholder tests to ensure the functions are correctly wired. This provides a foundation for implementing more complex, multi-step geospatial processes in the future.
|
👋 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 For security, I will only act on instructions from the user who triggered this task. New to Jules? Learn more at jules.google/docs. |
Replaces the initial simple placeholders in the `workflows` module with more detailed and realistic examples of complex, computationally intensive geospatial tasks. The new scaffolding includes: - `detect_breakpoints`: An iterative time-series fitter (BFAST-like). - `complex_classification`: A short-circuiting pixel classifier. - `texture_entropy`: A non-linear spatial filter. This provides a more robust and representative foundation for implementing high-performance geospatial workflows in Rust. The Python bindings and tests have been updated to match the new function signatures.
This commit implements the `detect_breakpoints` function in Rust, replacing the previous placeholder. The new implementation includes: - A parallelized, iterative approach to detect breakpoints in a time series. - The use of `ndarray::Zip` and `rayon` for efficient processing of large remote sensing data cubes. - A robust test case with synthetic data to verify the correctness of the algorithm. - Restoration of deleted tests for `complex_classification` and `texture_entropy`.
…4890656786212042547 Implement detect_breakpoints function
This refactors the existing `temporal_mean` and `temporal_std` functions into a more generic `composite` function. The `composite` function now acts as a dispatcher for different temporal aggregation methods, currently supporting "median", "mean", and "std". The original `temporal_mean` and `temporal_std` functions are preserved for backward compatibility and now call the `composite` function internally. This change improves the API by centralizing temporal aggregation logic, making it more extensible for future methods.
…681445843 feat(composite): Add mean and std methods to composite function
This commit implements a complete, thorough, and accurate complex classification function in `workflows.rs`. The new function includes: - Additional input bands for more sophisticated classification. - A robust ruleset for identifying a wider range of land cover classes. - An updated Python API to match the new Rust function signature.
This commit implements a complete, thorough, and accurate complex classification function in `workflows.rs`. The new function includes: - Additional input bands for more sophisticated classification. - A robust ruleset for identifying a wider range of land cover classes. - An updated Python API to match the new Rust function signature.
…282495011249 Implement Complex Classification Function
This commit introduces a new `texture_entropy` function, a high-performance Rust-based implementation of Shannon entropy for 2D arrays over a moving window. The new function is: - Implemented in a dedicated `src/texture.rs` module. - Parallelized using Rayon for improved performance. - Exposed to Python via PyO3. In addition, this commit includes: - Unit tests for the `texture_entropy` function, including edge cases. - A new `WORKFLOWS.md` file that proposes two new complex workflows that leverage the new function. - Benchmarks for the `texture_entropy` function, comparing its performance against a `scipy` baseline.
…96546066 feat(texture): Implement texture_entropy and propose new workflows
This change introduces a new
workflowsmodule in the Rust core and scaffolds three common, complex geospatial workflows:land_cover_classification,burn_severity_assessment, andwater_body_extraction. The implementations are placeholders that return zeroed arrays, as requested. The new functions are exposed through the Python API and have corresponding placeholder tests.PR created automatically by Jules for task 2225099258921193165 started by @BnJam