[Mobilitydb-dev] Update about my experiments integrating PostGIS 3.1.3 and MobilityDB

Vicky Vergara vicky at georepublic.de
Mon Aug 23 09:41:50 PDT 2021


Yeah, I have that problem also when testing on different
platforms/compilers/postgres
But I resolved by using on some tests that were having precision problems
with:
SET extra_float_digits = -3;
https://github.com/pgRouting/pgrouting/blob/main/pgtap/withPoints/withPoints_oneToOne-compare-dijkstra.test.sql#L30
Documentation about that can be found here:
https://www.postgresql.org/docs/12/datatype-numeric.html

In another case I had to resolve floating point comparison internally with:
https://github.com/pgRouting/pgrouting/blob/main/src/common/xy_vertex.cpp#L36
Which I got from here:
https://en.cppreference.com/w/cpp/types/numeric_limits/epsilon

Allways keep in mind floating point
Remember for example that:
mathematically: 1 == 1/3 + 1/3 + 1/3
But computationally: 1 != 1/3 + 1/3 + 1/3
The reason is floating point

I like this article
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/


On Sun, Aug 22, 2021 at 7:56 AM Esteban Zimanyi <estebanzimanyi at gmail.com>
wrote:

> Dear Vicky and Regina
>
> Following the recommendations we received at the PostGIS Dev meeting this
> August 20, I started to experiment the embedding of liblwgeom from PostGIS
> 3.1.3 inside MobilityDB. I was able to run the MobilityDB tests but
> obviously things have changed from versions 2.5.5 to 3.1.3.
>
> You will find enclosed a diff of the results of one of the tests. As you
> can see there are two types of differences. The first one concerns a very
> small floating point precision difference, e.g.,
>
>  SELECT ST_AsText(trajectory(tnpoint 'Npoint(1, 0.5)@2000-01-01'));
> -                 st_astext
> ---------------------------------------------
> - POINT(48.71866291282778 77.76407051015086)
> +                st_astext
> +------------------------------------------
> + POINT(48.7186629128278 77.7640705101509)
>  (1 row)
>
> Another type of error concerns deprecated functions
>
>  SELECT setPrecision(atGeometry(tnpoint '{Npoint(1, 0.3)@2000-01-01,
> Npoint(1, 0.5)@2000-01-02, Npoint(1, 0.5)@2000-01-03}', geometry
> 'SRID=5676;Polygon((50 50,50 100,100 100,100 50,50 50))'), 6);
> -ERROR
> -DETAIL:  Library function 'intersects' was deprecated in PostGIS 3.0.0
> -HINT:  Consider running: SELECT postgis_extensions_upgrade()
> +              setprecision
> +----------------------------------------
> + {NPoint(1,0.3)@2000-01-01 00:00:00+00}
> +(1 row)
> +
>
> In the forthcoming days I will be modifying the develop branch so that the
> tests can be run in both versions PostGIS 2.5.5 and 3.1.3.
>
> Furthermore, as a consequence of the problem I reported on the ticket
> https://trac.osgeo.org/postgis/ticket/4979#comment:5
> it is not possible to mix PostGIS 2.5.5 and 3.1.3 (e.g., use liblwgeom.so
> from PostGIS 2.5.5 with PostGIS 3.1.3 which was one of the tests planned)
> since all the lwgeom struct definitions have been changed.
>
> Regards
>
> Esteban
>
> ------------------------------------------------------------
> Prof. Esteban Zimanyi
> Department of Computer & Decision Engineering  (CoDE) CP 165/15
> Universite Libre de Bruxelles
> Avenue F. D. Roosevelt 50
> B-1050 Brussels, Belgium
> fax: + 32.2.650.47.13
> tel: + 32.2.650.31.85
> e-mail: esteban.zimanyi at ulb.be
> Internet: http://cs.ulb.ac.be/members/esteban/
> ------------------------------------------------------------
>


-- 

Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Vicky Vergara
Operations Research

eMail: vicky at georepublic.de
Web: https://georepublic.info

Tel: +49 (089) 4161 7698-1
Fax: +49 (089) 4161 7698-9

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mobilitydb-dev/attachments/20210823/febb93c3/attachment.html>


More information about the Mobilitydb-dev mailing list