Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Tue 21 May 2024 21:38

Gonzo
Juste Inscrit !
Date d'inscription: 4 Mar 2021
Messages: 5

Bdtopo Model Builder Shp Vers Gdb

Bonjour,

Désolé par avance pour mon "amateurisme" mais je cherche un me créer un petit outil via model builder d’arcgispro.

J’ai toute la BDTOPO France de l’IGN dezippée qui est classée par départements.

Les dossiers départements contiennent plusieurs sous-dossiers dont les données de livraison contenant les shapefiles.

Je cherche à avoir un outil via model builder pouvant de façon automatique :
1-    Créer les géodatabases nommées en départements (mon outil fonctionne jusqu’ici)
2-    Importer par lot les shapefiles contenus dans un dossier département dans la GDB correspondante au département (je bloque ici).

Une capture d’écran de l’étape 1 accompagne mon message sur ce forum.

Bonne journée à tous et merci à ceux qui prendrons un peu de temps pour me répondre.

https://transfert.free.fr/OzBG7Kn

Hors ligne

 

#2 Mon 27 May 2024 20:04

Gonzo
Juste Inscrit !
Date d'inscription: 4 Mar 2021
Messages: 5

Re: Bdtopo Model Builder Shp Vers Gdb

Bonjour,

Pour ceux que ça intéresse, j'ai trouvé la solution via python.

Bonne journée à tous !

import arcpy
import os

# Chemin vers le répertoire racine contenant les données BDTOPO classées par département
bdtopo_root_dir = r"E:\IGN TEST\BD_TOPO_IGN_2023_DEPARTEMENTS_FRANCE"

# Chemin vers le répertoire où les géodatabases par département seront créées
output_gdb_dir = r"E:\IGN TEST\GDB"

# Crée le répertoire de sortie s'il n'existe pas déjà
if not os.path.exists(output_gdb_dir):
    os.makedirs(output_gdb_dir)

# Liste des départements (ajustez selon vos besoins)
departements = ["90", "91"]  # Ajoutez tous les numéros de département nécessaires (exemple sur deux départements)


# Fonction pour créer une géodatabase et y importer les données
def create_gdb_for_departement(departement):
    # Chemin vers les données du département actuel
    dept_dir = os.path.join(bdtopo_root_dir, f"BDTOPO_3-3_TOUSTHEMES_SHP_LAMB93_D0{departement}_2023-09-15")

    # Vérifie si le répertoire du département existe
    if not os.path.exists(dept_dir):
        print(f"Le répertoire pour le département {departement} n'existe pas. Passer au suivant.")
        return

    # Nom de la géodatabase
    gdb_name = f"BDTOPO_{departement}.gdb"
    gdb_path = os.path.join(output_gdb_dir, gdb_name)

    # Crée la géodatabase si elle n'existe pas déjà
    if not arcpy.Exists(gdb_path):
        arcpy.CreateFileGDB_management(output_gdb_dir, gdb_name)
        print(f"Géodatabase créée pour le département {departement}: {gdb_path}")
    else:
        print(f"Géodatabase existe déjà pour le département {departement}: {gdb_path}")

    # Parcours tous les fichiers dans le répertoire du département
    for root, dirs, files in os.walk(dept_dir):
        for file in files:
            if file.endswith(".shp"):  # Modifier l'extension selon le format des fichiers BDTOPO
                shp_path = os.path.join(root, file)
                feature_class_name = os.path.splitext(file)[0]
                arcpy.FeatureClassToGeodatabase_conversion(shp_path, gdb_path)
                print(f"Fichier {file} importé dans la géodatabase {gdb_name}")

# Boucle sur tous les départements pour créer les géodatabases
for dept in departements:
    create_gdb_for_departement(dept)

print("Traitement terminé.")

Hors ligne

 

#3 Sat 01 June 2024 23:17

Bruno
Membre du bureau
Lieu: Toulouse
Date d'inscription: 22 Jun 2005
Messages: 11950
Site web

Re: Bdtopo Model Builder Shp Vers Gdb

Merci pour le partage!

Hors ligne

 

Pied de page des forums

Powered by FluxBB