[jira] [Updated] (SIS-351) Create metadata, CRS and tabular data editors in JavaFX

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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

2017-02-08 Thread desruisseaux
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

2017-02-08 Thread Martin Desruisseaux (JIRA)
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)

2017-02-08 Thread Martin Desruisseaux (JIRA)

 [ 
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/

2017-02-08 Thread desruisseaux
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")
+