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 2cfb383a96 Merge branch 'geoapi-4.0' into geoapi-3.1 add 90a499a32d Resolve a "unspecified CRS" exception when reading a GeoTIFF with a three-dimensional CRS (a geographic or projected CRS + a vertical CRS on user-defined datum). add afb365202e Make the code more SecurityException-proof. This commit does not introduce new dependency since the Apache SIS code already had some `catch (SecurityException)` statements. While the security manager is removed in Java 24, SIS can run on Java 11 and some softwares are still running in security-constrained environments. This commit will be reverted when Apache SIS will require Java 24, or when the `SecurityException` class will be deprecated. add 416551cdc7 Add a public `Configuration.shutdown()` method. add 7a696fe83a Change the order of `AxesConvention` enumeration values from most conservative to most aggressive. add 66809d27ae Handle empty files as non-existent files when opening a `DataStore` in write mode. This is needed because when requesting a temporary file, an empty file is created. add e93449f33c Document an extra step needed for a more complete shutdown of the system. add 6cdeffb8f5 Add a `DataStores.open(Object, String)` method which allows to specify the preferred data store implementation. add 56de57f5b7 Add a `GridGeometry.getOrigin()` method. add e76f36ff59 Avoid a NullPointerException when a GeoTIFF file has incomplete georeferencing information. add a1b220381e Relax the check for the number of dimensions when the grid coverage has less dimensions than expected. Normally, the number of dimensions of the tiles should be equal to the number of dimensions declared in the grid extent. However, it happens sometime that the `TiledGridResource` is a two dimensional image associated to a three-dimensional CRS. This is not recommended, but can happen with GeoTIFF for example. What to do with the extra dimensions is unclear (the GeoTIF [...] add 08710309d3 Upgrade GeoAPI snapshot version. Contains the addition of `getReferenceSystemType()` method. This upgrade fixes https://issues.apache.org/jira/browse/SIS-470 add bbe24a2fba Better checks of SampleModel properties before to write a GeoTIFF file. add 08e4257586 Better checks of ColorModel properties before to write a GeoTIFF file. add f42386f4e9 Rename `ColorModelBuilder` as `ColorScaleBuilder` for reflecting the fact that it is about indexed color model, and for making the `ColorModelBuilder` name available for a builder for other cases. add c9a672132b Move the `createPackedRGB(…)` and createBandedRGB(…)` methods in a new `ColorModelBuilder` class. In gives more flexibility for configuring the RGB color model to create. add 61589faccb Rename `MultiSourceLayout` and `BandAggregateLayout` for making clear that this is about band aggregate only rather than all multi-source image. add acdc884394 Add an image overlay operation in `ImageProcessor`. add 6a22d7e5e9 If an image does not fit the requirement of the TIFF specification, reformat the image before to write it in a TIFF file. add aeaadf2f05 GeoTIFF writer should throw an exception instead of logging a warning when the CRS or the "grid to CRS" transform cannot be encoded. add 65d1d016d1 In case of error while writing a GeoTIFF file, restore the file to its previous state. add a95fbd4ab4 Allow GeoTIFF writer to encode "grid to CRS" where the vertical component is non-linear. add ae291c6dec Delete leftover temporary files during Geopackage test. add 78771af452 Avoid triple-slash for starting a comment, because they are reserved for Markdown in latest Java versions. add 11790ff20e Accept also regions encoded as character strings instead of as an instance of the Region class. add 97f67d1dc8 Revisit the S3 documentation for reducing a confusion about what S3 call "key". In the context of Apache SIS, a S3 "key" is interpreted as a file path. Furthermore, "key" was too easily confused with "access key". add 72ce0be904 Upgrade Amazon S3 dependency from 2.26.24 to 2.29.37. add 0173414d34 `Extents.getVerticalRange(…)` may throw an exception when a value is NaN. add ed889b8433 Fix an `IndexArrayOutOfBoundsException` when reading a GeoTIFF with a three-dimensional CRS. add 6718873520 Add the netCDF attribute names of Mercator data (from Copernicus) as an alternative convention when CF attributes were not found. Those alternatives are ignored when CF attributes are found. add 076c21a2c1 Add a `PlanarImage.getValidArea()` method. `ResampledImage` computes this information by reprojecting the valid area of the source. add 4349cc81c8 More accurate checks by `ImageOverlay` of which sources are worth to keep. This is using the `getValidArea()` method added in the previous commit. add 8c9c31766b Fix: calculation of contributions in `ImageOverlay` was too large. Edit documentation by saying that each image is fully opaque. add 1b0067787b Remove the `horizontal` boolean argument in `ShapeUtilities.parabolicControlPoint(…)`. It was never used. add 69eedf135e Move three `ImageLayout` constants to the classes where they are used. Opportunistic renaming of a field for clarity and rewording in Javadoc. This is in preparation for moving `ImageLayout` to public API. add cc2e967908 Retrofit user-provided arguments as `ImageLayout` properties: - The `allowPartialTiles` argument given to `ImageLayout` methods. - The `ImageProcessor.autoTileSize` field. add e0d5eb16e4 Move `ImageLayout` to public API. The intend is to use it as a replacement for `SampleModel` and `ColorModel` arguments in `ImageProcessor`. add 226c9c5706 Deprecate `ImageProcessor.Resizing`, replaced by `ImageLayout`. add 49945796f4 Retrofit the `minTile` property of two `ImageLayout` subclasses into `ImageLayout` directly. add b9f98ce7e1 Add `SampleModel` and `ColorModel` properties into `ImageLayout` in replacement for optional arguments given to image processor. add 8018b22551 Remove the `ColorModel` property from `ImageLayout` for avoiding an overlap with `Colorizer`. add 2a7346399c Consolidation in the way that a sample model is created from an `ImageLayout` for an image operation. Some `int` arguments are replaced by more type-safe objects such as `DataType` or `Dimension`. add bb8db50cd2 `BandAggregateLayout` does not need anymore to extend `ImageLayout`. This simplication makes easier to complete the constructor, for example with the concatenated list of sample dimensions. add 482e27bf24 Consolidation of the handling of `PlanarImage.SAMPLE_DIMENSIONS_KEY`: - Document that some elements may be null, and adjust codes accordingly. - Ensure that `ImageProcessor.statistics(…)` never return null values. - Change some internal from `SampleDimensions[]` to `List<SampleDimension>`. It reduces the number of conversions between those two types. add 49f489db9e Fix an `IndexOutOfBoundsException` when fetching netCDF metadata. Adjust the title of GeoTIFF file declared in metadata. add cb303c4705 Document the relationship between `ImageCombiner` and `ImageProcessor.overlay(…)`. new 9160018564 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. 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: .../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 +- ...ngType.java => MD_ReferenceSystemTypeCode.java} | 24 +- .../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 +- .../sis/pending/jdk/{JDK22.java => JDK20.java} | 23 +- .../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, 4820 insertions(+), 2755 deletions(-) rename endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/{MultiSourceArgument.java => BandAggregateArgument.java} (98%) copy endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/{ColorModelBuilder.java => ColorScaleBuilder.java} (94%) delete mode 100644 endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ImageLayout.java rename endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/{MultiSourceLayout.java => BandAggregateLayout.java} (71%) create mode 100644 endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageLayout.java create mode 100644 endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageOverlay.java rename endorsed/src/org.apache.sis.feature/test/org/apache/sis/{coverage/privy => image}/ImageLayoutTest.java (79%) create mode 100644 endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ImageOverlayTest.java copy endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/code/{SV_CouplingType.java => MD_ReferenceSystemTypeCode.java} (76%) create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/test/org/apache/sis/storage/geotiff/GeoTiffStoreTest.java copy endorsed/src/org.apache.sis.util/main/org/apache/sis/pending/jdk/{JDK22.java => JDK20.java} (62%) create mode 100644 endorsed/src/org.apache.sis.util/main/org/apache/sis/pending/jdk/JDK24.txt