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.

Reply via email to