Modify

Opened 5 months ago

Closed 3 months ago

Last modified 3 months ago

#16129 closed defect (fixed)

Unsupported ESRI projections

Reported by: StefanB Owned by: team
Priority: normal Milestone: 18.04
Component: Core imagery Version: latest
Keywords: template_report wmts slovenia esri projection Cc: bastiK

Description

What steps will reproduce the problem?

  1. In Imagery preferences add WMTS by URL: http://gis.arso.gov.si/arcgis/rest/services/Lidar_hillshade/MapServer/WMTS/1.0.0/WMTSCapabilities.xml
  2. add the just added imagery to the map, selecting the first, the only layer

What is the expected result?

Imagery layer is added and shown properly

What happens instead?

An error occurs: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]

Full log with stacktrace:

Mar 26, 2018 7:16:16 AM org.openstreetmap.josm.data.imagery.WMTSTileSource <init>
WARNING: No default layer selected, choosing first layer.
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_autozoom differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_autozoom differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_autozoom differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_autozoom differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_autoload differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_autoload differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_autoload differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_autoload differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_showerrors differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.generic.default_showerrors differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_showerrors differ: true != 
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.data.Preferences getSetting
INFO: Defaults for imagery.wmts.default_showerrors differ:  != true
Mar 26, 2018 7:16:20 AM org.openstreetmap.josm.tools.Logging error
SEVERE: org.openstreetmap.josm.tools.bugreport.ReportedException: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]. Cause: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]
ReportedException [thread=Thread[AWT-EventQueue-2,6,javawsApplicationThreadGroup], exception=java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]], methodWarningFrom=null]
	at org.openstreetmap.josm.tools.bugreport.BugReport.intercept(BugReport.java:173)
	at org.openstreetmap.josm.gui.MapView.layerAdded(MapView.java:369)
	at org.openstreetmap.josm.gui.layer.LayerManager.fireLayerAdded(LayerManager.java:458)
	at org.openstreetmap.josm.gui.layer.LayerManager.realAddLayer(LayerManager.java:233)
	at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:291)
	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:217)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:234)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:217)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:206)
	at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:144)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:125)
	at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
	at java.awt.MenuItem.processEvent(MenuItem.java:628)
	at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:357)
	at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:345)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:761)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]
	at org.openstreetmap.josm.data.imagery.WMTSTileSource.initProjection(WMTSTileSource.java:698)
	at org.openstreetmap.josm.gui.layer.WMTSLayer.projectionChanged(WMTSLayer.java:102)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.initializeIfRequired(AbstractTileSourceLayer.java:591)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.attachToMapView(AbstractTileSourceLayer.java:568)
	at org.openstreetmap.josm.gui.MapView.layerAdded(MapView.java:347)
	... 36 more

Please provide any additional information below. Attach a screenshot if possible.

Same happenst with tested version 13500 and latest dev version 13573.

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-03-04 16:20:37 +0100 (Sun, 04 Mar 2018)
Build-Date:2018-03-04 15:24:13
Revision:13500
Redirecting:to URL 'https://josm.openstreetmap.de/svn/trunk':
Relative:URL: ^/trunk

Identification: JOSM/1.5 (13500 en) Mac OS X 10.13.3
OS Build number: Mac OS X 10.13.3 (17D102)
Memory Usage: 996 MB / 3641 MB (548 MB allocated, but free)
Java version: 1.8.0_161-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: Display 69733378 1680x1050
Maximum Screen Size: 1680x1050
VM arguments: [-Djava.security.policy=file:<java.home>/lib/security/javaws.policy, -DtrustProxy=true, -Djnlpx.home=<java.home>/bin, -Djava.security.manager, -Djnlpx.origFilenameArg=${HOME}/Library/Application Support/Oracle/Java/Deployment/cache/6.0/56/1ee8cfb8-70305c5c, -Djnlpx.remove=false, -Dsun.awt.warmup=true, -Djava.util.Arrays.useLegacyMergeSort=true, -Dmacosx.jnlpx.dock.name=JOSM, -Dmacosx.jnlpx.dock.icon=${HOME}/Library/Application Support/Oracle/Java/Deployment/cache/6.0/16/47ee53d0-5531b76d.icns, -Djnlp.application.href=https://josm.openstreetmap.de/download/josm.jnlp , -Djnlpx.jvm="<java.home>/bin/java"]
Dataset consistency test: No problems found

Plugins:
+ apache-commons (33668)
+ ejml (32680)
+ geotools (33958)
+ jts (32699)
+ opendata (34089)
+ utilsplugin2 (33991)

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: No default layer selected, choosing first layer.
- W: No default layer selected, choosing first layer.
- E: org.openstreetmap.josm.tools.bugreport.ReportedException: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]. Cause: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]
- W: No default layer selected, choosing first layer.
- E: org.openstreetmap.josm.tools.bugreport.ReportedException: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]. Cause: java.lang.IllegalArgumentException: [TileMatrixSet [crs=EPSG:102060, identifier=default028mm]]

Attachments (2)

16129_wip_v1.patch (1.0 MB) - added by Don-vip 4 months ago.
itworks.png (807.1 KB) - added by Don-vip 4 months ago.

Download all attachments as: .zip

Change History (80)

comment:1 Changed 5 months ago by Don-vip

Keywords: esri added

comment:2 Changed 5 months ago by Don-vip

102060 is not defined in our esri file. The nearest projections are:

# S-JTSK Krovak
<102065> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <>
# S-JTSK Ferro Krovak East North
<102066> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=-17.66666666666667 +units=m +no_defs <>
# S-JTSK Krovak East North
<102067> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <>

comment:3 Changed 5 months ago by Don-vip

Our ESRI file comes from proj.4. Issue https://github.com/OSGeo/proj.4/issues/904 created

comment:4 Changed 5 months ago by Don-vip

Keywords: projection added
Milestone: 18.04

comment:5 Changed 5 months ago by Don-vip

Cc: bastiK added
Summary: WMTS throws IllegalArgumentExceptionUnsupported ESRI projections

I started to play with the new ESRI file:

loaded 210 entries from josm-epsg
loaded 5754 entries from epsg
loaded 1573 entries from esri

some entries from proj.4 have not been included:
 * already in the maintained JOSM list: 210 entries
 * ESRI already in the standard EPSG list: 1 entries
 * deprecated: 583 entries
 * using +proj=geocent, which is 3D (X,Y,Z) and not useful in JOSM: 181 entries
 * unsupported ellipsoids: 45 entries
   in particular: {evrst30=4, evrst48=1, evrst56=1, evrst69=2, fschr68=1, hough=1, sphere=34, walbeck=1}
 * unsupported base projection: 126 entries
   in particular: {aeqd=10, aitoff=2, bonne=3, cea=4, comill=2, crast=2, eck1=2, eck2=2, eck3=2, eck4=2, eck5=2, eck6=2, eqc=20, eqdc=9, gall=2, gnom=2, igh=2, krovak=4, labrd=1, loxim=2, mbtfpq=2, mill=2, moll=2, natearth=2, natearth2=2, nsper=2, nzmg=1, ortho=3, patterson=2, poly=8, qsc=1, qua_aut=2, robin=2, times=2, tpeqd=2, vandg=2, wag4=2, wag5=2, wag7=2, wink1=2, wink2=2, wintri=2}
 * requires data file for vertical datum conversion: 230 entries
   in particular: {egm08_25.gtx=2, g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx=4}
 * requires data file for datum conversion: 127 entries
   in particular: {A66_National_13_09_01.gsb=9, D73_ETRS89_geo.gsb=2, DLX_ETRS89_geo.gsb=3, OSTN02_NTv2.gsb=102, conus=9, hawaii=2}
 * projection is Oblique Mercator (requires bounds), but no bounds specified: 8 entries

written 210 entries from josm-epsg
written 4813 entries from epsg
written 1062 entries from esri

@bastiK: do you know what the "sphere" ellipsoid is?

comment:6 Changed 5 months ago by Don-vip

In 13582/josm:

see #16129 - add new Ellipsoids taken from PROJ.4

comment:7 Changed 5 months ago by Don-vip

