You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2023/04/16 17:14:11 UTC

[sis] branch geoapi-3.1 updated (1437fa191c -> 33688738c6)

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 1437fa191c Merge branch 'geoapi-4.0' into geoapi-3.1
     add 6b68ae293b Remove a javadoc link to a `geoapi-conformance` interface to be removed.
     add 28032e87b4 Bug fix: value under cursor was lost after a few zooms in the JavaFX application.
     add 996e1106a9 fix(Storage): properly handle SQL timestamps to avoid ambiguity
     add da1cc1c2df Merge remote-tracking branch 'origin/fix/sql-temporal' into geoapi-4.0. The pull request has been modified for applying the mapping specified by JDBC 4.2. The specialized classes are kept as fallbacks when JDBC 4.2 is not well supported.
     add bd9026738e Filter: add CopyVisitor implementation
     add c6a2901fdd Merge remote-tracking branch 'origin/feat/filtercopy' into geoapi-4.0. Modifications to the pull request: - Add the missing parameterized types. - Register action for each filter type using the mechanism provided by `Visitor` parent class. - Reuse previously existing filter or expression instances when possible.
     add 0e0a37dc5f Minor documentation fixes in comments.
     add cbf9f26ab9 Resource : add ResourceProcessor with converted samples operation
     add 4f9dc8ee12 chore(Storage): fix a javadoc reference
     add aff9e65127 chore(Storage): add a GridCoverageProcessor attribute in resource processor
     add 5a6d0d24d0 feat(Storage): add GridCoverageResource resampling capability
     add 5a487bb198 chore(Feature): change contract of utility TiledImageMock.initializeAllTiles member function.
     add a0a748dea2 feat(Feature): add a computed image for band aggregation
     add 17a4412ed7 feat(Feature): allow user to override output color model for band aggregation
     add c5b2f14be3 feat(Feature): Add a GridCoverageResource for band aggregation
     add 211c9e7af6 feat(Feature+Storage): add a dimension selection grid coverage
     add a0722bc11b Merge branch 'geoapi-4.0' into feat/resource-processor
     add 01be36ffa4 Merge remote-tracking branch 'origin/feat/resource-processor' into geoapi-4.0. The code in the branch have been reworked for reusing more exising SIS code, for moving some aggregation methods to the dedicated `aggregate` sub-package, for resolving some limitations (e.g. band aggregation no longer requires the same tiling layout), for completing documentation and for retrofitting some operations as `GridCoverageResource.subset(…)`.
     add d485138aae Replace `PlanarImage.copyData(…)` implementation by a call to `WritableRaster.setRect(…)`. That method is optimized in various Java private subclasses of `WritableRaster`.
     add 7619fb4837 Documentation fixes and minor code formatting.
     add b56244371d Use `ArithmeticException` for errors related to an overflow of integer capacity.
     add 8f36385c7d Rename some arguments for consistency and update documentation. There is no significant code change in this commit, only renaming.
     add 763442662f Clarify in documentation the behavior of `GridCoverage.Evaluator.toGridCoordinates(DirectPosition)`.
     add e4d0c384bb Consolidation of argument checks.
     add 295965c64a Add test for `PassThroughTransform` with non-consecutive modified coordinates. Allow `DefaultPassThroughOperation` to use non-consecutive coordinates at unmarshalling time.
     add fdf44c1605 Add an `AbstractFeatureSet` constructor receiving a `Resource` argument. This is a complement to similar change in `AbstractGridCoverageResource`. This commit contains an incompatible change in the following classes:
     add 34aaff134e `CombinedImageLayout.createColorModel()` should preserve the visible band of source image if possible. This commit also remove some `java.util.Optional` from internal API because all usages of it where invoking `orElse(null)`.
     add 9627d2e9cc Initial version of an `Colorizer` interface for building the `ColorModel` of a computed image. Replacement is not yet done everywhere.
     add 14487a49ab Rename the internal `Colorizer` class as `ColorModelBuilder` for avoiding confusion with the new `Colorizer` interface.
     add 7090cb3ada Complete the migration to `Colorizer` in the `Visualization` class. Deprecate the `Map<NumberRange,Color[]>` argument in `ImageProcessor`. This is replaced by `Colorizer.forRanges(Map)`.
     add f691d87e35 Store sample dimensions in a `RenderedImage` property. Use that property instead of argument value in `ImageProcessor`.
     add 9aa776c7af Last adjustements on the `Colorizer` work and addition of a convenience `GridcoverageProcessor.visualize(GridCoverage, …)` method.
     add 4e347cda9d Tune the `Colorizer` contract for saying that a null `Color[]` array means to use default colors, which are not necessarily transparent. If the range has more than one value, that default is now grayscale.
     add d0147d6a96 When no color is specified for a category or a range of sample values, and provided that `Colorizer` is used for styling an existing image, preserve the existing colors.
     add 1b6df63689 `Colorizer.forCategories(Map)` should not keep a reference to the user-supplied map.
     add 5aebcde1a0 Allow `DimensionalityReduction` to be subclassed.
     add 03a6a48e26 `BandAggregateImage` should share references to data arrays when possible. It avoids copying the sample values.
     add da7281a6b0 Bug fix: `ColorModelBuilder` sometime created a "compact" color model when it was not desired.
     add 297e7a67fe Refactor `WritableRenderedImage`support in `BandedSampleConverter` for sharing more code with other writable images. Refactor `BandAggregateImage` by moving its inner helper class outside, and add `WritableRenderedImage`support. `BandAggregateImage` is no longer an "all or nothing" implementation: can have a mix of shared and copied arrays.
     add 65c2a49846 Make `getTileWidth()` and `getTileHeight()` methods final in `ComputedImage`. Add design notes in Javadoc for explaining some rational.
     add d3164ba70d Add a `MultiSourceImage` package-private abstract class and add support for prefetch operation.
     add 6c85b283c4 Result of "band select" operation should be writable if the image is writable.
     add ed74a09dc9 When doing an aggregation of "band select", verify if the operations cancel each other.
     add 5f36de44f4 "Band select" on a band aggregation should be able to return the original component. Aggregation of aggregations should use a flattened list or source images.
     add e172934869 Spelling fixes in documentation.
     add e9e0b2342b Improvement: `BandAggregateImage` now merges the bands of repeated sources no matter their position in the array of sources. Before this commit, the bands of repeated sources where merged only for consecutive sources (e.g. at index `i` and `i+1`). The merging of repeated sources is necessary for `BandAggregateGridResource` implementation, which relies on that. While the merging of consecutive sources was sufficient in most cases, it was a risk of causing confusing beha [...]
     add f83bef1818 Chains of operations on images need `BufferedImage` to notify when data are changed.
     add 38626a67da Simplify the way to determine if a "band select" is an identity operation.
     add 58df212721 Complete API with a few convenience methods: - `CoverageAggregator.add(GridCoverage)` method in addition to existing methods working on resources. - `GridCoverageProcessor.selectSampleDimensions(…)` in complement to `selectGridDimensions(…)`.
     add 9f8a402015 Relax the restriction that all inputs to `BandAggregateGridCoverage` have the same grid geometry. With this commit, they are allowed to have different translations but not yet more complex changes.
     add c0e6706251 More tests for `BandAggregateGridCoverage`.
     add 9c391c16b7 Remove `BandAggregateGridResource` from public API. Instead, a new method is added in `CoverageAggregator`.
     add 3a1544293a Allow `BandAggregateGridCoverage` and `BandAggregateGridResource` to unwrap the sources. It makes possible to detect when two consecutive sources are fundamentally the same source.
     add 0e2089b190 If the resources to aggregate are instances of `MemoryGridResource`, aggregate directly the underlying `GridCoverage` instances.
     add 3906ad83eb The check for `MemoryGridResource` in `BandAggregateGridResource.create(…)` should not be an "all or nothing" operation. With this commit, shortcut is used even if only some of the resources to aggregate are `MemoryGridResource` instances.
     add 175b9f0ced Fix some javadoc errors.
     new 33688738c6 Merge branch 'geoapi-4.0' into geoapi-3.1. The main work since previous merge is the integration of the "feat/resource-processor" branch. It brings "band aggregation" operations on images, grid coverages and grid resources.

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:
 .../apache/sis/gui/coverage/CoverageCanvas.java    |  59 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |   5 +-
 .../apache/sis/gui/coverage/CoverageStyling.java   | 120 ++-
 .../org/apache/sis/gui/map/ValuesFormatter.java    |   7 +-
 .../apache/sis/internal/gui/ImageConverter.java    |  13 +-
 .../apache/sis/internal/gui/control/ColorCell.java |  33 +-
 .../internal/gui/control/ColorColumnHandler.java   |  31 +-
 .../apache/sis/internal/gui/control/ColorRamp.java |  51 +-
 .../sis/internal/gui/control/ValueColorMapper.java |  12 -
 .../sis/internal/gui/control/package-info.java     |   2 +-
 .../sis/gui/coverage/CoverageStylingApp.java       |   5 +-
 .../apache/sis/cloud/aws/s3/CachedByteChannel.java |   2 +-
 .../org/apache/sis/coverage/BandedCoverage.java    |   9 +-
 .../java/org/apache/sis/coverage/Category.java     |   4 +-
 .../org/apache/sis/coverage/SampleDimension.java   | 109 ++-
 .../coverage/grid/BandAggregateGridCoverage.java   | 323 +++++++
 .../sis/coverage/grid/BufferedGridCoverage.java    |  22 +-
 .../sis/coverage/grid/ConvertedGridCoverage.java   |   2 +-
 .../coverage/grid/CoordinateOperationFinder.java   |   5 +-
 .../apache/sis/coverage/grid/DefaultEvaluator.java |  12 +-
 .../sis/coverage/grid/DerivedGridCoverage.java     |  27 +-
 .../apache/sis/coverage/grid/DimensionReducer.java |   5 +-
 .../sis/coverage/grid/DimensionalityReduction.java | 989 +++++++++++++++++++++
 .../sis/coverage/grid/DisjointExtentException.java |   9 +-
 .../coverage/grid/FractionalGridCoordinates.java   |   6 +-
 .../org/apache/sis/coverage/grid/GridCoverage.java |  84 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   2 +
 .../sis/coverage/grid/GridCoverageBuilder.java     |  26 +-
 .../sis/coverage/grid/GridCoverageProcessor.java   | 451 +++++++++-
 .../org/apache/sis/coverage/grid/GridExtent.java   | 261 +++---
 .../org/apache/sis/coverage/grid/GridGeometry.java |  10 +-
 .../apache/sis/coverage/grid/GridOrientation.java  |   2 +-
 .../apache/sis/coverage/grid/ImageRenderer.java    | 103 ++-
 .../sis/coverage/grid/ReducedGridCoverage.java     | 160 ++++
 .../sis/coverage/grid/ResampledGridCoverage.java   |   3 +-
 .../apache/sis/coverage/grid/SliceGeometry.java    |  25 +-
 .../java/org/apache/sis/filter/LogicalFilter.java  |   5 +-
 .../java/org/apache/sis/image/AnnotatedImage.java  |  12 +-
 .../org/apache/sis/image/BandAggregateImage.java   | 338 +++++++
 .../java/org/apache/sis/image/BandSelectImage.java | 152 +++-
 .../org/apache/sis/image/BandSharedRaster.java     | 181 ++++
 .../java/org/apache/sis/image/BandSharing.java     | 377 ++++++++
 .../apache/sis/image/BandedSampleConverter.java    | 180 ++--
 .../main/java/org/apache/sis/image/Colorizer.java  | 348 ++++++++
 .../java/org/apache/sis/image/ComputedImage.java   |  88 +-
 .../java/org/apache/sis/image/ImageAdapter.java    |   6 +-
 .../java/org/apache/sis/image/ImageProcessor.java  | 408 ++++++++-
 .../java/org/apache/sis/image/Interpolation.java   |   6 +-
 .../main/java/org/apache/sis/image/MaskImage.java  |   2 +-
 .../org/apache/sis/image/MultiSourceImage.java     | 148 +++
 .../org/apache/sis/image/MultiSourceLayout.java    | 414 +++++++++
 .../org/apache/sis/image/MultiSourcePrefetch.java  | 178 ++++
 .../java/org/apache/sis/image/PlanarImage.java     |  95 +-
 .../java/org/apache/sis/image/RecoloredImage.java  |  47 +-
 .../java/org/apache/sis/image/ResampledImage.java  |  10 +-
 .../org/apache/sis/image/SourceAlignedImage.java   |   8 +-
 .../main/java/org/apache/sis/image/Transferer.java |  55 +-
 .../java/org/apache/sis/image/UserProperties.java  | 124 +++
 .../java/org/apache/sis/image/Visualization.java   | 244 +++--
 .../apache/sis/image/WritableComputedImage.java    | 177 ++++
 .../java/org/apache/sis/index/tree/PointTree.java  |   2 +-
 .../sis/internal/coverage/CommonDomainFinder.java  | 376 ++++++++
 .../sis/internal/coverage/MultiSourceArgument.java | 623 +++++++++++++
 .../sis/internal/coverage}/RangeArgument.java      |  46 +-
 .../sis/internal/coverage/SampleDimensions.java    |  56 +-
 .../j2d/{Colorizer.java => ColorModelBuilder.java} | 256 ++++--
 .../internal/coverage/j2d/ColorModelFactory.java   | 336 ++++---
 .../sis/internal/coverage/j2d/ColorModelType.java  |   2 +-
 .../sis/internal/coverage/j2d/ColorsForRange.java  | 166 +++-
 .../sis/internal/coverage/j2d/ImageLayout.java     |  34 +-
 .../sis/internal/coverage/j2d/ImageUtilities.java  |  78 +-
 .../coverage/j2d/MultiBandsIndexColorModel.java    |  23 +-
 .../sis/internal/coverage/j2d/ObservableImage.java | 289 ++++++
 .../sis/internal/coverage/j2d/RasterFactory.java   |  34 +-
 .../internal/coverage/j2d/SampleModelFactory.java  |   2 +-
 .../internal/coverage/j2d/ScaledColorModel.java    |  15 +-
 .../internal/coverage/j2d/ScaledColorSpace.java    |  31 +-
 .../internal/coverage/j2d/WritableTiledImage.java  |   8 +-
 .../sis/internal/coverage/j2d/WriteSupport.java    | 100 ---
 .../apache/sis/internal/coverage/package-info.java |   2 +-
 .../org/apache/sis/internal/feature/Resources.java |  40 +
 .../sis/internal/feature/Resources.properties      |   8 +
 .../sis/internal/feature/Resources_fr.properties   |   8 +
 .../apache/sis/internal/filter/CopyVisitor.java    | 712 +++++++++++++++
 .../apache/sis/internal/filter/EditVisitor.java    |  56 ++
 .../apache/sis/internal/filter/package-info.java   |   2 +-
 .../sis/internal/filter/sqlmm/SpatialFunction.java |  23 +-
 .../grid/BandAggregateGridCoverageTest.java        | 183 ++++
 .../coverage/grid/ConvertedGridCoverageTest.java   |  24 +-
 .../coverage/grid/DimensionalityReductionTest.java | 194 ++++
 .../apache/sis/coverage/grid/GridGeometryTest.java |  40 +-
 .../apache/sis/image/BandAggregateImageTest.java   | 536 +++++++++++
 .../org/apache/sis/image/BandSelectImageTest.java  |  79 +-
 .../org/apache/sis/image/ImageProcessorTest.java   |  62 +-
 .../apache/sis/image/StatisticsCalculatorTest.java |   2 +-
 .../java/org/apache/sis/image/TiledImageMock.java  |  66 +-
 .../sis/internal/coverage}/RangeArgumentTest.java  |  18 +-
 ...lorizerTest.java => ColorModelBuilderTest.java} |  20 +-
 .../sis/internal/filter/CopyVisitorTest.java       |  77 ++
 .../sis/internal/filter/FilterFactoryMock.java     | 562 ++++++++++++
 .../apache/sis/internal/filter/FunctionMock.java   |  91 ++
 .../sis/internal/filter/ValueReferenceMock.java    |  82 ++
 .../apache/sis/test/suite/FeatureTestSuite.java    |   9 +-
 .../apache/sis/internal/metadata/sql/Dialect.java  |  31 +-
 .../org/apache/sis/util/iso/DefaultScopedName.java |   2 +-
 .../java/org/apache/sis/test/sql/TestDatabase.java |  24 +-
 .../sis/internal/map/coverage/RenderingData.java   |  26 +-
 .../java/org/apache/sis/geometry/Envelopes.java    |   2 +-
 .../referencing/provider/DatumShiftGridLoader.java |   4 +-
 .../apache/sis/parameter/ParameterValueList.java   |   2 +-
 .../main/java/org/apache/sis/referencing/CRS.java  |  40 +-
 .../referencing/factory/sql/AuthorityCodes.java    |   2 +-
 .../operation/DefaultPassThroughOperation.java     | 141 +--
 .../operation/builder/LinearTransformBuilder.java  |   2 +-
 .../referencing/operation/projection/Mercator.java |   4 +-
 .../operation/transform/MathTransforms.java        |  37 +
 .../operation/transform/PassThroughTransform.java  | 127 ++-
 .../operation/transform/TransformSeparator.java    |  55 +-
 .../operation/transform/MathTransformTestCase.java |   4 +-
 .../transform/PassThroughTransformTest.java        |  65 +-
 .../apache/sis/internal/system/Configuration.java  |   2 +-
 .../org/apache/sis/internal/util/Numerics.java     |  13 +
 .../java/org/apache/sis/measure/NumberRange.java   |   7 +-
 .../main/java/org/apache/sis/measure/Range.java    |  23 +-
 .../java/org/apache/sis/measure/SystemUnit.java    |   2 +-
 .../java/org/apache/sis/util/ArgumentChecks.java   | 112 ++-
 .../main/java/org/apache/sis/util/ArraysExt.java   | 140 +--
 .../src/main/java/org/apache/sis/util/Version.java |   2 +-
 .../sis/util/collection/WeakValueHashMap.java      |  89 +-
 .../java/org/apache/sis/util/package-info.java     |   2 +-
 .../org/apache/sis/util/resources/Vocabulary.java  |   5 +
 .../sis/util/resources/Vocabulary.properties       |   1 +
 .../sis/util/resources/Vocabulary_fr.properties    |   1 +
 .../java/org/apache/sis/measure/RangeTest.java     |  17 +-
 .../org/apache/sis/measure/UnitFormatTest.java     |   2 +-
 .../java/org/apache/sis/measure/UnitsTest.java     |   2 +-
 .../org/apache/sis/util/ArgumentChecksTest.java    |   6 +-
 .../java/org/apache/sis/util/ArraysExtTest.java    |  32 +-
 .../apache/sis/storage/geotiff/GeoCodesTest.java   |   1 -
 .../org/apache/sis/internal/netcdf/Convention.java |   3 +-
 .../org/apache/sis/internal/netcdf/Raster.java     |  11 +-
 .../apache/sis/internal/netcdf/RasterResource.java |   6 +-
 .../apache/sis/internal/sql/feature/Database.java  |  31 +-
 .../sis/internal/sql/feature/ValueGetter.java      | 139 ++-
 .../sis/internal/sql/feature/package-info.java     |   2 +-
 .../apache/sis/internal/sql/postgis/Postgres.java  |   9 +-
 .../sis/internal/sql/postgis/RasterReader.java     |   3 +-
 .../sis/internal/sql/postgis/package-info.java     |   2 +-
 .../sql/feature/TemporalValueGetterTest.java       | 238 +++++
 .../org/apache/sis/storage/sql/SQLStoreTest.java   | 104 +--
 .../apache/sis/storage/sql/TestOnAllDatabases.java |  99 +++
 .../org/apache/sis/test/suite/SQLTestSuite.java    |   1 +
 .../sis/internal/storage/GridResourceWrapper.java  |   4 +
 .../sis/internal/storage/MemoryFeatureSet.java     |  10 +-
 .../sis/internal/storage/MemoryGridResource.java   |  44 +-
 .../org/apache/sis/internal/storage/Resources.java |  14 +-
 .../sis/internal/storage/Resources.properties      |   2 -
 .../sis/internal/storage/Resources_fr.properties   |   2 -
 .../sis/internal/storage/TiledGridCoverage.java    |   2 +-
 .../sis/internal/storage/TiledGridResource.java    |   4 +-
 .../sis/internal/storage/esri/AsciiGridStore.java  |   2 +-
 .../sis/internal/storage/esri/RasterStore.java     |  18 +-
 .../sis/internal/storage/esri/RawRasterReader.java |   6 +-
 .../sis/internal/storage/esri/RawRasterStore.java  |   2 +-
 .../apache/sis/internal/storage/folder/Store.java  |   2 +-
 .../internal/storage/image/WorldFileResource.java  |   2 +-
 .../sis/internal/storage/io/IOUtilities.java       |   6 +-
 .../org/apache/sis/storage/AbstractFeatureSet.java |  14 +-
 .../sis/storage/AbstractGridCoverageResource.java  |  14 +-
 .../org/apache/sis/storage/AbstractResource.java   |  20 +-
 .../java/org/apache/sis/storage/CoverageQuery.java | 123 ++-
 .../org/apache/sis/storage/CoverageSubset.java     | 186 ++--
 .../java/org/apache/sis/storage/FeatureSubset.java |   4 +-
 .../apache/sis/storage/GridCoverageResource.java   |   6 +-
 .../org/apache/sis/storage/StorageConnector.java   |  44 +-
 .../storage/aggregate/AggregatedFeatureSet.java    |  13 +-
 .../sis/storage/aggregate/AggregatedResource.java  |  22 +-
 .../aggregate/BandAggregateGridResource.java       | 450 ++++++++++
 .../storage/aggregate/ConcatenatedFeatureSet.java  |   8 +-
 .../aggregate/ConcatenatedGridCoverage.java        |   2 +-
 .../aggregate/ConcatenatedGridResource.java        |  99 ++-
 .../sis/storage/aggregate/CoverageAggregator.java  | 252 +++++-
 .../apache/sis/storage/aggregate/GridSlice.java    |  79 +-
 .../sis/storage/aggregate/GridSliceLocator.java    |   3 +-
 .../org/apache/sis/storage/aggregate/Group.java    |   4 +-
 .../sis/storage/aggregate/GroupAggregate.java      |  33 +-
 .../apache/sis/storage/aggregate/GroupByCRS.java   |   4 +-
 .../sis/storage/aggregate/GroupBySample.java       |   8 +-
 .../sis/storage/aggregate/GroupByTransform.java    |   8 +-
 .../sis/storage/aggregate/JoinFeatureSet.java      |  10 +-
 .../sis/storage/aggregate/MergeStrategy.java       |   7 +-
 .../internal/storage/MemoryGridResourceTest.java   |   2 -
 .../org/apache/sis/storage/CoverageSubsetTest.java | 130 +++
 .../aggregate/BandAggregateGridResourceTest.java   | 228 +++++
 .../storage/aggregate/CoverageAggregatorTest.java  |   6 +-
 ...AggregatorTest.java => OpaqueGridResource.java} |  35 +-
 .../apache/sis/test/suite/StorageTestSuite.java    |   3 +-
 197 files changed, 13406 insertions(+), 2171 deletions(-)
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/BandAggregateGridCoverage.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionalityReduction.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ReducedGridCoverage.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandAggregateImage.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandSharedRaster.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandSharing.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/Colorizer.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/MultiSourceImage.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/MultiSourceLayout.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/MultiSourcePrefetch.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/UserProperties.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/WritableComputedImage.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CommonDomainFinder.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/MultiSourceArgument.java
 rename {storage/sis-storage/src/main/java/org/apache/sis/internal/storage => core/sis-feature/src/main/java/org/apache/sis/internal/coverage}/RangeArgument.java (91%)
 rename core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/{Colorizer.java => ColorModelBuilder.java} (73%)
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ObservableImage.java
 delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/WriteSupport.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/CopyVisitor.java
 create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/EditVisitor.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/BandAggregateGridCoverageTest.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/DimensionalityReductionTest.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/BandAggregateImageTest.java
 rename {storage/sis-storage/src/test/java/org/apache/sis/internal/storage => core/sis-feature/src/test/java/org/apache/sis/internal/coverage}/RangeArgumentTest.java (83%)
 rename core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/{ColorizerTest.java => ColorModelBuilderTest.java} (88%)
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/CopyVisitorTest.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/FilterFactoryMock.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/FunctionMock.java
 create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/ValueReferenceMock.java
 create mode 100644 storage/sis-sqlstore/src/test/java/org/apache/sis/internal/sql/feature/TemporalValueGetterTest.java
 create mode 100644 storage/sis-sqlstore/src/test/java/org/apache/sis/storage/sql/TestOnAllDatabases.java
 create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/BandAggregateGridResource.java
 create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/storage/CoverageSubsetTest.java
 create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/BandAggregateGridResourceTest.java
 copy storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/{CoverageAggregatorTest.java => OpaqueGridResource.java} (54%)


