Pasq.fr

Parce-qu'il y a forcément du sens à tout ce bordel !

Fichier des propriétés des personnes morales

Rédigé par Alain 2 commentaires
open data gouv fr

La DGFIP publie désormais les parcelles et locaux appartenant à des propriétaires "personne morale". Comment je les incorpore à mes cadastres.

C'est quand même super l'opendata, il suffit que je me dise, j'ai pas accès au données MAJIC, mais j'aimerais connaître les propriétaires institutionnels. Et paf ! la DGFIP publie le truc, comme quoi quand on a saturne en trigone avec soleil, hein, ça rigole plus...

Les données

Vous pouvez donc récupérer les données sur le site data.gouv.fr mais aussi sur le site du ministère de l'économie

https://www.data.gouv.fr/fr/datasets/fichiers-des-locaux-et-des-parcelles-des-personnes-morales/

https://data.economie.gouv.fr/explore/dataset/fichiers-des-locaux-et-des-parcelles-des-personnes-morales/information/

Pendant que j'y suis, n'oubliez pas que vous pouvez récupérer les données cadastrales sur :

pour un format GeoJSON ou SHAPE (beurk), https://cadastre.data.gouv.fr/datasets/cadastre-etalab

on en EDIGEO, ce qui permet d'utiliser le plugin cadastre, qui est quand même bien patrick : https://cadastre.data.gouv.fr/datasets/plan-cadastral-informatise

vue cadastre plugin

Cela fonctionne aussi si vous utilisez les shapes fournit par ETALAB.

La transformation en Postgresql

Comme je suis sympa, je vous mets ma génération (les DDL) pour intégrer les bases, j'ai créé les bases sans modifier les colonnes, juste les noms pour être plus "base compatible".

  • locaux_pers_morales
  • parcelles_pers_morales

exemple :

Ensuite, je ne fais que bêtement importer les fichiers .txt du département qui m'interesse dans ces bases.

J'utilise l'outil d'import de DBeaver, mais cela m'oblige à choisir les correspondances de colonne. Ceci étant l'avantage de Dbeaver, c'est que j'en ai fait une tâche et donc je peux la refaire à l'infini. Mais je compte sur vous pour me faire un joli script ;-)

J'ai profité pour générer des .csv avec les liste de la documentation. Si vous voulez mon secret, j'ai utilisé TABULA pour récupérer les tableaux des pdf. (c'est juste magique !).  Vous trouverez dans le lien plus bas également le DUMP des listes de métadonnées pour créer les listes :

  • list_code_de_droits
  • list_code_et_abrev
  • list_forme_juridique
  • list_grp_pers_morale

Vue parcelle et locaux

Maintenant pour simplifier la gestion, je crée une vue, je pourrais créer une table en dur, vu que la mise à jour ce fait  1 fois par an. Mais pour l'instant, je teste la démarche.

Vue des parcelles des personnes morales

Ici, la seule difficulté est de créer l'identifiant IDU qui permettra de retrouver les parcelles. Il s'agit donc d'une concaténation avec formatage des éléments pour respecter la longueur et le nombre de 0 de l'idu de parcelle.

Je garde que les infos qui me sont directement utile. Je "décode" en passant les info.

Vous remarquerez car vous êtes perspicaces que j'en profite pour filtrer sur la commune de ma démo, mais c'est facultatif (c'est pour cela que j'ai commenté la ligne --)

CREATE OR REPLACE
VIEW vue_proprio_parcelles AS
SELECT
    concat(ppm."Departement", ppm."Code_Direction", to_char(ppm."Code_Commune"::double PRECISION, 'FM099'::TEXT), REPLACE(ppm."Prefixe"::TEXT, ' '::TEXT, '0'::TEXT), lpad(ppm."Section"::TEXT, 2, '0'::TEXT), to_char(ppm."Num_plan"::double PRECISION, 'FM0999'::TEXT)) AS idu_pm,
    btrim(concat(ppm."Num_Voirie", ' ', ppm."Nature_voie", ' ', ppm."Nom_voie")) AS adresse_terrain,
    ppm."Nom_Commune" AS commune,
    cod.signification AS droit,
    ppm."Forme_juridique_abregee",
    ppm."Denomination",
    grp.signification AS groupe,
    ppm."Num_SIREN"
FROM
    parcelles_pers_morales ppm,
    list_code_de_droits cod,
    list_grp_pers_morale grp
WHERE
    -- ppm."Nom_Commune"::TEXT = 'LOC-EGUINER'::TEXT
    AND ppm."Code_droit"::TEXT = cod.code::TEXT
    AND ppm."Groupe_personne" = grp.groupe;

Pas la peine de faire un copié-collé c'est dans les fichiers indiqués dans le lien en bas.

 

Pour les locaux

C'est plus compliqué puisque qu'il n'y a pas d'identifiant direct entre le fichier et le bâti.

Je génére quand même la vue, sur la même base que la précédente.

Notez que j'améliore mes vues en fonction de mes besoins ou envies, les fichiers dans le dépôt ci-dessous peuvent donc différer en fonction des versions.

Jointure QGIS ou...

Ensuite dans QGIS, je charge la vue_proprio_parcelle comme simple table.

Je fais ensuite une jointure entre la couche parcelle et ma vue via l'identifiant unique et le champs idu_pm. Rien de très compliqué.

Ensuite, je peux catégorier à la cool sur les champs supplémentaires. Ici, sur les groupes avec la forme juridique en étiquette.

vue avec catégories

Pour les locaux

Si vraiment j'avais un gros besoin, mais je n'ai pas, j'ai chargé la vue spéciale locaux.

Par contre, n'ayant que l'identifiant parcelle, et sachant qu'une parcelle peut avoir plusieurs locaux. J'ai testé la solution d'une relation 1.n (dans les propriétés du projet --> relations) entre la couche parcelle et ma vue "locaux".

relation projet oui, je l'ai appelé locco, et alors, je suis en mode test, brouillon, pas fini...

Ensuite dans le formulaire de la couche parcelle, j'ai créé un onglet pour les locaux et j'ai la liste des locaux sur la parcelle. J'ai pas trouvé mieux pour l'instant même si une relation parcelle-bâtiment existe dans une des tables générées par le plugin cadastre.

Les fichiers

Vous allez me dire tu as promis les fichiers car c'est cela le plus important, le reste n'est que goût personnel et réglages, le gros du boulot est de mettre ceci en base. J'ai voulu faire simple et rapide. On peut améliorer à coup de relation et de tables mieux construites, mais c'est un début.

Vous trouverez donc les fichiers, qui j'espère, vous seront utiles à cette adresse :

sur codeberg, en allant dans "version", vous pouvez charger le .zip

J'attends vos commentaires et vos suggestions. Bonne jointure !

 


Classé dans : QGIS, Autres disciplines, Trucs, QGIS 3.x, Postgis Mots clés : aucun

2 commentaires


Écrire un commentaire

Quelle est le cinquième caractère du mot 4sz3de2n ?