I am excited about this work, thanks for the heads up in the meeting last
week.

Is it worth having this in the SRS Demo page (as an wkt2epsg replacement).

--
Jody Garnett

On 19 November 2016 at 05:36, Andrea Aime <andrea.a...@geo-solutions.it>
wrote:

> Hi,
> during the last two weekends I worked a bit on a long standing pet peeve
> of mine... the inability
> to determine a EPSG code from a shapefile in the GeoServer UI, while
> configuring a new shapefile.
>
> Yes, one normally works with a limited number of CRSs, and yes, one can go
> and use prj2epsg,.org but
> in fact, up to GeoServer 1.7 doing the identification from the UI was
> actually possible, using a dedicated
> button that initiated the long "scan all possible CRSs and compare them
> one by one approach".
>
> Unfortunately some found it counter-intuitive or strange, and requested
> that button to be removed in 2.0
>
> Before just going and adding it back, I looked at how the "fast" lookup is
> performed today and found ways to
> improve it. I have been testing against a collection of 4000+ unique wkt
> files from ESRI software and
> run a quick tool that tried to fast lookup all of them... matching none!
> Here are the result:
>
> SUCCESS: 0
> LOOKUP_FAILED: 3198
> NOT_IN_DATABASE: 1152
> AXIS_DIRECTION: 20
> EXCEPTION: 125
> Total: 4495
>
> Legend:
>
>    - SUCCESS: fast lookup matched an actual EPSG code
>    - LOOKUP_FAILED: no match found with fast lookup, even if one is
>    available in the EPSG database
>    - NOT_IN_DATABASE: the CRS has no match in the EPSG database
>    - AXIS_DIRECTION: the CRS exists in the EPSG database, but with axis
>    directions that cannot be expressed in WTK (e.g. south along 60° east)
>    - EXCEPTION: the WKT failed to parse to start with, normally because
>    the projection is not known (most common missing projection is Cassini)
>
> The fast lookup currently uses only the code (which the WKTs lack) and the
> CRS name (which is not a match for any entry in the EPSG database).
> Now, the EPSG factory actually had ways to make a few quick queries in the
> DB to search for a match, but
> used them only in the full lookup code path, and if they also failed, then
> it actually scanned everything... this did not make much sense.
>
> So I've moved the queries in the fast lookup path, making sure that they
> were actually fast (< 100ms per lookup, often < 20ms),
> made several adjustments to the code in order to better handle parameter
> lookup tolerance, axis order issues, uom variants
> in some params, DMS and degrees considered different when they are just
> different formattings of the same unit,
> and got with the following results after the changes [1]:
>
> SUCCESS: *3203*
> LOOKUP_FAILED: *76*
> NOT_IN_DATABASE: 1077
> AXIS_DIRECTION: 20
> EXCEPTION: 119
> Total: 4495
> Total time spent in lookups: 81398ms
> Average time per entry: 18ms
>
> As you can see, the success rate went up dramatically, and the average
> lookup time is quite small (this test benefits
> of caching, so the actual first lookup takes longer).
>
> The residual failed lookups are due mostly to two causes:
>
>    - ESRI using the same datum name for datums that are actually
>    different in the EPSG database (thus breaking the Geotools existing datum
>    name alias support)
>    - WKTs reporting a projection as a 2 standard parallel one, while the
>    EPSG database reports the same as a one standard parallel with scale
>    factor. At the end they are the same, but I did not invest time into
>    encoding that equality path (the changes were getting a bit too long to
>    code on and started to feel like actual work, so I stopped)
>
> I added tests for a number of sample cases, and had to fix a few tests
> that were checking failing lookups that now do succeed.
> Pull requests here:
> https://github.com/geotools/geotools/pull/1394
> https://github.com/geoserver/geoserver/pull/1989
>
> I intend to merge into master (after review, if anyone feels like looking
> into it), not sure if and when to backport as this is a
> spare time thing, so interactive testing has been limited.
>
> Cheers
> Andrea
>
> [1]: you can see a decrease in the "not in database" numbers and
> exceptions, that's mostly because of the DMS treatment
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via di Montramito 3/A
> 55054  Massarosa (LU)
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla distruzione del messaggio
> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
> principi dettati dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender
> does not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility  for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
> -------------------------------------------------------
>
> ------------------------------------------------------------
> ------------------
>
> _______________________________________________
> GeoTools-Devel mailing list
> GeoTools-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
>
------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to