[sis] 01/01: Merge branch 'geoapi-3.1'

2019-10-24 Thread desruisseaux
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 b25123db48345bbcef1e39c58ae304125cee7f42
Merge: ddfef3e 1105c74
Author: Martin Desruisseaux 
AuthorDate: Thu Oct 24 14:19:43 2019 +0200

Merge branch 'geoapi-3.1'

 application/sis-console/src/main/artifact/bin/sis  |   5 +-
 .../java/org/apache/sis/coverage/Category.java |   8 +-
 .../java/org/apache/sis/coverage/CategoryList.java |   8 +-
 .../coverage/IllegalSampleDimensionException.java  |  62 +
 .../org/apache/sis/coverage/SampleDimension.java   |   5 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java | 146 +++-
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   4 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/coverage/SampleRangeFormatTest.java | 137 +++
 .../apache/sis/test/suite/FeatureTestSuite.java|   3 +-
 .../referencing/provider/AbstractLambert.java  |  22 ++
 .../referencing/provider/AbstractMercator.java |  22 ++
 .../provider/AbstractStereographic.java|  22 ++
 .../referencing/provider/AlbersEqualArea.java  |  89 ++-
 .../sis/internal/referencing/provider/ESRI.java|  54 -
 .../referencing/provider/Equirectangular.java  |  64 +
 .../provider/FranceGeocentricInterpolation.java|  10 +
 .../referencing/provider/GeocentricAffine.java |  61 +
 .../GeocentricAffineBetweenGeographic.java |  56 +
 .../referencing/provider/Geographic2Dto3D.java |   6 +
 .../provider/GeographicAndVerticalOffsets.java |   6 +
 .../referencing/provider/GeographicOffsets.java|  18 ++
 .../provider/GeographicToGeocentric.java   |  12 +
 .../referencing/provider/LambertConformal1SP.java  |  37 +++
 .../referencing/provider/LambertConformal2SP.java  |  75 +-
 .../provider/LambertConformalMichigan.java |  10 +
 .../referencing/provider/LambertConformalWest.java |  11 +
 .../provider/LambertCylindricalEqualArea.java  |  48 
 .../referencing/provider/MapProjection.java| 120 --
 .../internal/referencing/provider/Mercator1SP.java |  37 +++
 .../internal/referencing/provider/Mercator2SP.java |  29 ++-
 .../referencing/provider/MercatorSpherical.java|   2 +-
 .../internal/referencing/provider/Mollweide.java   |  24 ++
 .../internal/referencing/provider/Molodensky.java  |  26 +-
 .../sis/internal/referencing/provider/NADCON.java  |  20 ++
 .../sis/internal/referencing/provider/NTv2.java|  10 +
 .../referencing/provider/ObliqueMercator.java  |  93 +++-
 .../provider/ObliqueMercatorCenter.java|  20 ++
 .../referencing/provider/ObliqueStereographic.java |  33 +++
 .../referencing/provider/Orthographic.java | 196 
 .../referencing/provider/PolarStereographicA.java  |  37 +++
 .../referencing/provider/PolarStereographicB.java  |  43 +++-
 .../referencing/provider/PolarStereographicC.java  |  22 ++
 .../internal/referencing/provider/Polyconic.java   |  44 
 .../referencing/provider/RegionalMercator.java |  37 +++
 .../referencing/provider/SatelliteTracking.java|  60 +
 .../internal/referencing/provider/Sinusoidal.java  |  24 ++
 .../referencing/provider/TransverseMercator.java   |  37 ++-
 .../provider/ZonedTransverseMercator.java  |  21 ++
 .../java/org/apache/sis/referencing/Builder.java   |  48 +++-
 .../sis/referencing/operation/matrix/Matrix1.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix2.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix3.java  |  13 +-
 .../sis/referencing/operation/matrix/Matrix4.java  |  13 +-
 .../referencing/operation/matrix/package-info.java |   2 +-
 .../operation/projection/AlbersEqualArea.java  |   7 +-
 .../operation/projection/Initializer.java  |  16 +-
 .../referencing/operation/projection/Inverter.java | 105 +
 .../projection/LambertConicConformal.java  |   7 +-
 .../referencing/operation/projection/Mercator.java |   6 +-
 .../operation/projection/Mollweide.java|   8 +-
 .../operation/projection/ObliqueMercator.java  |   6 +-
 .../operation/projection/ObliqueStereographic.java |   7 +-
 .../operation/projection/Orthographic.java | 261 +
 .../operation/projection/Sinusoidal.java   |   7 +-
 .../operation/projection/ZonedGridSystem.java  |   2 +-
 ...g.opengis.referencing.operation.OperationMethod |   1 +
 .../referencing/provider/ProvidersTest.java|   3 +-
 .../operation/projection/OrthographicTest.java | 147 
 .../sis/test/suite/ReferencingTestSuite.java   |   1 +
 .../java/org/apache/sis/internal/jdk9/JDK9.java|  19 +-
 .../org/apache/sis/internal/jdk9/package-info.java |   2 +-
 .../main/java/org/apache/sis/io/TableAppender.java |   6 +-
 .../java/org/apache/sis/util/logging/Logging.java  |  11 +-
 

[sis] branch master updated (ddfef3e -> b25123d)

2019-10-24 Thread desruisseaux
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git.


from ddfef3e  Merge HTML changes in javadoc from branch 'geoapi-3.1'.
 add 52a543d  Use {@systemProperty} javadoc tag (new in Java 12) where we 
are defining system properties.
 add adfaee7  Upgrade some dependencies.
 add a941f05  Consolidation of the way we check if some tests are enabled.
 add d1ee6aa  Inserts table of parameter names for every 
`ParameterDescriptor` declaration in the provider package. Those tables are 
generated automatically by `ParameterNameTableGenerator` from runtime 
information. The intent is to make easier to maintain the parameter 
declarations when new projections are added, since we use the existing 
parameters as templates.
 add 42ed8a4  Add additional information about parameter: value domain, 
default value, whether it is optional.
 add d28ce40  Correction in the report of default values.
 add a8e2cbb  Initial implementation of Orthographic projection (spherical 
formulas) implemented from Wikipedia and Snyder equations. 
https://issues.apache.org/jira/browse/SIS-223 - not yet completed because 
missing ellipsoidal formulas. This work implied revisiting the way we copy 
names and identifiers from an existing ParameterDescriptor for creating a new 
ParameterDescriptor.
 add d33105c  Consolidation of reference to Wikipedia or MathWorld.
 add dd58ea3  Fix "llegalArgumentException: Argument ‘count’ shall not be 
negative" when invoking GridGeometry.toString().
 add be44417  'sis' command should resolve symbolic link.
 add 9581e07  Fix SampleDimension formatting bugs: - Was missing name of 
sample dimensions after the first one. - Formatting of bands without categories 
was not helpful.
 add 609bbd9  More explicit exception when there is overlapping range, and 
make this exception non-fatal in netCDF reader.
 add 31758f6  Avoid range collision if the minimum or maximum value in a 
netCDF file is equals to a pad/fill value.
 add 64f0021  Documentation updates and finer checks of overlapping ranges 
in netCDF files.
 add 13b98e3  Add an checked exception for data not found for other reason 
than illegal name. The reason of interest in this commit is disjoint extent.
 add c68512d  Implement ellipsoidal formulas of Orthographic projection 
from the formulas published in EPSG guidance notes. 
https://issues.apache.org/jira/browse/SIS-223
 add 25fbf74  When computing inverse projection, temporarily disable the 
