This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sis.git
commit 0e0cde0dc9ce114ee3b20d62681060a4a97fee7f Merge: e339e19 db2fc14 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Fri Feb 11 14:17:55 2022 +0100 Merge branch 'geoapi-3.1' .../apache/sis/gui/coverage/CoverageCanvas.java | 5 +- .../org/apache/sis/internal/gui/GUIUtilities.java | 2 +- .../apache/sis/internal/gui/ImageConverter.java | 5 +- .../java/org/apache/sis/coverage/CategoryList.java | 23 +- .../coverage/grid/FractionalGridCoordinates.java | 18 +- .../apache/sis/coverage/grid/GridCoverage2D.java | 9 +- .../apache/sis/coverage/grid/GridEvaluator.java | 16 +- .../java/org/apache/sis/filter/PropertyValue.java | 12 +- .../java/org/apache/sis/image/PixelIterator.java | 54 +- .../java/org/apache/sis/image/PlanarImage.java | 17 +- .../java/org/apache/sis/image/ResamplingGrid.java | 5 - .../sis/internal/coverage/j2d/TilePlaceholder.java | 21 +- .../sis/coverage/grid/GridCoverage2DTest.java | 28 +- .../sis/coverage/grid/GridDerivationTest.java | 28 ++ .../org/apache/sis/internal/metadata/Merger.java | 5 +- .../sis/metadata/iso/citation/Citations.java | 14 +- .../sis/metadata/iso/citation/package-info.java | 2 +- .../apache/sis/metadata/sql/MetadataFallback.java | 9 +- .../org/apache/sis/metadata/sql/Citations.sql | 9 +- .../internal/map/coverage/RenderingWorkaround.java | 104 ++++ .../apache/sis/internal/referencing/Formulas.java | 48 +- .../referencing/j2d/AffineTransform2D.java | 2 +- .../provider/ModifiedAzimuthalEquidistant.java | 13 +- .../referencing/provider/NorthPoleRotation.java | 160 ++++++ .../referencing/provider/SouthPoleRotation.java | 169 +++++++ .../referencing/provider/package-info.java | 2 +- .../java/org/apache/sis/parameter/Parameters.java | 2 +- .../org/apache/sis/parameter/TensorValues.java | 2 +- .../factory/ConcurrentAuthorityFactory.java | 138 ++---- .../factory/IdentifiedObjectFinder.java | 106 ++-- .../factory/MultiAuthoritiesFactory.java | 8 +- .../operation/CoordinateOperationContext.java | 4 +- .../operation/CoordinateOperationRegistry.java | 106 +++- .../sis/referencing/operation/package-info.java | 2 +- .../projection/LambertConicConformal.java | 1 + .../projection/ModifiedAzimuthalEquidistant.java | 2 +- .../operation/projection/NormalizedProjection.java | 57 +-- .../operation/projection/ObliqueMercator.java | 1 + .../operation/projection/ObliqueStereographic.java | 1 + .../operation/projection/PolarStereographic.java | 1 + .../operation/projection/package-info.java | 2 +- .../transform/AbstractLinearTransform.java | 2 +- .../operation/transform/AbstractMathTransform.java | 8 +- .../transform/AbstractMathTransform2D.java | 28 +- .../operation/transform/ConcatenatedTransform.java | 10 +- .../transform/ConcatenatedTransform2D.java | 4 +- .../transform/ConcatenatedTransformDirect.java | 4 +- .../transform/ConcatenatedTransformDirect2D.java | 4 +- .../operation/transform/ConstantTransform1D.java | 8 +- .../operation/transform/ContextualParameters.java | 107 ++-- .../transform/CoordinateSystemTransform.java | 2 +- .../operation/transform/CopyTransform.java | 4 +- .../operation/transform/DatumShiftTransform.java | 2 +- .../transform/DefaultMathTransformFactory.java | 2 +- .../transform/EllipsoidToCentricTransform.java | 10 +- .../transform/ExponentialTransform1D.java | 8 +- .../operation/transform/IdentityTransform.java | 10 +- .../operation/transform/IdentityTransform1D.java | 8 +- .../InterpolatedGeocentricTransform2D.java | 4 +- .../InterpolatedMolodenskyTransform2D.java | 4 +- .../operation/transform/InterpolatedTransform.java | 2 +- .../transform/InterpolatedTransform2D.java | 4 +- .../operation/transform/LinearTransform1D.java | 12 +- .../transform/LogarithmicTransform1D.java | 8 +- .../operation/transform/MolodenskyFormula.java | 2 +- .../operation/transform/MolodenskyTransform2D.java | 2 +- .../operation/transform/PassThroughTransform.java | 10 +- .../operation/transform/PoleRotation.java | 550 +++++++++++++++++++++ .../operation/transform/PowerTransform1D.java | 8 +- .../operation/transform/ProjectiveTransform.java | 13 +- .../operation/transform/ScaleTransform.java | 2 +- .../operation/transform/TranslationTransform.java | 2 +- .../operation/transform/WraparoundTransform.java | 4 +- .../operation/transform/package-info.java | 2 +- ...g.opengis.referencing.operation.OperationMethod | 2 + .../referencing/provider/PoleRotationMock.java | 60 --- .../referencing/provider/ProvidersTest.java | 4 +- .../referencing/provider/SeismicBinGridMock.java | 2 +- .../provider/TopocentricConversionMock.java | 2 +- .../factory/ConcurrentAuthorityFactoryTest.java | 17 +- .../referencing/factory/sql/EPSGFactoryTest.java | 9 +- .../projection/MapProjectionTestCase.java | 2 +- .../sis/referencing/operation/projection/NoOp.java | 3 +- .../projection/ProjectionResultComparator.java | 4 +- .../operation/transform/MathTransformWrapper.java | 8 +- .../operation/transform/PoleRotationTest.java | 329 ++++++++++++ .../sis/test/suite/ReferencingTestSuite.java | 1 + ...g.opengis.referencing.operation.OperationMethod | 1 - .../apache/sis/internal/util/CollectionsExt.java | 4 +- .../org/apache/sis/util/resources/Messages.java | 5 + .../apache/sis/util/resources/Messages.properties | 1 + .../sis/util/resources/Messages_fr.properties | 1 + ide-project/NetBeans/nbproject/project.properties | 2 +- pom.xml | 4 +- .../org/apache/sis/internal/geotiff/Resources.java | 4 +- .../sis/internal/geotiff/Resources.properties | 2 +- .../sis/internal/geotiff/Resources_fr.properties | 2 +- .../sis/internal/storage/inflater/CCITTRLE.java | 4 +- .../storage/inflater/CompressionChannel.java | 2 +- .../storage/inflater/HorizontalPredictor.java | 2 +- .../sis/internal/storage/inflater/Inflater.java | 2 +- .../apache/sis/internal/storage/inflater/LZW.java | 47 +- .../sis/internal/storage/inflater/PackBits.java | 4 +- .../internal/storage/inflater/PixelChannel.java | 2 +- .../storage/inflater/PredictorChannel.java | 4 +- .../apache/sis/internal/storage/inflater/ZIP.java | 6 +- .../org/apache/sis/storage/geotiff/CRSBuilder.java | 22 +- .../sis/storage/geotiff/ImageFileDirectory.java | 139 +----- .../sis/storage/geotiff/ImageMetadataBuilder.java | 234 +++++++++ .../apache/sis/storage/geotiff/NativeMetadata.java | 2 +- .../apache/sis/storage/geotiff/XMLMetadata.java | 44 +- .../sis/storage/geotiff/XMLMetadataTest.java | 4 +- .../org/apache/sis/internal/netcdf/Linearizer.java | 2 +- .../sis/internal/storage/MetadataBuilder.java | 49 +- .../sis/internal/storage/TiledGridCoverage.java | 3 + .../internal/storage/MemoryGridResourceTest.java | 8 +- 116 files changed, 2397 insertions(+), 715 deletions(-) diff --cc core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java index e07d498,b8ddb4b..a5fe607 --- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java +++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java @@@ -181,16 -181,18 +181,17 @@@ public class GridEvaluator implements G try { final FractionalGridCoordinates gc = toGridPosition(point); try { - final GridExtent subExtent = gc.toExtent(gridGeometry.extent, size); - return evaluate(coverage.render(subExtent), 0, 0); + final GridExtent subExtent = gc.toExtent(gridGeometry.extent, size, nullIfOutside); + if (subExtent != null) { + return evaluate(coverage.render(subExtent), 0, 0); + } } catch (ArithmeticException | IndexOutOfBoundsException | DisjointExtentException ex) { - if (nullIfOutside) { - return null; + if (!nullIfOutside) { + throw (PointOutsideCoverageException) new PointOutsideCoverageException( - gc.pointOutsideCoverage(gridGeometry.extent), point).initCause(ex); ++ gc.pointOutsideCoverage(gridGeometry.extent)).initCause(ex); } - throw (PointOutsideCoverageException) new PointOutsideCoverageException( - gc.pointOutsideCoverage(gridGeometry.extent)).initCause(ex); } } catch (PointOutsideCoverageException ex) { - ex.setOffendingLocation(point); throw ex; } catch (RuntimeException | TransformException ex) { throw new CannotEvaluateException(ex.getMessage(), ex); diff --cc core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java index 4a238a9,066e65a..7649a25 --- a/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java +++ b/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java @@@ -225,14 -220,8 +225,8 @@@ split: if (path != null) * If no value is found for the given feature, then this method returns {@code null}. */ @Override - public Object apply(final Feature instance) { + public Object apply(final AbstractFeature instance) { - if (instance != null) try { - return instance.getPropertyValue(name); - } catch (IllegalArgumentException e) { - warning(e, true); - // Null will be returned below. - } - return null; + return (instance != null) ? instance.getValueOrFallback(name, null) : null; } /** @@@ -292,14 -281,11 +286,14 @@@ * If no value is found for the given feature, then this method returns {@code null}. */ @Override - public V apply(final Feature instance) { + public V apply(final AbstractFeature instance) { if (instance != null) try { - return ObjectConverters.convert(instance.getPropertyValue(name), type); + return ObjectConverters.convert(instance.getValueOrFallback(name, null), type); } catch (UnconvertibleObjectException e) { warning(e, false); + } catch (IllegalArgumentException e) { + warning(e, true); + // Null will be returned below. } return null; } @@@ -439,13 -425,11 +433,13 @@@ * If no value is found for the given feature, then this method returns {@code null}. */ @Override - public V apply(final Feature instance) { + public V apply(final AbstractFeature instance) { if (instance != null) try { - return converter.apply(source.cast(instance.getPropertyValue(name))); + return converter.apply(source.cast(instance.getValueOrFallback(name, null))); } catch (ClassCastException | UnconvertibleObjectException e) { warning(e, false); + } catch (IllegalArgumentException e) { + warning(e, true); } return null; } diff --cc core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java index a416caf,191b1f6..ff64fe7 --- a/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java +++ b/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java @@@ -37,6 -37,8 +37,7 @@@ import java.awt.image.MultiPixelPackedS import java.awt.image.SinglePixelPackedSampleModel; import java.awt.image.RasterFormatException; import java.util.NoSuchElementException; -import org.opengis.coverage.grid.SequenceType; + import org.apache.sis.util.resources.Messages; import org.apache.sis.util.resources.Errors; import org.apache.sis.util.ArgumentChecks; import org.apache.sis.util.ArraysExt;