Step time in layout

358
4
11-23-2020 09:11 AM
Status: Open
Labels (1)
JoelMeier
Occasional Contributor II

It would be really nice to be able to step through time of a map in a layout instead of activating the map then closing it to export it. 

alternatively if it were possible to create a map series based on time data where I could select the start, end, and interval, that would also work

4 Comments
KoryKramer
Status changed to: Needs Clarification

Thank you for posting this idea, @JoelMeier .

If I understand the request correctly, this is already possible to do.  Before marking the idea as already offered, though, I wanted to get your confirmation.  Take a look at this quick video and let us know if that is what you're looking for.

 

Cheers,

Kory

JoelMeier

Hello Kory,

 

That is helpful but not quite what I'm after as it would require me to make a bookmark for each time rage before hand. that works well if you've only got a few like you show but I've got hundreds of time ranges I need to create maps for and there doesn't seem to be a quick way to do it. 

my use case: I've got AVL data and we have a map layout template and we need to create maps for each hour over a certain area. so I need to set up the time steps then export one, then advance the time step, close the map activation, export the layout, etc... 

if there is a better way to do this, I'm all ears.

 

Thank you

KoryKramer
Status changed to: Open
 
JeffBarrette

Hello Joel,

Another alternative is to use the Python arcpy.mp module.  If you already have a time enabled layer, you can control the time slices using Python CIM Access.

This (Temporal Map Series) snippet is from a set of samples provided at: https://www.arcgis.com/home/item.html?id=8772f61319584882bb697ba003030636

# Author: Esri
# Date: March 2020
# Version: ArcGISPro 2.5
# Purpose: This script updates the time window for a mapframe on a layout by
# iterating over 5 year time intervals.
# Notes: - The script is intended to work from a script tool provided with
# a sample project using "CURRENT". To see the changes happen be
# sure to active the appropriate map or layout.
# - Because each time window is a separate result, you must get and
# set the CIM for each iteration.
# - Optionally, each time window can be exported to PDF by
# uncommenting the the last line. You may need to change the
# output folder in the string.

from datetime import datetime

p = arcpy.mp.ArcGISProject("current")
lyt = p.listLayouts('Time')[0]

#Iterate from 1975 to 2010 using 5 year intervals
for x in range(1975, 2010, 5):

lyt_cim = lyt.getDefinition('V2') #Get the Layout's CIM definition

#Iterate though all layout elements to find the MapFrame element
for elm in lyt_cim.elements:
if elm.name == 'Map Frame':
#Set start/end time window
elm.view.timeDisplay.timeValue.start = datetime(x, 1, 1, 0, 0)
elm.view.timeDisplay.timeValue.end = datetime(x+5, 1, 1, 0, 0)

lyt.setDefinition(lyt_cim) #set start/end time

#Update the page name in the script tool and optionally export
arcpy.AddMessage(f'Range: {x}-{x+5}')
lyt.exportToPDF(f'C:\Temp\Time_{x}-{x+5}.pdf')