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
Please check this box to signify acknowledgement of our data policy and access this data set. "; 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 . "| Horizontal Grid | Vertical Coordinate | Download Links | |
|---|---|---|---|
| 10° zonal-mean | pressure | netcdf ($size[0]) | IDL savefile ($size[1]) |
| 5° zonal-mean | pressure | netcdf ($size[4]) | IDL savefile ($size[5]) |
| 2.5° zonal-mean | pressure | netcdf ($size[2]) | IDL savefile ($size[3]) |
| 10° zonal-mean | isentropic | netcdf ($size[6]) | IDL savefile ($size[7]) |
| 5° zonal-mean | isentropic | netcdf ($size[10]) | IDL savefile ($size[11]) |
| 2.5° zonal-mean | isentropic | netcdf ($size[8]) | IDL savefile ($size[9]) |
| 20° lon x 5° | pressure | netcdf ($size[12]) | IDL savefile ($size[13]) |
| 30° lon x 10° | pressure | netcdf ($size[14]) | IDL savefile ($size[15]) |
| All Grids | All Coordinates | netcdf ($size[16] tgz) | IDL savefile ($size[17] tgz) |
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:
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')) . "| Horizontal Grid | Vertical Coordinate | Download Links | |
|---|---|---|---|
| 10° zonal-mean | pressure | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'latpress-10deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 5° zonal-mean | pressure | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'latpress-5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 2.5° zonal-mean | pressure | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'latpress-2.5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 10° zonal-mean | isentropic | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'lattheta-10deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 5° zonal-mean | isentropic | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'lattheta-5deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 2.5° zonal-mean | isentropic | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'lattheta-2.5deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 20° lon x 5° | pressure | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'lonlatpress-20deg-5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| 30° lon x 10° | pressure | "; 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 'netcdf ('.$size2.') | '; } if (strpos($file2, 'lonlatpress-30deg-10deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size2.') | '; } } print "
| All Grids | All Coordinates | "; foreach ($dirFiles2 as $file2) { $datafile2 = $dir2 . "/" . $file2; $datafilesize2 = filesize($datafile2); $size2 = round($datafilesize2/1048576) . "MB"; if (strpos($file2, 'nc.tgz', 0) !== false) { echo 'netcdf ('.$size2.') tgz | '; } if (strpos($file2, 'sav.tgz', 0) !== false) { echo 'IDL savefile ('.$size2.') tgz | '; } } print "
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)) . "| Horizontal Grid | Vertical Coordinate | Download Links | |
|---|---|---|---|
| 10° zonal-mean | pressure | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'latpress-10deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 5° zonal-mean | pressure | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'latpress-5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 2.5° zonal-mean | pressure | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'latpress-2.5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 10° zonal-mean | isentropic | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'lattheta-10deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 5° zonal-mean | isentropic | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'lattheta-5deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 2.5° zonal-mean | isentropic | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'lattheta-2.5deg-L33.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 20° lon x 5° | pressure | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'lonlatpress-20deg-5deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| 30° lon x 10° | pressure | "; 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 'netcdf ('.$size3.') | '; } if (strpos($file3, 'lonlatpress-30deg-10deg-L31.sav', 0) !== false) { echo 'IDL savefile ('.$size3.') | '; } } print "
| All Grids | All Coordinates | "; foreach ($dirFiles3 as $file3) { $datafile3 = $dir3 . "/" . $file3; $datafilesize3 = filesize($datafile3); $size3 = round($datafilesize3/1048576) . "MB"; if (strpos($file3, 'nc.tgz', 0) !== false) { echo 'netcdf ('.$size3.') tgz | '; } if (strpos($file3, 'sav.tgz', 0) !== false) { echo 'IDL savefile ('.$size3.') tgz | '; } } 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 <<< EOTIf 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.
Three plot types are available. Select a value from each menu following a chosen plot type to browse that data.