setting of out-of-domain coordinates to NaN. We use the Inverter class as a 
flag for identifying those situations.
 add 1105c74  Merge branch 'geoapi-4.0' into geoapi-3.1
 new b25123d  Merge branch 'geoapi-3.1'

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:
 application/sis-console/src/main/artifact/bin/sis  |   5 +-
 .../java/org/apache/sis/coverage/Category.java |   8 +-
 .../java/org/apache/sis/coverage/CategoryList.java |   8 +-
 ...n.java => IllegalSampleDimensionException.java} |  23 +-
 .../org/apache/sis/coverage/SampleDimension.java   |   5 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java | 146 +++-
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   4 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/coverage/SampleRangeFormatTest.java | 137 +++
 .../apache/sis/test/suite/FeatureTestSuite.java|   3 +-
 .../referencing/provider/AbstractLambert.java  |  22 ++
 .../referencing/provider/AbstractMercator.java |  22 ++
 .../provider/AbstractStereographic.java|  22 ++
 .../referencing/provider/AlbersEqualArea.java  |  89 ++-
 .../sis/internal/referencing/provider/ESRI.java|  54 -
 .../referencing/provider/Equirectangular.java  |  64 +
 .../provider/FranceGeocentricInterpolation.java|  10 +
 .../referencing/provider/GeocentricAffine.java |  61 +
 .../GeocentricAffineBetweenGeographic.java |  56 +
 .../referencing/provider/Geographic2Dto3D.java |   6 +
 .../provider/GeographicAndVerticalOffsets.java |   6 +
 .../referencing/provider/GeographicOffsets.java|  18 ++
 .../provider/GeographicToGeocentric.java   |  12 +
 .../referencing/provider/LambertConformal1SP.java  |  37 +++
 .../referencing/provider/LambertConformal2SP.java  |  75 +-
 .../provider/LambertConformalMichigan.java |  10 +
 .../referencing/provider/LambertConformalWest.java |  11 +
 .../provider/LambertCylindricalEqualArea.java  |  48 
 .../referencing/provider/MapProjection.java| 120 --
 .../internal/referencing/provider/Mercator1SP.java |  37 +++
 

[sis] 01/01: Merge branch 'geoapi-4.0' into geoapi-3.1

2019-10-24 Thread desruisseaux
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 1105c7453314b1171955eabd4704c45c5572e8c4
Merge: 20de767 25fbf74
Author: Martin Desruisseaux 
AuthorDate: Thu Oct 24 14:08:15 2019 +0200

Merge branch 'geoapi-4.0' into geoapi-3.1

 application/sis-console/src/main/artifact/bin/sis  |   5 +-
 .../java/org/apache/sis/coverage/Category.java |   8 +-
 .../java/org/apache/sis/coverage/CategoryList.java |   8 +-
 .../coverage/IllegalSampleDimensionException.java  |  62 
 .../org/apache/sis/coverage/SampleDimension.java   |   5 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java | 146 +
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   4 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/coverage/SampleRangeFormatTest.java | 137 +
 .../apache/sis/test/suite/FeatureTestSuite.java|   3 +-
 .../sis/metadata/xml/SchemaComplianceTest.java |  24 +-
 .../org/apache/sis/test/xml/PackageVerifier.java   |   8 +-
 .../referencing/provider/AbstractLambert.java  |  22 ++
 .../referencing/provider/AbstractMercator.java |  22 ++
 .../provider/AbstractStereographic.java|  22 ++
 .../referencing/provider/AlbersEqualArea.java  |  89 +-
 .../sis/internal/referencing/provider/ESRI.java|  54 +++-
 .../referencing/provider/Equirectangular.java  |  64 
 .../provider/FranceGeocentricInterpolation.java|  10 +
 .../referencing/provider/GeocentricAffine.java |  61 
 .../GeocentricAffineBetweenGeographic.java |  56 
 .../referencing/provider/Geographic2Dto3D.java |   6 +
 .../provider/GeographicAndVerticalOffsets.java |   6 +
 .../referencing/provider/GeographicOffsets.java|  18 ++
 .../provider/GeographicToGeocentric.java   |  12 +
 .../referencing/provider/LambertConformal1SP.java  |  37 +++
 .../referencing/provider/LambertConformal2SP.java  |  75 -
 .../provider/LambertConformalMichigan.java |  10 +
 .../referencing/provider/LambertConformalWest.java |  11 +
 .../provider/LambertCylindricalEqualArea.java  |  48 +++
 .../referencing/provider/MapProjection.java| 120 +++-
 .../internal/referencing/provider/Mercator1SP.java |  37 +++
 .../internal/referencing/provider/Mercator2SP.java |  29 +-
 .../referencing/provider/MercatorSpherical.java|   2 +-
 .../internal/referencing/provider/Mollweide.java   |  24 ++
 .../internal/referencing/provider/Molodensky.java  |  26 +-
 .../sis/internal/referencing/provider/NADCON.java  |  20 ++
 .../sis/internal/referencing/provider/NTv2.java|  10 +
 .../referencing/provider/ObliqueMercator.java  |  93 +-
 .../provider/ObliqueMercatorCenter.java|  20 ++
 .../referencing/provider/ObliqueStereographic.java |  33 +++
 .../referencing/provider/Orthographic.java | 196 +
 .../referencing/provider/PolarStereographicA.java  |  37 +++
 .../referencing/provider/PolarStereographicB.java  |  43 ++-
 .../referencing/provider/PolarStereographicC.java  |  22 ++
 .../internal/referencing/provider/Polyconic.java   |  44 +++
 .../referencing/provider/RegionalMercator.java |  37 +++
 .../referencing/provider/SatelliteTracking.java|  60 
 .../internal/referencing/provider/Sinusoidal.java  |  24 ++
 .../referencing/provider/TransverseMercator.java   |  37 ++-
 .../provider/ZonedTransverseMercator.java  |  21 ++
 .../java/org/apache/sis/referencing/Builder.java   |  48 ++-
 .../sis/referencing/operation/matrix/Matrix1.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix2.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix3.java  |  13 +-
 .../sis/referencing/operation/matrix/Matrix4.java  |  13 +-
 .../referencing/operation/matrix/package-info.java |   2 +-
 .../operation/projection/AlbersEqualArea.java  |   7 +-
 .../operation/projection/Initializer.java  |  16 +-
 .../referencing/operation/projection/Inverter.java | 105 +++
 .../projection/LambertConicConformal.java  |   7 +-
 .../referencing/operation/projection/Mercator.java |   6 +-
 .../operation/projection/Mollweide.java|   8 +-
 .../operation/projection/ObliqueMercator.java  |   6 +-
 .../operation/projection/ObliqueStereographic.java |   7 +-
 .../operation/projection/Orthographic.java | 261 +
 .../operation/projection/Sinusoidal.java   |   7 +-
 .../operation/projection/ZonedGridSystem.java  |   2 +-
 ...g.opengis.referencing.operation.OperationMethod |   1 +
 .../provider/ParameterNameTableGenerator.java  | 325 +
 .../referencing/provider/ProvidersTest.java|   3 +-
 .../operation/projection/OrthographicTest.java | 162 ++
 .../sis/test/suite/ReferencingTestSuite.java   |   1 +
 .../java/org/apache/sis/internal/jdk9/JDK9.java|  19 +-
 

[sis] branch geoapi-3.1 updated (20de767 -> 1105c74)

2019-10-24 Thread desruisseaux
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 20de767  Merge HTML changes in javadoc from branch 'geoapi-4.0'.
 add 52a543d  Use {@systemProperty} javadoc tag (new in Java 12) where we 
are defining system properties.
 add adfaee7  Upgrade some dependencies.
 add a941f05  Consolidation of the way we check if some tests are enabled.
 add d1ee6aa  Inserts table of parameter names for every 
`ParameterDescriptor` declaration in the provider package. Those tables are 
generated automatically by `ParameterNameTableGenerator` from runtime 
information. The intent is to make easier to maintain the parameter 
declarations when new projections are added, since we use the existing 
parameters as templates.
 add 42ed8a4  Add additional information about parameter: value domain, 
