PnX-SI / odk2gn

Python module for data synchronisation between ODK and GeoNature-monitoring
GNU General Public License v3.0
3 stars 3 forks source link

[BUG] Erreur lors de la création de sites de type polygones #18

Closed lpofredc closed 1 year ago

lpofredc commented 1 year ago

La création de sites avec une géométrie de types polygones soulève une erreur à l'INSERT en base de donnée. La geom de l'INSERT est de type 3D alors que le champs attend une géométrie 2D.

(psycopg2.errors.InvalidParameterValue) Geometry has Z dimension but column does not [SQL: INSERT INTO gn_monitoring.t_base_sites (id_inventor, id_digitiser, id_nomenclature_type_site, base_site_name, base_site_description, base_site_code, first_use_date, geom, uuid_base_site, meta_create_date, meta_update_date, altitude_min, altitude_max) VALUES (%(id_inventor)s, %(id_digitiser)s, %(id_nomenclature_type_site)s, %(base_site_name)s, %(base_site_description)s, %(base_site_code)s, %(first_use_date)s, ST_GeomFromEWKT(%(geom)s), (SELECT uuid_generate_v4() AS uuid_generate_v4_1), %(meta_create_date)s, %(meta_update_date)s, %(altitude_min)s, %(altitude_max)s) RETURNING gn_monitoring.t_base_sites.id_base_site]
[parameters: {'id_inventor': 32830, 'id_digitiser': None, 'id_nomenclature_type_site': 816, 'base_site_name': 'Test chrono', 'base_site_description': 'Chronoventzire ', 'base_site_code': None, 'first_use_date': datetime.datetime(2023, 8, 1, 9, 39, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'geom': 'POLYGON Z ((5.738817 45.187659 0, 5.740505 45.188183 0, 5.741578 45.187478 0, 5.739797 45.186505 0, 5.738817 45.187659 0))', 'meta_create_date': None, 'meta_update_date': None, 'altitude_min': None, 'altitude_max': None}] (Background on this error at: http://sqlalche.me/e/13/9h9h

Je propose de transformer la geom en 2D dans la fonction to_wkt avec shapely.

lpofredc commented 1 year ago

Correctif de la PR #19 testé avec succès sur des sites de type point/linestring et polygone.

xpdavis commented 1 year ago

Nous avons fait un autre fix sur cette même fonction, au commit https://github.com/PnX-SI/odk2gn/pull/20/commits/91b3d79496d7c29be1ddb103c0324a3e95c67b9f, à voir si, le problème persiste avec le fix

TheoLechemia commented 1 year ago

Corrigé via : https://github.com/PnX-SI/odk2gn/pull/21 qui reprend le commit de @lpofredc