#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
Re: Bdtopo Model Builder Shp Vers Gdb
Merci pour le partage!
Hors ligne