default value, whether it is optional.
 add d28ce40  Correction in the report of default values.
 add a8e2cbb  Initial implementation of Orthographic projection (spherical 
formulas) implemented from Wikipedia and Snyder equations. 
https://issues.apache.org/jira/browse/SIS-223 - not yet completed because 
missing ellipsoidal formulas. This work implied revisiting the way we copy 
names and identifiers from an existing ParameterDescriptor for creating a new 
ParameterDescriptor.
 add d33105c  Consolidation of reference to Wikipedia or MathWorld.
 add dd58ea3  Fix "llegalArgumentException: Argument ‘count’ shall not be 
negative" when invoking GridGeometry.toString().
 add be44417  'sis' command should resolve symbolic link.
 add 9581e07  Fix SampleDimension formatting bugs: - Was missing name of 
sample dimensions after the first one. - Formatting of bands without categories 
was not helpful.
 add 609bbd9  More explicit exception when there is overlapping range, and 
make this exception non-fatal in netCDF reader.
 add 31758f6  Avoid range collision if the minimum or maximum value in a 
netCDF file is equals to a pad/fill value.
 add 64f0021  Documentation updates and finer checks of overlapping ranges 
in netCDF files.
 add 13b98e3  Add an checked exception for data not found for other reason 
than illegal name. The reason of interest in this commit is disjoint extent.
 add c68512d  Implement ellipsoidal formulas of Orthographic projection 
from the formulas published in EPSG guidance notes. 
https://issues.apache.org/jira/browse/SIS-223
 add 25fbf74  When computing inverse projection, temporarily disable the 
setting of out-of-domain coordinates to NaN. We use the Inverter class as a 
flag for identifying those situations.
 new 1105c74  Merge branch 'geoapi-4.0' into geoapi-3.1

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:
 application/sis-console/src/main/artifact/bin/sis  |   5 +-
 .../java/org/apache/sis/coverage/Category.java |   8 +-
 .../java/org/apache/sis/coverage/CategoryList.java |   8 +-
 ...n.java => IllegalSampleDimensionException.java} |  23 +-
 .../org/apache/sis/coverage/SampleDimension.java   |   5 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java | 146 +
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   4 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/coverage/SampleRangeFormatTest.java | 137 +
 .../apache/sis/test/suite/FeatureTestSuite.java|   3 +-
 .../sis/metadata/xml/SchemaComplianceTest.java |  24 +-
 .../org/apache/sis/test/xml/PackageVerifier.java   |   8 +-
 .../referencing/provider/AbstractLambert.java  |  22 ++
 .../referencing/provider/AbstractMercator.java |  22 ++
 .../provider/AbstractStereographic.java|  22 ++
 .../referencing/provider/AlbersEqualArea.java  |  89 +-
 .../sis/internal/referencing/provider/ESRI.java|  54 +++-
 .../referencing/provider/Equirectangular.java  |  64 
 .../provider/FranceGeocentricInterpolation.java|  10 +
 .../referencing/provider/GeocentricAffine.java |  61 
 .../GeocentricAffineBetweenGeographic.java |  56 
 .../referencing/provider/Geographic2Dto3D.java |   6 +
 .../provider/GeographicAndVerticalOffsets.java |   6 +
 .../referencing/provider/GeographicOffsets.java|  18 ++
 .../provider/GeographicToGeocentric.java   |  12 +
 .../referencing/provider/LambertConformal1SP.java  |  37 +++
 .../referencing/provider/LambertConformal2SP.java  |  75 -
 .../provider/LambertConformalMichigan.java |  10 +
 .../referencing/provider/LambertConformalWest.java |  11 +
 .../provider/LambertCylindricalEqualArea.java  |  48 +++
 .../referencing/provider/MapProjection.java| 120 +++-
 

[sis] branch geoapi-4.0 updated: When computing inverse projection, temporarily disable the setting of out-of-domain coordinates to NaN. We use the Inverter class as a flag for identifying those situa

2019-10-24 Thread desruisseaux
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
 new 25fbf74  When computing inverse projection, temporarily disable the 
setting of out-of-domain coordinates to NaN. We use the Inverter class as a 
flag for identifying those situations.
25fbf74 is described below

