ArcGIS fournit tous les outils nécessaires pour créer des atlas imprimés ou au format PDF d'Adobe. Un atlas est un ensemble de pages imprimées ou exportées ensemble. La plupart des pages contiennent des cartes, mais d'autres pages peuvent présenter du texte, des informations tabulaires, des tables des matières ou des titres et tout autre contenu.
Un grand nombre d'atlas comprennent des documents auxiliaires, ou complémentaires. Il peut s'agir de texte de rapports, de tables, d'index et d'autres données complémentaires. Vous pouvez créer ces types d'atlas en utilisant les pages dynamiques d'ArcMap et un script Python arcpy.mapping.
L'exemple ci-dessus montre un atlas topographique d'Arenac County, dans le Michigan. Cet atlas comprend plusieurs pages complémentaires qui présentent des informations textuelles, des diagrammes et des données tabulaires. Vous pouvez créer ce document à l'aide des pages dynamiques et d'un script Python arcpy.mapping.
Pour plus d'informations, reportez-vous à la rubrique Création de pages dynamiques
Cet exemple repose sur les conditions suivantes :
- Vous disposez d'une carte existante avec des pages dynamiques.
Cet exemple de code utilise l'exemple d'atlas de référence simple figurant dans la rubrique Création d'atlas avec ArcGIS.
Vous pouvez recréer cet atlas en suivant les étapes décrites dans les rubriques d'aide suivantes : - Vous disposez de fichiers PDF contenant des rapports et des diagrammes.
- Vous disposez d'un fichier PDF existant pour la page de titre de l'atlas.
- Vous disposez d'un fichier PDF existant qui contient la page de carte globale.
Puisque l'atlas affiche des numéros de page, vous devez vous assurer que les numéros utilisés par les pages dynamiques prennent en compte les pages complémentaires que vous insérerez dans l'atlas. Par exemple, voici une illustration de la table de couche d'indexation des pages dynamiques. PageNumber a été créé et renseigné par l'outil de géotraitement Grid_Index_Features lorsque la grille a été créée. Ces numéros de page ne seront pas corrects puisque vous souhaitez insérer des pages entre les différentes pages de cartes. Un nouveau champ doit être créé pour les numéros de page et les valeurs doivent être renseignées en conséquence. Ici un nouveau champ, NewPageNum, a été créé et renseigné avec des valeurs qui prennent en compte les pages à insérer.
Assurez-vous que vous choisissez le champ approprié pour les numéros de page avant de créer les pages dynamiques.
En outre, veillez à utiliser les bons éléments textuels si vous affichez un numéro de page. N’utilisez pas le champ Data Driven Page with Count (Numéro de la page dynamique avec nombre total de pages), car le nombre total de pages correspond au nombre total de pages dynamiques uniquement. Il n’inclut pas les autres pages, telles que les pages du titre ou de rapport que vous allez intégrer dans l’atlas cartographique final. En lieu et place, utilisez le champ Data Driven Page Number (Numéro de page dynamique) et associez ce texte dynamique au texte statique affichant le nombre total de pages, par exemple, Page <dyn type="page" property="number"/> sur 26.
Une fois votre document cartographique et vos fichiers PDF prêts, vous pouvez exécuter le code ci-dessous pour créer votre atlas cartographique final au format PDF. Vous pouvez exécuter le code dans la fenêtre Python ou dans une application Python autonome.
Bien que les code spécifiques de cette rubrique s’appliquent à la carte de bande d’exemple ci-dessus, vous pouvez également appliquer les procédures et astuces présentées ici à vos propres atlas.
Insérez des pages complémentaires dans un atlas au format PDF.
import arcpy, os
# Create an output location variable
outDir = r"C:\temp\MBExample\final_output"
# Create a new, empty pdf document in the specified output location folder
finalpdf_filename = outDir + r"\ArenacMB.pdf"
if os.path.exists(finalpdf_filename):
os.remove(finalpdf_filename)
finalPdf = arcpy.mapping.PDFDocumentCreate(finalpdf_filename)
# Add the title page to the pdf
finalPdf.appendPages(r"C:\temp\MBExample\ancillary_pages\TitlePage.pdf")
# Add the overview map to the pdf
finalPdf.appendPages(r"C:\temp\MBExample\maps\IndexMap.pdf")
# Export the Data Driven Pages to a temporary pdf and then add it to the
# final pdf. Alternately, if your Data Driven Pages have already been
# exported, simply append that document to the final pdf.
#
mxdPath = r"C:\temp\MBExample\maps\ArenacDDP Reports.mxd"
tempMap = arcpy.mapping.MapDocument(mxdPath)
tempDDP = tempMap.dataDrivenPages
temp_filename = r"C:\temp\MBExample\temp_pdfs\tempDDP.pdf"
if os.path.exists(temp_filename):
os.remove(temp_filename)
tempDDP.exportToPDF(temp_filename, "ALL")
finalPdf.appendPages(temp_filename)
# Insert the pdf pages containing the reports and graphs into the final pdf
#
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg4.pdf", 4)
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg5.pdf", 5)
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg7.pdf", 7)
# Update the properties of the final pdf
finalPdf.updateDocProperties(pdf_open_view="USE_THUMBS",
pdf_layout="SINGLE_PAGE")
# Save your result
finalPdf.saveAndClose()
# Delete variables
del finalPdf
Les premières lignes du code importent les modules nécessaires ; créez une variable d’emplacement en sortie où le PDF final de l’atlas cartographique sera enregistré et créez un document PDF vierge dans le dossier d’emplacement en sortie. Ce PDF correspond à la sortie finale de ce script.
Pour en savoir plus, consultez la rubrique classe PDFDocument de arcpy.mapping.
Les lignes suivantes de code ajoutent la page de titre et la page de carte globale au PDF final. Cet exemple suppose que vous ayez des documents PDF existants susceptibles d’être utilisés pour les pages de titre et de carte globale.
L'étape suivante consiste à ajouter les pages de carte. Cela nécessite que vous ayez une carte dont l'option Pages dynamiques est déjà activée. Dans cet exemple, ce document ArcMap s'appelle ArenacDDP Reports.
Pour en savoir plus, reportez-vous à la rubrique Classe MapDocument et à la rubrique Classe DataDrivenPages de arcpy.mapping.
Ensuite, insérez les pages au format PDF contenant les rapports et diagrammes dans le PDF final.
Enfin, le code met à jour les propriétés, puis enregistre et ferme le PDF final.