This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a change to branch geoapi-3.1 in repository https://gitbox.apache.org/repos/asf/sis.git.
from eb9ad08 Merge branch 'geoapi-4.0' into geoapi-3.1. add d8b9343 Move some metadata fields in a separated `ImageMetadataBuilder` class. The goal is to make their life cycle more visible, especially `XMLMetadata` which causes confusing metadata tree if not merged last. add afc247a Add a `Citations.WMO` constant for the World Meteorological Organization. add 9dde363 Provide a way to alter parameter values of inverse operation in a call to `ContextualParameters.inverse(…)`. add 33d5d46 Add "Rotated Latitude/Longitude" coordinate operation. add f4fa0fb Parameter in traditional order for factory methods. The `transform(…)` methods keep the "internal" order. add 78a95a0 Add an `isIdentity()` method. add b677477 Add tests for north pole rotation. add 61aa869 Move `fastHypot` in a location where `RotatedPole` can use. This is mostly for documenting why we use that function. add f537ce2 Fix an error in the determination of parameter values for inverse of "Rotated North Pole". add 5cc6821 Override the most commonly used `transform(…)` variant for efficiency. add c7a27e4 Add transform derivative (Jacobian matrix) for rotated pole. This work completes https://issues.apache.org/jira/browse/SIS-533 add fe14e14 Add a `DIMENSION` constant in `AbstractMathTransform2D` for code clarity. add 4080d18 Rename `RotatedPole` as `PoleRotation` for consistency with EPSG database usage (e.g. "Longitude rotation") and with example in ISO 19162. add d564ace Add parameter names derived from ISO 19162 WKT example for `PoleRotation` operation method. We use SIS namespace for now, but may change to OGC later if those names are adopted by OGC. add c541c4e Clarify the meaning of axis rotation (the last rotation in "Pole rotation" operation method). add fa203fe Temporary disallow non-zero axis rotation for the "North pole rotation" case, until we resolved an ambiguity about the sign of this rotation angle. add 8983130 Fix a few typos in javadoc. add 17167a7 Fix a bug in TIFF LZW compression when the code size is about to move to 13 bits (which is illegal) but is immediately followed by a `CLEAR_CODE` (which make it okay). add 1649034 Provide more information in case of errors. add 2e0a10b Make error message more understandable. add d30a19d Remove workarounds that are no longer needed when building with JDK 17 (even if the compilation result still target Java 8). Add workaround for https://bugs.openjdk.java.net/browse/JDK-8166038 add 8cf914d Add a "last resort" workaround for JDK-8166038 for handling the cases where the `Raster` instance has not been created by ourselves. add 4466b31 Add a test case for https://issues.apache.org/jira/browse/SIS-514 (was probably already fixed in SIS 1.1 release). add 5984d02 More efficient and silent handling of `PropertyValue` when the given name is not a property of the feature. add 865ea92 Bug fix: `PointOutsideCoverageException` was not correctly made silent when point is outside coverage. add 5959330 Avoid creating inverse transform when not needed. add 991733b Change the way "North pole rotation" is created and change the way the inverse operation is created. The north pole case is now implemented as a "South pole rotation" operation rotating the antipodal point. It causes a 180° offset in longitude, but this is intended according the following definition from COSMO: add 4c5e164 Simplify the formulas for φ, ∂y/∂λ and ∂y/∂φ (atan2 replaced by asin). add 439b007 Remove `PoleRotationMock`, replaced by the real operation. It forces us to remove the constraint on the θp parameter value. add 295bee7 Fix an inacurate documentation about the 0° (or 180°) meridian passing through geographic and rotated poles. add be4d34e Fix a confusing use of "orginal values" in documentation. add 4fbf95d Typos: "the intend" → "the intent", "parameters values" → "parameter values". add a3ab666 Try to make the search for coordinate operations (between a pair of CRS) less costly by avoiding extensive searches of CRS candidates before simpler attempts failed. As a side effect, make the cache of above-cited searches more deterministic. add 1f4f8a9 Reduce the number of CRS created during search of coordinate operations. We address the issue by adding IdentifiedObjectFinder.Domain.EXHAUSTIVE_VALID_DATASET enumeration value, whih also appears to simplify code as a side-effect. add 579f77e Simplify the `IdentifiedObjectFinder` cache by removing the flags about explicitely requested object. The objects searched indirectly are not so numerous, and sometime shared by other searches. add 9dd1fc3 Add GeoTIFF and PROJ names and identifiers for "Azimuthal Equidistant". A verification in Snyder's book suggests that what other projects call "Azimuthal Equidistant" is actually the "Modified Azimuthal Equidistant" approximation (both were designed for islands in Micronesia). Another source is https://cfconventions.org/wkt-proj-4.html add 5cd9557 Avoid a NullPointerException. This is a temporary fix will waiting a better fix of https://issues.apache.org/jira/browse/SIS-536 add 6a5ec9f Fix a sometime wrong "possible inconsistency" message saying that "width" or "height" was the problem. add 8b9a1ce Relax the constraint on tile size for the last tile in a row or column. add 1112b90 Upgrade dependency version. add db2fc14 Merge branch 'geoapi-4.0' into geoapi-3.1 No new revisions were added by this update. Summary of changes: .../apache/sis/gui/coverage/CoverageCanvas.java | 5 +- .../org/apache/sis/internal/gui/GUIUtilities.java | 2 +- .../apache/sis/internal/gui/ImageConverter.java | 5 +- .../java/org/apache/sis/coverage/CategoryList.java | 23 +- .../coverage/grid/FractionalGridCoordinates.java | 18 +- .../apache/sis/coverage/grid/GridCoverage2D.java | 9 +- .../apache/sis/coverage/grid/GridEvaluator.java | 16 +- .../java/org/apache/sis/filter/PropertyValue.java | 17 +- .../java/org/apache/sis/image/PixelIterator.java | 54 +- .../java/org/apache/sis/image/PlanarImage.java | 17 +- .../java/org/apache/sis/image/ResamplingGrid.java | 5 - .../sis/internal/coverage/j2d/TilePlaceholder.java | 21 +- .../sis/coverage/grid/GridCoverage2DTest.java | 28 +- .../sis/coverage/grid/GridDerivationTest.java | 28 ++ .../org/apache/sis/internal/metadata/Merger.java | 5 +- .../sis/metadata/iso/citation/Citations.java | 14 +- .../sis/metadata/iso/citation/package-info.java | 2 +- .../apache/sis/metadata/sql/MetadataFallback.java | 9 +- .../org/apache/sis/metadata/sql/Citations.sql | 9 +- .../internal/map/coverage/RenderingWorkaround.java | 104 ++++ .../apache/sis/internal/referencing/Formulas.java | 48 +- .../referencing/j2d/AffineTransform2D.java | 2 +- .../provider/ModifiedAzimuthalEquidistant.java | 13 +- .../referencing/provider/NorthPoleRotation.java | 160 ++++++ .../referencing/provider/SouthPoleRotation.java | 169 +++++++ .../referencing/provider/package-info.java | 2 +- .../java/org/apache/sis/parameter/Parameters.java | 2 +- .../org/apache/sis/parameter/TensorValues.java | 2 +- .../factory/ConcurrentAuthorityFactory.java | 138 ++---- .../factory/IdentifiedObjectFinder.java | 106 ++-- .../factory/MultiAuthoritiesFactory.java | 8 +- .../operation/CoordinateOperationContext.java | 4 +- .../operation/CoordinateOperationRegistry.java | 106 +++- .../sis/referencing/operation/package-info.java | 2 +- .../projection/LambertConicConformal.java | 1 + .../projection/ModifiedAzimuthalEquidistant.java | 2 +- .../operation/projection/NormalizedProjection.java | 57 +-- .../operation/projection/ObliqueMercator.java | 1 + .../operation/projection/ObliqueStereographic.java | 1 + .../operation/projection/PolarStereographic.java | 1 + .../operation/projection/package-info.java | 2 +- .../transform/AbstractLinearTransform.java | 2 +- .../operation/transform/AbstractMathTransform.java | 8 +- .../transform/AbstractMathTransform2D.java | 28 +- .../operation/transform/ConcatenatedTransform.java | 10 +- .../transform/ConcatenatedTransform2D.java | 4 +- .../transform/ConcatenatedTransformDirect.java | 4 +- .../transform/ConcatenatedTransformDirect2D.java | 4 +- .../operation/transform/ConstantTransform1D.java | 8 +- .../operation/transform/ContextualParameters.java | 107 ++-- .../transform/CoordinateSystemTransform.java | 2 +- .../operation/transform/CopyTransform.java | 4 +- .../operation/transform/DatumShiftTransform.java | 2 +- .../transform/DefaultMathTransformFactory.java | 2 +- .../transform/EllipsoidToCentricTransform.java | 10 +- .../transform/ExponentialTransform1D.java | 8 +- .../operation/transform/IdentityTransform.java | 10 +- .../operation/transform/IdentityTransform1D.java | 8 +- .../InterpolatedGeocentricTransform2D.java | 4 +- .../InterpolatedMolodenskyTransform2D.java | 4 +- .../operation/transform/InterpolatedTransform.java | 2 +- .../transform/InterpolatedTransform2D.java | 4 +- .../operation/transform/LinearTransform1D.java | 12 +- .../transform/LogarithmicTransform1D.java | 8 +- .../operation/transform/MolodenskyFormula.java | 2 +- .../operation/transform/MolodenskyTransform2D.java | 2 +- .../operation/transform/PassThroughTransform.java | 10 +- .../operation/transform/PoleRotation.java | 550 +++++++++++++++++++++ .../operation/transform/PowerTransform1D.java | 8 +- .../operation/transform/ProjectiveTransform.java | 13 +- .../operation/transform/ScaleTransform.java | 2 +- .../operation/transform/TranslationTransform.java | 2 +- .../operation/transform/WraparoundTransform.java | 4 +- .../operation/transform/package-info.java | 2 +- ...g.opengis.referencing.operation.OperationMethod | 2 + .../referencing/provider/PoleRotationMock.java | 60 --- .../referencing/provider/ProvidersTest.java | 4 +- .../referencing/provider/SeismicBinGridMock.java | 2 +- .../provider/TopocentricConversionMock.java | 2 +- .../factory/ConcurrentAuthorityFactoryTest.java | 17 +- .../referencing/factory/sql/EPSGFactoryTest.java | 9 +- .../projection/MapProjectionTestCase.java | 2 +- .../sis/referencing/operation/projection/NoOp.java | 3 +- .../projection/ProjectionResultComparator.java | 4 +- .../operation/transform/MathTransformWrapper.java | 8 +- .../operation/transform/PoleRotationTest.java | 329 ++++++++++++ .../sis/test/suite/ReferencingTestSuite.java | 1 + ...g.opengis.referencing.operation.OperationMethod | 1 - .../apache/sis/internal/util/CollectionsExt.java | 4 +- .../org/apache/sis/util/resources/Messages.java | 5 + .../apache/sis/util/resources/Messages.properties | 1 + .../sis/util/resources/Messages_fr.properties | 1 + ide-project/NetBeans/nbproject/project.properties | 2 +- pom.xml | 4 +- .../org/apache/sis/internal/geotiff/Resources.java | 4 +- .../sis/internal/geotiff/Resources.properties | 2 +- .../sis/internal/geotiff/Resources_fr.properties | 2 +- .../sis/internal/storage/inflater/CCITTRLE.java | 4 +- .../storage/inflater/CompressionChannel.java | 2 +- .../storage/inflater/HorizontalPredictor.java | 2 +- .../sis/internal/storage/inflater/Inflater.java | 2 +- .../apache/sis/internal/storage/inflater/LZW.java | 47 +- .../sis/internal/storage/inflater/PackBits.java | 4 +- .../internal/storage/inflater/PixelChannel.java | 2 +- .../storage/inflater/PredictorChannel.java | 4 +- .../apache/sis/internal/storage/inflater/ZIP.java | 6 +- .../org/apache/sis/storage/geotiff/CRSBuilder.java | 22 +- .../sis/storage/geotiff/ImageFileDirectory.java | 139 +----- .../sis/storage/geotiff/ImageMetadataBuilder.java | 234 +++++++++ .../apache/sis/storage/geotiff/NativeMetadata.java | 2 +- .../apache/sis/storage/geotiff/XMLMetadata.java | 44 +- .../sis/storage/geotiff/XMLMetadataTest.java | 4 +- .../org/apache/sis/internal/netcdf/Linearizer.java | 2 +- .../sis/internal/storage/MetadataBuilder.java | 49 +- .../sis/internal/storage/TiledGridCoverage.java | 3 + .../internal/storage/MemoryGridResourceTest.java | 8 +- 116 files changed, 2397 insertions(+), 720 deletions(-) create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingWorkaround.java create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NorthPoleRotation.java create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SouthPoleRotation.java create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PoleRotation.java delete mode 100644 core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/PoleRotationMock.java create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/PoleRotationTest.java create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageMetadataBuilder.java