commit 25fbf7433149f86b59d4d443a52ec8f24da927f5
Author: Martin Desruisseaux 
AuthorDate: Thu Oct 24 12:42:54 2019 +0200

When computing inverse projection, temporarily disable the setting of 
out-of-domain coordinates to NaN.
We use the Inverter class as a flag for identifying those situations.
---
 .../sis/referencing/operation/matrix/Matrix1.java  |  15 ++-
 .../sis/referencing/operation/matrix/Matrix2.java  |  15 ++-
 .../sis/referencing/operation/matrix/Matrix3.java  |  13 ++-
 .../sis/referencing/operation/matrix/Matrix4.java  |  13 ++-
 .../referencing/operation/matrix/package-info.java |   2 +-
 .../referencing/operation/projection/Inverter.java | 105 +
 .../operation/projection/Orthographic.java |  42 +++--
 .../operation/projection/OrthographicTest.java |  15 +++
 8 files changed, 175 insertions(+), 45 deletions(-)

diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix1.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix1.java
index 8504238..ff93401 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix1.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix1.java
@@ -30,7 +30,7 @@ import org.apache.sis.internal.util.Numerics;
  * └ ┘
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
- * @version 0.4
+ * @version 1.1
  *
  * @see Matrix2
  * @see Matrix3
@@ -39,8 +39,7 @@ import org.apache.sis.internal.util.Numerics;
  * @since 0.4
  * @module
  */
-@SuppressWarnings("CloneableClassWithoutClone") // No field in 
this class needs clone.
-public final class Matrix1 extends MatrixSIS {
+public class Matrix1 extends MatrixSIS {
 /**
  * Serial number for inter-operability with different versions.
  */
@@ -260,6 +259,14 @@ public final class Matrix1 extends MatrixSIS {
 }
 
 /**
+ * {@inheritDoc}
+ */
+@Override
+public Matrix1 clone() {
+return (Matrix1) super.clone();
+}
+
+/**
  * Returns {@code true} if the specified object is of type {@code Matrix1} 
and
  * all of the data members are equal to the corresponding data members in 
this matrix.
  *
@@ -268,7 +275,7 @@ public final class Matrix1 extends MatrixSIS {
  */
 @Override
 public boolean equals(final Object object) {
-if (object instanceof Matrix1) {
+if (object != null && object.getClass() == getClass()) {
 final Matrix1 that = (Matrix1) object;
 return Numerics.equals(m00, that.m00);
 }
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix2.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix2.java
index 04e0f51..c3f455a 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix2.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrix2.java
@@ -31,7 +31,7 @@ import org.apache.sis.internal.util.Numerics;
  * └ ┘
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
- * @version 0.4
+ * @version 1.1
  *
  * @see Matrix1
  * @see Matrix3
@@ -40,8 +40,7 @@ import org.apache.sis.internal.util.Numerics;
  * @since 0.4
  * @module
  */
-@SuppressWarnings("CloneableClassWithoutClone") // No field in 
this class needs clone.
-public final class Matrix2 extends MatrixSIS {
+public class Matrix2 extends MatrixSIS {
 /**
  * Serial number for inter-operability with different versions.
  */
@@ -284,6 +283,14 @@ public final class Matrix2 extends MatrixSIS {
 }
 
 /**
+ * {@inheritDoc}
+ */
+@Override
+public Matrix2 clone() {
+return (Matrix2) super.clone();
+}
+
+/**
  * Returns {@code true} if the specified object is of type {@code Matrix2} 
and
  * all of the data members are equal to the corresponding data members in 
this matrix.
  *
@@ -292,7 +299,7 @@ public final class Matrix2 extends MatrixSIS {
  */
 @Override
 public boolean equals(final Object object) {
-if (object instanceof Matrix2) {
+if (object != null && object.getClass() == getClass()) {
 final Matrix2 that = (Matrix2) object;
 return Numerics.equals(this.m00, that.m00) &&
Numerics.equals(this.m01, that.m01) &&
diff --git