This plot shows the cumulative precipitation at Tucson International Airport for each year since 1951. The data is colored by the strength of El Nino (blue) or La Nina (red) in that year, specifically the Jan-Feb Multivariate ENSO Index (MEI). The Tucson water year starts on October 1 of the previous year.
- Hover your cursor over a line or a year in the table to highlight that year of data.
- Hover your cursor over a line to show a tooltip with data values on that date.
- Click on the line or the year to keep it highlighted when you move your cursor away. This can make it easier to compare a handful of specific years.
- Click the "Cool season," "Monsoon season," or "Full year" buttons to change date ranges. The MEI remains fixed to Jan-Feb of that water year regardless of the season selection. The season definitions are only based on the calendar, not the meteorological conditions of the specific years.
If your plot looks bad or doesn't load then try the static image. We recommend using Chrome, Safari, or Firefox to view this page. Mobile devices are not supported.
Precipitation data from comes from RCC-ACIS.
ONI data comes from a unofficial csv file. I'd prefer to use an official table, but I couldn't find a properly formatted csv or tsv file.
State averages can be plotted by adding ?state=my_identifier to the URL where the identifier is the state's two letter postal abbreviation. RCC-ACIS will take ~5 minutes to process these area average requests. Open your browser's debugger/developer tools to see if your request is still processing or if there was an error. I'll eventually add a loading/status dialog box.
The mean and median calculations will be wrong if the data record since 1950 is not complete.
To change the dates, use the command:
Enter the months as integers (January = 1). The endMonth is inclusive. For example, to show data for only January 1 through March 31, use the command:
Unfortunately, you cannot currently plot data that spans a new water year, so ranges such as [9,10] do not work.
By default, the plot will automatically scale the y axis to include all of the data displayed. To turn off autoscaling, use:
The chart remembers its autoscale setting. Autoscaling may be turned on again using chart.autoscale(true).
The y axis range can be controlled with the yExtent function. For example, to change the range to 0 to 6 inches, use
The MEI month index can be accessed and set using the chart.ensoBin() function. For example, to change the MEI mapping to the May-June average, use the command:
The input parameter must be a column heading in the MEI table linked to above. If data for that bin for the most recent year is not yet available, then the most recent data that is available will be used.
The El Nino index can be toggled between the MEI and the more standard ONI using chart.ensoIndex(). You will also need to change the ensoBin setting since the indicies use different time averaging methods. For example:
The default color bin scheme can be changed to match the NOAA standard definition of neutral, weak, moderate, strong, and very strong ENSO conditions.
Combining the ONI with the NOAA color bin scheme yields a more standard analysis:
The chart.reset() function will reset the graph to the default settings.
All of these functions all return the chart, object, which enables them to be chained together as shown in the examples above. Most arguments are not case sensitive.
Many more getter-setter methods are available that provide fine control over the graph. See the source code for details.
These are new and relatively untested features, so you might run into problems. Please send me an email or report the issue on GitHub. In the future, I hope to add controls to the page for these features, which brings us to...
The source code for this site is on GitHub and released under the MIT license. This means that you can easily copy the code, play with it, contribute your improvements to this page, or use the code as the starting point or inspiration for your own tool. Here are some possible improvements:
- Add controls and URL support for the advanced features.
- Add support for RCC-ACIS' bbox averages.
- Add sticky tooltip with total precip for selected years.
- Distinguish between mean and median. Make one grey or dashed?
- Use localStorage to cache data, then only request new data.
The plot is made with d3js.