Periodic behavior

Ryan E. Emanuel, Joshua S. Rice, and Jasmine N. Gregory. North Carolina State University (

Author Profile
Initial Publication Date: May 13, 2020


Time series data often exhibit cyclical behavior. One example is the regular shift between dry and wet seasons in many areas of the world. Such behavior is often referred to as seasonality or periodic behavior. In some cases the length of time, or period, over which that repeating behavior occurs is relatively clear, such as with wet and dry seasons, but in other cases that information is not quite as obvious from a cursory inspection of the data. A sub-field of time series analysis, called frequency domain analysis, focuses specifically on understanding periodic behavior. We'll be using some basic tools from frequency domain analysis to identify the time scale at which various data display periodic behavior.

Conceptual Outcomes

1) Gain a conceptual understanding of periodic behavior and frequency domain analysis by generating and inspecting periodograms of synthetic random and real hydrologic data.

Practical Outcomes

1) Use open source tools to explore and visualize the periodic behavior of hydrologic time series.

Time Required

1-2 hours, depending on comfort level with modifying small amounts of code (e.g., file paths) and depth of responses to questions.

Computing/Data Inputs

1) Provided example data
2) Provided example code

Computing/Data Outputs

1) Answers to various questions provided in the instructions.
2) Data visualizations created while working through the instructions.

Hardware/Software Required

An interactive python environment such as iPython, jupyter, or Spyder (all of which are included in the open source Anaconda distribution of python) with the Numpy, SciPy, matplotlib, and pandas libraries installed.


Line by line instructions are included in this jupyter notebook: unit_1_step_3_notebook_new.ipynb ( 513kB Feb15 21)

Additional files are required to complete the step:

neuse_streamflow.csv (Comma Separated Values 12kB Aug17 20)

neuse_precipitation.csv (Comma Separated Values 9kB Aug17 20)

mei_vec.csv (Comma Separated Values 9kB Aug17 20)

Additional Activities and Variants

The provided instructions and code can be adapted to any time series data that follow the same formatting as the example data from the Neuse River basin.

Related steps:
Other steps from this unit