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 43debe04f2 Merge branch 'geoapi-4.0' into geoapi-3.1 add 29ab2c8a44 Remove the `if (quantity instanceof Scalar)` special case in `Quantities` because it add conversions on top of conversions already done. Documentation updates related to units of measurement. add 758949b24d Fix typo: "is equals" → "is equal" add 51cfa9cbab Better error message for invalid sexagesimal angles. add 1e926955f7 Simplify `DefinitionURI.codeOf(String)` by leveraging the existing `parse` method. Simplification in return values is also possible because that method, which was previously used by authority factories, is now used only by `UnitFormat`. add bc23f70414 Move X-Path handling to the places where they are needed. With this commit, `UnitFormat` does not support anymore GML way to declare a unit with X-Path (it was an undocumented feature). Instead this is handled by the `org.apache.sis.xml` package, which will allow us to do a better work in the future if needed (e.g. actually read the XML document instead of assuming that the anchor name is the unit symbol). add 481146f801 Make `QuantityFormat` more compliant with specification. add 593d9b3868 Remove the overridding of default javadoc stylesheet, since the default in Java 18 is satisfying. add b1d94f3d84 For GeoTIFF and WorldFile images, `Resource.getIdentifier()` returns a scoped name of the form "filename:imageIndex" instead of a local name of the form "imageIndex". add 877b832e88 fix(Storage): fix GeoTiff resource finding add ce6fa1494e Minor consolidation of the GeoTIFF name parsing. The only functional change is that the full namespace is checked instead of only the direct parent. This is for consistency with the default implementation of `findResource(String)` in `DataStore`. This comparison is easier to do on `String` objects, which also avoid creation of temporary `GenericName`. add a5c010b654 Use a spherical model for GCOM-C data with Sinusoidal Equal Area projection. add 02d0e99b52 Add a "Pseudo sinusoidal" projection similar to Pseudo Mercator: use spherical formulas but apply the result on WGS84 ellipsoid. add a4f26d4229 Make the netCDF reader more robust to the case where a coordinate system axis has zero dimension. Such axes are omitted, but we need to adjust the number of dimensions accordingly. add ac6a4fdb02 Allow to fetch statistics in last resort if min/max are not specified in a netCDF file. This is disabled by default, because this operation is potentially costly. add 553f9f4f87 Avoid an `AssertionError` when sub-classing a `Builder` subclass. Allow subclassing of `GeodeticObjectBuilder`. add 61e556777c Construct a better CRS from grid mapping attributes: - More informative ellipsoid/datum name than "Unnamed". - If the CRS inferred from coordinate variables has 0°…360° longitude range, apply that range to the CRS created from grid mapping attributes. add dc743d4a4d More robust check for wraparound in `GridEvaluator` when the given point has less dimensions than the grid geometry. add e429a0e09b Replace `GridEvaluator` class by `GridCoverage.Evaluator` interface. add 71894a912f Slightly more accurate documentation of projection implementation methods and typo fixes. There is no code change in this commit (documentation only). add 8fd4428d3b Rename `GridEvaluator` as `DefaultEvaluator` as a consequence of the replacement of `GridEvaluator` by an interface. add dfb9f31b65 Reverse the logic of "synchronized window": instead of check boxes for windows to follow, the check boxes specify the windows on which to replicate gestures. It is more convenient that way, because after checking a box we are already in the window where to apply gestures. add 4f4d58d53b Relax access to constructors. There is sometime good reasons for a caller to create an e.g. "Ellipsoid to geocentric" transform without the normalization/denormalization matrices (i.e. witn inputs in radians). add 9fd226e110 Allow to request parameter value in a unit of measurement different than the one specified by the parameter descriptor. Add a clarification in javadoc about implicit map projection parameters. add bbdefb11e2 Add "Geocentric/topocentric conversions" (EPSG:9836). add 586f44a6d9 Add "Geographic/topocentric conversions" (EPSG:9837). add 6a5584c486 Replace `Context.setSource(EllipsoidalCS, Ellipsoid)` method by `setSource(GeodeticCRS)`. The rational which was in previous method is actually inexact: we may need the ellipsoid even with non-ellipsoidal CS, if the CRS is geocentric. add 5fa9fcb7dd Fix an ambiguity in the parsing of the WKT of a derived CRS using "[Geographic|Geocentric]/Topocentric" conversions. The problem is that the `BaseGeodCRS` element does not specify if the CS of the base CRS is ellipsoidal or Cartesian, so we have to infer that information from the operation method. add f92855ab0f WKT of DerivedCRS should exclude semi-major and semi-minor parameters when they can be inferred from the geodetic datum. This is the same policy than the one currently applied on ProjectedCRS WKT. add 1638e57791 Complete documentation and remove an exclusion for a test which now passes. add 1a2bc02b6f Upgeade dependencies. new 1beb63780c Merge branch 'geoapi-4.0' into geoapi-3.1 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/sis/gui/map/ValuesUnderCursor.java | 6 +- .../apache/sis/internal/gui/DataStoreOpener.java | 14 +- .../sis/internal/gui/control/SyncWindowList.java | 34 +-- .../sis/internal/gui/control/ValueColorMapper.java | 2 +- .../org/apache/sis/openoffice/TransformerTest.java | 2 +- .../util/resources/IndexedResourceCompiler.java | 2 +- .../org/apache/sis/coverage/BandedCoverage.java | 32 ++- .../java/org/apache/sis/coverage/Category.java | 2 +- .../org/apache/sis/coverage/SampleDimension.java | 2 +- .../sis/coverage/grid/BufferedGridCoverage.java | 8 +- .../sis/coverage/grid/ConvertedGridCoverage.java | 87 ++------ .../{GridEvaluator.java => DefaultEvaluator.java} | 75 ++++--- .../sis/coverage/grid/DerivedGridCoverage.java | 9 +- .../apache/sis/coverage/grid/EvaluatorWrapper.java | 126 +++++++++++ .../coverage/grid/FractionalGridCoordinates.java | 6 +- .../org/apache/sis/coverage/grid/GridCoverage.java | 86 +++++++- .../apache/sis/coverage/grid/GridCoverage2D.java | 8 +- .../org/apache/sis/coverage/grid/GridExtent.java | 10 +- .../org/apache/sis/coverage/grid/GridGeometry.java | 6 +- .../apache/sis/coverage/grid/ImageRenderer.java | 2 +- .../apache/sis/feature/AbstractIdentifiedType.java | 2 +- .../org/apache/sis/filter/BinarySpatialFilter.java | 2 +- .../apache/sis/filter/DefaultFilterFactory.java | 2 +- .../java/org/apache/sis/filter/PropertyValue.java | 5 +- .../src/main/java/org/apache/sis/filter/XPath.java | 86 ++++++++ .../sis/coverage/grid/GridCoverage2DTest.java | 13 +- .../sis/coverage/grid/GridDerivationTest.java | 2 +- .../org/apache/sis/feature/FeatureTestCase.java | 2 +- .../java/org/apache/sis/filter/XPathTest.java} | 20 +- .../org/apache/sis/image/InterpolationTest.java | 2 +- .../org/apache/sis/image/PixelIteratorTest.java | 2 +- .../apache/sis/test/suite/FeatureTestSuite.java | 1 + .../java/org/apache/sis/internal/jaxb/Context.java | 4 +- .../sis/internal/jaxb/lan/LocaleAndCharset.java | 2 +- .../java/org/apache/sis/metadata/TreeNode.java | 2 +- .../DefaultRepresentativeFraction.java | 4 +- .../apache/sis/metadata/sql/MetadataWriter.java | 2 +- .../java/org/apache/sis/util/iso/AbstractName.java | 15 +- .../apache/sis/util/iso/DefaultNameFactory.java | 9 +- .../org/apache/sis/util/iso/DefaultNameSpace.java | 33 ++- .../org/apache/sis/util/iso/DefaultRecordType.java | 6 +- .../java/org/apache/sis/util/iso/package-info.java | 2 +- .../java/org/apache/sis/xml/ValueConverter.java | 47 ++++- .../main/java/org/apache/sis/xml}/XPointer.java | 52 ++++- .../main/java/org/apache/sis/xml/package-info.java | 2 +- .../internal/jaxb/ModifiableIdentifierMapTest.java | 2 +- .../org/apache/sis/metadata/SpecialCasesTest.java | 8 +- .../extent/DefaultGeographicBoundingBoxTest.java | 2 +- .../sis/metadata/iso/extent/ExtentsTest.java | 2 +- .../java/org/apache/sis/test/MetadataAssert.java | 4 +- .../apache/sis/test/suite/MetadataTestSuite.java | 3 +- .../sis/test/xml/AnnotationConsistencyCheck.java | 2 +- .../apache/sis/test/xml/DocumentComparator.java | 2 +- .../java/org/apache/sis/test/xml/TestCase.java | 6 +- .../org/apache/sis/xml/ValueConverterTest.java | 18 +- .../java/org/apache/sis/xml}/XPointerTest.java | 18 +- .../sis/geometry/AbstractDirectPosition.java | 2 +- .../org/apache/sis/geometry/AbstractEnvelope.java | 18 +- .../org/apache/sis/geometry/CoordinateFormat.java | 2 +- .../java/org/apache/sis/geometry/Envelopes.java | 2 +- .../referencing/GeodeticObjectBuilder.java | 18 +- .../internal/referencing/ReferencingUtilities.java | 39 ++-- .../referencing/provider/AbridgedMolodensky.java | 12 +- .../referencing/provider/AbstractLambert.java | 14 +- .../referencing/provider/AbstractMercator.java | 14 +- .../referencing/provider/AbstractProvider.java | 113 ++++++---- .../provider/AbstractStereographic.java | 14 +- .../referencing/provider/AlbersEqualArea.java | 14 +- .../referencing/provider/AxisOrderReversal.java | 23 +- .../referencing/provider/AxisOrderReversal3D.java | 4 +- .../provider/AzimuthalEquidistantSpherical.java | 12 +- .../referencing/provider/CassiniSoldner.java | 7 +- .../provider/CoordinateFrameRotation.java | 12 +- .../provider/CoordinateFrameRotation2D.java | 12 +- .../provider/CoordinateFrameRotation3D.java | 12 +- .../referencing/provider/Equirectangular.java | 31 +-- .../provider/FranceGeocentricInterpolation.java | 21 +- .../referencing/provider/GeocentricAffine.java | 56 +++-- .../GeocentricAffineBetweenGeographic.java | 35 +-- .../provider/GeocentricToGeographic.java | 29 +-- .../provider/GeocentricToTopocentric.java | 234 +++++++++++++++++++++ .../provider/GeocentricTranslation.java | 12 +- .../provider/GeocentricTranslation2D.java | 12 +- .../provider/GeocentricTranslation3D.java | 12 +- .../referencing/provider/GeodeticOperation.java | 45 ++-- .../referencing/provider/Geographic2Dto3D.java | 4 +- .../referencing/provider/Geographic3Dto2D.java | 4 +- .../referencing/provider/GeographicOffsets.java | 12 +- .../provider/GeographicRedimension.java | 25 +-- .../provider/GeographicToGeocentric.java | 27 +-- .../provider/GeographicToTopocentric.java | 149 +++++++++++++ .../referencing/provider/Interpolation1D.java | 17 +- .../provider/LambertAzimuthalEqualArea.java | 16 +- .../provider/LambertCylindricalEqualArea.java | 14 +- .../LambertCylindricalEqualAreaSpherical.java | 14 +- .../referencing/provider/MapProjection.java | 45 ++-- .../referencing/provider/MapProjection3D.java | 26 +-- .../provider/ModifiedAzimuthalEquidistant.java | 12 +- .../internal/referencing/provider/Mollweide.java | 5 +- .../internal/referencing/provider/Molodensky.java | 12 +- .../sis/internal/referencing/provider/NADCON.java | 17 +- .../sis/internal/referencing/provider/NTv1.java | 17 +- .../sis/internal/referencing/provider/NTv2.java | 17 +- .../referencing/provider/NorthPoleRotation.java | 17 +- .../referencing/provider/Orthographic.java | 14 +- .../internal/referencing/provider/Polyconic.java | 14 +- .../referencing/provider/PositionVector7Param.java | 10 +- .../provider/PositionVector7Param2D.java | 12 +- .../provider/PositionVector7Param3D.java | 12 +- .../referencing/provider/PseudoPlateCarree.java | 18 +- ...sOrderReversal3D.java => PseudoSinusoidal.java} | 35 +-- .../referencing/provider/SatelliteTracking.java | 5 +- .../internal/referencing/provider/Sinusoidal.java | 25 ++- .../referencing/provider/SouthPoleRotation.java | 17 +- .../referencing/provider/VerticalOffset.java | 14 +- .../internal/referencing/provider/Wraparound.java | 17 +- .../provider/ZonedTransverseMercator.java | 31 +-- .../referencing/provider/package-info.java | 2 +- .../apache/sis/io/wkt/GeodeticObjectParser.java | 71 ++++--- .../main/java/org/apache/sis/io/wkt/Symbols.java | 2 +- .../java/org/apache/sis/io/wkt/WKTDictionary.java | 2 +- .../java/org/apache/sis/io/wkt/package-info.java | 2 +- .../sis/parameter/AbstractParameterDescriptor.java | 4 +- .../org/apache/sis/parameter/ParameterBuilder.java | 12 +- .../java/org/apache/sis/parameter/Parameters.java | 37 +++- .../org/apache/sis/parameter/TensorParameters.java | 2 +- .../java/org/apache/sis/referencing/Builder.java | 6 +- .../main/java/org/apache/sis/referencing/CRS.java | 4 +- .../sis/referencing/crs/DefaultDerivedCRS.java | 34 +-- .../sis/referencing/crs/DefaultProjectedCRS.java | 85 +------- .../sis/referencing/crs/ExplicitParameters.java | 133 ++++++++++++ .../sis/referencing/cs/CoordinateSystems.java | 15 ++ .../sis/referencing/datum/BursaWolfParameters.java | 2 +- .../factory/IdentifiedObjectFinder.java | 2 +- .../referencing/factory/IdentifiedObjectSet.java | 2 +- .../referencing/factory/sql/EPSGDataAccess.java | 6 + .../sis/referencing/factory/sql/SQLTranslator.java | 2 +- .../operation/CoordinateOperationFinder.java | 5 +- .../operation/CoordinateOperationRegistry.java | 4 +- .../referencing/operation/DefaultConversion.java | 6 +- .../DefaultCoordinateOperationFactory.java | 2 +- .../operation/MathTransformContext.java | 2 +- .../operation/projection/AlbersEqualArea.java | 4 +- .../operation/projection/AuthalicMercator.java | 6 +- .../operation/projection/AzimuthalEquidistant.java | 4 +- .../operation/projection/CassiniSoldner.java | 3 +- .../operation/projection/CylindricalEqualArea.java | 6 +- .../projection/LambertAzimuthalEqualArea.java | 3 +- .../projection/LambertConicConformal.java | 4 +- .../referencing/operation/projection/Mercator.java | 5 +- .../projection/ModifiedAzimuthalEquidistant.java | 4 +- .../operation/projection/Mollweide.java | 3 +- .../operation/projection/NormalizedProjection.java | 6 +- .../operation/projection/ObliqueMercator.java | 3 +- .../operation/projection/ObliqueStereographic.java | 8 +- .../operation/projection/Orthographic.java | 3 +- .../operation/projection/PolarStereographic.java | 3 +- .../operation/projection/Polyconic.java | 6 +- .../operation/projection/SatelliteTracking.java | 3 +- .../operation/projection/Sinusoidal.java | 70 +++++- .../operation/projection/TransverseMercator.java | 3 +- .../operation/projection/ZonedGridSystem.java | 2 +- .../operation/projection/package-info.java | 2 +- .../operation/transform/AbstractMathTransform.java | 2 +- .../transform/DefaultMathTransformFactory.java | 116 +++++++--- .../transform/EllipsoidToCentricTransform.java | 7 +- .../operation/transform/MathTransforms.java | 4 +- .../operation/transform/MolodenskyTransform.java | 13 +- ...g.opengis.referencing.operation.OperationMethod | 3 + .../org/apache/sis/geometry/EnvelopesTest.java | 2 +- .../apache/sis/geometry/GeneralEnvelopeTest.java | 6 +- .../java/org/apache/sis/geometry/Shapes2DTest.java | 2 +- .../org/apache/sis/geometry/TransformTestCase.java | 2 +- .../referencing/j2d/ShapeUtilitiesTest.java | 4 +- .../referencing/provider/ProviderMock.java | 14 +- .../referencing/provider/ProvidersTest.java | 5 +- .../referencing/provider/SeismicBinGridMock.java | 2 +- .../provider/TopocentricConversionMock.java | 63 ------ .../sis/io/wkt/GeodeticObjectParserTest.java | 50 ++++- .../org/apache/sis/io/wkt/TransliteratorTest.java | 4 +- .../org/apache/sis/parameter/TensorValuesTest.java | 2 +- .../java/org/apache/sis/referencing/CRSTest.java | 2 + .../sis/referencing/GeodeticCalculatorTest.java | 2 +- .../sis/referencing/crs/DefaultDerivedCRSTest.java | 8 +- .../sis/referencing/cs/CoordinateSystemsTest.java | 4 +- .../factory/IdentifiedObjectFinderTest.java | 2 +- .../operation/matrix/MatrixTestCase.java | 6 +- .../operation/transform/MathTransformTestCase.java | 2 +- .../transform/TransformResultComparator.java | 10 +- .../sis/referencing/report/HTMLGenerator.java | 2 +- .../org/apache/sis/test/ReferencingAssert.java | 2 +- .../sis/test/integration/ConsistencyTest.java | 2 +- .../integration/CoordinateReferenceSystemTest.java | 38 +++- .../apache/sis/test/integration/package-info.java | 2 +- .../apache/sis/test/widget/SwingAssertions.java | 2 +- ...g.opengis.referencing.operation.OperationMethod | 1 - .../org/apache/sis/referencing/crs/DerivedCRS.xml | 2 +- .../sis/internal/converter/ConverterRegistry.java | 2 +- .../apache/sis/internal/util/DefinitionURI.java | 144 +++++-------- .../org/apache/sis/internal/util/DoubleDouble.java | 6 +- .../apache/sis/internal/util/SetOfUnknownSize.java | 6 +- .../java/org/apache/sis/internal/util/XPaths.java | 182 ---------------- .../main/java/org/apache/sis/math/ArrayVector.java | 12 +- .../main/java/org/apache/sis/math/Fraction.java | 4 +- .../java/org/apache/sis/math/MathFunctions.java | 6 +- .../src/main/java/org/apache/sis/math/Vector.java | 2 +- .../java/org/apache/sis/measure/AbstractUnit.java | 6 +- .../java/org/apache/sis/measure/Quantities.java | 38 ++-- .../org/apache/sis/measure/QuantityFormat.java | 34 +-- .../main/java/org/apache/sis/measure/Range.java | 2 +- .../java/org/apache/sis/measure/RangeFormat.java | 2 +- .../apache/sis/measure/SexagesimalConverter.java | 14 +- .../java/org/apache/sis/measure/SystemUnit.java | 2 +- .../java/org/apache/sis/measure/UnitFormat.java | 89 +++----- .../java/org/apache/sis/measure/UnitServices.java | 2 +- .../main/java/org/apache/sis/measure/Units.java | 19 +- .../java/org/apache/sis/util/ArgumentChecks.java | 4 +- .../java/org/apache/sis/util/CharSequences.java | 4 +- .../main/java/org/apache/sis/util/Emptiable.java | 2 +- .../org/apache/sis/util/collection/RangeSet.java | 2 +- .../org/apache/sis/util/collection/TreeTable.java | 4 +- .../apache/sis/util/collection/WeakHashSet.java | 2 +- .../java/org/apache/sis/util/resources/Errors.java | 22 +- .../apache/sis/util/resources/Errors.properties | 4 +- .../apache/sis/util/resources/Errors_fr.properties | 4 +- .../org/apache/sis/util/resources/Vocabulary.java | 5 + .../sis/util/resources/Vocabulary.properties | 1 + .../sis/util/resources/Vocabulary_fr.properties | 1 + .../sis/internal/util/DefinitionURITest.java | 29 ++- .../org/apache/sis/internal/util/XPathsTest.java | 58 ----- .../java/org/apache/sis/io/AppenderTestCase.java | 2 +- .../sis/measure/SexagesimalConverterTest.java | 18 +- .../org/apache/sis/measure/UnitFormatTest.java | 4 +- .../java/org/apache/sis/measure/UnitsTest.java | 23 +- .../src/test/java/org/apache/sis/test/Assert.java | 2 +- .../apache/sis/test/suite/UtilityTestSuite.java | 4 +- pom.xml | 18 +- .../apache/sis/internal/earth/netcdf/GCOM_C.java | 6 +- .../sis/internal/earth/netcdf/package-info.java | 2 +- src/main/javadoc/sis.css | 34 --- .../apache/sis/storage/geotiff/GeoTiffStore.java | 56 +++-- .../sis/storage/geotiff/ImageFileDirectory.java | 11 +- .../sis/storage/geotiff/ImageMetadataBuilder.java | 8 +- .../sis/storage/geotiff/SelfConsistencyTest.java | 37 +++- .../org/apache/sis/internal/netcdf/CRSBuilder.java | 1 + .../org/apache/sis/internal/netcdf/CRSMerger.java | 76 +++++++ .../org/apache/sis/internal/netcdf/Convention.java | 4 + .../java/org/apache/sis/internal/netcdf/Grid.java | 31 ++- .../apache/sis/internal/netcdf/GridMapping.java | 193 ++++++++++------- .../org/apache/sis/internal/netcdf/Variable.java | 10 +- .../apache/sis/internal/netcdf/impl/GridInfo.java | 19 +- .../sis/internal/netcdf/impl/package-info.java | 2 +- .../sis/internal/netcdf/ucar/GridWrapper.java | 29 +-- .../apache/sis/storage/netcdf/MetadataReader.java | 21 +- .../org/apache/sis/internal/netcdf/GridTest.java | 6 +- .../org/apache/sis/internal/netcdf/TestCase.java | 6 +- .../sis/internal/netcdf/impl/GridInfoTest.java | 4 +- .../apache/sis/internal/sql/feature/Database.java | 2 +- .../sis/internal/storage/StoreUtilities.java | 13 +- .../internal/storage/csv/MovingFeatureBuilder.java | 4 +- .../org/apache/sis/internal/storage/csv/Store.java | 2 +- .../internal/storage/image/WorldFileResource.java | 9 +- .../sis/internal/storage/io/ChannelDataOutput.java | 2 +- .../apache/sis/internal/storage/package-info.java | 2 +- .../internal/storage/image/WorldFileStoreTest.java | 4 +- .../internal/storage/io/ChannelDataOutputTest.java | 2 +- .../sis/internal/storage/gpx/ReaderTest.java | 2 +- 267 files changed, 2723 insertions(+), 2053 deletions(-) rename core/sis-feature/src/main/java/org/apache/sis/coverage/grid/{GridEvaluator.java => DefaultEvaluator.java} (90%) create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/XPath.java copy core/{sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/TableInfoTest.java => sis-feature/src/test/java/org/apache/sis/filter/XPathTest.java} (62%) rename core/{sis-utility/src/main/java/org/apache/sis/internal/util => sis-metadata/src/main/java/org/apache/sis/xml}/XPointer.java (62%) rename core/{sis-utility/src/test/java/org/apache/sis/internal/util => sis-metadata/src/test/java/org/apache/sis/xml}/XPointerTest.java (68%) create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricToTopocentric.java create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToTopocentric.java copy core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/{AxisOrderReversal3D.java => PseudoSinusoidal.java} (57%) create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/ExplicitParameters.java delete mode 100644 core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/TopocentricConversionMock.java delete mode 100644 core/sis-utility/src/main/java/org/apache/sis/internal/util/XPaths.java delete mode 100644 core/sis-utility/src/test/java/org/apache/sis/internal/util/XPathsTest.java create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSMerger.java