File Exchange

image thumbnail

Climate Data Toolbox for MATLAB

version 1.01 (107 MB) by Chad Greene
A set of low-level functions and tutorials for analyzing and displaying Earth science data.


Updated 20 Jun 2020

GitHub view license on GitHub

This toolbox contains a standard set of MATLAB functions for analyzing and displaying climate data. The functions are computationally efficient, easy to use, and come with many tutorials that describe not only how to use CDT functions, but also offer guidance on how to interpret the results in the context of Earth science processes.

CDT logo illustration by Adam S. Nelsen (

Cite As

Chad A. Greene, Kaustubh Thirumalai, Kelly A. Kearney, José Miguel Delgado, Wolfgang Schwanghart, Natalie S. Wolfenbarger, Kristen M. Thyng, David E. Gwyther, Alex S. Gardner, and Donald D. Blankenship. The Climate Data Toolbox for MATLAB. Geochemistry, Geophysics, Geosystems 2019. doi:10.1029/2019GC008392

Comments and Ratings (42)

Ze Meng

Min Li

Thank you for the very helpfull toolbox!!!!!!!.
An example for complex EOF or something similar for current U and V EOF would be helpfull,

Darwin Cai


Can I use this eof function for doing Complex EOF analysis (for wind vector) by just providing the input in complex form (U +iV).
My interest is in doing eof analysis for wind vector.

Wentao Lv

Sandy Herho

jy Li


li xin

Thanks so much for this toolbox

Chad Greene

@S: Thanks for the note! The globefill function solves the issue of transparent globes.


Hi Chad,
Thanks for this helpful toolbox
I think the globeborders function is not working as intended, the surface seems to be transparent and shows the borders on the otherside of the hemisphere as well.

YI Chen

Clare Ostle

How does the EOF program handle cyclic data at the poles? There is a large value discontinuity at the Prime Meridian, even when addressing the boundary condition prior to using the function, and the equal-area gridding used with datasets like CFSR, NCEP-NCAR, etc means the concentraion of data increaes with latitude.

jianzu hu


Leo Huang



Nick Hitt


Thank you so much Chad. I managed to get the updated version of trend fuction

Chad Greene

@Franck: That should work fine as long as the input t is a 1D array of length 288. If you type

cdt deseason

do you have any trouble running the examples?

Feel free to send me a personal email if you have a simple example I can run to recreate the problem.

@chad: this is the dimension of slp 33x17x288 (lon,lat,time)

Chad Greene

@Franck: What are the dimensions of the slp grid, and what are the dimensions of the time array?

Nice Job/toolbox Chad.
I would like to know how can I use deseason to remove seasonal cycles from the 3d grid slp(lon,lat,time) dataset.
I have tried to follow up your instruction but didn't succeed "Error: length of t must match dimensions of


Aidan Starr



Documentation updates.

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: COVID19