ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

DataFrameTime

  • Сводка
  • Описание
  • Свойства
  • Обзор метода
  • Методы
  • Пример кода

Сводка

Объект DataFrameTime предоставляет доступ к операциям управления временем для слоев с поддержкой времени во фрейме данных.

Описание

Объект DataFrameTime предоставляет функции для двух базовых сценариев:

  • Первый сценарий предназначен для документов карты, которые уже были опубликованы со слоями с поддержкой времени и для которых настройки были заданы в диалоговом окне Опции бегунка времени (Time Slider Options) и сохранены в документе карты. В этом сценарии существующие свойства можно использовать для автоматизации вывода данных. Примеры 1 и 2 ниже демонстрируют данный сценарий.
  • Второй сценарий касается документов карты без слоев с поддержкой времени, но в которые такие слои добавляются с помощью скрипта, поэтому необходимо задать опции бегунка времени для автоматизации вывода данных. В примере 3 ниже представлен данный сценарий.

timeStepInterval использует класс EsriTimeDelta. Класс EsriTimeDelta является альтернативой для базового класса Python datetime.timedelta и использует для интервалов внутренние единицы измерения времени Esri (месяцы, недели и т. д.), которые не может обрабатывать базовый объект timedelta. timeStepInterval можно использовать для циклического прохода по значениям даты и времени. Если вы хотите использовать другой интервал в цикле, создайте новый объект Python timedelta или объект EsriTimeDelta (см. пример 3 ниже). Помните, что если изменить и сохранить timeWindowUnits, это повлияет на объект timeStepInterval.

Прежние версии:

В версиях до 10.1 свойство timeStepInterval класса DataFrameTime возвращало объект Python datetime.timedelta.

Для внедрения метки времени в изображение при экспорте фрейма данных используйте time text.

Доступно множество статей справки, касающихся времени в ArcGIS. Вот некоторые из них, которые наиболее тесно связаны с методами и свойствами объекта DataFrameTime:

  • Использование информации о времени из источника данных
  • Использование окна Ползунок времени
  • Об изменении свойств ползунка времени

Свойства

ВладениеОбъяснениеТип данных
currentTime
(чтение и запись)

Текущая дата и время для фрейма данных со слоями с поддержкой времени. Такое же свойство можно найти в диалоговом окне Опции бегунка времени (Time Slider Options) в ArcMap.

DateTime
endTime
(чтение и запись)

Конечная дата и время для фрейма данных со слоями с поддержкой времени. Такое же свойство можно найти в диалоговом окне Опции бегунка времени (Time Slider Options) в ArcMap.

DateTime
startTime
(чтение и запись)

Начальная дата и время для фрейма данных со слоями с поддержкой времени. Такое же свойство можно найти в диалоговом окне Опции бегунка времени (Time Slider Options) в ArcMap.

DateTime
timeStepInterval
(только чтение)

Возвращает временной интервал, установленный в диалоговом окне Опции бегунка времени (Time Slider Options) в ArcMap. Это значение – это объект EsriTimeDelta, который используется для итерации по периоду времени (например, 2 дня, 1 месяц и т. д.).

EsriTimeDelta
timeWindow
(чтение и запись)

Временное окно, управляющее тем, сколько единиц измерения (например, дней) данных с поддержкой времени отображаются до текущего времени включительно. Например, если для параметра timeWindow задано значение 1, для timeWindowUnits выбраны недели, временным окном будет 2 недели.

Double
timeWindowUnits
(чтение и запись)

Единицы, используемые со свойствами TimeStepInterval и TimeWindow. Допустимые единицы:

  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
String

Обзор метода

МетодОбъяснение
resetTimeExtent ()

Сбрасывает временной экстент до экстента временного окна всех слоев фрейма данных с поддержкой времени

Методы

resetTimeExtent ()

Этот метод выполняет ту же операцию, что и кнопки Мин. время (Min Time) и Макс. время (Max Time) в диалоговом окне Опции бегунка времени (Time Slider Options) в ArcMap.

Пример кода

Пример DataFrameTime 1

Следующий скрипт использует настройки времени (начальное время, конечное время и временной интервал), опубликованные в существующем документе карты, для экспорта серии изображений. Каждое выходное изображение получает уникальное имя с использованием обработанной информации о даты из метки времени.

import arcpy
import os

mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Traffic Analysis")[0]
df.time.currentTime = df.time.startTime

while df.time.currentTime <= df.time.endTime:
    # An example str(newTime) would be: "2008-12-29 02:19:59"
    # The following line splits the string at the space and takes the first 
    # item in the resulting string.  
    fileName = str(df.time.currentTime).split(" ")[0] + ".png"
    arcpy.mapping.ExportToPNG(mxd, os.path.join(r"C:\Project\Output", fileName), df)
    df.time.currentTime = df.time.currentTime + df.time.timeStepInterval
del mxd
Пример DataFrameTime 2

Следующий скрипт идентичен примеру 1 выше, но он использует начальное время, конечное время и временной интервал, которые отличаются от существующих настроек, опубликованных во фрейме данных с поддержкой времени в документе карты. Модуль datetime Python используется для создания времени и разницы времени. Кроме того, класс EsriTimeDelta также можно использовать для создания разницы времени.

import arcpy
import datetime
import os

mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Traffic Analysis")[0]
df.time.currentTime = datetime.datetime(2008, 10, 1)
endTime = datetime.datetime(2008, 10, 31)
interval = datetime.timedelta(days=7)

while df.time.currentTime <= endTime:
    # An example str(newTime) would be: "2008-01-29 02:19:59"
    # The following line splits the string at the space and takes the first 
    # item in the resulting string.  
    fileName = str(df.time.currentTime).split(" ")[0] + ".png"
    arcpy.mapping.ExportToPNG(mxd, os.path.join(r"C:\Project\Output", fileName), df)
    df.time.currentTime = df.time.currentTime + interval
del mxd
Пример DataFrameTime 3

Следующий скрипт представляет сценарий, в котором новый файл с поддержкой времени добавляется в новый фрейм данных, не поддерживающий время. Поэтому свойства бегунка времени не задаются в документе карты. Этот скрипт добавляет слой с поддержкой времени с помощью функции AddLayer и задает нужные настройки времени, как и в скрипте выше. В этом примере временной интервал задается с помощью класса EsriTimeDelta. Кроме того, модуль datetime Python можно использовать для создания разницы времени.

import arcpy
import datetime
import os

mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "New Data Frame")[0]
timeLayer = arcpy.mapping.Layer(r"C:\Project\Data\Accidents.lyr")
arcpy.mapping.AddLayer(df, timeLayer, "AUTO_ARRANGE")
df.time.resetTimeExtent()
df.time.timeWindowUnits = "DAYS"
df.time.timeWindow = 7
df.time.currentTime = datetime.datetime(2008, 10, 1)
endTime = datetime.datetime(2008, 10, 31)
interval = arcpy.time.EsriTimeDelta(1, 'weeks')

while df.time.currentTime <= endTime:
    # An example str(newTime) would be: "2008-01-29 02:19:59"
    # The following line splits the string at the space and takes the first
    # item in the resulting string.
    fileName = str(df.time.currentTime).split(" ")[0] + ".png"
    arcpy.mapping.ExportToPNG(mxd, os.path.join(r"C:\Project\Output", fileName))
    df.time.currentTime = df.time.currentTime + interval
del mxd, timeLayer

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация