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 Wed 07 September 2016 10:06

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 167

arcpy.env.overwriteOutput ne fonctionne pas

Bonjour,
lors d'une conversion classe d'entité vers geodatabase dans un model builder, je voudrais écraser les classes d'entité déjà présente.
j'ai ajouté a mon script python (issue du model) arcpy.env.overwriteOutput = True.
J'ai également coché l'autorisation d'écraser des couches en sortie d'outil au niveau des options de géotraitements ArcCatalog/ArcMap.

Je fais suivre mon script:

Code:

# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# imaluxbis.py
# Created on: 2016-08-31 11:38:31.00000
#   (generated by ArcGIS/ModelBuilder)
# Description: 
# ---------------------------------------------------------------------------

# Import arcpy module
import arcpy

# Ecrase la classe d'entites cible si elle existe
arcpy.env.overwriteOutput = True

# Load required toolboxes
arcpy.ImportToolbox("G:/Expert/Commun/ToolsBox/Commun.tbx")

# Local variables:
IMALUX_lum_tvoi = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_tvoi"
IMALUX_Imavers = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.Imavers"
IMALUX_lum_allu = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_allu"
IMALUX_lum_aut = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_aut"
IMALUX_lum_cof = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_cof"
IMALUX_lum_der = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_der"
IMALUX_lum_desi = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_desi"
IMALUX_lum_dobj = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_dobj"
IMALUX_lum_itv = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv"
IMALUX_lum_itv_2016_06 = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_2016_06"
IMALUX_lum_itv_agt = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_agt"
IMALUX_lum_itv_dem = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_dem"
IMALUX_lum_itv_fo = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_fo"
IMALUX_lum_itv_mat = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_mat"
IMALUX_lum_itv_obj = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_obj"
IMALUX_lum_itv_prs = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_prs"
IMALUX_lum_itv_prs_2016_06 = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_prs_2016_06"
IMALUX_lum_itv_rea_sys = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_rea_sys"
IMALUX_lum_itv_rue = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_rue"
IMALUX_lum_lam = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lam"
IMALUX_lum_lnom = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lnom"
IMALUX_lum_lut = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lut"
IMALUX_lum_nome = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_nome"
IMALUX_lum_sup = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_sup"
IMALUX_lum_tra = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_tra"
IMALUX_hllum = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.hllum"
IMALUX_hmlum = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.hmlum"
IMALUX_hplum = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.hplum"
IMALUX_htlum = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.htlum"
IMALUX_lum_arc = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_arc"
IMALUX_lum_cant = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_cant"
IMALUX_lum_det = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_det"
IMALUX_lum_itv_nomade = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_nomade"
IMALUX_lum_itv_sect_ope = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_sect_ope"
IMALUX_lum_itv_sect_sys = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_sect_sys"
IMALUX_lum_itv_site = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_site"
IMALUX_lum_lat = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lat"
IMALUX_lum_noeu = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_noeu"
IMALUX_lum_plan = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_plan"
IMALUX_lum_quar = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_quar"
IMALUX_lum_sect = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_sect"
IMALUX_lum_squa = "Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_squa"
imalux_gdb = "G:\\Imagis\\VV_Donnes_Specifiques\\Sauvegarde_BDD_SDE\\imalux.gdb"
imalux_gdb__2_ = imalux_gdb
imalux_gdb__3_ = imalux_gdb__2_

# Process: Classe d’entités vers géodatabase (multiple)
arcpy.FeatureClassToGeodatabase_conversion("'Connexions aux bases de données\\IMALUX.sde\\IMALUX.hllum';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.hmlum';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.hplum';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.htlum';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_arc';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_cant';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_det';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_nomade';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_sect_ope';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_sect_sys';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_site';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lat';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_noeu';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_plan';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_quar';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_sect';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_squa'", imalux_gdb)

# Process: Table à géodatabase (multiple)
arcpy.TableToGeodatabase_conversion("'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_tvoi';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.Imavers';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_allu';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_aut';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_cof';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_der';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_desi';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_dobj';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_2016_06';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_agt';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_agt_1';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_dem';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_fo';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_mat';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_obj';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_prs';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_prs_2016_06';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_rea_sys';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_itv_rue';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lam';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lnom';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_lut';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_nome';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_sup';'Connexions aux bases de données\\IMALUX.sde\\IMALUX.lum_tra'", imalux_gdb__2_)

# Process: log
arcpy.gp.toolbox = "G:/Expert/Commun/ToolsBox/Commun.tbx";
# Warning: the toolbox G:/Expert/Commun/ToolsBox/Commun.tbx DOES NOT have an alias. 
# Please assign this toolbox an alias to avoid tool name collisions
# And replace arcpy.gp.log(...) with arcpy.log_ALIAS(...)
arcpy.gp.log()

Si vous avez une solution pour m'aider...
Merci d'avance

Hors ligne

 

#2 Wed 07 September 2016 16:11

grdfred
Participant actif
Lieu: nantes
Date d'inscription: 17 Jul 2007
Messages: 56

Re: arcpy.env.overwriteOutput ne fonctionne pas

Bonjour

J’ai l’habitude d'utiliser ce paramètre dans mes scripts python (Arcgis v10.0) sans aucun souci. Par contre je ne maitrise pas du tout les connexions SDE.
Ton script de conversion fonctionne-t-il si tu n'écrase pas la donnée existante ? C'est une question bête mais j'ai pas d'autres pistes.

Bon courage

Fred

Hors ligne

 

#3 Wed 07 September 2016 17:37

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 167

Re: arcpy.env.overwriteOutput ne fonctionne pas

Oui cela marche! et lorsque je lance le script ci dessus au lieu de me les écraser, j'obtiens des données unique avec _1 à la fin de chaque nom.
je bosse avec Arcgis 10.3.1

Hors ligne

 

#4 Fri 09 September 2016 08:26

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: arcpy.env.overwriteOutput ne fonctionne pas

Bonjour,

Le renommage des classes d'entités ou des tables avec "_1" si elles existant déjà est exactement le fonctionnement décrit dans la documentation (Classe d'entités vers géodatabase et Table vers géodatabase) :

Si le nom existe déjà dans la géodatabase en sortie, un numéro est ajouté à la fin pour rendre le nom de la classe d'entités unique, par exemple, rivers_1.


Tu pourrrais peut-être supprimmer les tables et les classes juste avant de les copier...

A+

Franck

Hors ligne

 

#5 Wed 05 October 2016 10:38

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 167

Re: arcpy.env.overwriteOutput ne fonctionne pas

j'ai eu la réponse à ce problème, j'évolue avec un arcgis 10.3.1 et il se trouve qu'il existe un bug entre  arcpy.env.overwriteOutput et cette version.
(j'ai demandé directement au support ESRI)

Hors ligne

 

Pied de page des forums

Powered by FluxBB