[SEDONA-477] Shift the origin of clip results to zero #1231
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.
Did you read the Contributor Guide?
Is this PR related to a JIRA ticket?
[SEDONA-XXX] my subject
.What changes were proposed in this PR?
The result of RS_Clip returns GridCoverage2D objects containing JAI images with non-zero origin when
crop = true
. This will bring a full range of problems when handling such GridCoverage2D objects, because lots of band operation code assumes that the JAI images have zero origin, and theBufferedImage
of AWT also does not allow images with non-zero origin, which make it difficult to construct image objects from in-memory buffer.We decide to make all GridCoverage2D objects having zero origin, rather than fixing all band operation routines to make them handle non-zero origins correctly, since this is very difficult. We defined a helper function
RasterUtils.shiftRasterToZeroOrigin
to shift raster with non-zero origin to have zero origin, and shift the affine transformation to cancel with the origin shift, thus to keep the actual grid coverage unchanged.How was this patch tested?
Add test to validate that the result of RS_Clip has zero origin.
Did this PR include necessary documentation updates?