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

GEODATA DAYS 2024

#1 Fri 31 January 2014 11:37

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Arcgis 10.2 - titre mise en page automatique

bonjour,

je travaille sous arcgis 10.2
je vais devoir produire des cartes en séries selon ce mode:
j'active une couche, j'exporte la carte.
je désactive la couche , j'en active une autre et j'exporte la carte.
L'étendue d'affichage est toujours la même.

Je souhaiterai automatiser le titre de la carte présent sur la mise en page. Ce titre correspond au nom de la couche (activée) ou au nom du groupe de couche où se trouve la couche activée.
J'ai essayé avec la légende mais il n'est pas possible d'enlever les symboles.
J'ai vu qu'il était possible de faire du texte dynamique. Est-ce que cet outil répondrait à mes besoins ?
Si oui, où pourrais-je trouver des infos sur le code à appliquer ?

Merci d'avance pour votre aide
Cordialement

gregory

http://www.forumsig.org/showthread.php/ … utomatique

Dernière modification par ifremer (Fri 31 January 2014 16:16)

Hors ligne

 

#2 Fri 31 January 2014 15:41

obone241
Juste Inscrit !
Lieu: Libreville
Date d'inscription: 10 Jan 2014
Messages: 9

Re: Arcgis 10.2 - titre mise en page automatique

Quand vous posez la question sur plusieurs forum, merci de le signaler. http://www.forumsig.org/showthread.php/ … utomatique

Hors ligne

 

#3 Fri 31 January 2014 16:18

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

bonjour,

merci pour cette info, je viens de rajouter le lien dans le message original

gregory

Hors ligne

 

#4 Fri 31 January 2014 16:55

lebon henri
Participant actif
Lieu: Vendée
Date d'inscription: 14 Jan 2008
Messages: 99

Re: Arcgis 10.2 - titre mise en page automatique

Salut,

Tu peux essayer ce petit script :

Code:

import arcpy


dossier_sortie = "C:\\"

mxd = arcpy.mapping.MapDocument("CURRENT")


df = arcpy.mapping.ListDataFrames(mxd)[0]

grouplyr = arcpy.mapping.ListLayers(mxd, "nom d'un groupe contenant tes couches servant changer de titre et avec donc un nom de groupe unique bien évidemment", df)[0] ## pense à toutes les mettre dans ce groupe

passer_premier_tour = True
for lyr in arcpy.mapping.ListLayers(grouplyr): ## le premier lyr du grouplyr est le grouplyr lui même, pas très logique esri...
    if passer_premier_tour == True:
        passer_premier_tour = False
    else:
        lyr.visible = True


        for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
            if elm.name == "titre_carte": ## nomme ton objet text de titre de carte comme ca
                elm.text = lyr.name



        pdf_en_sortie = dossier_sortie + lyr.name + ".pdf"

        arcpy.mapping.ExportToPDF(mxd, pdf_en_sortie, 'PAGE_LAYOUT', resolution=300, image_quality='BEST', colorspace='RGB', \
        compress_vectors='True', image_compression='ADAPTIVE', picture_symbol='VECTORIZE_BITMAP', convert_markers='False', \
        embed_fonts='True', layers_attributes='NONE', georef_info='False', jpeg_compression_quality=80)

        lyr.visible = False

Dernière modification par lebon henri (Thu 06 February 2014 18:49)

Hors ligne

 

#5 Tue 04 February 2014 09:56

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

bonjour,

merci lebon henri
Je vais essayé d'appliquer le script (ce sera mon premier script dans Arcgis)


gregory

Hors ligne

 

#6 Fri 07 February 2014 11:36

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

merci lebon henri pour la modif, ça marche nickel
j'espère un jour pouvoir écrire un script utilisant le module arcpy.mapping car il a l'air puissant pour les taches répétitives

Dernière modification par ifremer (Fri 07 February 2014 11:48)

Hors ligne

 

#7 Fri 07 February 2014 15:59

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

rebonjour,

j'ai un peu modifié le script

Code:

