Class: QgsTemporalNavigationObject

Implements a temporal controller based on a frame by frame navigation and animation.

Added in version 3.14.

Class Hierarchy

Inheritance diagram of qgis.core.QgsTemporalNavigationObject

Base classes

QgsTemporalController

A controller base class for temporal objects, contains a signal for notifying updates of the objects temporal range.

QObject

QgsExpressionContextScopeGenerator

Abstract interface for generating an expression context scope.

class qgis.core.QgsTemporalNavigationObject[source]

Bases: QgsTemporalController, QgsExpressionContextScopeGenerator

__init__(parent: QObject | None = None)

Constructor for QgsTemporalNavigationObject, with the specified parent object.

Parameters:

parent (Optional[QObject] = None)

class AnimationState(*values)

Bases: IntEnum

Animation states.

Note

Prior to QGIS 3.36 this was available as QgsTemporalNavigationObject.AnimationState

Added in version 3.36.

  • Forward: Animation is playing forward.

  • Reverse: Animation is playing in reverse.

  • Idle: Animation is paused.

NavigationMode

alias of TemporalNavigationMode

animationState(self) Qgis.AnimationState[source]

Returns the current animation state.

Return type:

Qgis.AnimationState

availableTemporalRanges(self) List[QgsDateTimeRange]

Returns the list of all available temporal ranges which have data available.

The ranges list can be a list of non-contiguous ranges (i.e. containing gaps) which together describe the complete range of times which contain data.

Added in version 3.20.

Return type:

List[QgsDateTimeRange]

currentFrameNumber(self) int

Returns the current frame number.

Return type:

int

dateTimeRangeForFrameNumber(self, frame: int) QgsDateTimeRange[source]

Calculates the temporal range associated with a particular animation frame.

This is calculated from the navigation start time (taken from temporalExtents()), the specified frame number, and the frame duration (see frameDuration()).

Parameters:

frame (int)

Return type:

QgsDateTimeRange

findBestFrameNumberForFrameStart(self, frameStart: QDateTime | datetime.datetime) int

Returns the best suited frame number for the specified datetime, based on the start of the corresponding temporal range.

Parameters:

frameStart (Union[QDateTime, datetime.datetime])

Return type:

int

frameDuration(self) QgsInterval[source]

Returns the current set frame duration, which dictates the temporal length of each frame in the animation.

Return type:

QgsInterval

framesPerSecond(self) float[source]

Returns the animation frame rate, in frames per second.

This setting controls the overall playback speed of the animation, i.e. how quickly a playing animation will advance to the next frame.

Return type:

float

isLooping(self) bool[source]

Returns True if the animation should loop after hitting the end or start frame.

See also

setLooping()

Return type:

bool

navigationMode(self) Qgis.TemporalNavigationMode[source]

Returns the current temporal navigation mode.

Return type:

Qgis.TemporalNavigationMode

signal navigationModeChanged[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

next(self)[source]

Advances to the next frame.

Note

Calling this slot does not change the current animation state, i.e. a paused animation will remain paused.

pause(self)[source]

Pauses the temporal navigation.

Calling this slot changes the animation state to idle, preventing automatic advancement of frames.

It does not affect the current animation frame number or the current temporal range of the controller.

play(self)[source]

Starts playing the temporal navigation from its current frame, using the direction specified by animationState()

playBackward(self)[source]

Starts the animation playing in a reverse direction until the beginning of the time range.

playForward(self)[source]

Starts the animation playing in a forward direction up till the end of all frames.

previous(self)[source]

Jumps back to the previous frame.

Note

Calling this slot does not change the current animation state, i.e. a paused animation will remain paused.

rewindToStart(self)[source]

Rewinds the temporal navigation to start of the temporal extent.

setAnimationState(self, state: Qgis.AnimationState)[source]

Sets the current animation state.

See also

animationState()

Parameters:

state (Qgis.AnimationState)

setAvailableTemporalRanges(self, ranges: Iterable[QgsDateTimeRange])[source]

Sets the list of all available temporal ranges which have data available.

The ranges list can be a list of non-contiguous ranges (i.e. containing gaps) which together describe the complete range of times which contain data.

Added in version 3.20.

Parameters:

ranges (Iterable[QgsDateTimeRange])

setCurrentFrameNumber(self, frame: int)[source]

Sets the current animation frame number.

Calling this method will change the controllers current datetime range to match, based on the temporalExtents() and frameDuration() values.

Parameters:

frame (int)

setFrameDuration(self, duration: QgsInterval)[source]

Sets the frame duration, which dictates the temporal length of each frame in the animation.

Note

Calling this will reset the currentFrameNumber() to the closest temporal match for the previous temporal range.

See also

frameDuration()

Parameters:

duration (QgsInterval)

setFramesPerSecond(self, rate: float)[source]

Sets the animation frame rate, in frames per second.

This setting controls the overall playback speed of the animation, i.e. how quickly a playing animation will advance to the next frame.

Parameters:

rate (float)

setLooping(self, loop: bool)[source]

Sets whether the animation should loop after hitting the end or start frame.

See also

isLooping()

Parameters:

loop (bool)

setNavigationMode(self, mode: Qgis.TemporalNavigationMode)[source]

Sets the temporal navigation mode.

See also

navigationMode()

Parameters:

mode (Qgis.TemporalNavigationMode)

setTemporalExtents(self, extents: QgsDateTimeRange)[source]

Sets the navigation temporal extents, which dictate the earliest and latest date time possible in the animation.

Note

Calling this will reset the currentFrameNumber() to the first frame.

Parameters:

extents (QgsDateTimeRange)

setTemporalRangeCumulative(self, state: bool)[source]

Sets the animation temporal range as cumulative.

Parameters:

state (bool)

setTotalMovieFrames(self, frames: int)[source]

Sets the total number of frames for the movie.

Note

This is only used when the navigationMode() is set to Qgis.TemporalNavigationMode.Movie.

Added in version 3.36.

Parameters:

frames (int)

skipToEnd(self)[source]

Skips the temporal navigation to end of the temporal extent.

signal stateChanged[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

temporalExtents(self) QgsDateTimeRange[source]

Returns the navigation temporal extents, which dictate the earliest and latest date time possible in the animation.

Return type:

QgsDateTimeRange

signal temporalExtentsChanged[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

signal temporalFrameDurationChanged[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

temporalRangeCumulative(self) bool[source]

Returns the animation temporal range cumulative settings.

Return type:

bool

totalFrameCount(self) int

Returns the total number of frames for the navigation.

Return type:

int

totalMovieFrames(self) int

Returns the total number of frames for the movie.

Note

This is only used when the navigationMode() is set to Qgis.TemporalNavigationMode.Movie.

Added in version 3.36.

Return type:

int

signal totalMovieFramesChanged[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.