Closed MaelREBOUX closed 3 months ago
Conclusions :
voie
Pour 1/ -> issue à faire sur cadastre QGIS
Pour 2/ -> creuser....
c'est probablement le meme probleme que https://github.com/3liz/QgisCadastrePlugin/issues/345#issuecomment-2239091700
la jointure sur v.voie = p.voie
echoue parce que le champ voie
dans la table parcelle
contient la valeur de l'identifiant majic, qui n'est plus dans le champ voie
de la table voie
il faut modifier la jointure pour que p.voie
matche le champ correspondant dans v.voie
avec un like sur les 6 premiers chars (le code insee) et les 4 derniers (le code rivoli ?)
il n'y a rien a faire dans le code du script pour prendre ca en charge, c'est plutot du coté d'une adaptation du plugin qgis.. donc je pense que ce ticket peut être fermé, et la correction dans la PR d'adapation du plugin QGIS pour les données 2024/TOPO
Je remet les 2 fichiers qui correspondent au contenu de la table brute d'import : tmp_fanr_2023.txt tmp_fanr_2024_v1.txt
je vois au moins 3 occurences de cette construction a potentiellement 'corriger' si le pb est bien ici.
./plugins/cadastre/scripts/plugin/edigeo_create_table_parcelle_info_majic.sql:LEFT OUTER JOIN [PREFIXE]voie v ON v.voie = p.voie
./plugins/cadastre/templates/parcelle_info_parcelle_majic.sql: ON v.voie = p.voie
./plugins/cadastre/templates/proprietes_non_baties_line.tpl.sql:LEFT OUTER JOIN $schema"voie" v ON v.voie = p.voie
edit remplacer v.voie = p.voie
par v.voie = substr(p.voie,0,7)||'00000'||substr(p.voie,12,4)
a l'air de donner des résultats
On avance : il y a un pb sur les identifiants de voies.
Dans la table voie avec des données de 2023 :
350081003210022 2023 35 0 081 350081 0 0022 H RUE DES ROSES TREMIERES N 3 0 0 0 0000000 2012331 00321 1 TREMIERE 2024-07
Dans la table voie avec des données du script :
350081000000022 2023 35 0 081 350081 0 0022 H RUE DES ROSES TREMIERES N 3 0 0 0 0000000 2012331 TREMIE 2024-07
La différence est ici : 350081003210022 : il manque 321.
Ce qui confirme que la recherche par voie / adresse ne retourne aucune parcelle. CQFD.
Ce qui confirme que la recherche par voie / adresse ne retourne aucune parcelle. CQFD.
ca fonctionne très bien ici avec https://github.com/3liz/QgisCadastrePlugin/issues/345#issuecomment-2239091700
Voici ce que donne la tentative de corriger le code de voie (voie
) avec le ccovoi
que l'on trouve dans la table des parcelles et des propriétaires.
SET search_path = "cadastre_qgis";
-- récupération depuis la table des parcelles
UPDATE voie SET voie = p.voie
FROM cadastre_qgis.parcelle p WHERE voie.voie = substring(p.voie, 0, 7)||'00000'||p.ccoriv;
-- total|reste|pourcentage|
-- -----+-----+-----------+
-- 340| 49| 14.00|
-- récupération depuis la table des propriétaires
UPDATE cadastre_qgis.voie SET voie = p.ccodep||p.ccodir||p.ccocom||p.ccovoi||p.ccoriv
FROM cadastre_qgis.proprietaire p WHERE voie.voie = p.ccodep||p.ccodir||p.ccocom||'00000'||p.ccoriv;
-- total|reste|pourcentage|
-- -----+-----+-----------+
-- 340| 36| 11.00|
-- calcul de ce qui reste
SELECT *
FROM
(SELECT count(*) AS total FROM voie) AS a,
(SELECT count(*) AS reste FROM voie WHERE substring(voie, 7, 5) = '00000') AS b,
(SELECT ROUND((SELECT count(*)::decimal AS reste FROM voie WHERE substring(voie, 7, 5) = '00000') / (SELECT count(*)::decimal AS total FROM voie) ,2)*100 AS pourcentage) AS c ;
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'ccovoi' AND table_schema = 'cadastre_qgis';
On complète et on voir si on ramène qqs autres enregistrements mais on y croit moyen.
UPDATE cadastre_qgis.voie SET voie = l.ccodep||l.ccodir||l.ccocom||l.ccovoi||l.ccoriv
FROM cadastre_qgis.local00 l WHERE voie.voie = l.ccodep||l.ccodir||l.ccocom||'00000'||l.ccoriv;
UPDATE cadastre_qgis.voie SET voie = l.ccodep||l.ccodir||l.ccocom||l.ccovoi||l.ccoriv
FROM cadastre_qgis.local10 l WHERE voie.voie = l.ccodep||l.ccodir||l.ccocom||'00000'||l.ccoriv;
0 et 0 enregistrements modifiés.
j'ai regardé pour la table parcelle
de 2023 sur les 12 départements de la région AURA, et j'ai bien l'unicité des couples code insee/code rivoli:
qadastre@qadastre=> select count(distinct(voie)) from qad2023.parcelle;
648786
qadastre@qadastre=> select count(distinct(substr(voie,0,7)||'00000'||substr(voie,12,4))) from qad2023.parcelle;
648786
donc a mon avis on peut se passer de ccovoi
sans soucis.
@MaelREBOUX on peut fermer ?
On a un souci avec l'utilisation du fichier FANTOIR généré : noter sur l'adresse :
au lieu de :
La requête à jouer pour vérifier les données :
Donne :
Ensuite on réimporte toutes les données mais avec un fichier FANTOIR généré par le script et cela donne :