OK now we have:

 * unsupported base projection: 126 entries
   in particular: {aeqd=10, aitoff=2, bonne=3, cea=4, comill=2, crast=2, eck1=2, eck2=2, eck3=2, eck4=2, eck5=2, eck6=2, eqc=20, eqdc=9, gall=2, gnom=2, igh=2, krovak=4, labrd=1, loxim=2, mbtfpq=2, mill=2, moll=2, natearth=2, natearth2=2, nsper=2, nzmg=1, ortho=3, patterson=2, poly=8, qsc=1, qua_aut=2, robin=2, times=2, tpeqd=2, vandg=2, wag4=2, wag5=2, wag7=2, wink1=2, wink2=2, wintri=2}
 * requires data file for vertical datum conversion: 230 entries
   in particular: {egm08_25.gtx=2, g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx=4}
 * requires data file for datum conversion: 127 entries
   in particular: {A66_National_13_09_01.gsb=9, D73_ETRS89_geo.gsb=2, DLX_ETRS89_geo.gsb=3, OSTN02_NTv2.gsb=102, conus=9, hawaii=2}

written 1075 entries from esri

comment:8 Changed 5 months ago by stoecker

A sphere with 6370997 meter radius.

{"sphere","a=6370997.0","b=6370997.0","Normal Sphere (r=6370997)"}

https://github.com/OSGeo/proj.4/blob/master/src/pj_ellps.c

comment:9 Changed 5 months ago by stoecker

😐 Too late.

comment:10 Changed 5 months ago by StefanB

While checking the JOSM code i noticed a related recent change r13395 for #15880.
You are likely already familiar with that, but am mentioning it just in case... :)

comment:11 Changed 5 months ago by Don-vip

Thanks :) I found it strange to have geographic projections assuming the Earth is a perfect sphere. I wonder if these projections are used in the real world.

comment:12 Changed 5 months ago by bastiK

As someone who is active in OSM, you better not ask that question. The Google projection that we use, doesn't even bother to make a datum transformation, it just takes the WGS84 coordinates and pretends they come from a sphere. :)

comment:13 Changed 5 months ago by stoecker

As someone who actually learned all that stuff I still hear my lecturer when he talked about non-projection types of "map projection". Especially the disgust in the words. And now everybody is using such stuff because of Google and properly looking maps loose. OTOH availability of raw data allows everybody to make proper maps when wanted.

comment:14 Changed 5 months ago by Don-vip

Thanks! :)
@bastiK I'm trying to implement new projections. I began with EquidistantCylindrical (eqc, concerns 20 projections). It seems simple enough to begin with, I have two questions though:

  • how do you determine the getAlgorithmBounds() implementation?
  • how do you test a projection is correctly implemented?

comment:15 Changed 5 months ago by bastiK

Great!

In case you are not aware, I used the geotools implementation as base for most of the projections (stripped down to the essential part). It worked quite well. The geotools code seems to be quite close to the proj.4 library c-implementation anyway.

For the getAlgorithmBounds() method, I tried to determine an area where the algorithm is numerically stable, i.e. has a reasonable round trip error (see ProjectionTest). For this purpose I had a tool to draw the world map with each pixel colored according to the error. It looked quite pretty, but the tool is probably gone now. As for the dependency on the projection parameters, you need to experiment or understand it on a theoretical level.

To verify that it is correctly implemented, you can simply compare a few coordinates to the output of proj.4 (ProjectionRefTest).

comment:16 Changed 5 months ago by Don-vip

In 13588/josm:

see #16129 - add NTv2 grids referenced in ESRI file

comment:17 in reply to:  15 Changed 5 months ago by Don-vip

Replying to bastiK:

It looked quite pretty, but the tool is probably gone now.

Sounds nice. No chance to get it back? :)

comment:18 Changed 5 months ago by bastiK

Sorry, couldn't find anything. Maybe on a floppy disk in a dusty cupboard. :)

comment:19 Changed 4 months ago by Don-vip

Still on it. What is the JOSM equivalent to these two methods?

public GeodesicData Direct(double lat1,
                           double lon1,
                           double azi1,
                           double s12)
Solve the direct geodesic problem where the length of the geodesic is specified in terms of distance.

Parameters:
    lat1 - latitude of point 1 (degrees).
    lon1 - longitude of point 1 (degrees).
    azi1 - azimuth at point 1 (degrees).
    s12 - distance between point 1 and point 2 (meters); it can be negative.
Returns:
    a GeodesicData object with the following fields: lat1, lon1, azi1, lat2, lon2, azi2, s12, a12.

    lat1 should be in the range [−90°, 90°]. The values of lon2 and azi2 returned are in the range [−180°, 180°].

    If either point is at a pole, the azimuth is defined by keeping the longitude fixed, writing lat = ±(90° − ε), and taking the limit ε → 0+. An arc length greater that 180° signifies a geodesic which is not a shortest path. (For a prolate ellipsoid, an additional condition is necessary for a shortest path: the longitudinal extent must not exceed of 180°.)

https://geographiclib.sourceforge.io/html/java/net/sf/geographiclib/Geodesic.html#Direct-double-double-double-double-

public GeodesicData Inverse(double lat1,
                            double lon1,
                            double lat2,
                            double lon2)
Solve the inverse geodesic problem.

Parameters:
    lat1 - latitude of point 1 (degrees).
    lon1 - longitude of point 1 (degrees).
    lat2 - latitude of point 2 (degrees).
    lon2 - longitude of point 2 (degrees).
Returns:
    a GeodesicData object with the following fields: lat1, lon1, azi1, lat2, lon2, azi2, s12, a12.

    lat1 and lat2 should be in the range [−90°, 90°]. The values of azi1 and azi2 returned are in the range [−180°, 180°].

    If either point is at a pole, the azimuth is defined by keeping the longitude fixed, writing lat = ±(90° − ε), taking the limit ε → 0+.

    The solution to the inverse problem is found using Newton's method. If this fails to converge (this is very unlikely in geodetic applications but does occur for very eccentric ellipsoids), then the bisection method is used to refine the solution.

https://geographiclib.sourceforge.io/html/java/net/sf/geographiclib/Geodesic.html#Inverse-double-double-double-double-

Changed 4 months ago by Don-vip

Attachment: 16129_wip_v1.patch added

comment:20 Changed 4 months ago by Don-vip

See attached patch. I don't know what to do with Equatorial/Oblique modes of AzimuthalEquidistant which rely on those Geodesic methods.

Last edited 4 months ago by Don-vip (previous) (diff)

comment:21 Changed 4 months ago by bastiK

I'm not aware that those functions are already present in JOSM. I put all helper functions in AbstractProj. Using geographiclib also came up in #12427. If we ship the library, I would suggest to keep the original package name. The jar is 37 kB, so no problem space-wise.

comment:22 Changed 4 months ago by Don-vip

Alright! I will disable these cases for now, we'll see later if this feature is really needed.

Changed 4 months ago by Don-vip

Attachment: itworks.png added

comment:23 Changed 4 months ago by Don-vip

It (almost) works!

The artifacts are the same than #16082. Could you please take a look or guide me to fix them? I tried to look myself with your advices but I still don't know how to fix them.

I'd like to see the United Nations in JOSM. We're almost there now:
https://upload.wikimedia.org/wikipedia/commons/2/2f/Flag_of_the_United_Nations.svg

comment:24 Changed 4 months ago by Don-vip

In 13598/josm:

see #16129 - add new projections and support for new format of ESRI file

comment:25 Changed 4 months ago by Don-vip

In 13599/josm:

see #16129 - fix build error

comment:26 Changed 4 months ago by Don-vip

In 13600/josm:

see #16129 - fix error_prone warnings

comment:27 Changed 4 months ago by Don-vip

In 13601/josm:

see #16129 - spotbugs

comment:28 Changed 4 months ago by Don-vip

In 13602/josm:

see #16129 - projections rework for new ESRI file

comment:30 Changed 4 months ago by Don-vip

Paul, can you please update test data? The script or cs2cs doesn't seem to work well on Windows, I always get all these zeros...

comment:31 Changed 4 months ago by Don-vip

In 13609/josm:

see #16129 - SonarQube/Surefire can't parse XML attributes longer than 524288 characters

comment:32 Changed 4 months ago by Don-vip

In 13610/josm:

see #16129 - update regression test data

comment:33 Changed 4 months ago by Don-vip

In 13618/josm:

see #16129 - fix generation of projection reference data with French locale

comment:34 Changed 4 months ago by Don-vip

In 13622/josm:

see #16129 - fix Equidistant Cylindrical projection

comment:35 Changed 4 months ago by Don-vip

In 13624/josm:

see #16129 - update regression test data

comment:36 Changed 4 months ago by Don-vip

In 13626/josm:

see #16129 - fix Sphere ellipsoid radius (values of proj.4 and Proj4J are different!)

comment:37 Changed 4 months ago by Don-vip

Paul we have a lot of issues with this kind of projections:

# USA_Contiguous_Albers_Equal_Area_Conic [NAD 1983 Albers contiguous USA]
# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore]
<102003> +proj=aea +datum=NAD83 +x_0=0.0 +y_0=0.0 +lon_0=96dW +lat_0=37d30'N +lat_1=29d30'N +lat_2=45d30'N +towgs84=-0.9956000824677655,1.901299877314078,0.5215002840524426,0.02591500053005733,5345.352563225674,5345.352563225674,-0.00062000005129903 +no_defs <>

We have both +datum and +towgs84. The projections aea/NAD83 without +towgs84 parameter are OK.

When I read CustomProjection.parseDatum it seems to me we're ignoring +towgs84 parameter if we have a +datum. Am I right? Should we inverse the priority? Ignore +datum if we have +towgs84?

comment:38 Changed 4 months ago by Don-vip

In 13627/josm:

see #16129 - datum javadoc

comment:39 Changed 4 months ago by Don-vip

In 13628/josm:

see #16129 - handle projection definitions with both +datum and +towgs84

comment:40 Changed 4 months ago by Don-vip

In 13629/josm:

see #16129 - increase timeout

comment:41 Changed 4 months ago by Don-vip

In 13631/josm:

see #16129 - better catch of WMS ServiceExceptions

comment:42 Changed 4 months ago by Don-vip

In 13632/josm:

see #16129 - add spherical versions of Cassini and Albers projections

comment:43 Changed 4 months ago by Don-vip

In 13634/josm:

see #16129 - Transverse Mercator: Minor coefficient error in tmerc inverse transform (see https://github.com/OSGeo/proj.4/issues/174)

comment:44 Changed 4 months ago by Don-vip

In 13639/josm:

see #16129 - align Lambert Conformal Conic projection implementation with proj.4/GeoTools

comment:45 Changed 4 months ago by Don-vip

Still failing:

634 definitions: {
aea=[
EPSG:102003, EPSG:102039, EPSG:102042, EPSG:102399, EPSG:102600],

lcc=[
EPSG:102041, EPSG:102191, EPSG:102192, EPSG:102193, EPSG:102221, EPSG:102222, EPSG:102375, EPSG:102398, EPSG:102492, EPSG:102581, EPSG:102582, EPSG:102583, EPSG:102584, EPSG:102585, EPSG:102586, EPSG:102587, EPSG:102588, EPSG:102592, EPSG:102604, EPSG:102640, EPSG:102688, EPSG:102689, EPSG:102690, EPSG:102700, EPSG:102720, EPSG:102721, EPSG:102726, EPSG:102727, EPSG:102733, EPSG:102761, EPSG:103166, EPSG:103167, EPSG:103168, EPSG:103228, EPSG:103229, EPSG:103230, EPSG:103231, EPSG:103233, EPSG:103234, EPSG:103236, EPSG:103237, EPSG:103239, EPSG:103240, EPSG:103242, EPSG:103243, EPSG:103244, EPSG:103245, EPSG:103246, EPSG:103247, EPSG:103248, EPSG:103249, EPSG:103250, EPSG:103251, EPSG:103256, EPSG:103259, EPSG:103278, EPSG:103279, EPSG:103280, EPSG:103281, EPSG:103282, EPSG:103283, EPSG:103284, EPSG:103285, EPSG:103286, EPSG:103287, EPSG:103288, EPSG:103289, EPSG:103290, EPSG:103291, EPSG:103292, EPSG:103293, EPSG:103294, EPSG:103295, EPSG:103303, EPSG:103306, EPSG:103308, EPSG:103310, EPSG:103311, EPSG:103312, EPSG:103317, EPSG:103322, EPSG:103323, EPSG:103332, EPSG:103333, EPSG:103336, EPSG:103338, EPSG:103341, EPSG:103343, EPSG:103346, EPSG:103347, EPSG:103349, EPSG:103352, EPSG:103356, EPSG:103360, EPSG:103362, EPSG:103363, EPSG:103364, EPSG:103365, EPSG:103369, EPSG:103375, EPSG:103376, EPSG:103377, EPSG:103378, EPSG:103379, EPSG:103380, EPSG:103381, EPSG:103382, EPSG:103383, EPSG:103384, EPSG:103385, EPSG:103386, EPSG:103387, EPSG:103388, EPSG:103389, EPSG:103390, EPSG:103391, EPSG:103392, EPSG:103403, EPSG:103406, EPSG:103408, EPSG:103410, EPSG:103411, EPSG:103412, EPSG:103417, EPSG:103422, EPSG:103423, EPSG:103432, EPSG:103433, EPSG:103436, EPSG:103438, EPSG:103441, EPSG:103443, EPSG:103446, EPSG:103447, EPSG:103449, EPSG:103452, EPSG:103456, EPSG:103460, EPSG:103462, EPSG:103463, EPSG:103464, EPSG:103465, EPSG:103469, EPSG:103472, EPSG:103473, EPSG:103495, EPSG:103499, EPSG:103500, EPSG:103501, EPSG:103502, EPSG:103503, EPSG:103504, EPSG:103505, EPSG:103506, EPSG:103507, EPSG:103508, EPSG:103509, EPSG:103510, EPSG:103511, EPSG:103512, EPSG:103513, EPSG:103514, EPSG:103515, EPSG:103516, EPSG:103517, EPSG:103520, EPSG:103521, EPSG:103522, EPSG:103523, EPSG:103524, EPSG:103525, EPSG:103526, EPSG:103527, EPSG:103539, EPSG:103540, EPSG:103541, EPSG:103542, EPSG:103543, EPSG:103544, EPSG:103545, EPSG:103546, EPSG:103547, EPSG:103548, EPSG:103549, EPSG:103550, EPSG:103551, EPSG:103552, EPSG:103553, EPSG:103554, EPSG:103555, EPSG:103556, EPSG:103557, EPSG:103559, EPSG:103560, EPSG:103561, EPSG:103562, EPSG:103563, EPSG:103564, EPSG:103565, EPSG:103566, EPSG:103567, EPSG:103568, EPSG:103569, EPSG:103570, EPSG:103571, EPSG:103572, EPSG:103573, EPSG:103574, EPSG:103575, EPSG:103576, EPSG:103608, EPSG:103609, EPSG:103610, EPSG:103611, EPSG:103612, EPSG:103613, EPSG:103614, EPSG:103615, EPSG:103616, EPSG:103617, EPSG:103618, EPSG:103619, EPSG:103620, EPSG:103621, EPSG:103622, EPSG:103623, EPSG:103624, EPSG:103625, EPSG:103626, EPSG:103627, EPSG:103628, EPSG:103629, EPSG:103630, EPSG:103631, EPSG:103632, EPSG:103633, EPSG:103634, EPSG:103635, EPSG:103636, EPSG:103637, EPSG:103638, EPSG:103639, EPSG:103640, EPSG:103641, EPSG:103642, EPSG:103643, EPSG:103644, EPSG:103645, EPSG:103646, EPSG:103647, EPSG:103648, EPSG:103649, EPSG:103650, EPSG:103651, EPSG:103652, EPSG:103653, EPSG:103654, EPSG:103655, EPSG:103656, EPSG:103657, EPSG:103658, EPSG:103659, EPSG:103660, EPSG:103661, EPSG:103662, EPSG:103663, EPSG:103664, EPSG:103665, EPSG:103666, EPSG:103667, EPSG:103668, EPSG:103669, EPSG:103670, EPSG:103671, EPSG:103672, EPSG:103673, EPSG:103674, EPSG:103675, EPSG:103676, EPSG:103677, EPSG:103678, EPSG:103679, EPSG:103680, EPSG:103681, EPSG:103682, EPSG:103683, EPSG:103684, EPSG:103685, EPSG:103686, EPSG:103687, EPSG:103688, EPSG:103689, EPSG:103690, EPSG:103691, EPSG:103692, EPSG:103693, EPSG:103708, EPSG:103709, EPSG:103710, EPSG:103711, EPSG:103712, EPSG:103713, EPSG:103714, EPSG:103715, EPSG:103716, EPSG:103717, EPSG:103718, EPSG:103719, EPSG:103720, EPSG:103721, EPSG:103722, EPSG:103723, EPSG:103724, EPSG:103725, EPSG:103726, EPSG:103727, EPSG:103728, EPSG:103729, EPSG:103730, EPSG:103731, EPSG:103732, EPSG:103733, EPSG:103734, EPSG:103735, EPSG:103736, EPSG:103737, EPSG:103738, EPSG:103739, EPSG:103740, EPSG:103741, EPSG:103742, EPSG:103743, EPSG:103744, EPSG:103745, EPSG:103746, EPSG:103747, EPSG:103748, EPSG:103749, EPSG:103750, EPSG:103751, EPSG:103752, EPSG:103753, EPSG:103754, EPSG:103755, EPSG:103756, EPSG:103757, EPSG:103758, EPSG:103759, EPSG:103760, EPSG:103761, EPSG:103762, EPSG:103763, EPSG:103764, EPSG:103765, EPSG:103766, EPSG:103767, EPSG:103768, EPSG:103769, EPSG:103770, EPSG:103771, EPSG:103772, EPSG:103773, EPSG:103774, EPSG:103775, EPSG:103776, EPSG:103777, EPSG:103778, EPSG:103779, EPSG:103780, EPSG:103781, EPSG:103782, EPSG:103783, EPSG:103784, EPSG:103785, EPSG:103786, EPSG:103787, EPSG:103788, EPSG:103789, EPSG:103790, EPSG:103791, EPSG:103792, EPSG:103793, EPSG:103846, EPSG:103946],

omerc=[
EPSG:102389, EPSG:102390, EPSG:102391], 

tmerc=[
EPSG:102063, EPSG:102064, EPSG:102070, EPSG:102071, EPSG:102101, EPSG:102102, EPSG:102103, EPSG:102104, EPSG:102105, EPSG:102106, EPSG:102107, EPSG:102108, EPSG:102136, EPSG:102137, EPSG:102138, EPSG:102159, EPSG:102160, EPSG:102161, EPSG:102164, EPSG:102165, EPSG:102216, EPSG:102224, EPSG:102225, EPSG:102226, EPSG:102227, EPSG:102228, EPSG:102231, EPSG:102232, EPSG:102233, EPSG:102240, EPSG:102400, EPSG:102448, EPSG:102449, EPSG:102451, EPSG:102459, EPSG:102461, EPSG:102462, EPSG:102464, EPSG:102465, EPSG:102525, EPSG:102526, EPSG:102528, EPSG:102529, EPSG:102629, EPSG:102630, EPSG:102648, EPSG:102649, EPSG:102650, EPSG:102661, EPSG:102662, EPSG:102664, EPSG:102665, EPSG:102696, EPSG:102697, EPSG:102698, EPSG:102705, EPSG:102844, EPSG:103220, EPSG:103221, EPSG:103222, EPSG:103223, EPSG:103224, EPSG:103225, EPSG:103226, EPSG:103227, EPSG:103252, EPSG:103253, EPSG:103254, EPSG:103255, EPSG:103257, EPSG:103258, EPSG:103260, EPSG:103261, EPSG:103262, EPSG:103263, EPSG:103264, EPSG:103265, EPSG:103266, EPSG:103267, EPSG:103268, EPSG:103269, EPSG:103270, EPSG:103271, EPSG:103272, EPSG:103273, EPSG:103274, EPSG:103275, EPSG:103276, EPSG:103277, EPSG:103296, EPSG:103297, EPSG:103298, EPSG:103299, EPSG:103300, EPSG:103301, EPSG:103302, EPSG:103305, EPSG:103307, EPSG:103309, EPSG:103313, EPSG:103314, EPSG:103315, EPSG:103316, EPSG:103318, EPSG:103319, EPSG:103320, EPSG:103321, EPSG:103324, EPSG:103325, EPSG:103326, EPSG:103327, EPSG:103328, EPSG:103329, EPSG:103330, EPSG:103331, EPSG:103334, EPSG:103335, EPSG:103337, EPSG:103339, EPSG:103340, EPSG:103342, EPSG:103344, EPSG:103345, EPSG:103348, EPSG:103350, EPSG:103351, EPSG:103353, EPSG:103354, EPSG:103355, EPSG:103357, EPSG:103358, EPSG:103359, EPSG:103361, EPSG:103366, EPSG:103367, EPSG:103368, EPSG:103370, EPSG:103372, EPSG:103373, EPSG:103374, EPSG:103393, EPSG:103394, EPSG:103395, EPSG:103396, EPSG:103397, EPSG:103398, EPSG:103399, EPSG:103400, EPSG:103401, EPSG:103402, EPSG:103405, EPSG:103407, EPSG:103409, EPSG:103413, EPSG:103414, EPSG:103415, EPSG:103416, EPSG:103418, EPSG:103419, EPSG:103420, EPSG:103421, EPSG:103424, EPSG:103425, EPSG:103426, EPSG:103427, EPSG:103428, EPSG:103429, EPSG:103430, EPSG:103431, EPSG:103434, EPSG:103435, EPSG:103437, EPSG:103439, EPSG:103440, EPSG:103442, EPSG:103444, EPSG:103445, EPSG:103448, EPSG:103450, EPSG:103451, EPSG:103453, EPSG:103454, EPSG:103455, EPSG:103457, EPSG:103458, EPSG:103459, EPSG:103461, EPSG:103466, EPSG:103467, EPSG:103468, EPSG:103470, EPSG:103476, EPSG:103477, EPSG:103478, EPSG:103479, EPSG:103480, EPSG:103481, EPSG:103482, EPSG:103483, EPSG:103484, EPSG:103485, EPSG:103486, EPSG:103487, EPSG:103488, EPSG:103489, EPSG:103490, EPSG:103491, EPSG:103492, EPSG:103493, EPSG:103494, EPSG:103496, EPSG:103497, EPSG:103498, EPSG:103518, EPSG:103519, EPSG:103558, EPSG:103577, EPSG:103578, EPSG:103579, EPSG:103580, EPSG:103581, EPSG:103582, EPSG:103583, EPSG:103585, EPSG:103600, EPSG:103601, EPSG:103602, EPSG:103603, EPSG:103604, EPSG:103605, EPSG:103606, EPSG:103607, EPSG:103694, EPSG:103695, EPSG:103700, EPSG:103701, EPSG:103702, EPSG:103703, EPSG:103704, EPSG:103705, EPSG:103706, EPSG:103707]}

comment:46 Changed 4 months ago by Don-vip

Paul, can you please help me? I don't see what's wrong with these projections, I compared proj.4 source code with ours and I have no clue.

If we can't find how to fix them I'd like at least find a general rule to exclude them without having to hardcode 634 projection codes...

comment:47 Changed 4 months ago by stoecker

I checked aea and it has a bunch of differences with https://github.com/OSGeo/proj.4/blob/master/src/PJ_aea.c
E.g. n = (m1 * m1 - m2 * m2) / (ml2 - ml1) not n = (m1 * m1 - m2 * m2) / (q2 - q1)

Where did you get the code and the references data?

comment:48 Changed 4 months ago by Don-vip

Most of our projection code comes from geotools which itself comes from proj.4.

For the line you highlight the code is the same, only the variable ml2 as been renamed to q2.

