#1 Fri 27 September 2024 12:04
- p.robledo
- Juste Inscrit !
- Date d'inscription: 28 Sep 2009
- Messages: 6
Reconstituer numéro de parcelle cadastrale dans Sitadel
Bonjour,
Je cherche à reconstituer les identifiants de parcelles au sein de la table Sitadel / logements, pour effectuer ensuite une jointure avec le parcellaire cadastral.
Ci-après la requête SQL qui fonctionne mais à la jointure je perds 40% des lignes du fichier Sitadel, donc je dois mal paramétrer la concaténation...
Si quelqu'un s'y est essayé avec succès, je suis bien preneur de la requête et des éventuelles explications qui vont avec
Grand merci,
Paul
--
UPDATE table_sitadel
SET
idpar1 = CASE
WHEN sec_cadastre1 IS NULL OR sec_cadastre1 = '' THEN ''
ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre1,
CASE
WHEN RIGHT(num_cadastre1, 1) ~ '[A-Za-z]' THEN
RIGHT(LPAD(num_cadastre1, 5, '0'), 5) -- 5 derniers caractères si termine par une lettre
ELSE
RIGHT(LPAD(num_cadastre1, 4, '0'), 4) -- 4 derniers caractères si ne termine pas par une lettre
END
)
END,
idpar2 = CASE -- il y a jusqu'à trois parcelles concernées par une autorisation d'urbanisme dans Sitadel
WHEN sec_cadastre2 IS NULL OR sec_cadastre2 = '' THEN ''
ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre2,
CASE
WHEN RIGHT(num_cadastre2, 1) ~ '[A-Za-z]' THEN
RIGHT(LPAD(num_cadastre2, 5, '0'), 5) -- 5 derniers caractères si termine par une lettre
ELSE
RIGHT(LPAD(num_cadastre2, 4, '0'), 4) -- 4 derniers caractères si ne termine pas par une lettre
END
)
END,
idpar3 = CASE
WHEN sec_cadastre3 IS NULL OR sec_cadastre3 = '' THEN ''
ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre3,
CASE
WHEN RIGHT(num_cadastre3, 1) ~ '[A-Za-z]' THEN
RIGHT(LPAD(num_cadastre3, 5, '0'), 5) -- 5 derniers caractères si termine par une lettre
ELSE
RIGHT(LPAD(num_cadastre3, 4, '0'), 4) -- 4 derniers caractères si ne termine pas par une lettre
END
)
END
;
Dernière modification par p.robledo (Fri 27 September 2024 12:06)
Hors ligne
#2 Fri 27 September 2024 13:22
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Bonjour,
-Est ce que tu peux extraire quelques exemples d'éléments issus de Sitadel ? cuex qui jointent, ceux qui jointent pas ?
-Est ce que ce n'est pas lié à des codes sections qui ne seraient pas sur 2 caractères ?
-Avec quelles données tu jointe ? (majic d'origine ?) et pareil quelques exemples d'id parcelles ?
Je ne comprend pas cette partie ? RIGHT(LPAD(num_cadastre3, 4, '0'), 4) -- 4 derniers caractères si ne termine pas par une lettre ?
A +
Hors ligne
#3 Tue 08 October 2024 17:24
- p.robledo
- Juste Inscrit !
- Date d'inscription: 28 Sep 2009
- Messages: 6
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Bonjour Aline,
Merci pour ta réponse. J'ai pris le temps d'analyser les différents cas de figure quant aux modalités de renseignement des sections et numéros de parcelles dans la base Sitadel (des codes sections à 1 caractère notamment, en effet), et en "normalisant" (corrigeant) au maximum, je récupère après jointure avec les Fichiers fonciers 70% de Sitadel logement et 80% de Sitadel locaux. Je vais essayer de peaufiner encore davantage sans garantie de résultat.
Paul
Hors ligne
#4 Wed 09 October 2024 08:46
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Coucou Paul,
Peut-être serait il intéressant d'avoir une idée des différents types de cas où la jointure ne se fait ?
A +
Hors ligne
#5 Fri 15 November 2024 14:38
- p.robledo
- Juste Inscrit !
- Date d'inscription: 28 Sep 2009
- Messages: 6
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Bonjour Aline,
Navré pour la réponse tardive :
Voici la requête qui fait apparaitre les différentes corrections lors de la concaténation de l'identifiant parcellaire. Je ne suis pas certain d'avoir repéré tous les cas de figures mais ça couvre déjà pas mal.
A +
Paul
--
CONCAT("Code de la commune du lieu des travaux", '000',
CASE
-- Inverser si sec_cadastre1 a 2 caractères (lettre et zéro) et num_cadastre1 contient 4 chiffres et éventuellement une lettre
WHEN LENGTH(sec_cadastre1) = 2
AND LEFT(sec_cadastre1, 1) ~ '[A-Za-z]'
AND RIGHT(sec_cadastre1, 1) = '0'
AND LENGTH(num_cadastre1) >= 4
AND num_cadastre1 ~ '^[0-9]{4}([A-Za-z])?$' THEN
CONCAT('0',LEFT(sec_cadastre1, 1)) -- Inverser les caractères
-- Inverser si sec_cadastre1 a 2 caractères (un zéro et une lettre)
WHEN LENGTH(sec_cadastre1) = 2
AND LEFT(sec_cadastre1, 1) = '0'
AND RIGHT(sec_cadastre1, 1) ~ '[A-Za-z]' THEN
CONCAT(RIGHT(sec_cadastre1, 1), '0') -- Inverser les caractères
-- Ajouter un zéro si un seul caractère
WHEN LENGTH(sec_cadastre1) = 1 THEN CONCAT('0', sec_cadastre1)
ELSE sec_cadastre1
END,
CASE
WHEN RIGHT(num_cadastre1, 1) ~ '[A-Za-z]' THEN
RIGHT(LPAD(num_cadastre1, 5, '0'), 5) -- 5 derniers caractères si termine par une lettre
ELSE
RIGHT(LPAD(num_cadastre1, 4, '0'), 4) -- 4 derniers caractères si ne termine pas par une lettre
END
)
Hors ligne
#6 Fri 15 November 2024 16:57
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Coucou,
pourrais-tu rajouter des exemples ou la jointure ne se fait pas ?
Hors ligne
#7 Fri 15 November 2024 17:29
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1158
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Salut,
de ce que je vois en utilisant l'api ( https://www.statistiques.developpement- … 50f974446a ), les colonnes relatives aux réferences cadastrales n'ont pas de contrainte à la saisie, j'ai par exemple trouvé des lignes ou la section est renseignée "000" et se trouve en fait dans le numero de parcelle.
Je vous conseille de réaliser une requête du genre :
Code:
SELECT sec, num, count(*) FROM ( SELECT sec_cadastre1, num_cadastre1 FROM table_sitadel UNION SELECT sec_cadastre2, num_cadastre2 FROM table_sitadel UNION SELECT sec_cadastre3, num_cadastre3 FROM table_sitadel ) t(sec,num) GROUP BY sec, num order by sec, num ;
Ainsi vous aurez une occurence de chaque combinaison des colonnes section et numero, ce qui vous permettra d'essayer de traiter tous les cas (pas sûr) .
Il ne faut pas prendre en compte également le millésime de vos données cadastrales : des parcelles mentionnées au fichier sitadel peuvent avoir disparues (regroupement de parcelles, divisions...)
Hors ligne
#8 Fri 15 November 2024 17:38
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
je viens de faire un essai sur mon territoire (test sur le vaucluse) et c'est plutôt bien rempli
dans mon cas j'aurais juste à faire : CONCAT (SEC_CADASTRE1,LPAD(NUM_CADASTRE1,4,'0")) ou quelque chose s'approchant
je ne vois pas l'intérêt d'inverser la section cadastrale s'il y a un zéro, il peut tout à fait y avoir un zéro en début
si je sais sur quel échantillon de données tu travaille je pourrais peut-être un peu plus t'aider ?
Hors ligne
#9 Fri 15 November 2024 17:49
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1158
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Apparemment, il y aurait des cas ou la section est du genre "A0".
Pour simplifier le code on peut écrire
Code:
lpad(rtrim(sec_cadastre1, '0'), 2, '0')
Pour avoir une section normalisée sur deux caractères, même si les colonnes de section sont censées pouvoir en avoir 3 (?) selon la documentation.
Hors ligne
#10 Fri 15 November 2024 17:51
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1158
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Il y a meme des section du type A01 : https://data.statistiques.developpement … ontains:A0
Ce qui peut peut être indiquer : Section A feuille de plan 1
Dernière modification par tumasgiu (Fri 15 November 2024 17:53)
Hors ligne
#11 Fri 15 November 2024 18:25
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
A mon sens ia section ne peut être que sur 2 caractères
Mais oui il peut y avoir un préfixe de section que je ne rencontre pas sur mon territoire parce qu'il n'y a pas eu de fusions de communes notamment.
Je me réfère toujours à ce récap que j'avais rédigé avec l'aide de jean-michel sur parcell'air :
https://blog.georezo.net/parcellair/201 … tre-suite/
Dans ton exemple Tumasgiu le préfixe serait après, bizarre !
peut-être faudrait il d'abord rassemble tout pour le redécouper ...
En tous cas pour approfondir, je pense que la seule solution est de vérifier avec quelques exemples en essayant de trouver la "bonne" référence parcellaire avec différents cas de figure
Hors ligne
#12 Fri 15 November 2024 18:43
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Dans les exemples que tu a repéré Tumasgiu, en cherchant sur le cadastre ils sont tous présentés en A (sans complément) et le chiffre
Donc je retiendrais quand il y a trois caractères les 2 premiers ... à tester
Hors ligne
#13 Mon 18 November 2024 11:00
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1158
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Dans ton exemple Tumasgiu le préfixe serait après, bizarre !
Non je ne pense pas que ce soit le prefixe de section (code de commune fusionnée) mais le numéro de la planche cadastrale.
Hors ligne
#14 Mon 18 November 2024 16:51
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Reconstituer numéro de parcelle cadastrale dans Sitadel
Bonjour,
Le codage des références cadastrales dans SITADEL est aléatoire et ne respecte pas la "norme".
La norme qui est :
code insee sur trois caractères
Code de commune fusionnée : trois caractère default : '000'
Deux lettre de section soit '0A' pour les simple lettre ou zéro || A (et pas un O la lettre)
Pas de numéro de feuille (01, 02 etc)
Numéro de parcelle sur 4 digits : soit '0001' à '9999'
Après même la DGFiP dans ses propres données ne respecte pas toujours cette norme.
Vous me rétorquerez aussi que pour les nouveaux DA dans le géofoncier on demande le numéro de feuille dans la section, ce qui est une aberration, mais nous ne sommes plus à une bêtise près.
La norme que je cite est celle de la désignation d'un bien immeuble dans un acte destiné à la publication au SPF. (Décret sur la publicité foncière de juin 1955).
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne