U.S. FlagAn official website of the United States government
dot gov icon
Official websites use .gov

A .gov website belongs to an official government organization in the United States.

icon https icon
Secure .gov websites use HTTPS

A lock () or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.

Stratospheric Modeling & Analysis: Products

SWOOSH: Stratospheric Water and OzOne Satellite Homogenized data set

water vapor tape recorder timeseries
A timeseries of the 20°S-20°N average water vapor concentration, the so-called "water vapor tape recorder." The top 4 panels show the tape recorder signal from individual satellite instruments. The bottom two panels show the combined product (next to bottom) and the combined+filled product (bottom).

The Stratospheric Water and OzOne Satellite Homogenized (SWOOSH) data set is a merged record of stratospheric ozone and water vapor measurements taken by a number of limb sounding and solar occultation satellites over the previous ~40 years (1984 to present). SWOOSH version 2.6 includes data from SAGE-II/III, UARS HALOE, UARS MLS, and Aura MLS instruments. Version 2.7 includes data from these instruments plus ACE-FTS, OMPS-LP, and SAGE III/ISS. The measurements are homogenized by applying corrections that are calculated from data taken during time periods of instrument overlap.

The primary SWOOSH data product consists of monthly-mean zonal-mean values on a pressure grid. In addition to the primary (zonal-mean) grid, SWOOSH data are also available on 3D (longitude/latitude/pressure), equivalent latitude, and isentropic grids.

The gridded data include the mean, standard deviation, number of observations, and mean uncertainty from each instrument. Also included is a merged (multi-instrument) product based on a weighted mean of the available measurements. Because the merged product contains missing data, a merged and filled product is also provided for (e.g., modeling) studies requiring a continuous dataset.

Point of Contact: Sean Davis, NOAA

Publications

Publications using SWOOSH

Data Access

"; include "datapolicy.txt"; echo "\n"; echo "\n"; echo "

  Please check this box to signify acknowledgement of our data policy and access this data set. "; echo "


\n"; } else { echo "

SWOOSH v2.6 has been discontinued as of May 2024 due to the end of the MLS v4 dataset that formed the backbone of the v2.6 record. Users are encouraged to use SWOOSH v2.7, which includes MLS v5 data and other new data sources (see notes under v2.7)

SWOOSH version 2.6 files may be downloaded in either NetCDF format or as IDL binary save files from the table below or via FTP.☆

"; $dir = "data/v02.6"; $filename = array(); $size = array(); if (is_dir($dir)) { $dirFiles = scandir($dir); foreach ($dirFiles as $file) { if ((strcmp($file, '.') != 0) && (strcmp($file, '..') != 0) && (strcmp($file, '.DS_Store') != 0)) { $filename[] = $file; $datafile = $dir . "/" . $file; $datafilesize = filesize($datafile); $size[] = round($datafilesize/1048576) . "MB"; $endrange = substr($file, 20, 6); } } } //foreach ($filename as $key => $val) { // echo "filename[" . $key . "] = " . $val . "
"; //} print "current data range: Jan 1984 - " . date('M Y', strtotime($endrange . '01')) . "
Horizontal GridVertical CoordinateDownload Links
10° zonal-meanpressurenetcdf ($size[0])IDL savefile ($size[1])
5° zonal-meanpressurenetcdf ($size[4])IDL savefile ($size[5])
2.5° zonal-meanpressurenetcdf ($size[2])IDL savefile ($size[3])
10° zonal-meanisentropicnetcdf ($size[6])IDL savefile ($size[7])
5° zonal-meanisentropicnetcdf ($size[10])IDL savefile ($size[11])
2.5° zonal-meanisentropicnetcdf ($size[8])IDL savefile ($size[9])
20° lon x 5°pressurenetcdf ($size[12])IDL savefile ($size[13])
30° lon x 10°pressurenetcdf ($size[14])IDL savefile ($size[15])
All GridsAll Coordinatesnetcdf ($size[16] tgz)IDL savefile ($size[17] tgz)
"; echo "

SWOOSH version 2.73 files may be downloaded in either NetCDF format or as IDL binary save files from the table below or via FTP.☆

Compared to SWOOSH v2.6, SWOOSH v2.7* includes new data sources, updated versions of existing data sets, and mean latitudes/locations of the satellite sampling for each instrument.

Notable changes in v2.7* includes the following:

  • Use of version 5.0 for Aura MLS data (v4.2 was used in SWOOSH v2.6)
  • Addition of water/ozone data from ACE-FTS (currently v5.3) and SAGE III/ISS (currently v6.0)
  • Addition of ozone data from S-NPP OMPS-LP (v2.6 from NASA)
  • JPSS-2/NOAA-21 OMPS-LP ozone data will also be added as available

2026-08-17: Release of v2.73, with a minor bug fix and removal of UARS MLS O3 data after 15 June 1997 (through 1999) due to a drift detected that is associated with the loss of 63 GHz observations.
2026-01-23: Release of v2.72, with minor bug fixes and a major fix for a problem with 1990’s ozone found in v2.71. Also updated to include ACE-FTS v5.3 data.
2025-09-08: Release of v2.71, which includes bug fixes, most notably for some incorrect offset adjustments used in v2.70.
See the full CHANGELOG for details.

Note: This version is still being actively developed and is subject to undocumented updates. Any additional changes will be noted above. Please use the most recent version and contact Sean Davis with any questions or issues you find when using this data.

"; $dir2 = "data/v02.7"; if (is_dir($dir2)) { $dirFiles2 = scandir($dir2); foreach ($dirFiles2 as $file2) { if ((strcmp($file2, '.') != 0) && (strcmp($file2, '..') != 0) && (strcmp($file2, '.DS_Store') != 0)) { $endrange2 = substr($file2, 21, 6); } } } print "current data range: Jan 1984 - " . date('M Y', strtotime($endrange2 . '01')) . " "; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'latpress-10deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file2, 'latpress-10deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'latpress-5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file2, 'latpress-5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'latpress-2.5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file2, 'latpress-2.5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'lattheta-10deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file2, 'lattheta-10deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'lattheta-5deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file2, 'lattheta-5deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'lattheta-2.5deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file2, 'lattheta-2.5deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'lonlatpress-20deg-5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file2, 'lonlatpress-20deg-5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'lonlatpress-30deg-10deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file2, 'lonlatpress-30deg-10deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'nc.tgz', 0) !== false) { echo ''; } if (strpos($file2, 'sav.tgz', 0) !== false) { echo ''; } } print "
Horizontal GridVertical CoordinateDownload Links
10° zonal-meanpressurenetcdf ('.$size2.')IDL savefile ('.$size2.')
5° zonal-meanpressurenetcdf ('.$size2.')IDL savefile ('.$size2.')
2.5° zonal-meanpressurenetcdf ('.$size2.')IDL savefile ('.$size2.')
10° zonal-meanisentropicnetcdf ('.$size2.')IDL savefile ('.$size2.')
5° zonal-meanisentropicnetcdf ('.$size2.')IDL savefile ('.$size2.')
2.5° zonal-meanisentropicnetcdf ('.$size2.')IDL savefile ('.$size2.')
20° lon x 5°pressurenetcdf ('.$size2.')IDL savefile ('.$size2.')
30° lon x 10°pressurenetcdf ('.$size2.')IDL savefile ('.$size2.')
All GridsAll Coordinatesnetcdf ('.$size2.') tgzIDL savefile ('.$size2.') tgz

This product is an experimental daily-gridded version of SWOOSH. Currently, this product starts in 2004 to cover the Aura MLS time period when there are one or more instruments with dense sampling (including S-NPP OMPS-LP ozone starting in 2012). As a result of the daily gridding, there will be more grids with missing data in this version of SWOOSH - it is incumbent on the user to take appropriate precautions with the data.

As this product is in development, we welcome your suggestions for variables/griddings/time periods/etc. Contact Sean Davis with any questions, issues or requests related to this data. See the SWOOSH v2.73 tab for further information on this version of SWOOSH.

"; $dir3 = "data/daily"; if (is_dir($dir3)) { $dirFiles3 = scandir($dir3); foreach ($dirFiles3 as $file3) { if ((strcmp($file3, '.') != 0) && (strcmp($file3, '..') != 0) && (strcmp($file3, '.DS_Store') != 0)) { $endrange3 = substr($file3, 22, 8); } } } print "current data range: 01 Jan 2004 - " . date('j M Y', strtotime($endrange3)) . " "; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'latpress-10deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file3, 'latpress-10deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'latpress-5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file3, 'latpress-5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'latpress-2.5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file3, 'latpress-2.5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'lattheta-10deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file3, 'lattheta-10deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'lattheta-5deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file3, 'lattheta-5deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'lattheta-2.5deg-L33.nc', 0) !== false) { echo ''; } if (strpos($file3, 'lattheta-2.5deg-L33.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'lonlatpress-20deg-5deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file3, 'lonlatpress-20deg-5deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'lonlatpress-30deg-10deg-L31.nc', 0) !== false) { echo ''; } if (strpos($file3, 'lonlatpress-30deg-10deg-L31.sav', 0) !== false) { echo ''; } } print ""; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'nc.tgz', 0) !== false) { echo ''; } if (strpos($file3, 'sav.tgz', 0) !== false) { echo ''; } } print "
Horizontal GridVertical CoordinateDownload Links
10° zonal-meanpressurenetcdf ('.$size3.')IDL savefile ('.$size3.')
5° zonal-meanpressurenetcdf ('.$size3.')IDL savefile ('.$size3.')
2.5° zonal-meanpressurenetcdf ('.$size3.')IDL savefile ('.$size3.')
10° zonal-meanisentropicnetcdf ('.$size3.')IDL savefile ('.$size3.')
5° zonal-meanisentropicnetcdf ('.$size3.')IDL savefile ('.$size3.')
2.5° zonal-meanisentropicnetcdf ('.$size3.')IDL savefile ('.$size3.')
20° lon x 5°pressurenetcdf ('.$size3.')IDL savefile ('.$size3.')
30° lon x 10°pressurenetcdf ('.$size3.')IDL savefile ('.$size3.')
All GridsAll Coordinatesnetcdf ('.$size3.') tgzIDL savefile ('.$size3.') tgz
"; print "
"; print "

☆ Various browsers can buffer downloads and truncate larger files. Try another browser, or alternatively download SWOOSH data via FTP (password required - refer to the SWOOSH Data Policy)

"; print <<< EOT

Provide your name and email address to receive periodic data update notifications and/or FTP data access instructions.

Name: Email address:

EOT; } ?>

Documentation

SWOOSH User's Guide

If you use this data set for a publication, please cite: Davis, S. M., Rosenlof, K. H., Hassler, B., Hurst, D. F., Read, W. G., Vömel, H., Selkirk, H., Fujiwara, M., and Damadeo, R.: The Stratospheric Water and Ozone Satellite Homogenized (SWOOSH) database: A long-term database for climate studies, Earth System Science Data, doi:10.5194/essd-8-461-2016, 2016.

Browse Data

Three plot types are available. Select a value from each menu following a chosen plot type to browse that data.

Timeseries plots on pressure levels:

Planview plots (latitude vs. time):

Cross-section plots (latitude vs. height):