3liz / QgisCadastrePlugin

A QGIS plugin which helps users to import the french land registry ('cadastre') data into a database. It is meant to ease the use of the data in QGIS by providing search tools and appropriate layer symbology.
GNU General Public License v2.0
61 stars 41 forks source link

Code départements et code direction #222

Closed lecault closed 3 years ago

lecault commented 4 years ago

Bonjour,

Description du bug

Je suis sur le département du Morbihan. Lorsque je lance l'import, j'ai l'erreur mis dans le log. Pour tout les fichiers hors PROP.txt et FANR.txt, le plugin me détecte département = 5 et direction = 6 au lieu de 56 et 0.

Pourtant tout les fichiers commencent pas 560. J'ai même copié la première ligne de PROP dans un autre sans succès.

Reproduire le bug

Sous QGIS :

Fichiers majic : le répertoire Département = 56 Format, Année = 2019 Lot = 56, direction = 0

Log

ERREUR : MAJIC - Les données concernent des départements et codes direction différents : département : 5 et direction : 6, département : 56 et direction : 0

Environnement

Merci d'avance,

djes commented 4 years ago

Ce problème semble disparaitre en renommant simplement les fichiers majic (en enlevant l'extension), et en n'oubliant pas de reconfigurer le plugin.

pierrejego commented 4 years ago

Bonjour, j'ai pu faire le même test d'import avec les fichiers. Et j'obtiens la même erreur.

image

@djes comme indiqué j'ai supprimer les extensions des fichiers, ils 'appellent maintenant BATI FANR LLOC NBAT PDLL PROP J'ai reconfiguré le plugin et refait le test et j'ai le même problème.

Si je découpe les fichiers pour ne garder d'une commune, j'ai toujours le même soucis. Si je compare les fichiers MAJIC aux autres en ma possession, ils semblent avoir le même format.

En cherchant dans le code à quelle moment cette erreur survient : https://github.com/3liz/QgisCadastrePlugin/blob/89b8e11247d0b08ae34cd1fc09e19cc871aa54d7/cadastre_import.py#L546

Je vois que c'est bien les trois premiers caractères de chaque fichier qui sont lu pour être mis dans la variable depdir https://github.com/3liz/QgisCadastrePlugin/blob/89b8e11247d0b08ae34cd1fc09e19cc871aa54d7/cadastre_import.py#L505

Qui ensuite sont redécoupé en 2 et 1 caractère pour avoir le dep et la dir.

Je refais un test en modifiant les premières lignes des fichiers, juste en réécrivant les 560 au cas ou il y aura un caractère caché et la j'ai la même erreur mais affichée différemment. Ce n'est plus un blocage au lancement, mais une erreur dans les logs.

image

Et cette erreur est générée ici https://github.com/3liz/QgisCadastrePlugin/blob/89b8e11247d0b08ae34cd1fc09e19cc871aa54d7/cadastre_import.py#L537

Ce qui semble indiquer, que mes modifications manuelles du 560 rendent les fichiers inutilisables....

Je continue de chercher la cause du problème

djes commented 4 years ago

Pour information, je n'avais l'erreur que dans les logs, pas de fenêtre. Aussi, précédemment, j'avais corrigé manuellement l'un des fichiers qui contenait un caractère invalide (un @ transformé en équivalent unicode). Il serait intéressant de connaître les paramètres, et de savoir si l'encodage des fichiers est correct. Les miens sont en ASCII 7/8 bits (donc pas UTF8, pas d'accent), sans BOM.

djes commented 4 years ago

pierrejego> Je pense que tu as trouvé l'une des erreurs. A la ligne 501, à la place de "with open(fpath) as fin:" il devrait y avoir "with open(fpath, encoding='ascii', errors='replace') as fin:"

MaelREBOUX commented 4 years ago

Du coup : c'est un bogue ou une demande d'amélioration ?

lecault commented 3 years ago

Bonjour à tous,

Nous venons de résoudre le problème sur le millésime 2020. Les fichiers étaient fournis en UTF-8 avec BOM. Après une conversion en UTF-8 ça passe.

L'issue peut être close.

MaelREBOUX commented 3 years ago

Merci pour le retour