These issues I don't understand because the projections seem to be correct. We have:

  • aea: 40 working, 5 failing
  • omerc: 26 working, 3 failing
  • tmerc: 2422 working, 242 failing
  • lcc: 1078 working, 384 failing

comment:49 Changed 4 months ago by stoecker

How did you get the reference values to decide if it fails?

comment:50 Changed 4 months ago by Don-vip

We call proj.4 cs2cs tool by running ProjectionRefTest.main(). It updates the data_nodist/projection/projection-reference-data file which is later used by ProjectionRefTest.testProjections().

comment:51 Changed 4 months ago by bastiK

Hi,

sorry for not responding so quickly, but I'm still around... :)

Looks to me like the reference data is incorrect:

ESRI: USA_Contiguous_Albers_Equal_Area_Conic [NAD 1983 Albers contiguous USA] (EPSG:102003): Projecting latlon(31.10696098118092,-87.49717771752603):
        expected: eastnorth(752791.366674947,-736835.00270881),
        but got:  eastnorth(582052.640080823,-690849.8349793773)!
$ echo "-87.49717771752603 31.10696098118092" | cs2cs -f %.9f +proj=longlat +datum=WGS84 +to +proj=aea +datum=NAD83 +x_0=0.0 +y_0=0.0 +lon_0=96dW +lat_0=37d30"'"N +lat_1=29d30"'"N +lat_2=45d30"'"N +towgs84=-0.9956000824677655,1.901299877314078,0.5215002840524426,0.02591500053005733,5345.352563225674,5345.352563225674,-0.00062000005129903 +no_defs
582052.640080816	-690849.834979281 4042.525268644

I can run the ProjectionRefTest.main on my machine, but would prefer to update only the wrong entries, not the entire file. Not sure how to do this conveniently at the moment.

comment:52 in reply to:  37 ; Changed 4 months ago by bastiK

Replying to Don-vip:

Paul we have a lot of issues with this kind of projections:

# USA_Contiguous_Albers_Equal_Area_Conic [NAD 1983 Albers contiguous USA]
# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore]
<102003> +proj=aea +datum=NAD83 +x_0=0.0 +y_0=0.0 +lon_0=96dW +lat_0=37d30'N +lat_1=29d30'N +lat_2=45d30'N +towgs84=-0.9956000824677655,1.901299877314078,0.5215002840524426,0.02591500053005733,5345.352563225674,5345.352563225674,-0.00062000005129903 +no_defs <>

We have both +datum and +towgs84. The projections aea/NAD83 without +towgs84 parameter are OK.

When I read CustomProjection.parseDatum it seems to me we're ignoring +towgs84 parameter if we have a +datum. Am I right? Should we inverse the priority? Ignore +datum if we have +towgs84?

It would make sense to take the ellipsoid from the datum, but otherwise use +towgs84 parameters. If I read your changeset correctly, this is what you did?

comment:53 in reply to:  51 Changed 4 months ago by Don-vip

Replying to bastiK:

sorry for not responding so quickly, but I'm still around... :)

Yay thanks! :)

I can run the ProjectionRefTest.main on my machine, but would prefer to update only the wrong entries, not the entire file. Not sure how to do this conveniently at the moment.

We could update the script to accept projection codes as parameter. The list of codes to update is EPSG:102003,EPSG:102039,EPSG:102042,EPSG:102399,EPSG:102600,EPSG:102041,EPSG:102191,EPSG:102192,EPSG:102193,EPSG:102221,EPSG:102222,EPSG:102375,EPSG:102398,EPSG:102492,EPSG:102581,EPSG:102582,EPSG:102583,EPSG:102584,EPSG:102585,EPSG:102586,EPSG:102587,EPSG:102588,EPSG:102592,EPSG:102604,EPSG:102640,EPSG:102688,EPSG:102689,EPSG:102690,EPSG:102700,EPSG:102720,EPSG:102721,EPSG:102726,EPSG:102727,EPSG:102733,EPSG:102761,EPSG:103166,EPSG:103167,EPSG:103168,EPSG:103228,EPSG:103229,EPSG:103230,EPSG:103231,EPSG:103233,EPSG:103234,EPSG:103236,EPSG:103237,EPSG:103239,EPSG:103240,EPSG:103242,EPSG:103243,EPSG:103244,EPSG:103245,EPSG:103246,EPSG:103247,EPSG:103248,EPSG:103249,EPSG:103250,EPSG:103251,EPSG:103256,EPSG:103259,EPSG:103278,EPSG:103279,EPSG:103280,EPSG:103281,EPSG:103282,EPSG:103283,EPSG:103284,EPSG:103285,EPSG:103286,EPSG:103287,EPSG:103288,EPSG:103289,EPSG:103290,EPSG:103291,EPSG:103292,EPSG:103293,EPSG:103294,EPSG:103295,EPSG:103303,EPSG:103306,EPSG:103308,EPSG:103310,EPSG:103311,EPSG:103312,EPSG:103317,EPSG:103322,EPSG:103323,EPSG:103332,EPSG:103333,EPSG:103336,EPSG:103338,EPSG:103341,EPSG:103343,EPSG:103346,EPSG:103347,EPSG:103349,EPSG:103352,EPSG:103356,EPSG:103360,EPSG:103362,EPSG:103363,EPSG:103364,EPSG:103365,EPSG:103369,EPSG:103375,EPSG:103376,EPSG:103377,EPSG:103378,EPSG:103379,EPSG:103380,EPSG:103381,EPSG:103382,EPSG:103383,EPSG:103384,EPSG:103385,EPSG:103386,EPSG:103387,EPSG:103388,EPSG:103389,EPSG:103390,EPSG:103391,EPSG:103392,EPSG:103403,EPSG:103406,EPSG:103408,EPSG:103410,EPSG:103411,EPSG:103412,EPSG:103417,EPSG:103422,EPSG:103423,EPSG:103432,EPSG:103433,EPSG:103436,EPSG:103438,EPSG:103441,EPSG:103443,EPSG:103446,EPSG:103447,EPSG:103449,EPSG:103452,EPSG:103456,EPSG:103460,EPSG:103462,EPSG:103463,EPSG:103464,EPSG:103465,EPSG:103469,EPSG:103472,EPSG:103473,EPSG:103495,EPSG:103499,EPSG:103500,EPSG:103501,EPSG:103502,EPSG:103503,EPSG:103504,EPSG:103505,EPSG:103506,EPSG:103507,EPSG:103508,EPSG:103509,EPSG:103510,EPSG:103511,EPSG:103512,EPSG:103513,EPSG:103514,EPSG:103515,EPSG:103516,EPSG:103517,EPSG:103520,EPSG:103521,EPSG:103522,EPSG:103523,EPSG:103524,EPSG:103525,EPSG:103526,EPSG:103527,EPSG:103539,EPSG:103540,EPSG:103541,EPSG:103542,EPSG:103543,EPSG:103544,EPSG:103545,EPSG:103546,EPSG:103547,EPSG:103548,EPSG:103549,EPSG:103550,EPSG:103551,EPSG:103552,EPSG:103553,EPSG:103554,EPSG:103555,EPSG:103556,EPSG:103557,EPSG:103559,EPSG:103560,EPSG:103561,EPSG:103562,EPSG:103563,EPSG:103564,EPSG:103565,EPSG:103566,EPSG:103567,EPSG:103568,EPSG:103569,EPSG:103570,EPSG:103571,EPSG:103572,EPSG:103573,EPSG:103574,EPSG:103575,EPSG:103576,EPSG:103608,EPSG:103609,EPSG:103610,EPSG:103611,EPSG:103612,EPSG:103613,EPSG:103614,EPSG:103615,EPSG:103616,EPSG:103617,EPSG:103618,EPSG:103619,EPSG:103620,EPSG:103621,EPSG:103622,EPSG:103623,EPSG:103624,EPSG:103625,EPSG:103626,EPSG:103627,EPSG:103628,EPSG:103629,EPSG:103630,EPSG:103631,EPSG:103632,EPSG:103633,EPSG:103634,EPSG:103635,EPSG:103636,EPSG:103637,EPSG:103638,EPSG:103639,EPSG:103640,EPSG:103641,EPSG:103642,EPSG:103643,EPSG:103644,EPSG:103645,EPSG:103646,EPSG:103647,EPSG:103648,EPSG:103649,EPSG:103650,EPSG:103651,EPSG:103652,EPSG:103653,EPSG:103654,EPSG:103655,EPSG:103656,EPSG:103657,EPSG:103658,EPSG:103659,EPSG:103660,EPSG:103661,EPSG:103662,EPSG:103663,EPSG:103664,EPSG:103665,EPSG:103666,EPSG:103667,EPSG:103668,EPSG:103669,EPSG:103670,EPSG:103671,EPSG:103672,EPSG:103673,EPSG:103674,EPSG:103675,EPSG:103676,EPSG:103677,EPSG:103678,EPSG:103679,EPSG:103680,EPSG:103681,EPSG:103682,EPSG:103683,EPSG:103684,EPSG:103685,EPSG:103686,EPSG:103687,EPSG:103688,EPSG:103689,EPSG:103690,EPSG:103691,EPSG:103692,EPSG:103693,EPSG:103708,EPSG:103709,EPSG:103710,EPSG:103711,EPSG:103712,EPSG:103713,EPSG:103714,EPSG:103715,EPSG:103716,EPSG:103717,EPSG:103718,EPSG:103719,EPSG:103720,EPSG:103721,EPSG:103722,EPSG:103723,EPSG:103724,EPSG:103725,EPSG:103726,EPSG:103727,EPSG:103728,EPSG:103729,EPSG:103730,EPSG:103731,EPSG:103732,EPSG:103733,EPSG:103734,EPSG:103735,EPSG:103736,EPSG:103737,EPSG:103738,EPSG:103739,EPSG:103740,EPSG:103741,EPSG:103742,EPSG:103743,EPSG:103744,EPSG:103745,EPSG:103746,EPSG:103747,EPSG:103748,EPSG:103749,EPSG:103750,EPSG:103751,EPSG:103752,EPSG:103753,EPSG:103754,EPSG:103755,EPSG:103756,EPSG:103757,EPSG:103758,EPSG:103759,EPSG:103760,EPSG:103761,EPSG:103762,EPSG:103763,EPSG:103764,EPSG:103765,EPSG:103766,EPSG:103767,EPSG:103768,EPSG:103769,EPSG:103770,EPSG:103771,EPSG:103772,EPSG:103773,EPSG:103774,EPSG:103775,EPSG:103776,EPSG:103777,EPSG:103778,EPSG:103779,EPSG:103780,EPSG:103781,EPSG:103782,EPSG:103783,EPSG:103784,EPSG:103785,EPSG:103786,EPSG:103787,EPSG:103788,EPSG:103789,EPSG:103790,EPSG:103791,EPSG:103792,EPSG:103793,EPSG:103846,EPSG:103946,EPSG:102389,EPSG:102390,EPSG:102391,EPSG:102063,EPSG:102064,EPSG:102070,EPSG:102071,EPSG:102101,EPSG:102102,EPSG:102103,EPSG:102104,EPSG:102105,EPSG:102106,EPSG:102107,EPSG:102108,EPSG:102136,EPSG:102137,EPSG:102138,EPSG:102159,EPSG:102160,EPSG:102161,EPSG:102164,EPSG:102165,EPSG:102216,EPSG:102224,EPSG:102225,EPSG:102226,EPSG:102227,EPSG:102228,EPSG:102231,EPSG:102232,EPSG:102233,EPSG:102240,EPSG:102400,EPSG:102448,EPSG:102449,EPSG:102451,EPSG:102459,EPSG:102461,EPSG:102462,EPSG:102464,EPSG:102465,EPSG:102525,EPSG:102526,EPSG:102528,EPSG:102529,EPSG:102629,EPSG:102630,EPSG:102648,EPSG:102649,EPSG:102650,EPSG:102661,EPSG:102662,EPSG:102664,EPSG:102665,EPSG:102696,EPSG:102697,EPSG:102698,EPSG:102705,EPSG:102844,EPSG:103220,EPSG:103221,EPSG:103222,EPSG:103223,EPSG:103224,EPSG:103225,EPSG:103226,EPSG:103227,EPSG:103252,EPSG:103253,EPSG:103254,EPSG:103255,EPSG:103257,EPSG:103258,EPSG:103260,EPSG:103261,EPSG:103262,EPSG:103263,EPSG:103264,EPSG:103265,EPSG:103266,EPSG:103267,EPSG:103268,EPSG:103269,EPSG:103270,EPSG:103271,EPSG:103272,EPSG:103273,EPSG:103274,EPSG:103275,EPSG:103276,EPSG:103277,EPSG:103296,EPSG:103297,EPSG:103298,EPSG:103299,EPSG:103300,EPSG:103301,EPSG:103302,EPSG:103305,EPSG:103307,EPSG:103309,EPSG:103313,EPSG:103314,EPSG:103315,EPSG:103316,EPSG:103318,EPSG:103319,EPSG:103320,EPSG:103321,EPSG:103324,EPSG:103325,EPSG:103326,EPSG:103327,EPSG:103328,EPSG:103329,EPSG:103330,EPSG:103331,EPSG:103334,EPSG:103335,EPSG:103337,EPSG:103339,EPSG:103340,EPSG:103342,EPSG:103344,EPSG:103345,EPSG:103348,EPSG:103350,EPSG:103351,EPSG:103353,EPSG:103354,EPSG:103355,EPSG:103357,EPSG:103358,EPSG:103359,EPSG:103361,EPSG:103366,EPSG:103367,EPSG:103368,EPSG:103370,EPSG:103372,EPSG:103373,EPSG:103374,EPSG:103393,EPSG:103394,EPSG:103395,EPSG:103396,EPSG:103397,EPSG:103398,EPSG:103399,EPSG:103400,EPSG:103401,EPSG:103402,EPSG:103405,EPSG:103407,EPSG:103409,EPSG:103413,EPSG:103414,EPSG:103415,EPSG:103416,EPSG:103418,EPSG:103419,EPSG:103420,EPSG:103421,EPSG:103424,EPSG:103425,EPSG:103426,EPSG:103427,EPSG:103428,EPSG:103429,EPSG:103430,EPSG:103431,EPSG:103434,EPSG:103435,EPSG:103437,EPSG:103439,EPSG:103440,EPSG:103442,EPSG:103444,EPSG:103445,EPSG:103448,EPSG:103450,EPSG:103451,EPSG:103453,EPSG:103454,EPSG:103455,EPSG:103457,EPSG:103458,EPSG:103459,EPSG:103461,EPSG:103466,EPSG:103467,EPSG:103468,EPSG:103470,EPSG:103476,EPSG:103477,EPSG:103478,EPSG:103479,EPSG:103480,EPSG:103481,EPSG:103482,EPSG:103483,EPSG:103484,EPSG:103485,EPSG:103486,EPSG:103487,EPSG:103488,EPSG:103489,EPSG:103490,EPSG:103491,EPSG:103492,EPSG:103493,EPSG:103494,EPSG:103496,EPSG:103497,EPSG:103498,EPSG:103518,EPSG:103519,EPSG:103558,EPSG:103577,EPSG:103578,EPSG:103579,EPSG:103580,EPSG:103581,EPSG:103582,EPSG:103583,EPSG:103585,EPSG:103600,EPSG:103601,EPSG:103602,EPSG:103603,EPSG:103604,EPSG:103605,EPSG:103606,EPSG:103607,EPSG:103694,EPSG:103695,EPSG:103700,EPSG:103701,EPSG:103702,EPSG:103703,EPSG:103704,EPSG:103705,EPSG:103706,EPSG:103707.

comment:54 in reply to:  52 ; Changed 4 months ago by Don-vip

Replying to bastiK:

It would make sense to take the ellipsoid from the datum, but otherwise use +towgs84 parameters. If I read your changeset correctly, this is what you did?

Yes that's what I did (at least that's I wanted to do). I noticed however the test now takes twice the time (30s) it took before this change (15s). Maybe the code can be optimized.

comment:55 Changed 4 months ago by Don-vip

Ah also make sure you're using proj 5.0 or later, otherwise you could have minor changes for transverse mercator (see r13634).

comment:56 in reply to:  54 ; Changed 4 months ago by bastiK

Replying to Don-vip:

Replying to bastiK:

It would make sense to take the ellipsoid from the datum, but otherwise use +towgs84 parameters. If I read your changeset correctly, this is what you did?

Yes that's what I did (at least that's I wanted to do). I noticed however the test now takes twice the time (30s) it took before this change (15s). Maybe the code can be optimized.

Maybe the correct algorithm simply takes longer: When it was just +datum=NAD83, it would skip datum transformation (NullDatum) now it has to do relatively expensive calculations with +towgs84 (SevenParameterDatum).

comment:57 in reply to:  56 Changed 4 months ago by Don-vip

Replying to bastiK:

Maybe the correct algorithm simply takes longer: When it was just +datum=NAD83, it would skip datum transformation (NullDatum) now it has to do relatively expensive calculations with +towgs84 (SevenParameterDatum).

OK, makes sense.

comment:58 Changed 4 months ago by Don-vip

ping? :)

comment:59 Changed 4 months ago by Don-vip

In 13659/josm:

see #16129 - increase error threshold with java 9/10/11

comment:60 Changed 4 months ago by Don-vip

Paul, can you please complete the update this week? We're closing in for the release.

comment:61 Changed 4 months ago by Don-vip

Milestone 18.04 is feature complete for me. I won't be able to do the release this week-end. I'd appreciate someone else updates the regression data to fix this ticket and does the actual release. Thanks.

comment:62 Changed 4 months ago by Don-vip

Up? If nobody's willing to work on this please tell me so that I don't wait for nothing.

comment:63 Changed 3 months ago by stoecker

I'm a bit lazy ATM regarding computers (which includes JOSM :-). So don't expect too much from my side.

comment:64 Changed 3 months ago by Don-vip

In 13702/josm:

see #16129 - fix Java warnings

comment:65 Changed 3 months ago by Don-vip

In 13703/josm:

see #16129 - escape quotes on Windows

comment:66 Changed 3 months ago by Don-vip

r13703 fixed a lot of errors but there are still 188 generation errors:

the following 188 entries had errors: [EPSG:102231, EPSG:102232, EPSG:102233, EPSG:102459, EPSG:102629, EPSG:102630, EPSG:102648, EPSG:102649, EPSG:102650, EPSG:102696, EPSG:102697, EPSG:102698, EPSG:102705, EPSG:103220, EPSG:103221, EPSG:103222, EPSG:103223, EPSG:103224, EPSG:103225, EPSG:103226, EPSG:103227, EPSG:103252, EPSG:103253, EPSG:103260, EPSG:103261, EPSG:103262, EPSG:103263, EPSG:103264, EPSG:103266, EPSG:103267, EPSG:103269, EPSG:103270, EPSG:103271, EPSG:103272, EPSG:103273, EPSG:103274, EPSG:103275, EPSG:103276, EPSG:103277, EPSG:103296, EPSG:103297, EPSG:103298, EPSG:103299, EPSG:103301, EPSG:103302, EPSG:103305, EPSG:103307, EPSG:103309, EPSG:103313, EPSG:103314, EPSG:103315, EPSG:103316, EPSG:103318, EPSG:103319, EPSG:103320, EPSG:103321, EPSG:103324, EPSG:103325, EPSG:103326, EPSG:103327, EPSG:103329, EPSG:103330, EPSG:103331, EPSG:103334, EPSG:103335, EPSG:103337, EPSG:103339, EPSG:103340, EPSG:103342, EPSG:103344, EPSG:103345, EPSG:103348, EPSG:103350, EPSG:103351, EPSG:103353, EPSG:103354, EPSG:103355, EPSG:103357, EPSG:103358, EPSG:103359, EPSG:103361, EPSG:103366, EPSG:103367, EPSG:103368, EPSG:103370, EPSG:103372, EPSG:103373, EPSG:103374, EPSG:103393, EPSG:103394, EPSG:103395, EPSG:103396, EPSG:103397, EPSG:103398, EPSG:103399, EPSG:103401, EPSG:103402, EPSG:103405, EPSG:103407, EPSG:103409, EPSG:103413, EPSG:103414, EPSG:103415, EPSG:103416, EPSG:103418, EPSG:103419, EPSG:103420, EPSG:103421, EPSG:103424, EPSG:103425, EPSG:103426, EPSG:103427, EPSG:103429, EPSG:103430, EPSG:103431, EPSG:103434, EPSG:103435, EPSG:103437, EPSG:103439, EPSG:103440, EPSG:103442, EPSG:103444, EPSG:103445, EPSG:103448, EPSG:103450, EPSG:103451, EPSG:103453, EPSG:103454, EPSG:103455, EPSG:103457, EPSG:103458, EPSG:103459, EPSG:103461, EPSG:103466, EPSG:103467, EPSG:103468, EPSG:103470, EPSG:103476, EPSG:103477, EPSG:103478, EPSG:103479, EPSG:103480, EPSG:103481, EPSG:103482, EPSG:103483, EPSG:103484, EPSG:103485, EPSG:103486, EPSG:103487, EPSG:103488, EPSG:103489, EPSG:103490, EPSG:103491, EPSG:103492, EPSG:103493, EPSG:103494, EPSG:103496, EPSG:103497, EPSG:103498, EPSG:103518, EPSG:103519, EPSG:103558, EPSG:103577, EPSG:103578, EPSG:103579, EPSG:103580, EPSG:103581, EPSG:103582, EPSG:103583, EPSG:103585, EPSG:103600, EPSG:103601, EPSG:103602, EPSG:103603, EPSG:103604, EPSG:103605, EPSG:103606, EPSG:103607, EPSG:103694, EPSG:103695, EPSG:103700, EPSG:103701, EPSG:103702, EPSG:103703, EPSG:103704, EPSG:103705, EPSG:103706, EPSG:103707]
Last edited 3 months ago by Don-vip (previous) (diff)

comment:67 Changed 3 months ago by Don-vip

In 13704/josm:

see #16129 - update remaining codes on Linux, does not work on Windows

comment:68 Changed 3 months ago by Don-vip

In 13705/josm:

see #16129 - call PROJ by JNI if available. Faster and removes the problem of escaping quote characters via command line

comment:69 Changed 3 months ago by Don-vip

Errors down from 614 to 383:

383 definitions: {
aea=[
EPSG:102042], 

lcc=[
EPSG:102041, EPSG:102191, EPSG:102192, EPSG:102193, EPSG:102221, EPSG:102222, EPSG:102581, EPSG:102582, EPSG:102583, EPSG:102584, EPSG:102585, EPSG:102586, EPSG:102587, EPSG:102588, EPSG:102604, EPSG:102689, EPSG:102690, EPSG:102700, EPSG:102720, EPSG:102721, EPSG:102726, EPSG:102727, EPSG:102761, EPSG:103166, EPSG:103167, EPSG:103168, EPSG:103234, EPSG:103237, EPSG:103240, EPSG:103243, EPSG:103244, EPSG:103245, EPSG:103246, EPSG:103247, EPSG:103248, EPSG:103249, EPSG:103250, EPSG:103251, EPSG:103256, EPSG:103259, EPSG:103278, EPSG:103279, EPSG:103280, EPSG:103281, EPSG:103283, EPSG:103285, EPSG:103286, EPSG:103287, EPSG:103288, EPSG:103289, EPSG:103290, EPSG:103291, EPSG:103292, EPSG:103293, EPSG:103294, EPSG:103295, EPSG:103303, EPSG:103306, EPSG:103308, EPSG:103310, EPSG:103311, EPSG:103312, EPSG:103317, EPSG:103322, EPSG:103323, EPSG:103332, EPSG:103333, EPSG:103336, EPSG:103338, EPSG:103341, EPSG:103343, EPSG:103346, EPSG:103347, EPSG:103349, EPSG:103352, EPSG:103356, EPSG:103360, EPSG:103362, EPSG:103363, EPSG:103364, EPSG:103365, EPSG:103369, EPSG:103377, EPSG:103378, EPSG:103379, EPSG:103380, EPSG:103382, EPSG:103383, EPSG:103385, EPSG:103386, EPSG:103387, EPSG:103388, EPSG:103390, EPSG:103391, EPSG:103403, EPSG:103406, EPSG:103408, EPSG:103410, EPSG:103411, EPSG:103412, EPSG:103417, EPSG:103422, EPSG:103423, EPSG:103432, EPSG:103433, EPSG:103436, EPSG:103438, EPSG:103441, EPSG:103443, EPSG:103446, EPSG:103447, EPSG:103449, EPSG:103452, EPSG:103456, EPSG:103460, EPSG:103462, EPSG:103463, EPSG:103464, EPSG:103465, EPSG:103469, EPSG:103472, EPSG:103473, EPSG:103502, EPSG:103503, EPSG:103504, EPSG:103505, EPSG:103506, EPSG:103507, EPSG:103508, EPSG:103509, EPSG:103514, EPSG:103515, EPSG:103516, EPSG:103517, EPSG:103523, EPSG:103525, EPSG:103539, EPSG:103540, EPSG:103541, EPSG:103543, EPSG:103544, EPSG:103545, EPSG:103546, EPSG:103548, EPSG:103549, EPSG:103550, EPSG:103551, EPSG:103552, EPSG:103553, EPSG:103554, EPSG:103555, EPSG:103556, EPSG:103557, EPSG:103559, EPSG:103560, EPSG:103561, EPSG:103562, EPSG:103563, EPSG:103564, EPSG:103565, EPSG:103566, EPSG:103567, EPSG:103569, EPSG:103608, EPSG:103609, EPSG:103610, EPSG:103611, EPSG:103612, EPSG:103613, EPSG:103614, EPSG:103615, EPSG:103616, EPSG:103617, EPSG:103618, EPSG:103619, EPSG:103620, EPSG:103621, EPSG:103622, EPSG:103623, EPSG:103624, EPSG:103625, EPSG:103626, EPSG:103627, EPSG:103628, EPSG:103629, EPSG:103630, EPSG:103631, EPSG:103632, EPSG:103633, EPSG:103634, EPSG:103635, EPSG:103636, EPSG:103637, EPSG:103638, EPSG:103639, EPSG:103640, EPSG:103641, EPSG:103642, EPSG:103643, EPSG:103644, EPSG:103645, EPSG:103646, EPSG:103647, EPSG:103648, EPSG:103649, EPSG:103650, EPSG:103651, EPSG:103652, EPSG:103653, EPSG:103654, EPSG:103655, EPSG:103656, EPSG:103657, EPSG:103658, EPSG:103659, EPSG:103660, EPSG:103661, EPSG:103662, EPSG:103663, EPSG:103664, EPSG:103665, EPSG:103666, EPSG:103667, EPSG:103668, EPSG:103669, EPSG:103670, EPSG:103671, EPSG:103672, EPSG:103673, EPSG:103674, EPSG:103675, EPSG:103676, EPSG:103677, EPSG:103678, EPSG:103679, EPSG:103680, EPSG:103681, EPSG:103682, EPSG:103683, EPSG:103684, EPSG:103685, EPSG:103686, EPSG:103687, EPSG:103688, EPSG:103689, EPSG:103690, EPSG:103691, EPSG:103692, EPSG:103693, EPSG:103708, EPSG:103709, EPSG:103710, EPSG:103711, EPSG:103712, EPSG:103713, EPSG:103714, EPSG:103715, EPSG:103716, EPSG:103717, EPSG:103718, EPSG:103719, EPSG:103720, EPSG:103721, EPSG:103722, EPSG:103723, EPSG:103724, EPSG:103725, EPSG:103726, EPSG:103727, EPSG:103728, EPSG:103729, EPSG:103730, EPSG:103731, EPSG:103732, EPSG:103733, EPSG:103734, EPSG:103735, EPSG:103736, EPSG:103737, EPSG:103738, EPSG:103739, EPSG:103740, EPSG:103741, EPSG:103742, EPSG:103743, EPSG:103744, EPSG:103745, EPSG:103746, EPSG:103747, EPSG:103748, EPSG:103749, EPSG:103750, EPSG:103751, EPSG:103752, EPSG:103753, EPSG:103754, EPSG:103755, EPSG:103756, EPSG:103757, EPSG:103758, EPSG:103759, EPSG:103760, EPSG:103761, EPSG:103762, EPSG:103763, EPSG:103764, EPSG:103765, EPSG:103766, EPSG:103767, EPSG:103768, EPSG:103769, EPSG:103770, EPSG:103771, EPSG:103772, EPSG:103773, EPSG:103774, EPSG:103775, EPSG:103776, EPSG:103777, EPSG:103778, EPSG:103779, EPSG:103780, EPSG:103781, EPSG:103782, EPSG:103783, EPSG:103784, EPSG:103785, EPSG:103786, EPSG:103787, EPSG:103788, EPSG:103789, EPSG:103790, EPSG:103791, EPSG:103792, EPSG:103793, EPSG:103846, EPSG:103946],

omerc=[
EPSG:102389, EPSG:102390, EPSG:102391], 

tmerc=[
EPSG:102063, EPSG:102064, EPSG:102070, EPSG:102071, EPSG:102101, EPSG:102102, EPSG:102103, EPSG:102104, EPSG:102105, EPSG:102106, EPSG:102107, EPSG:102108, EPSG:102136, EPSG:102137, EPSG:102138, EPSG:102159, EPSG:102160, EPSG:102161, EPSG:102164, EPSG:102165, EPSG:102224, EPSG:102225, EPSG:102226, EPSG:102227, EPSG:102228, EPSG:102400, EPSG:102448, EPSG:102449, EPSG:102451, EPSG:102461, EPSG:102462, EPSG:102464, EPSG:102465, EPSG:102525, EPSG:102526, EPSG:102528, EPSG:102529, EPSG:102661, EPSG:102662, EPSG:102664, EPSG:102665, EPSG:102844]}

comment:70 Changed 3 months ago by Don-vip

To build JNI wrappers from 5.0.1 tarball:

cd proj-5.0.1
CFLAGS=-I/usr/lib/jvm/java-8-openjdk-amd64/include/linux/ ./configure --with-jni=/usr/lib/jvm/java-8-openjdk-amd64/include
make
cd jniwrap
ant

To build JNI wrappers from git repository:

sudo apt install automake libtool
git clone https://github.com/OSGeo/proj.4.git proj-master
cd proj-master
./autogen.sh
CFLAGS=-I/opt/jdk-9/include/linux/ ./configure --with-jni=/opt/jdk-9/include
make
cd jniwrap
JAVA_HOME=/opt/jdk-9 /var/lib/jenkins/tools/hudson.tasks.Ant_AntInstallation/Ant_Latest/bin/ant
Last edited 3 months ago by Don-vip (previous) (diff)

comment:71 Changed 3 months ago by Don-vip

In 13706/josm:

see #16129 - new update (forgot many projection codes and nadgrid configuration)

comment:72 Changed 3 months ago by Don-vip

Much better!

7 definitions: {tmerc=[EPSG:102224, EPSG:102225, EPSG:102226, EPSG:102227, EPSG:102228, EPSG:102449, EPSG:102844]}

comment:73 Changed 3 months ago by Don-vip

In 13707/josm:

see #16129 - fix areas of Mongolia UTM zones

see https://github.com/Esri/projection-engine-db-doc/pull/4

comment:74 Changed 3 months ago by Don-vip

In 13708/josm:

see #16129 - hopefully the last update

comment:75 Changed 3 months ago by Don-vip

Resolution: fixed
Status: newclosed

comment:76 Changed 3 months ago by Don-vip

JOSM r13576: 5411 projections
JOSM r13710: 6135 projections

+724 projections with this ticket :)

comment:77 Changed 3 months ago by anonymous

Hey, I must say you impressed me again - the original test layer works flawlessly!
That LIDAR shaded relief will help us map the paths in the woods more accurately.

comment:78 in reply to:  76 Changed 3 months ago by Klumbumbus

Replying to Don-vip:

JOSM r13576: 5411 projections
JOSM r13710: 6135 projections

+724 projections with this ticket :)

That's impressive! (I just added it the the stable release news on the startuppage.)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.