[jira] [Updated] (SIS-351) Create metadata, CRS and tabular data editors in JavaFX
[ https://issues.apache.org/jira/browse/SIS-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-351: Labels: gsoc2017 mentor (was: gsoc2017) > Create metadata, CRS and tabular data editors in JavaFX > --- > > Key: SIS-351 > URL: https://issues.apache.org/jira/browse/SIS-351 > Project: Spatial Information Systems > Issue Type: New Feature > Components: GUI >Reporter: Martin Desruisseaux > Labels: gsoc2017, mentor > > Creates the foundation of a GUI application for Apache SIS based on JavaFX. > This application should leverage the functionalities available in Apache SIS > 0.8. In particular: > * Read metadata from files in various formats (currently ISO 19139, GeoTIFF, > NetCDF, LANDSAT, GPX, Moving Features) > * Get Coordinate Reference System from a registry or from GML or WKT > definitions and apply coordinate transformations. > * Show vector data in a tabular format. > Since SIS does not yet have a renderer engine, we can not yet show maps in > the application. However the application should be designed with this goal in > mind. > This project should create a metadata editor showing the ISO 19115 metadata. > We should provide a simplified view with only the essential information, and > an advanced view showing all information. The information to shown should be > customizable. The user should be able to edit the metadata and save them in > ISO 19139 format. > The project should also create the necessary widgets for showing a Coordinate > Reference System (CRS) definition and allow the user to edit it. Another > widget should use the CRS definitions for applying coordinate operations (map > projections) using the existing Apache SIS referencing engine, and show the > result in a table with information about accuracy and domain of validity. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-351) Create metadata, CRS and tabular data editors in JavaFX
[ https://issues.apache.org/jira/browse/SIS-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-351: Summary: Create metadata, CRS and tabular data editors in JavaFX (was: Create a metadata, CRS and tabular data editor in JavaFX) > Create metadata, CRS and tabular data editors in JavaFX > --- > > Key: SIS-351 > URL: https://issues.apache.org/jira/browse/SIS-351 > Project: Spatial Information Systems > Issue Type: New Feature > Components: GUI >Reporter: Martin Desruisseaux > Labels: gsoc2017 > > Creates the foundation of a GUI application for Apache SIS based on JavaFX. > This application should leverage the functionalities available in Apache SIS > 0.8. In particular: > * Read metadata from files in various formats (currently ISO 19139, GeoTIFF, > NetCDF, LANDSAT, GPX, Moving Features) > * Get Coordinate Reference System from a registry or from GML or WKT > definitions and apply coordinate transformations. > * Show vector data in a tabular format. > Since SIS does not yet have a renderer engine, we can not yet show maps in > the application. However the application should be designed with this goal in > mind. > This project should create a metadata editor showing the ISO 19115 metadata. > We should provide a simplified view with only the essential information, and > an advanced view showing all information. The information to shown should be > customizable. The user should be able to edit the metadata and save them in > ISO 19139 format. > The project should also create the necessary widgets for showing a Coordinate > Reference System (CRS) definition and allow the user to edit it. Another > widget should use the CRS definitions for applying coordinate operations (map > projections) using the existing Apache SIS referencing engine, and show the > result in a table with information about accuracy and domain of validity. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-351) Create a metadata, CRS and tabular data editor in JavaFX
[ https://issues.apache.org/jira/browse/SIS-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-351: Summary: Create a metadata, CRS and tabular data editor in JavaFX (was: Create a metadata editor in JavaFX) > Create a metadata, CRS and tabular data editor in JavaFX > > > Key: SIS-351 > URL: https://issues.apache.org/jira/browse/SIS-351 > Project: Spatial Information Systems > Issue Type: New Feature > Components: GUI >Reporter: Martin Desruisseaux > Labels: gsoc2017 > > Creates the foundation of a GUI application for Apache SIS based on JavaFX. > This application should leverage the functionalities available in Apache SIS > 0.8. In particular: > * Read metadata from files in various formats (currently ISO 19139, GeoTIFF, > NetCDF, LANDSAT, GPX, Moving Features) > * Get Coordinate Reference System from a registry or from GML or WKT > definitions and apply coordinate transformations. > * Show vector data in a tabular format. > Since SIS does not yet have a renderer engine, we can not yet show maps in > the application. However the application should be designed with this goal in > mind. > This project should create a metadata editor showing the ISO 19115 metadata. > We should provide a simplified view with only the essential information, and > an advanced view showing all information. The information to shown should be > customizable. The user should be able to edit the metadata and save them in > ISO 19139 format. > The project should also create the necessary widgets for showing a Coordinate > Reference System (CRS) definition and allow the user to edit it. Another > widget should use the CRS definitions for applying coordinate operations (map > projections) using the existing Apache SIS referencing engine, and show the > result in a table with information about accuracy and domain of validity. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (SIS-351) Create a metadata editor in JavaFX
Martin Desruisseaux created SIS-351: --- Summary: Create a metadata editor in JavaFX Key: SIS-351 URL: https://issues.apache.org/jira/browse/SIS-351 Project: Spatial Information Systems Issue Type: New Feature Components: GUI Reporter: Martin Desruisseaux Creates the foundation of a GUI application for Apache SIS based on JavaFX. This application should leverage the functionalities available in Apache SIS 0.8. In particular: * Read metadata from files in various formats (currently ISO 19139, GeoTIFF, NetCDF, LANDSAT, GPX, Moving Features) * Get Coordinate Reference System from a registry or from GML or WKT definitions and apply coordinate transformations. * Show vector data in a tabular format. Since SIS does not yet have a renderer engine, we can not yet show maps in the application. However the application should be designed with this goal in mind. This project should create a metadata editor showing the ISO 19115 metadata. We should provide a simplified view with only the essential information, and an advanced view showing all information. The information to shown should be customizable. The user should be able to edit the metadata and save them in ISO 19139 format. The project should also create the necessary widgets for showing a Coordinate Reference System (CRS) definition and allow the user to edit it. Another widget should use the CRS definitions for applying coordinate operations (map projections) using the existing Apache SIS referencing engine, and show the result in a table with information about accuracy and domain of validity. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-350) Port Apache SIS to Android
[ https://issues.apache.org/jira/browse/SIS-350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-350: Labels: gsoc2017 mentor (was: gsoc2017) > Port Apache SIS to Android > -- > > Key: SIS-350 > URL: https://issues.apache.org/jira/browse/SIS-350 > Project: Spatial Information Systems > Issue Type: Task > Components: Features, Metadata, Referencing, Storage, Utilities >Reporter: Martin Desruisseaux > Labels: gsoc2017, mentor > > Create an Apache SIS branch for Android. This will require the following work: > * Simulate the JAXB framework if possible, or remove SIS usage of JAXB on the > Android branch. JAXB is extensively used in the metadata modules, but some > usages are found also in other modules. > * Remove Java2D dependency. This work has already been anticipated by keeping > Java2D dependency in separated classes or packages. When a replacement is > available on the Android platform, the Java2D type should be substituted by > the replacement. This should include in particular > {{java.awt.geom.AffineTransform}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-350) Port Apache SIS to Android
[ https://issues.apache.org/jira/browse/SIS-350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-350: Labels: gsoc2017 (was: ) > Port Apache SIS to Android > -- > > Key: SIS-350 > URL: https://issues.apache.org/jira/browse/SIS-350 > Project: Spatial Information Systems > Issue Type: Task > Components: Features, Metadata, Referencing, Storage, Utilities >Reporter: Martin Desruisseaux > Labels: gsoc2017 > > Create an Apache SIS branch for Android. This will require the following work: > * Simulate the JAXB framework if possible, or remove SIS usage of JAXB on the > Android branch. JAXB is extensively used in the metadata modules, but some > usages are found also in other modules. > * Remove Java2D dependency. This work has already been anticipated by keeping > Java2D dependency in separated classes or packages. When a replacement is > available on the Android platform, the Java2D type should be substituted by > the replacement. This should include in particular > {{java.awt.geom.AffineTransform}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (SIS-350) Port Apache SIS to Android
Martin Desruisseaux created SIS-350: --- Summary: Port Apache SIS to Android Key: SIS-350 URL: https://issues.apache.org/jira/browse/SIS-350 Project: Spatial Information Systems Issue Type: Task Components: Features, Metadata, Referencing, Storage, Utilities Reporter: Martin Desruisseaux Create an Apache SIS branch for Android. This will require the following work: * Simulate the JAXB framework if possible, or remove SIS usage of JAXB on the Android branch. JAXB is extensively used in the metadata modules, but some usages are found also in other modules. * Remove Java2D dependency. This work has already been anticipated by keeping Java2D dependency in separated classes or packages. When a replacement is available on the Android platform, the Java2D type should be substituted by the replacement. This should include in particular {{java.awt.geom.AffineTransform}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-10) Ability to create SIS data from WKT specs
[ https://issues.apache.org/jira/browse/SIS-10?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-10: --- Component/s: (was: Referencing) > Ability to create SIS data from WKT specs > - > > Key: SIS-10 > URL: https://issues.apache.org/jira/browse/SIS-10 > Project: Spatial Information Systems > Issue Type: New Feature > Components: Geometry objects, Storage, Web services >Reporter: Chris A. Mattmann >Assignee: Chris A. Mattmann > Labels: WKT > Fix For: 0.7 > > > OGC well known text [1] is an ASCII-like specification for vector and > geometry objects (points, linestrings, multilinestrings, etc.) We should > provide a means to load and create SIS data from these specs. > [1] http://en.wikipedia.org/wiki/Well-known_text -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (SIS-212) Coordinate operation methods to implement
[ https://issues.apache.org/jira/browse/SIS-212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux updated SIS-212: Labels: gsoc2016 gsoc2017 java mentor (was: gsoc2016 java mentor) > Coordinate operation methods to implement > - > > Key: SIS-212 > URL: https://issues.apache.org/jira/browse/SIS-212 > Project: Spatial Information Systems > Issue Type: Task > Components: Referencing >Affects Versions: 0.6, 0.7, 0.8 >Reporter: Martin Desruisseaux >Assignee: Martin Desruisseaux > Labels: gsoc2016, gsoc2017, java, mentor > Fix For: 0.6, 0.7, 0.8 > > > This is an umbrella task for some coordinate operation methods not yet > supported in Apache SIS. Coordinate operations include _map projections_ > (e.g. Transverse Mercator, Lambert Conic Conformal, _etc._), _datum shifts_ > (e.g. transformations from NAD27 to NAD83 in United States), transformation > of vertical coordinates, _etc_. We can of course not list all possible > formulas that we do not support, but this JIRA task lists at least some of > the operations listed in the EPSG guidance notes. > The main material for this work is the EPSG guidance notes, which can be > downloaded freely from the following site: > {panel} > IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2 > Coordinate Conversions and Transformations including Formulas > http://www.epsg.org/GuidanceNotes > {panel} > Google summer of code students interested in this work would need to be > reasonably comfortable with the Java language (but not necessarily with the > JDK library at large, since this work uses relatively few JDK classes outside > {{Math}}), and in mathematic. In particular, this work requires a good > understanding of _affine transforms_: their representation as a matrix, and > how to map a term in a formula to a coefficient in the affine transform > matrix. > Apache SIS has one advanced feature which is not easily found in popular > geospatial software or text books: the capability to compute the _derivative_ > (or more precisely, the _Jacobian_) of a transformation at a given point. > Implementation of this feature requires the capability to find the analytic > derivative of a non-linear formula and to simplify it. > Implementations of those formulas take place in one of the > {{org.apache.sis.referencing.operation}} sub-packages ({{projection}} or > {{transform}}). Implementations of JUnit test happen partially in Apache SIS, > and partially in the ["conformance module" of the GeoAPI > project|http://www.geoapi.org/geoapi-conformance/index.html], if possible > through the Geospatial Integrity of Geoscience Software (GIGS) tests. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (SIS-349) Dead-lock between ContextualParameters and WeakHashSet
[ https://issues.apache.org/jira/browse/SIS-349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux resolved SIS-349. - Resolution: Fixed > Dead-lock between ContextualParameters and WeakHashSet > -- > > Key: SIS-349 > URL: https://issues.apache.org/jira/browse/SIS-349 > Project: Spatial Information Systems > Issue Type: Bug > Components: Referencing >Affects Versions: 0.6, 0.7 >Reporter: Johann Sorel >Assignee: Martin Desruisseaux > Fix For: 0.8 > > > Below are thread-dump of relevant parts. The first parts is in the thread > that verifies if an existing map projection exists in the {{WeakHashSet}}. > This verification implies {{NormalizedProjection}} comparisons, which > themselves imply {{ContextualParameters}} comparisons: > {noformat} > "Thread-3407" #3588 daemon prio=5 os_prio=0 tid=0x7f7951adf000 nid=0x5836 > waiting for monitor entry [0x7f78744ef000] >java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.sis.referencing.operation.transform.ContextualParameters.equals(ContextualParameters.java:720) > - waiting to lock <0x0007818ef028> (a > org.apache.sis.referencing.operation.transform.ContextualParameters) > at java.util.Arrays.deepEquals0(Arrays.java:4299) > at java.util.Objects.deepEquals(Objects.java:85) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:200) > at > org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:921) > at > org.apache.sis.referencing.operation.projection.NormalizedProjection.equals(NormalizedProjection.java:797) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:143) > at org.apache.sis.util.Utilities.equals(Utilities.java:238) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:168) > at > org.apache.sis.referencing.operation.transform.ConcatenatedTransform.equals(ConcatenatedTransform.java:934) > at > org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:867) > at org.apache.sis.util.collection.WeakHashSet.intern(WeakHashSet.java:315) > at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) > - locked <0x000704b65b40> (a > org.apache.sis.util.collection.WeakHashSet) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) > {noformat} > The second part is in the thread that creates a new map projection, which > implies operations on {{ContextualParameters}}. > {noformat} > "Thread-3409" #3590 daemon prio=5 os_prio=0 tid=0x7f7824cfd000 nid=0x5838 > waiting for monitor entry [0x7f7819e6e000] >java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) > - waiting to lock <0x000704b65b40> (a > org.apache.sis.util.collection.WeakHashSet) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.createConcatenatedTransform(DefaultMathTransformFactory.java:1256) > at > org.apache.sis.referencing.operation.transform.ContextualParameters.completeTransform(ContextualParameters.java:522) > - locked <0x0007818ef028> (a > org.apache.sis.referencing.operation.transform.ContextualParameters) > at > org.apache.sis.referencing.operation.projection.TransverseMercator.createMapProjection(TransverseMercator.java:301) > at > org.apache.sis.internal.referencing.provider.MapProjection.createMathTransform(MapProjection.java:199) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
svn commit: r1782293 - /sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
Author: desruisseaux Date: Thu Feb 9 06:10:25 2017 New Revision: 1782293 URL: http://svn.apache.org/viewvc?rev=1782293=rev Log: Fix a dead-lock between ContextualParameters and WeakHashSet (SIS-349). Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java?rev=1782293=1782292=1782293=diff == --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java [UTF-8] Thu Feb 9 06:10:25 2017 @@ -127,7 +127,7 @@ import static org.apache.sis.util.Argume * * @author Martin Desruisseaux (Geomatys) * @since 0.6 - * @version 0.7 + * @version 0.8 * @module * * @see org.apache.sis.referencing.operation.projection.NormalizedProjection @@ -501,24 +501,33 @@ public class ContextualParameters extend * * @see org.apache.sis.referencing.operation.projection.NormalizedProjection#createMapProjection(MathTransformFactory) */ -public synchronized MathTransform completeTransform(final MathTransformFactory factory, final MathTransform kernel) +public MathTransform completeTransform(final MathTransformFactory factory, final MathTransform kernel) throws FactoryException { -if (!isFrozen) { -freeze(); +final MathTransform n, d; +synchronized (this) { +if (!isFrozen) { +freeze(); +} +/* + * Creates the ConcatenatedTransform, letting the factory returns the cached instance + * if the caller already invoked this method previously (which usually do not happen). + */ +n = factory.createAffineTransform(normalize); +d = factory.createAffineTransform(denormalize); +Matrix m; +if ((m = MathTransforms.getMatrix(n)) != null) normalize = m; +if ((m = MathTransforms.getMatrix(d)) != null) denormalize = m; } -/* - * Creates the ConcatenatedTransform, letting the factory returns the cached instance - * if the caller already invoked this method previously (which usually do not happen). - */ -final MathTransform n = factory.createAffineTransform(normalize); -final MathTransform d = factory.createAffineTransform(denormalize); -Matrix m; -if ((m = MathTransforms.getMatrix(n)) != null) normalize = m; -if ((m = MathTransforms.getMatrix(d)) != null) denormalize = m; if (kernel == null) { // Undocumented feature useful for MolodenskyTransform constructor. return null; } +/* + * Following call must be outside the synchronized block for avoiding dead-lock. This is because the + * factory typically contains a WeakHashSet, which invoke in turn the 'equals' methods in this class + * (indirectly, through 'kernel' comparison). We need to be outside the synchronized block for having + * the locks taken in same order (WeakHashSet lock before the ContextualParameters lock). + */ return factory.createConcatenatedTransform(factory.createConcatenatedTransform(n, kernel), d); }
[jira] [Created] (SIS-349) Dead-lock between ContextualParameters and WeakHashSet
Martin Desruisseaux created SIS-349: --- Summary: Dead-lock between ContextualParameters and WeakHashSet Key: SIS-349 URL: https://issues.apache.org/jira/browse/SIS-349 Project: Spatial Information Systems Issue Type: Bug Components: Referencing Affects Versions: 0.7, 0.6 Reporter: Johann Sorel Assignee: Martin Desruisseaux Fix For: 0.8 Below are thread-dump of relevant parts. The first parts is in the thread that verifies if an existing map projection exists in the {{WeakHashSet}}. This verification implies {{NormalizedProjection}} comparisons, which themselves imply {{ContextualParameters}} comparisons: {noformat} "Thread-3407" #3588 daemon prio=5 os_prio=0 tid=0x7f7951adf000 nid=0x5836 waiting for monitor entry [0x7f78744ef000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.sis.referencing.operation.transform.ContextualParameters.equals(ContextualParameters.java:720) - waiting to lock <0x0007818ef028> (a org.apache.sis.referencing.operation.transform.ContextualParameters) at java.util.Arrays.deepEquals0(Arrays.java:4299) at java.util.Objects.deepEquals(Objects.java:85) at org.apache.sis.util.Utilities.deepEquals(Utilities.java:200) at org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:921) at org.apache.sis.referencing.operation.projection.NormalizedProjection.equals(NormalizedProjection.java:797) at org.apache.sis.util.Utilities.deepEquals(Utilities.java:143) at org.apache.sis.util.Utilities.equals(Utilities.java:238) at org.apache.sis.util.Utilities.deepEquals(Utilities.java:168) at org.apache.sis.referencing.operation.transform.ConcatenatedTransform.equals(ConcatenatedTransform.java:934) at org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:867) at org.apache.sis.util.collection.WeakHashSet.intern(WeakHashSet.java:315) at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) - locked <0x000704b65b40> (a org.apache.sis.util.collection.WeakHashSet) at org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) {noformat} The second part is in the thread that creates a new map projection, which implies operations on {{ContextualParameters}}. {noformat} "Thread-3409" #3590 daemon prio=5 os_prio=0 tid=0x7f7824cfd000 nid=0x5838 waiting for monitor entry [0x7f7819e6e000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) - waiting to lock <0x000704b65b40> (a org.apache.sis.util.collection.WeakHashSet) at org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) at org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.createConcatenatedTransform(DefaultMathTransformFactory.java:1256) at org.apache.sis.referencing.operation.transform.ContextualParameters.completeTransform(ContextualParameters.java:522) - locked <0x0007818ef028> (a org.apache.sis.referencing.operation.transform.ContextualParameters) at org.apache.sis.referencing.operation.projection.TransverseMercator.createMapProjection(TransverseMercator.java:301) at org.apache.sis.internal.referencing.provider.MapProjection.createMathTransform(MapProjection.java:199) {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (SIS-220) Transverse Mercator Zoned Grid System (EPSG:9824)
[ https://issues.apache.org/jira/browse/SIS-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Desruisseaux resolved SIS-220. - Resolution: Fixed Fix Version/s: 0.8 > Transverse Mercator Zoned Grid System (EPSG:9824) > - > > Key: SIS-220 > URL: https://issues.apache.org/jira/browse/SIS-220 > Project: Spatial Information Systems > Issue Type: Sub-task > Components: Referencing >Reporter: Martin Desruisseaux >Assignee: Martin Desruisseaux >Priority: Minor > Fix For: 0.8 > > > This projection is basically the standard Transverse Mercator with a zone > number prefixed in front of the Easting coordinates, with Z*1E6. See §1.3.5.2 > in IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2 – > April 2015. > This case should not be handled like other projection in SIS. It should > instead be handled by a special {{MathTransform}} implementation, which is > *not* a {{NormalizedProjection}}, but would be pre-concatenated before the > sequence of transforms (including the normalization matrix) that compute a > Transverse Mercator projection. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
svn commit: r1782155 - in /sis/branches/JDK8/core/sis-referencing/src: main/java/org/apache/sis/internal/referencing/provider/ main/java/org/apache/sis/referencing/operation/projection/ main/java/org/
Author: desruisseaux Date: Wed Feb 8 12:49:26 2017 New Revision: 1782155 URL: http://svn.apache.org/viewvc?rev=1782155=rev Log: Implement Transverse Mercator Zoned Grid System (EPSG:9824) https://issues.apache.org/jira/browse/SIS-220 Added: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java (with props) sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ZonedGridSystem.java (with props) sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ZonedGridSystemTest.java (with props) Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/TransverseMercator.java sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform1D.java sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java sis/branches/JDK8/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.operation.OperationMethod sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ProvidersTest.java sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java Added: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java?rev=1782155=auto == --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java (added) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java [UTF-8] Wed Feb 8 12:49:26 2017 @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.sis.internal.referencing.provider; + +import javax.xml.bind.annotation.XmlTransient; +import org.opengis.util.FactoryException; +import org.opengis.parameter.ParameterDescriptor; +import org.opengis.parameter.ParameterDescriptorGroup; +import org.opengis.parameter.ParameterValueGroup; +import org.opengis.parameter.ParameterNotFoundException; +import org.opengis.referencing.operation.Projection; +import org.opengis.referencing.operation.MathTransform; +import org.opengis.referencing.operation.MathTransformFactory; +import org.apache.sis.measure.Units; +import org.apache.sis.measure.Longitude; +import org.apache.sis.parameter.Parameters; +import org.apache.sis.parameter.ParameterBuilder; +import org.apache.sis.referencing.operation.projection.ZonedGridSystem; + + +/** + * The provider for "Transverse Mercator Zoned Grid System" projection (EPSG:9824). + * + * @author Martin Desruisseaux (Geomatys) + * @since 0.8 + * @version 0.8 + * @module + */ +@XmlTransient +public final class ZonedTransverseMercator extends AbstractProvider { +/** + * For cross-version compatibility. + */ +private static final long serialVersionUID = 4555131921419380461L; + +/** + * The operation parameter descriptor for the Initial longitude (λ₁) parameter value. + */ +public static final ParameterDescriptor INITIAL_LONGITUDE; + +/** + * The operation parameter descriptor for the Zone width (W) parameter value. + */ +public static final ParameterDescriptor ZONE_WIDTH; + +/** + * The group of all parameters expected by this coordinate operation. + */ +static final ParameterDescriptorGroup PARAMETERS; +static { +final ParameterBuilder builder = builder(); +INITIAL_LONGITUDE = builder.addIdentifier("8830").addName("Initial longitude") +