Skip to content

Scaffold Geospatial Workflows#65

Merged
BnJam merged 11 commits into
mainfrom
feat/scaffold-workflows-2225099258921193165
Dec 13, 2025
Merged

Scaffold Geospatial Workflows#65
BnJam merged 11 commits into
mainfrom
feat/scaffold-workflows-2225099258921193165

Conversation

@google-labs-jules
Copy link
Copy Markdown
Contributor

This change introduces a new workflows module in the Rust core and scaffolds three common, complex geospatial workflows: land_cover_classification, burn_severity_assessment, and water_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

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.
@google-labs-jules
Copy link
Copy Markdown
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.

google-labs-jules Bot and others added 10 commits December 9, 2025 05:46
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
@BnJam BnJam added the bump:minor v0.1.0 --> v0.2.0 label Dec 13, 2025
@BnJam BnJam merged commit 7b42071 into main Dec 13, 2025
5 checks passed
@BnJam BnJam deleted the feat/scaffold-workflows-2225099258921193165 branch December 13, 2025 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump:minor v0.1.0 --> v0.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant