Modify

Opened 4 weeks ago

Last modified 22 hours ago

#16129 new defect

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 2 weeks ago.
itworks.png (807.1 KB) - added by Don-vip 2 weeks ago.

Download all attachments as: .zip

Change History (60)

comment:1 Changed 4 weeks ago by Don-vip

Keywords: esri added

comment:2 Changed 4 weeks 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 4 weeks ago by Don-vip

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

comment:4 Changed 4 weeks ago by Don-vip

Keywords: projection added
Milestone: 18.04

comment:5 Changed 3 weeks 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 3 weeks ago by Don-vip

In 13582/josm:

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

comment:7 Changed 3 weeks 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 3 weeks 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 3 weeks ago by stoecker

😐 Too late.

comment:10 Changed 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago by Don-vip

In 13588/josm:

see #16129 - add NTv2 grids referenced in ESRI file

comment:17 in reply to:  15 Changed 3 weeks 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 3 weeks ago by bastiK

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

comment:19 Changed 2 weeks 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 2 weeks ago by Don-vip

Attachment: 16129_wip_v1.patch added

comment:20 Changed 2 weeks 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 2 weeks ago by Don-vip (previous) (diff)

comment:21 Changed 2 weeks 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 2 weeks ago by Don-vip

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

Changed 2 weeks ago by Don-vip

Attachment: itworks.png added

comment:23 Changed 2 weeks 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 2 weeks ago by Don-vip

In 13598/josm:

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

comment:25 Changed 2 weeks ago by Don-vip

In 13599/josm:

see #16129 - fix build error

comment:26 Changed 2 weeks ago by Don-vip

In 13600/josm:

see #16129 - fix error_prone warnings

comment:27 Changed 2 weeks ago by Don-vip

In 13601/josm:

see #16129 - spotbugs

comment:28 Changed 2 weeks ago by Don-vip

In 13602/josm:

see #16129 - projections rework for new ESRI file

comment:30 Changed 2 weeks 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 13 days ago by Don-vip

In 13609/josm:

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

comment:32 Changed 12 days ago by Don-vip

In 13610/josm:

see #16129 - update regression test data

comment:33 Changed 10 days ago by Don-vip

In 13618/josm:

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

comment:34 Changed 9 days ago by Don-vip

In 13622/josm:

see #16129 - fix Equidistant Cylindrical projection

comment:35 Changed 9 days ago by Don-vip

In 13624/josm:

see #16129 - update regression test data

comment:36 Changed 9 days ago by Don-vip

In 13626/josm:

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

comment:37 Changed 8 days 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 7 days ago by Don-vip

In 13627/josm:

see #16129 - datum javadoc

comment:39 Changed 7 days ago by Don-vip

In 13628/josm:

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

comment:40 Changed 7 days ago by Don-vip

In 13629/josm:

see #16129 - increase timeout

comment:41 Changed 6 days ago by Don-vip

In 13631/josm:

see #16129 - better catch of WMS ServiceExceptions

comment:42 Changed 6 days ago by Don-vip

In 13632/josm:

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

comment:43 Changed 6 days 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 6 days ago by Don-vip

In 13639/josm:

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

comment:45 Changed 6 days 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 6 days 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 6 days 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 6 days 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 5 days ago by stoecker

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

comment:50 Changed 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 22 hours ago by Don-vip

ping? :)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to StefanB
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


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

 
Note: See TracTickets for help on using tickets.