-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speed-up geolocation-array based warping of Sentinel3 datasets #10812
Conversation
… value if VRT band type is Int64 or UInt64
…ource or VRT data types
… working datasets to 24 megapixels Fixes OSGeo#10809
GDALCopyWords(&paSrcData[idxBuffer], eSourceType, 0, | ||
abyTemp, eVRTBandDataType, 0, 1); | ||
CopyWord(&paSrcData[idxBuffer], eSourceType, abyTemp, | ||
eVRTBandDataType); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rouault From what I understand, for single-word copies with zero stride on both source and dest, you replaced calls to GDALCopyWords with calls to CopyWord which improved performance.
In #11254 I noticed that there is a 0 stride single word copy just below your change (rasterio.cpp:3402), do you think it might be worth doing the same replacement on more places in the source code? And what was the reason the next line in this file wasn't also replaced with a call to CopyWord?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CopyWord() method cannot be applied on the next line, because it relies on compile-time known source type, whereas in below line eVRTBandDataType is a runtime-known data type.
Fixes #10809
Timing back from ages (half an hour or so) to 20 seconds.
Also fixes a bug related to Int64/UInt64 VRT bands with nodata.