feat(rust/sedona-raster-functions): add RS_GeoTransform composite accessor - #1221
Draft
james-willis wants to merge 2 commits into
Draft
feat(rust/sedona-raster-functions): add RS_GeoTransform composite accessor#1221james-willis wants to merge 2 commits into
james-willis wants to merge 2 commits into
Conversation
james-willis
force-pushed
the
james/db-384-implement-rs_geotransform-in-sedonadb
branch
from
September 2, 2026 20:29
0249e8a to
eebb594
Compare
…essor Returns the geotransform decomposition Sedona Spark reports: a struct of magnitudeI, magnitudeJ, thetaI, thetaIJ, offsetX, offsetY. The math mirrors Spark's RasterAccessors#getGeoTransform exactly (including the acos sign tests) since Spark is the parity target; thetaI therefore only agrees with the existing RS_Rotation when |skewX| == |skewY|. The parity harness's result_to_tuples now passes struct columns through as dicts (they cannot be cast to string), matching the list-column treatment, and the spark-parity suite gains anchored north-up and 3-4-5-skew cases.
james-willis
force-pushed
the
james/db-384-implement-rs_geotransform-in-sedonadb
branch
from
September 2, 2026 20:31
eebb594 to
f14c66e
Compare
Move the RS_GeoTransform cases into their own test_rs_geotransform.py, rename test_rs_scalar.py -> test_rs_bandnodatavalue.py and test_rs_raster_out.py -> test_rs_setbandnodatavalue.py to match their single-function contents, and record the file-per-function convention in the suite README.
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.
Adds
RS_GeoTransform, the composite geotransform accessor, tosedona-raster-functions. The individual component accessors (RS_ScaleX/Y,RS_SkewX/Y,RS_UpperLeftX/Y,RS_Rotation) already lived inrs_geotransform.rs; this returns the decomposition Sedona Spark reports: a struct ofmagnitudeI,magnitudeJ,thetaI,thetaIJ,offsetX,offsetY(six non-nullable Float64 fields, matching Spark's schema and field names).The decomposition math mirrors Sedona Spark's
RasterAccessors#getGeoTransformexactly, including the twoacossign tests, since Spark is the parity target. One consequence worth noting for reviewers: Spark'sthetaIonly agrees with our existingRS_Rotation(atan2(-skewX, scaleX)) when|skewX| == |skewY|— i.e. they agree for north-up and rigidly-rotated rasters but diverge under shear. That existingRS_Rotationdivergence from Spark is not touched here.