[sis] 01/01: Merge branch 'geoapi-4.0' into geoapi-3.1. The main work since previous merge is the integration of the "feat/resource-processor" branch. It brings "band aggregation" operations on images, grid coverages and grid resources.

Posted by de...@apache.org.
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 33688738c620102d6ce5fdb5a36e3d0d91f95261
Merge: 1437fa191c 175b9f0ced
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sun Apr 16 19:12:56 2023 +0200

    Merge branch 'geoapi-4.0' into geoapi-3.1.
    The main work since previous merge is the integration of the "feat/resource-processor" branch.
    It brings "band aggregation" operations on images, grid coverages and grid resources.

 .../apache/sis/gui/coverage/CoverageCanvas.java    |  59 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |   5 +-
 .../apache/sis/gui/coverage/CoverageStyling.java   | 120 ++-
 .../org/apache/sis/gui/map/ValuesFormatter.java    |   7 +-
 .../apache/sis/internal/gui/ImageConverter.java    |  13 +-
 .../apache/sis/internal/gui/control/ColorCell.java |  33 +-
 .../internal/gui/control/ColorColumnHandler.java   |  31 +-
 .../apache/sis/internal/gui/control/ColorRamp.java |  51 +-
 .../sis/internal/gui/control/ValueColorMapper.java |  12 -
 .../sis/internal/gui/control/package-info.java     |   2 +-
 .../sis/gui/coverage/CoverageStylingApp.java       |   5 +-
 .../apache/sis/cloud/aws/s3/CachedByteChannel.java |   2 +-
 .../org/apache/sis/coverage/BandedCoverage.java    |   9 +-
 .../java/org/apache/sis/coverage/Category.java     |   4 +-
 .../org/apache/sis/coverage/SampleDimension.java   | 109 ++-
 .../coverage/grid/BandAggregateGridCoverage.java   | 323 +++++++
 .../sis/coverage/grid/BufferedGridCoverage.java    |  22 +-
 .../sis/coverage/grid/ConvertedGridCoverage.java   |   2 +-
 .../coverage/grid/CoordinateOperationFinder.java   |   5 +-
 .../apache/sis/coverage/grid/DefaultEvaluator.java |  12 +-
 .../sis/coverage/grid/DerivedGridCoverage.java     |  27 +-
 .../apache/sis/coverage/grid/DimensionReducer.java |   5 +-
 .../sis/coverage/grid/DimensionalityReduction.java | 989 +++++++++++++++++++++
 .../sis/coverage/grid/DisjointExtentException.java |   9 +-
 .../coverage/grid/FractionalGridCoordinates.java   |   6 +-
 .../org/apache/sis/coverage/grid/GridCoverage.java |  84 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   2 +
 .../sis/coverage/grid/GridCoverageBuilder.java     |  26 +-
 .../sis/coverage/grid/GridCoverageProcessor.java   | 451 +++++++++-
 .../org/apache/sis/coverage/grid/GridExtent.java   | 261 +++---
 .../org/apache/sis/coverage/grid/GridGeometry.java |  10 +-
 .../apache/sis/coverage/grid/GridOrientation.java  |   2 +-
 .../apache/sis/coverage/grid/ImageRenderer.java    | 103 ++-
 .../sis/coverage/grid/ReducedGridCoverage.java     | 160 ++++
 .../sis/coverage/grid/ResampledGridCoverage.java   |   3 +-
 .../apache/sis/coverage/grid/SliceGeometry.java    |  25 +-
 .../java/org/apache/sis/filter/LogicalFilter.java  |   5 +-
 .../java/org/apache/sis/image/AnnotatedImage.java  |  12 +-
 .../org/apache/sis/image/BandAggregateImage.java   | 338 +++++++
 .../java/org/apache/sis/image/BandSelectImage.java | 152 +++-
 .../org/apache/sis/image/BandSharedRaster.java     | 181 ++++
 .../java/org/apache/sis/image/BandSharing.java     | 377 ++++++++
 .../apache/sis/image/BandedSampleConverter.java    | 180 ++--
 .../main/java/org/apache/sis/image/Colorizer.java  | 348 ++++++++
 .../java/org/apache/sis/image/ComputedImage.java   |  88 +-
 .../java/org/apache/sis/image/ImageAdapter.java    |   6 +-
 .../java/org/apache/sis/image/ImageProcessor.java  | 408 ++++++++-
 .../java/org/apache/sis/image/Interpolation.java   |   6 +-
 .../main/java/org/apache/sis/image/MaskImage.java  |   2 +-
 .../org/apache/sis/image/MultiSourceImage.java     | 148 +++
 .../org/apache/sis/image/MultiSourceLayout.java    | 414 +++++++++
 .../org/apache/sis/image/MultiSourcePrefetch.java  | 178 ++++
 .../java/org/apache/sis/image/PlanarImage.java     |  95 +-
 .../java/org/apache/sis/image/RecoloredImage.java  |  47 +-
 .../java/org/apache/sis/image/ResampledImage.java  |  10 +-
 .../org/apache/sis/image/SourceAlignedImage.java   |   8 +-
 .../main/java/org/apache/sis/image/Transferer.java |  55 +-
 .../java/org/apache/sis/image/UserProperties.java  | 124 +++
 .../java/org/apache/sis/image/Visualization.java   | 244 +++--
 .../apache/sis/image/WritableComputedImage.java    | 177 ++++
 .../java/org/apache/sis/index/tree/PointTree.java  |   2 +-
 .../sis/internal/coverage/CommonDomainFinder.java  | 376 ++++++++
 .../sis/internal/coverage/MultiSourceArgument.java | 623 +++++++++++++
 .../sis/internal/coverage}/RangeArgument.java      |  46 +-
 .../sis/internal/coverage/SampleDimensions.java    |  56 +-
 .../j2d/{Colorizer.java => ColorModelBuilder.java} | 256 ++++--
 .../internal/coverage/j2d/ColorModelFactory.java   | 336 ++++---
 .../sis/internal/coverage/j2d/ColorModelType.java  |   2 +-
 .../sis/internal/coverage/j2d/ColorsForRange.java  | 166 +++-
 .../sis/internal/coverage/j2d/ImageLayout.java     |  34 +-
 .../sis/internal/coverage/j2d/ImageUtilities.java  |  78 +-
 .../coverage/j2d/MultiBandsIndexColorModel.java    |  23 +-
 .../sis/internal/coverage/j2d/ObservableImage.java | 289 ++++++
 .../sis/internal/coverage/j2d/RasterFactory.java   |  34 +-
 .../internal/coverage/j2d/SampleModelFactory.java  |   2 +-
 .../internal/coverage/j2d/ScaledColorModel.java    |  15 +-
 .../internal/coverage/j2d/ScaledColorSpace.java    |  31 +-
 .../internal/coverage/j2d/WritableTiledImage.java  |   8 +-
 .../sis/internal/coverage/j2d/WriteSupport.java    | 100 ---
 .../apache/sis/internal/coverage/package-info.java |   2 +-
 .../org/apache/sis/internal/feature/Resources.java |  40 +
 .../sis/internal/feature/Resources.properties      |   8 +
 .../sis/internal/feature/Resources_fr.properties   |   8 +
 .../apache/sis/internal/filter/CopyVisitor.java    | 712 +++++++++++++++
 .../apache/sis/internal/filter/EditVisitor.java    |  56 ++
 .../apache/sis/internal/filter/package-info.java   |   2 +-
 .../sis/internal/filter/sqlmm/SpatialFunction.java |  23 +-
 .../grid/BandAggregateGridCoverageTest.java        | 183 ++++
 .../coverage/grid/ConvertedGridCoverageTest.java   |  24 +-
 .../coverage/grid/DimensionalityReductionTest.java | 194 ++++
 .../apache/sis/coverage/grid/GridGeometryTest.java |  40 +-
 .../apache/sis/image/BandAggregateImageTest.java   | 536 +++++++++++
 .../org/apache/sis/image/BandSelectImageTest.java  |  79 +-
 .../org/apache/sis/image/ImageProcessorTest.java   |  62 +-
 .../apache/sis/image/StatisticsCalculatorTest.java |   2 +-
 .../java/org/apache/sis/image/TiledImageMock.java  |  66 +-
 .../sis/internal/coverage}/RangeArgumentTest.java  |  18 +-
 ...lorizerTest.java => ColorModelBuilderTest.java} |  20 +-
 .../sis/internal/filter/CopyVisitorTest.java       |  77 ++
 .../sis/internal/filter/FilterFactoryMock.java     | 562 ++++++++++++
 .../apache/sis/internal/filter/FunctionMock.java   |  91 ++
 .../sis/internal/filter/ValueReferenceMock.java    |  82 ++
 .../apache/sis/test/suite/FeatureTestSuite.java    |   9 +-
 .../apache/sis/internal/metadata/sql/Dialect.java  |  31 +-
 .../org/apache/sis/util/iso/DefaultScopedName.java |   2 +-
 .../java/org/apache/sis/test/sql/TestDatabase.java |  24 +-
 .../sis/internal/map/coverage/RenderingData.java   |  26 +-
 .../java/org/apache/sis/geometry/Envelopes.java    |   2 +-
 .../referencing/provider/DatumShiftGridLoader.java |   4 +-
 .../apache/sis/parameter/ParameterValueList.java   |   2 +-
 .../main/java/org/apache/sis/referencing/CRS.java  |  40 +-
 .../referencing/factory/sql/AuthorityCodes.java    |   2 +-
 .../operation/DefaultPassThroughOperation.java     | 141 +--
 .../operation/builder/LinearTransformBuilder.java  |   2 +-
 .../referencing/operation/projection/Mercator.java |   4 +-
 .../operation/transform/MathTransforms.java        |  37 +
 .../operation/transform/PassThroughTransform.java  | 127 ++-
 .../operation/transform/TransformSeparator.java    |  55 +-
 .../operation/transform/MathTransformTestCase.java |   4 +-
 .../transform/PassThroughTransformTest.java        |  65 +-
 .../apache/sis/internal/system/Configuration.java  |   2 +-
 .../org/apache/sis/internal/util/Numerics.java     |  13 +
 .../java/org/apache/sis/measure/NumberRange.java   |   7 +-
 .../main/java/org/apache/sis/measure/Range.java    |  23 +-
 .../java/org/apache/sis/measure/SystemUnit.java    |   2 +-
 .../java/org/apache/sis/util/ArgumentChecks.java   | 112 ++-
 .../main/java/org/apache/sis/util/ArraysExt.java   | 140 +--
 .../src/main/java/org/apache/sis/util/Version.java |   2 +-
 .../sis/util/collection/WeakValueHashMap.java      |  89 +-
 .../java/org/apache/sis/util/package-info.java     |   2 +-
 .../org/apache/sis/util/resources/Vocabulary.java  |   5 +
 .../sis/util/resources/Vocabulary.properties       |   1 +
 .../sis/util/resources/Vocabulary_fr.properties    |   1 +
 .../java/org/apache/sis/measure/RangeTest.java     |  17 +-
 .../org/apache/sis/measure/UnitFormatTest.java     |   2 +-
 .../java/org/apache/sis/measure/UnitsTest.java     |   2 +-
 .../org/apache/sis/util/ArgumentChecksTest.java    |   6 +-
 .../java/org/apache/sis/util/ArraysExtTest.java    |  32 +-
 .../apache/sis/storage/geotiff/GeoCodesTest.java   |   1 -
 .../org/apache/sis/internal/netcdf/Convention.java |   3 +-
 .../org/apache/sis/internal/netcdf/Raster.java     |  11 +-
 .../apache/sis/internal/netcdf/RasterResource.java |   6 +-
 .../apache/sis/internal/sql/feature/Database.java  |  31 +-
 .../sis/internal/sql/feature/ValueGetter.java      | 139 ++-
 .../sis/internal/sql/feature/package-info.java     |   2 +-
 .../apache/sis/internal/sql/postgis/Postgres.java  |   9 +-
 .../sis/internal/sql/postgis/RasterReader.java     |   3 +-
 .../sis/internal/sql/postgis/package-info.java     |   2 +-
 .../sql/feature/TemporalValueGetterTest.java       | 238 +++++
 .../org/apache/sis/storage/sql/SQLStoreTest.java   | 104 +--
 .../apache/sis/storage/sql/TestOnAllDatabases.java |  99 +++
 .../org/apache/sis/test/suite/SQLTestSuite.java    |   1 +
 .../sis/internal/storage/GridResourceWrapper.java  |   4 +
 .../sis/internal/storage/MemoryFeatureSet.java     |  10 +-
 .../sis/internal/storage/MemoryGridResource.java   |  44 +-
 .../org/apache/sis/internal/storage/Resources.java |  14 +-
 .../sis/internal/storage/Resources.properties      |   2 -
 .../sis/internal/storage/Resources_fr.properties   |   2 -
 .../sis/internal/storage/TiledGridCoverage.java    |   2 +-
 .../sis/internal/storage/TiledGridResource.java    |   4 +-
 .../sis/internal/storage/esri/AsciiGridStore.java  |   2 +-
 .../sis/internal/storage/esri/RasterStore.java     |  18 +-
 .../sis/internal/storage/esri/RawRasterReader.java |   6 +-
 .../sis/internal/storage/esri/RawRasterStore.java  |   2 +-
 .../apache/sis/internal/storage/folder/Store.java  |   2 +-
 .../internal/storage/image/WorldFileResource.java  |   2 +-
 .../sis/internal/storage/io/IOUtilities.java       |   6 +-
 .../org/apache/sis/storage/AbstractFeatureSet.java |  14 +-
 .../sis/storage/AbstractGridCoverageResource.java  |  14 +-
 .../org/apache/sis/storage/AbstractResource.java   |  20 +-
 .../java/org/apache/sis/storage/CoverageQuery.java | 123 ++-
 .../org/apache/sis/storage/CoverageSubset.java     | 186 ++--
 .../java/org/apache/sis/storage/FeatureSubset.java |   4 +-
 .../apache/sis/storage/GridCoverageResource.java   |   6 +-
 .../org/apache/sis/storage/StorageConnector.java   |  44 +-
 .../storage/aggregate/AggregatedFeatureSet.java    |  13 +-
 .../sis/storage/aggregate/AggregatedResource.java  |  22 +-
 .../aggregate/BandAggregateGridResource.java       | 450 ++++++++++
 .../storage/aggregate/ConcatenatedFeatureSet.java  |   8 +-
 .../aggregate/ConcatenatedGridCoverage.java        |   2 +-
 .../aggregate/ConcatenatedGridResource.java        |  99 ++-
 .../sis/storage/aggregate/CoverageAggregator.java  | 252 +++++-
 .../apache/sis/storage/aggregate/GridSlice.java    |  79 +-
 .../sis/storage/aggregate/GridSliceLocator.java    |   3 +-
 .../org/apache/sis/storage/aggregate/Group.java    |   4 +-
 .../sis/storage/aggregate/GroupAggregate.java      |  33 +-
 .../apache/sis/storage/aggregate/GroupByCRS.java   |   4 +-
 .../sis/storage/aggregate/GroupBySample.java       |   8 +-
 .../sis/storage/aggregate/GroupByTransform.java    |   8 +-
 .../sis/storage/aggregate/JoinFeatureSet.java      |  10 +-
 .../sis/storage/aggregate/MergeStrategy.java       |   7 +-
 .../internal/storage/MemoryGridResourceTest.java   |   2 -
 .../org/apache/sis/storage/CoverageSubsetTest.java | 130 +++
 .../aggregate/BandAggregateGridResourceTest.java   | 228 +++++
 .../storage/aggregate/CoverageAggregatorTest.java  |   6 +-
 ...AggregatorTest.java => OpaqueGridResource.java} |  35 +-
 .../apache/sis/test/suite/StorageTestSuite.java    |   3 +-
 197 files changed, 13406 insertions(+), 2171 deletions(-)

diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
index 38890ea54a,fd62fcd1b8..b346aadd96
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
@@@ -76,8 -71,18 +74,18 @@@ public class DefaultPassThroughOperatio
       * @see #getOperation()
       */
      @SuppressWarnings("serial")                 // Most SIS implementations are serializable.
 -    private CoordinateOperation operation;
 +    private SingleOperation operation;
  
+     /**
+      * Zero-based indices of the modified source coordinates.
+      *
+      * <p><b>Consider this field as final!</b>
+      * This field is modified only at unmarshalling time by {@link #setIndices(int[])}</p>
+      *
+      * @see #getModifiedCoordinates()
+      */
+     private int[] modifiedCoordinates;
+ 
      /**
       * Constructs a pass-through operation from a set of properties.
       * The properties given in argument follow the same rules than for the
@@@ -114,13 -119,30 +122,30 @@@
      public DefaultPassThroughOperation(final Map<String,?>            properties,
                                         final CoordinateReferenceSystem sourceCRS,
                                         final CoordinateReferenceSystem targetCRS,
 -                                       final CoordinateOperation       operation,
 +                                       final SingleOperation           operation,
                                         final int firstAffectedCoordinate,
                                         final int numTrailingCoordinates)
+     {
+         this(properties, sourceCRS, targetCRS, operation, operation.getMathTransform(), firstAffectedCoordinate, numTrailingCoordinates);
+     }
+ 
+     /**
+      * Work around for RFE #4093999 in Sun's bug database
+      * ("Relax constraint on placement of this()/super() call in constructors").
+      */
+     private DefaultPassThroughOperation(final Map<String,?>            properties,
+                                         final CoordinateReferenceSystem sourceCRS,
+                                         final CoordinateReferenceSystem targetCRS,
 -                                        final CoordinateOperation       operation,
++                                        final SingleOperation           operation,
+                                         final MathTransform          subTransform,
+                                         final int firstAffectedCoordinate,
+                                         final int numTrailingCoordinates)
      {
          super(properties, sourceCRS, targetCRS, null,
-               MathTransforms.passThrough(firstAffectedCoordinate, operation.getMathTransform(), numTrailingCoordinates));
+               MathTransforms.passThrough(firstAffectedCoordinate, subTransform, numTrailingCoordinates));
          this.operation = operation;
+         modifiedCoordinates = ArraysExt.range(firstAffectedCoordinate,
+                                               firstAffectedCoordinate + subTransform.getSourceDimensions());
      }
  
      /**