banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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 smile

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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: 1157

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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: 1157

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: 1157

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2143
Site web

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: 1157

Re: Reconstituer numéro de parcelle cadastrale dans Sitadel

AlineC a écrit:

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

 

Pied de page des forums

Powered by FluxBB