This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-3.1 in repository https://gitbox.apache.org/repos/asf/sis.git
commit 9160018564d0692a5f6d742573df731823fdb9e7 Merge: 2cfb383a96 cb303c4705 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Thu Dec 26 19:53:54 2024 +0100 Merge branch 'geoapi-4.0' into geoapi-3.1. Contains bug fix related to GeoTIFF and other formats. Contains a new "overlay" image operation and improvement in the handling of image properties in "band aggregate" operation. .../sis/buildtools/coding/ReorganizeImports.java | 2 +- .../org/apache/sis/buildtools/book/OGC.lst | 1 + .../org/apache/sis/cloud/aws/s3/FileService.java | 36 +- .../main/org/apache/sis/cloud/aws/s3/KeyPath.java | 4 +- .../apache/sis/cloud/aws/s3/ObjectAttributes.java | 5 +- .../org/apache/sis/cloud/aws/s3/package-info.java | 31 +- .../coverage/grid/BandAggregateGridCoverage.java | 10 +- .../coverage/grid/CoordinateOperationFinder.java | 2 + .../org/apache/sis/coverage/grid/GridCoverage.java | 5 +- .../sis/coverage/grid/GridCoverageBuilder.java | 9 +- .../sis/coverage/grid/GridCoverageProcessor.java | 8 +- .../apache/sis/coverage/grid/GridDerivation.java | 6 +- .../org/apache/sis/coverage/grid/GridGeometry.java | 219 ++++-- .../apache/sis/coverage/grid/ImageRenderer.java | 13 +- ...rceArgument.java => BandAggregateArgument.java} | 8 +- .../sis/coverage/privy/ColorModelBuilder.java | 757 +++++---------------- .../sis/coverage/privy/ColorModelFactory.java | 57 +- .../apache/sis/coverage/privy/ColorModelType.java | 2 +- ...lorModelBuilder.java => ColorScaleBuilder.java} | 55 +- .../apache/sis/coverage/privy/ColorsForRange.java | 6 +- .../org/apache/sis/coverage/privy/ImageLayout.java | 458 ------------- .../apache/sis/coverage/privy/ImageUtilities.java | 47 +- .../apache/sis/coverage/privy/RasterFactory.java | 2 +- .../sis/coverage/privy/SampleDimensions.java | 27 +- .../sis/coverage/privy/SampleModelFactory.java | 75 +- .../org/apache/sis/feature/internal/Resources.java | 3 +- .../sis/feature/internal/Resources.properties | 2 +- .../sis/feature/internal/Resources_fr.properties | 2 +- .../org/apache/sis/image/BandAggregateImage.java | 125 +++- ...iSourceLayout.java => BandAggregateLayout.java} | 195 +++--- .../main/org/apache/sis/image/BandSelectImage.java | 18 +- .../apache/sis/image/BandedSampleConverter.java | 45 +- .../main/org/apache/sis/image/Colorizer.java | 40 +- .../main/org/apache/sis/image/ComputedImage.java | 23 +- .../main/org/apache/sis/image/ImageAdapter.java | 4 +- .../main/org/apache/sis/image/ImageCombiner.java | 32 +- .../main/org/apache/sis/image/ImageLayout.java | 673 ++++++++++++++++++ .../main/org/apache/sis/image/ImageOverlay.java | 431 ++++++++++++ .../main/org/apache/sis/image/ImageProcessor.java | 227 +++++- .../org/apache/sis/image/MultiSourceImage.java | 41 +- .../main/org/apache/sis/image/PlanarImage.java | 71 +- .../main/org/apache/sis/image/RecoloredImage.java | 63 +- .../main/org/apache/sis/image/ResampledImage.java | 62 +- .../org/apache/sis/image/SourceAlignedImage.java | 10 + .../org/apache/sis/image/StatisticsCalculator.java | 13 +- .../main/org/apache/sis/image/Transferer.java | 1 - .../main/org/apache/sis/image/Visualization.java | 78 ++- .../apache/sis/image/WritableComputedImage.java | 2 +- .../apache/sis/coverage/grid/GridGeometryTest.java | 15 +- .../sis/coverage/privy/ColorModelBuilderTest.java | 13 +- .../sis/coverage/privy/SampleModelFactoryTest.java | 18 +- .../apache/sis/image/BandAggregateImageTest.java | 66 +- .../sis/image/BandedSampleConverterTest.java | 17 +- .../{coverage/privy => image}/ImageLayoutTest.java | 14 +- .../org/apache/sis/image/ImageOverlayTest.java | 116 ++++ .../org/apache/sis/image/ResampledImageTest.java | 22 +- .../apache/sis/metadata/iso/extent/Extents.java | 5 +- .../sis/metadata/privy/ReferencingServices.java | 20 +- .../apache/sis/metadata/sql/privy/Initializer.java | 7 +- .../sis/metadata/sql/privy/LocalDataSource.java | 9 +- .../main/org/apache/sis/xml/MarshallerPool.java | 12 +- .../apache/sis/xml/bind/IdentifierMapAdapter.java | 16 +- .../sis/xml/bind/ModifiableIdentifierMap.java | 16 +- .../org/apache/sis/xml/bind/TypeRegistration.java | 8 +- .../metadata/code/MD_ReferenceSystemTypeCode.java | 86 +++ .../metadata/replace/ReferenceSystemMetadata.java | 29 +- .../xml/bind/metadata/replace/package-info.java | 2 + .../apache/sis/metadata/PropertyAccessorTest.java | 21 +- .../org/apache/sis/map/coverage/RenderingData.java | 19 +- .../main/org/apache/sis/io/wkt/Element.java | 20 +- .../main/org/apache/sis/io/wkt/Formatter.java | 56 +- .../apache/sis/referencing/AuthorityFactories.java | 9 +- .../main/org/apache/sis/referencing/CommonCRS.java | 5 +- .../sis/referencing/crs/DefaultCompoundCRS.java | 2 +- .../apache/sis/referencing/cs/AxesConvention.java | 218 +++--- .../factory/ConcurrentAuthorityFactory.java | 4 +- .../referencing/internal/ServicesForMetadata.java | 20 +- .../operation/CoordinateOperationFinder.java | 68 +- .../operation/provider/MapProjection.java | 14 +- .../transform/AbstractMathTransform2D.java | 31 +- .../transform/ConcatenatedTransform2D.java | 2 +- .../transform/ConcatenatedTransformDirect2D.java | 2 +- .../transform/DefaultMathTransformFactory.java | 12 +- .../InterpolatedGeocentricTransform2D.java | 4 +- .../transform/InterpolatedTransform2D.java | 4 +- .../operation/transform/MolodenskyTransform2D.java | 2 +- .../transform/PassThroughTransform2D.java | 2 +- .../operation/transform/ProjectiveTransform2D.java | 2 +- .../transform/SpecializableTransform2D.java | 4 +- .../sis/referencing/privy/ShapeUtilities.java | 105 +-- .../operation/CoordinateOperationFinderTest.java | 10 +- .../referencing/operation/provider/NADCONTest.java | 10 +- .../referencing/operation/provider/NTv2Test.java | 10 +- .../sis/referencing/privy/ShapeUtilitiesTest.java | 23 +- .../referencing/privy/ShapeUtilitiesViewer.java | 10 +- .../apache/sis/storage/geotiff/FormatModifier.java | 14 +- .../apache/sis/storage/geotiff/GeoTiffStore.java | 29 +- .../sis/storage/geotiff/ImageFileDirectory.java | 221 +++--- .../org/apache/sis/storage/geotiff/Writer.java | 153 +++-- .../sis/storage/geotiff/reader/CRSBuilder.java | 68 +- .../geotiff/reader/GridGeometryBuilder.java | 32 +- .../sis/storage/geotiff/reader/Localization.java | 1 + .../sis/storage/geotiff/writer/GeoEncoder.java | 239 ++++--- .../storage/geotiff/writer/ReformattedImage.java | 223 ++++-- .../sis/storage/geotiff/writer/TileMatrix.java | 83 ++- .../sis/storage/geotiff/GeoTiffStoreTest.java | 111 +++ .../org/apache/sis/storage/geotiff/WriterTest.java | 26 +- .../apache/sis/storage/netcdf/AttributeNames.java | 30 + .../apache/sis/storage/netcdf/MetadataReader.java | 28 +- .../apache/sis/storage/netcdf/base/Convention.java | 13 +- .../sis/storage/sql/postgis/RasterReader.java | 3 +- .../sis/storage/xml/stream/StaxStreamReader.java | 10 +- .../sis/storage/xml/stream/StaxStreamWriter.java | 10 +- .../apache/sis/io/stream/ChannelDataOutput.java | 28 + .../org/apache/sis/io/stream/ChannelFactory.java | 46 +- .../apache/sis/io/stream/HyperRectangleWriter.java | 246 +++++-- .../main/org/apache/sis/io/stream/IOUtilities.java | 16 + .../main/org/apache/sis/io/stream/Region.java | 30 + .../org/apache/sis/storage/DataStoreRegistry.java | 47 +- .../main/org/apache/sis/storage/DataStores.java | 63 +- .../sis/storage/IncompatibleResourceException.java | 56 +- .../org/apache/sis/storage/ProbeProviderPair.java | 6 +- .../main/org/apache/sis/storage/ProbeResult.java | 10 +- .../org/apache/sis/storage/StorageConnector.java | 15 +- .../aggregate/BandAggregateGridResource.java | 10 +- .../apache/sis/storage/base/MetadataBuilder.java | 43 +- .../apache/sis/storage/base/TiledGridCoverage.java | 8 +- .../apache/sis/storage/base/TiledGridResource.java | 47 +- .../sis/storage/base/URIDataStoreProvider.java | 33 +- .../sis/storage/base/WritableAggregateSupport.java | 2 +- .../storage/base/WritableGridCoverageSupport.java | 6 +- .../apache/sis/storage/esri/AsciiGridStore.java | 27 +- .../org/apache/sis/storage/esri/RasterStore.java | 23 +- .../org/apache/sis/storage/esri/WritableStore.java | 4 +- .../apache/sis/storage/event/StoreListeners.java | 5 +- .../apache/sis/storage/image/DataStoreFilter.java | 21 +- .../apache/sis/storage/image/WritableStore.java | 27 +- .../apache/sis/storage/esri/WritableStoreTest.java | 8 +- .../org/apache/sis/converter/SystemRegistry.java | 10 +- .../main/org/apache/sis/measure/AngleFormat.java | 47 +- .../main/org/apache/sis/pending/jdk/JDK20.java} | 45 +- .../main/org/apache/sis/pending/jdk/JDK24.txt | 1 + .../main/org/apache/sis/setup/Configuration.java | 45 +- .../apache/sis/setup/InstallationResources.java | 7 +- .../main/org/apache/sis/system/Reflect.java | 27 + .../main/org/apache/sis/system/Shutdown.java | 38 +- .../org/apache/sis/util/collection/RangeSet.java | 6 +- .../main/org/apache/sis/util/logging/Logging.java | 5 +- .../sis/util/resources/IndexedResourceBundle.java | 19 + geoapi/snapshot | 2 +- .../apache/sis/storage/geopackage/GpkgStore.java | 2 +- .../sis/storage/geopackage/GpkgStoreTest.java | 16 +- .../conformance/CoreConformanceTest.java | 2 +- .../sis/storage/shapefile/ShapefileStore.java | 2 +- .../sis/storage/shapefile/dbf/DBFIOTest.java | 2 +- .../sis/storage/shapefile/shp/ShapeIOTest.java | 2 +- netbeans-project/ivy.xml | 2 +- .../org/apache/sis/gui/coverage/GridTileCache.java | 11 +- .../apache/sis/gui/internal/io/FileAccessView.java | 2 +- .../sis/gui/metadata/IdentificationInfo.java | 14 +- .../org/apache/sis/gui/metadata/MetadataTree.java | 15 +- .../sis/gui/metadata/StandardMetadataTree.java | 8 +- .../org/apache/sis/gui/metadata/package-info.java | 2 +- .../org/apache/sis/storage/gdal/TiledResource.java | 17 +- settings.gradle.kts | 3 +- 165 files changed, 4900 insertions(+), 2759 deletions(-) diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ReferenceSystemMetadata.java index 47c60618ba,05a508d813..570aadf213 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ReferenceSystemMetadata.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ReferenceSystemMetadata.java @@@ -27,12 -27,13 +27,13 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.util.ComparisonMode; import org.apache.sis.util.Utilities; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: + import org.opengis.referencing.ReferenceSystemType; import org.apache.sis.util.collection.Containers; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; - /** * An implementation of {@link ReferenceSystem} marshalled as specified in ISO 19115. diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyAccessorTest.java index 283869d138,74886f5a02..1f38589d85 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyAccessorTest.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyAccessorTest.java @@@ -241,15 -242,16 +243,16 @@@ public final class PropertyAccessorTes @Test public void testConstructorWithCovariantReturnType() { assertMappingEquals(new PropertyAccessor(GeographicCRS.class, GeographicCRSMock.class, GeographicCRSMock.class), - //……Declaring type……………………………Method……………………………………………JavaBeans……………………………UML identifier……………………Sentence………………………………Type………………………………………………………… - GeographicCRS.class, "getCoordinateSystem", "coordinateSystem", "coordinateSystem", "Coordinate system", EllipsoidalCS.class, // Covariant return type - GeodeticCRS.class, "getDatum", "datum", "datum", "Datum", GeodeticDatum.class, // Covariant return type - GeodeticCRS.class, "getDatumEnsemble", "datumEnsemble", "datumEnsemble", "Datum ensemble", DatumEnsemble.class, // Covariant return type - IdentifiedObject.class, "getName", "name", "name", "Name", ReferenceIdentifier.class, - IdentifiedObject.class, "getAlias", "alias", "alias", "Alias", GenericName[].class, - IdentifiedObject.class, "getIdentifiers", "identifiers", "identifier", "Identifiers", ReferenceIdentifier[].class, - IdentifiedObject.class, "getDomains", "domains", "ObjectUsage.domain", "Domains", ObjectDomain[].class, - IdentifiedObject.class, "getRemarks", "remarks", "remarks", "Remarks", InternationalString.class); + //……Declaring type……………………………Method……………………………………………………JavaBeans……………………………………UML identifier………………………Sentence…………………………………………Type………………………………………………………… + GeographicCRS.class, "getCoordinateSystem", "coordinateSystem", "coordinateSystem", "Coordinate system", EllipsoidalCS.class, // Covariant return type + GeodeticCRS.class, "getDatum", "datum", "datum", "Datum", GeodeticDatum.class, // Covariant return type + GeodeticCRS.class, "getDatumEnsemble", "datumEnsemble", "datumEnsemble", "Datum ensemble", DatumEnsemble.class, // Covariant return type - IdentifiedObject.class, "getName", "name", "name", "Name", Identifier.class, ++ IdentifiedObject.class, "getName", "name", "name", "Name", ReferenceIdentifier.class, + IdentifiedObject.class, "getAlias", "alias", "alias", "Alias", GenericName[].class, - IdentifiedObject.class, "getIdentifiers", "identifiers", "identifier", "Identifiers", Identifier[].class, ++ IdentifiedObject.class, "getIdentifiers", "identifiers", "identifier", "Identifiers", ReferenceIdentifier[].class, + IdentifiedObject.class, "getDomains", "domains", "ObjectUsage.domain", "Domains", ObjectDomain[].class, + IdentifiedObject.class, "getRemarks", "remarks", "remarks", "Remarks", InternationalString.class, + ReferenceSystem.class, "getReferenceSystemType", "referenceSystemType", "referenceSystemType", "Reference system type", ReferenceSystemType.class); } /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java index 08e0bcb557,db533e8b01..c5b61e9dc9 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java @@@ -277,27 -273,23 +277,23 @@@ public class CoordinateOperationFinder final List<CoordinateOperation> authoritatives = super.createOperations(sourceCRS, targetCRS); if (!authoritatives.isEmpty()) return authoritatives; } - //////////////////////////////////////////////////////////////////////////////// - //// //// - //// Derived → any Single CRS //// - //// //// - //////////////////////////////////////////////////////////////////////////////// + // ┌────────────────────────────────────────────────────────────────────────┐ + // │ Derived → any Single CRS │ + // └────────────────────────────────────────────────────────────────────────┘ - if (sourceCRS instanceof DerivedCRS) { - final var source = (DerivedCRS) sourceCRS; - if (targetCRS instanceof DerivedCRS) { - return createOperationStep(source, (DerivedCRS) targetCRS); + if (sourceCRS instanceof GeneralDerivedCRS) { + final var source = (GeneralDerivedCRS) sourceCRS; + if (targetCRS instanceof GeneralDerivedCRS) { + return createOperationStep(source, (GeneralDerivedCRS) targetCRS); } if (targetCRS instanceof SingleCRS) { return createOperationStep(source, (SingleCRS) targetCRS); } } - //////////////////////////////////////////////////////////////////////////////// - //// //// - //// any Single CRS → Derived //// - //// //// - //////////////////////////////////////////////////////////////////////////////// + // ┌────────────────────────────────────────────────────────────────────────┐ + // │ any Single CRS → Derived │ + // └────────────────────────────────────────────────────────────────────────┘ - if (targetCRS instanceof DerivedCRS) { - final var target = (DerivedCRS) targetCRS; + if (targetCRS instanceof GeneralDerivedCRS) { + final var target = (GeneralDerivedCRS) targetCRS; if (sourceCRS instanceof SingleCRS) { return createOperationStep((SingleCRS) sourceCRS, target); } diff --cc geoapi/snapshot index 0172e7599f,ecbef84482..8170551f45 --- a/geoapi/snapshot +++ b/geoapi/snapshot @@@ -1,1 -1,1 +1,1 @@@ - Subproject commit 0172e7599f6ae68410cfaba2599e2dee3afec83f -Subproject commit ecbef844820fb0f47dcfbd2af70a73ff3691a3a6 ++Subproject commit 8170551f45eac993404798f839e9cc5e5cbf8f75 diff --cc optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java index 9bb222a0f0,f3d7f62a5e..546974e84b --- a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java +++ b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java @@@ -59,7 -61,11 +61,8 @@@ import org.apache.sis.util.logging.Logg import org.apache.sis.util.collection.BackingStoreException; import org.apache.sis.util.resources.Vocabulary; import static org.apache.sis.util.privy.CollectionsExt.nonNull; + import static org.apache.sis.gui.internal.LogHandler.LOGGER; -// Specific to the geoapi-4.0 branch: -import org.opengis.util.InternationalString; - /** * The pane where to show the values of {@link Identification} objects.