Conversation
Refactors the rasterization module to support multiple backends via an `engine` parameter using a Protocol-based design. Both rasterio and rusterize are now optional dependencies. Changes: - Add Rasterizer Protocol in core.py defining the engine interface - Add RasterioRasterizer class implementing the Protocol - Add RusterizeRasterizer class implementing the Protocol - Refactor core.py to use Protocol-based engine selection - Add rusterize, test-rusterize, test-all optional dependency groups - Add test-rusterize CI job in GitHub Actions - Parametrize tests over available engines Engine selection (engine=None) auto-detects, preferring rusterize if available, falling back to rasterio. geometry_clip remains rasterio-specific. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Move geometry_clip from rasterio.py to core.py and add engine parameter to support both rasterio and rusterize engines. The function now follows the same pattern as rasterize and geometry_mask. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Raise ValueError when merge_alg is not 'replace' or 'add' in the dask code path for consistency with the validation in _normalize_merge_alg. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a new notebook documenting the rusterize engine for rasterization, similar to the rasterio documentation. Highlights that rusterize does not require GDAL, making it easier to install. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update both the GitHub Actions workflow and the hatch test matrix for test-rusterize to use Python 3.14. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add S_20240101_concentration_v4.0.tif to docs/data/ to avoid network requests during docs build - Update notebooks to use local file instead of remote URL - Update .gitignore to allow docs/data directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update geometry_mask.ipynb and rasterio.ipynb to use the new import paths from rasterix.rasterize instead of the old rasterix.rasterize.rasterio module. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #52
Refactors the rasterization module to support multiple backends via an
engineparameter using a Protocol-based design. Both rasterio and rusterize are now optional dependencies.Changes:
Engine selection (engine=None) auto-detects, preferring rusterize if available, falling back to rasterio. geometry_clip remains rasterio-specific.
🤖 Generated with Claude Code