import arcpy
...  
... dossier_sortie = "C:\\"
... 
... mxd = arcpy.mapping.MapDocument("CURRENT")
...  
... df = arcpy.mapping.ListDataFrames(mxd)[0]
... 
... grouplyr = arcpy.mapping.ListLayers(mxd, "****", df)[0] ## pense à toutes les mettre dans ce groupe
... 
...  
... passer_premier_tour = True
... for lyr in arcpy.mapping.ListLayers(grouplyr): ## le premier lyr du grouplyr est le grouplyr lui même, pas très logique esri...
...     if passer_premier_tour == True:
...         passer_premier_tour = False
...     else:
...         lyr.visible = True
... 
... 
...         for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
...             if elm.name == "titre_carte": ## nomme ton objet text de titre de carte comme ca
...                 elm.text = grouplyr.name
... 
... 
... 
...         jpg_en_sortie = dossier_sortie + grouplyr.name + "_"+ lyr.symbology.valueField + ".jpg"
... 
...         arcpy.mapping.ExportToJPEG(mxd, jpg_en_sortie, 'PAGE_LAYOUT')
...          
...         lyr.visible = False

et je me demande s'il est possible de le faire évoluer en ayant plusieurs groupes de couche "année" comme présentées dans le fichier joint
Merci

greg


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#8 Fri 07 February 2014 17:58

lebon henri
Participant actif
Lieu: Vendée
Date d'inscription: 14 Jan 2008
Messages: 99

Re: Arcgis 10.2 - titre mise en page automatique

Salut,

en faisant simple tu peux faire ça

Code:

import arcpy

dossier_sortie = "C:\\"

mxd = arcpy.mapping.MapDocument("CURRENT")

df = arcpy.mapping.ListDataFrames(mxd)[0]


list_grouplyr = ["goupe1", "group2", etc....] ##tout les groupes doivent être invisibles


for row in list_grouplyr:
    grouplyr = arcpy.mapping.ListLayers(mxd, row, df)[0] ## pense à toutes les mettre dans ce groupe
    grouplyr.visible = True


    passer_premier_tour = True
    for lyr in arcpy.mapping.ListLayers(grouplyr): ## le premier lyr du grouplyr est le grouplyr lui même, pas très logique esri
        if passer_premier_tour == True:
            passer_premier_tour = False
        else:
            lyr.visible = True


            for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
                if elm.name == "titre_carte": ## nomme ton objet text de titre de carte comme ca
                    elm.text = grouplyr.name



            jpg_en_sortie = dossier_sortie + grouplyr.name + "_"+ lyr.symbology.valueField + ".jpg" ## tu peux concatener en plus l'année du groupe avec grouplyr.name

            arcpy.mapping.ExportToJPEG(mxd, jpg_en_sortie, 'PAGE_LAYOUT')

            lyr.visible = False

    grouplyr.visible = False

Hors ligne

 

#9 Tue 11 February 2014 14:41

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

bonjour,

merci pour ce code. Je teste ça vendredi.
Bonne journée
Cordialement

gregory

Hors ligne

 

#10 Thu 13 February 2014 10:27

ifremer
Participant occasionnel
Date d'inscription: 13 Dec 2005
Messages: 47

Re: Arcgis 10.2 - titre mise en page automatique

superbe ça marche du tonnère, merci beaucoup car c'est du rapide avec ce script.
Pour le chemin d'accès du dossier de sortie, si j'ai un répértoire qu'avec des chifres

Code:

dossier_sortie = "D:\SIG\projets\RSL_rapport\carte\Mphyte\2013\\"

alors j'ai ce code d'erreur:

Code:

Runtime error 
Traceback (most recent call last):
  File "<string>", line 33, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x81 in position 39: ordinal not in range(128)

par contre ça marche si je mets du texte et du chiffre dans le dossier:

Code:

dossier_sortie = "D:\SIG\projets\RSL_rapport\carte\Mphyte\Mphyte2013\\"

Y-a t'il une solution pour pallier ce pb ?
Merci d'avance

gregory

Hors ligne

 

#11 Thu 13 February 2014 19:29

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

Re: Arcgis 10.2 - titre mise en page automatique

Bonjour,

Essayer

Code:

dossier_sortie = r'D:\SIG\projets\RSL_rapport\carte\Mphyte\2013\\'

cf. la doc Définition des chemins d'accès aux données dans Python

A+

Franck

PS: En essayant dans une console Python

Code:

toto = "\2"
print toto


On peux voir le caractère correspondant...

Hors ligne

 

Pied de page des forums

Powered by FluxBB