From d9b4291b813eff1acd7373702298e239891c17cf Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 20 Apr 2018 17:23:40 +0200 Subject: [PATCH 1/7] Add ARGO preprocessing jupyter notebook --- .../Process_RG_Argo_climatology.ipynb | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 preprocess_observations/Process_RG_Argo_climatology.ipynb diff --git a/preprocess_observations/Process_RG_Argo_climatology.ipynb b/preprocess_observations/Process_RG_Argo_climatology.ipynb new file mode 100644 index 000000000..d36a6d4c3 --- /dev/null +++ b/preprocess_observations/Process_RG_Argo_climatology.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import xarray as xr\n", + "import glob\n", + "import matplotlib\n", + "from netCDF4 import Dataset\n", + "import sys\n", + "import os\n", + "\n", + "# define plot dimensions\n", + "%matplotlib inline \n", + "plt.rcParams[\"figure.figsize\"] = (8.,8.)\n", + "\n", + "from mpl_toolkits.basemap import Basemap\n", + "import matplotlib.colors as cols\n", + "plt.rcParams[\"figure.figsize\"] = (20,12)\n", + "\n", + "### axis_font = {'fontname':'Arial', 'size':'18'} \n", + "title_font = {'fontname':'Arial', 'size':'32', 'color':'black', 'weight':'normal'}\n", + "matplotlib.rc('xtick', labelsize=28)\n", + "matplotlib.rc('ytick', labelsize=28)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#path to raw ARGO file downloaded from http://sio-argo.ucsd.edu/RG_Climatology.html\n", + "#Note that script expects files named RG_ArgoClim_Temperature_2017.nc and RG_ArgoClim_Salinity_2017.nc\n", + "\n", + "basePath = '/lcrc/group/acme/lvanroe'\n", + "nameOfOutputFile = 'ArgoClimatology_TS.nc'" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "ncidT = Dataset(basePath+'/RG_ArgoClim_Temperature_2017.nc','r')\n", + "ncidS = Dataset(basePath+'/RG_ArgoClim_Salinity_2017.nc','r')\n", + "\n", + "lon = ncidT.variables['LONGITUDE'][:]\n", + "lat = ncidT.variables['LATITUDE'][:]\n", + "\n", + "anomT = ncidT.variables['ARGO_TEMPERATURE_ANOMALY'][:,:,:,:]\n", + "meanT = ncidT.variables['ARGO_TEMPERATURE_MEAN'][:,:,:]\n", + "\n", + "anomS = ncidS.variables['ARGO_SALINITY_ANOMALY'][:,:,:,:]\n", + "meanS = ncidS.variables['ARGO_SALINITY_MEAN'][:,:,:]\n", + "\n", + "bmask = ncidT.variables['BATHYMETRY_MASK'][:]\n", + "\n", + "depth = -ncidT.variables['PRESSURE'][:]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "#forms monthly averages of T and S\n", + "monthV = np.zeros(12);\n", + "nx = len(lon)\n", + "ny = len(lat)\n", + "nz = len(depth)\n", + "\n", + "theta = np.zeros((12,nz,ny,nx))\n", + "salinity = np.zeros((12,nz,ny,nx))\n", + "\n", + "for i in range(12):\n", + " monthV[i] = i\n", + " theta[i,:,:,:] = anomT[i::12,:,:,:].mean(axis=0)+meanT\n", + " salinity[i,:,:,:] = anomS[i::12,:,:,:].mean(axis=0)+meanS" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "#Mask bathymetry\n", + "bmask = np.roll(bmask,20,axis=2)\n", + "for i in range(nz):\n", + " inds1=np.where(bmask[i,:,:] != 1.0)[0]\n", + " inds2=np.where(bmask[i,:,:] != 1.0)[1]\n", + " salinity[:,i,inds1,inds2] = np.nan\n", + " theta[:,i,inds1,inds2] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "#need to append a few rows to have a 180 x 360 matrix\n", + "theta2 = np.zeros((12,58,180,360))\n", + "salt2 = np.zeros((12,58,180,360))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "theta2[:,:,25:170,:] = theta\n", + "salt2[:,:,25:170,:] = salinity\n", + "\n", + "theta2[:,:,:25,:] = np.nan\n", + "theta2[:,:,170:,:] = np.nan\n", + "\n", + "salt2[:,:,:25,:] = np.nan\n", + "salt2[:,:,170:,:] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "if os.path.isfile(basePath+'/'+nameOfOutputFile):\n", + " os.remove(basePath+'/'+nameOfOutputFile)\n", + "ncid = Dataset(basePath+'/'+nameOfOutputFile,'w')\n", + "ncid.createDimension('Time',None)\n", + "ncid.createDimension('LATITUDE',180)\n", + "ncid.createDimension('LONGITUDE',360)\n", + "ncid.createDimension('DEPTH',58)\n", + "\n", + "month = ncid.createVariable('month','i4',('Time'))\n", + "lat = ncid.createVariable('LATITUDE','f8',('LATITUDE'))\n", + "lonV = ncid.createVariable('LONGITUDE','f8',('LONGITUDE'))\n", + "dep = ncid.createVariable('DEPTH','f8',('DEPTH'))\n", + "thet=ncid.createVariable('theta','f8',('Time','DEPTH','LATITUDE','LONGITUDE'))\n", + "sal=ncid.createVariable('salinity','f8',('Time','DEPTH','LATITUDE','LONGITUDE'))\n", + "\n", + "lat[:] = np.arange(-89.5,90,1)\n", + "lonV[:] = lon[:]\n", + "thet[:,:,:,:] = theta2\n", + "sal[:,:,:,:] = salt2\n", + "dep[:] = depth[:]\n", + "month[:] = monthV[:]\n", + "\n", + "ncid.close()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda root]", + "language": "python", + "name": "conda-root-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From e29260e45625933ff6d83b0de664ec9c8ecb4a56 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 20 Apr 2018 18:39:39 +0200 Subject: [PATCH 2/7] Fix capitalization ARGO --> Argo --- mpas_analysis/ocean/climatology_map_argo.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map_argo.py b/mpas_analysis/ocean/climatology_map_argo.py index 8e976c8b8..5dc2271f8 100644 --- a/mpas_analysis/ocean/climatology_map_argo.py +++ b/mpas_analysis/ocean/climatology_map_argo.py @@ -6,7 +6,7 @@ # distributed with this code, or at http://mpas-dev.github.com/license.html # ''' -Analysis tasks for comparing Global climatology maps against ARGO data. +Analysis tasks for comparing Global climatology maps against Argo data. ''' # Authors # ------- @@ -61,7 +61,7 @@ def __init__(self, config, mpasClimatologyTask, # ------- # Luke Van Roekel, Xylar Asay-Davis - fieldName = 'temperatureARGO' + fieldName = 'temperatureArgo' # call the constructor from the base class (AnalysisTask) super(ClimatologyMapArgoTemperature, self).__init__( config=config, taskName='climatologyMapArgoTemperature', @@ -117,7 +117,7 @@ def __init__(self, config, mpasClimatologyTask, observationsDirectory) refFieldName = 'theta' outFileLabel = 'tempArgo' - galleryName = 'Roemmich-Gilson Climatology: ARGO' + galleryName = 'Roemmich-Gilson Climatology: Argo' diffTitleLabel = 'Model - Argo' remapObservationsSubtask = RemapArgoClimatology( @@ -159,7 +159,7 @@ def __init__(self, config, mpasClimatologyTask, refTitleLabel=refTitleLabel, diffTitleLabel=diffTitleLabel, unitsLabel=r'$^\circ$C', - imageCaption='Model temperature compared with ARGO ' + imageCaption='Model temperature compared with Argo ' 'observations', galleryGroup='Argo Temperature', groupSubtitle=None, @@ -201,7 +201,7 @@ def __init__(self, config, mpasClimatologyTask, # ------- # Xylar Asay-Davis, Luke Van Roekel - fieldName = 'salinityARGO' + fieldName = 'salinityArgo' # call the constructor from the base class (AnalysisTask) super(ClimatologyMapArgoSalinity, self).__init__( config=config, taskName='climatologyMapArgoSalinity', From d2ed189e161c9c9f67f0796e9937da06410efb34 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 20 Apr 2018 19:24:32 +0200 Subject: [PATCH 3/7] Remove landice component There are no tasks that relate to it yet. --- docs/conf.py | 4 ++-- docs/observations.rst | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 77c8deb5d..f1d8c9453 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -185,7 +185,7 @@ # Build some custom rst files -xmlFileName = '../mpas_analysis/obs/observationstable.xml' -for component in ['ocean', 'seaice', 'landice']: +xmlFileName = '../mpas_analysis/obs/observational_datasets.xml' +for component in ['ocean', 'seaice']: build_rst_table_from_xml(xmlFileName, '{}_obs_table.rst'.format(component), component) \ No newline at end of file diff --git a/docs/observations.rst b/docs/observations.rst index 0a9475b55..8c5ea35b6 100644 --- a/docs/observations.rst +++ b/docs/observations.rst @@ -1,3 +1,6 @@ +Observations +============ + A variety of observational datasets are used within MPAS-Analysis: Ocean Observations @@ -8,6 +11,3 @@ Sea Ice Observations -------------------- .. include:: seaice_obs_table.rst -Land Ice Observations ---------------------- -.. include:: landice_obs_table.rst From 0212f86ea27d6f2fe1390ea49f7956c58fc9a384 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 20 Apr 2018 19:25:24 +0200 Subject: [PATCH 4/7] Update obs. database with a number of new data sets Also, rename the file (it is not a table) and modify the requested fields for each entry. --- mpas_analysis/obs/observational_datasets.xml | 947 +++++++++++++++++++ mpas_analysis/obs/observationstable.xml | 153 --- 2 files changed, 947 insertions(+), 153 deletions(-) create mode 100644 mpas_analysis/obs/observational_datasets.xml delete mode 100644 mpas_analysis/obs/observationstable.xml diff --git a/mpas_analysis/obs/observational_datasets.xml b/mpas_analysis/obs/observational_datasets.xml new file mode 100644 index 000000000..d40ffc122 --- /dev/null +++ b/mpas_analysis/obs/observational_datasets.xml @@ -0,0 +1,947 @@ + + + + + + + + SST merged Hadley Center-NOAA/OI data set + + + ocean + + + The merged Hadley-OI sea surface temperature (SST) and sea ice + concentration (SIC) data sets were specifically developed as surface + forcing data sets for AMIP style uncoupled simulations of the Community + Atmosphere Model (CAM). The Hadley Centre's SST/SIC version 1.1 + (HADISST1), which is derived gridded, bias-adjusted in situ observations, + were merged with the NOAA-Optimal Interpolation (version 2; OI.v2) + analyses. The HADISST1 spanned 1870 onward but the OI.v2, which started + in November 1981, better resolved features such as the Gulf Stream and + Kuroshio Current which are important components of the climate system. + Since the two data sets used different development methods, anomalies + from a base period were used to create a more homogeneous record. Also, + additional adjustments were made to the SIC data set. + + + [NCAR Hadley-NOAA/OI SST website] + (https://climatedataguide.ucar.edu/climate-data/merged-hadley-noaaoi-sea-surface-temperature-sea-ice-concentration-hurrell-et-al-2008) + + + Unknown + + + [Hurrell et al. (2008)](https://doi.org/10.1175/2008JCLI2292.1) + + + @article{Hurrell2008, + author = {James W. Hurrell and James J. Hack and Dennis Shea and Julie M. Caron and James Rosinski}, + title = {A New Sea Surface Temperature and Sea Ice Boundary Dataset for the Community Atmosphere Model}, + journal = {Journal of Climate}, + volume = {21}, + number = {19}, + pages = {5145-5153}, + year = {2008}, + doi = {10.1175/2008JCLI2292.1}, + URL = {https://doi.org/10.1175/2008JCLI2292.1} + } + + + - ftp://ftp.cgd.ucar.edu/archive/SSTICE/MODEL.SST.HAD187001-198110.OI198111-201712.nc + + + + + - climatologyMapSST + + + + + + SSS from NASA Aquarius satellite + + + ocean + + + Level 3 Aquarius sea surface salinity (SSS) data products have a temporal + resolutions of daily, 8 day, monthly, 3 months, and annual. Monthly and + seasonal climatology + products from Aqaurius are also available. The Aquarius instrument + provides global coverage every 7 days. L3 products are gridded at 1 + degree spatial resolution. + + + [NASA Aquarius FTP server] + (ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L3/mapped/V4/7day_running/SCI/) + + + NASA data are not copyrighted; however, when you publish our data or + results derived therefrom, we request that you include an acknowledgment + within the text of the publication and reference list. + [Data Citation and Acknowledgements] + (https://podaac.jpl.nasa.gov/CitingPODAAC) + + + [Lagerloef et al. (2015)](ftp://podaac.jpl.nasa.gov/SalinityDensity/aquarius/docs/v4/AQ-014-PS-0016_AquariusSalinityDataValidationAnalysis_DatasetVersion4.0and3.0.pdf) + + + + + (missing) + + + (missing) + + + - climatologyMapSSS + + + + + + AVISO Absolute Dynamic Topography + + + ocean + + + [NASA JPL AVISO website](https://podaac.jpl.nasa.gov/dataset/AVISO_L4_DYN_TOPO_1DEG_1MO) + This dataset contains absolute dynamic topography (similar to sea level + but with respect to the geoid) binned and averaged monthly on 1 degree + grids. The coverage is from October 1992 to December 2010. These data + were provided by AVISO (French space agency data provider) to support the + CMIP5 (Coupled Model Intercomparison Project Phase 5) under the World + Climate Research Program (WCRP) and was first made available via the JPL + Earth System Grid. The dynamic topography are derived from sea surface + height measured by several satellites including Envisat, TOPEX/Poseidon, + Jason-1 and OSTM/Jason-2, and referenced to the geoid. Along with this + dataset, two additional ancillary data files are included in the same + directory which contain the number of observations and standard error + co-located on the same 1 degree grids. + + + - [AVISO+ website](https://www.aviso.altimetry.fr/en/data/products/sea-surface-height-products/global/madt-h-uv.html) + - [NASA JPL AVISO website](https://podaac.jpl.nasa.gov/dataset/AVISO_L4_DYN_TOPO_1DEG_1MO) + + + When using Ssalto/Duacs data (NRT or DT along-track Absolute Dynamic + Topography (ADT), maps of SLA geostrophic currents (MSLA UV) or maps of + ADT heights and currents (MADT H and UV), climatologies and averages of + MSLA-H), please cite: "The altimeter products were produced by + Ssalto/Duacs and distributed by Aviso, with support from Cnes + (http://www.aviso.altimetry.fr/duacs/)" + + + (missing) + + + + + - ftp://podaac-ftp.jpl.nasa.gov/allData/aviso/L4/dynamic_topo_1deg_1mo/zos_AVISO_L4_199210-201012.nc + + + + + - climatologyMapSSH + + + + + + Argo Mixed Layer Depth (MLD) climatology + + + ocean + + + A mixed layer climatology and database (described in Holte et al. 2017) + using Argo profiles and a hybrid method (Holte and Talley 2009) for + finding the mixed layer depth (MLD). The climatology incorporates over + 1,385,000 Argo profiles (through February 2017). The new hybrid algorithm + models the general shape of each profile, searches for physical features + in the profile, and calculates threshold and gradient MLDs to assemble a + suite of possible MLD values. It then analyzes the patterns in the suite + to select a final MLD estimate. Results are also presented for MLDs + calculated using de Boyer Montegut et al.'s (2004) threshold values. + + + [UCSD Mixed Layer Website](http://mixedlayer.ucsd.edu/) + + + [Acknowledgment:](http://mixedlayer.ucsd.edu/) If you use this data, + please cite it as: Holte, J., L. D. Talley, J. Gilson, and D. Roemmich + (2017), An Argo mixed layer climatology and database, Geophys. Res. + Lett., 44, 5618–5626, doi:10.1002/2017GL073426. + + + - [Holte et al. (2017)](http://onlinelibrary.wiley.com/doi/10.1002/2017GL073426/full) + - [Holte and Talley (2009)](http://journals.ametsoc.org/doi/abs/10.1175/2009JTECHO543.1) + - [de Boyer Montegut et al. (2004)](https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2004JC002378) + + + @article{Holte2017, + author = {James Holte and Lynne D. Talley and John Gilson and Dean Roemmich}, + title = {An Argo mixed layer climatology and database}, + journal = {Geophysical Research Letters}, + year = {2017}, + volume = {44}, + number = {11}, + pages = {5618-5626}, + keywords = {Argo, mixed layer, climatology, global}, + doi = {10.1002/2017GL073426}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1002/2017GL073426} + } + + @article{Holte2009, + author = { James Holte and Lynne Talley }, + title = {A New Algorithm for Finding Mixed Layer Depths with Applications to Argo Data and Subantarctic Mode Water Formation}, + journal = {Journal of Atmospheric and Oceanic Technology}, + volume = {26}, + number = {9}, + pages = {1920-1939}, + year = {2009}, + doi = {10.1175/2009JTECHO543.1}, + URL = {https://doi.org/10.1175/2009JTECHO543.1} + } + + @article{deBoyerMontegut2004, + author = {Cl\'{e}ment {de Boyer Mont\'{e}gut} and Gurvan Madec and Albert S. Fischer and Alban Lazar and Daniele Iudicone}, + title = {Mixed layer depth over the global ocean: An examination of profile data and a profile‐based climatology}, + journal = {Journal of Geophysical Research: Oceans}, + volume = {109}, + number = {C12}, + pages = {}, + year = {2004}, + keywords = {mixed layer, mixed layer depth criterion, density compensation}, + doi = {10.1029/2004JC002378}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2004JC002378} + } + + + - http://mixedlayer.ucsd.edu/data/Argo_mixedlayers_monthlyclim_03192017.nc + + + + + - climatologyMapMLD + + + + + + Meridional Heat Transport (MHT) + + + ocean + + + (missing) + + + (missing) + + + (missing) + + + [Trenberth and Caron (2000)](https://doi.org/10.1175/1520-0442%282000%29013<4358%3ATSORSL>2.0.CO%3B2) + + + @article{Trenberth2000, + author = { Kevin E. Trenberth and Julie M. Caron }, + title = {The Southern Oscillation Revisited: Sea Level Pressures, Surface Temperatures, and Precipitation}, + journal = {Journal of Climate}, + volume = {13}, + number = {24}, + pages = {4358-4365}, + year = {2000}, + doi = {10.1175/1520-0442(2000)013<4358:TSORSL>2.0.CO;2}, + URL = {https://doi.org/10.1175/1520-0442(2000)013<4358:TSORSL>2.0.CO;2} + } + + + (missing) + + + (missing) + + + - meridionalHeatTransport + + + + + + Roemmich-Gilson Argo Climatology + + + ocean + + + This new version of the Roemmich-Gilson Argo Climatology extends the + analysis of Argo-only derived temperature and salinity fields through + 2016. Several marginal seas and the Artic Oean have been added. The + analysis method is similar to what was descibed in the Progress In + Oceanography Roemmich and Gilson paper (2009). The only modification has + been to scale the zonal equatorial correlation of the optimal estimation + step, by 8 times, versus 4 times as in the 2009 paper. The additional + Argo data utilized in the analysis results in a longer monthly record as + well as better estimates of the mean and variability fields. Monthly + updates are available in between major yearly re-analyses. + + + [Scripps Roemmich-Gilson Argo Website](http://sio-argo.ucsd.edu/RG_Climatology.html) + + + [Acknowledgment:](http://sio-argo.ucsd.edu/RG_Climatology.html) Roemmich, + D. and J. Gilson, 2009: The 2004-2008 mean and annual cycle of + temperature, salinity, and steric height in the global ocean from the + Argo Program. Progress in Oceanography, 82, 81-100. + + + [Roemmich and Gilson (2009)](http://www.sciencedirect.com/science/article/pii/S0079661109000160) + + + @article{Roemmich2009, + title = "The 2004–2008 mean and annual cycle of temperature, salinity, and steric height in the global ocean from the Argo Program", + journal = "Progress in Oceanography", + volume = "82", + number = "2", + pages = "81 - 100", + year = "2009", + issn = "0079-6611", + doi = "10.1016/j.pocean.2009.03.004", + url = "http://www.sciencedirect.com/science/article/pii/S0079661109000160", + author = "Dean Roemmich and John Gilson" + } + + + - ftp://kakapo.ucsd.edu/pub/gilson/argo_climatology/RG_ArgoClim_Temperature_2017.nc.gz + - ftp://kakapo.ucsd.edu/pub/gilson/argo_climatology/RG_ArgoClim_Salinity_2017.nc.gz + + + preprocess_observations/Process_RG_Argo_climatology.ipynb + + + - climatologyMapArgoTemperature + - climatologyMapArgoSalinity + + + + + + SOSE potential temperature and salinity + + + ocean + + + Monthly potential temperature and salinity output from the Southern Ocean + State Estimate (SOSE) covering years 2005-2010 + + + [SOSE Website at UCSD] + (http://sose.ucsd.edu/sose_stateestimation_data_05to10.html) + + + [Conditions of use] + (http://sose.ucsd.edu/sose_stateestimation_disclaimer.html): The data on + these webpages are made freely available for scientific, bona fide, + not-for-profit research only. If your use of the data is different (e.g. + commercial), you must contact the data providers and receive written + permission for your use of the data prior to any such use. The user must + acknowledge SOSE data in all products or publications that use them, e.g. + by including the following written note: "Computational resources for the + SOSE were provided by NSF XSEDE resource grant OCE130007." An appropriate + citation should also be made. + + + [Mazloff et al. (2010)](http://doi.org/10.1175/2009JPO4236.1) + + + @article{Mazloff2010, + author = {Matthew R. Mazloff and Patrick Heimbach and Carl Wunsch}, + title = {An Eddy-Permitting Southern Ocean State Estimate}, + journal = {Journal of Physical Oceanography}, + volume = {40}, + number = {5}, + pages = {880-899}, + year = {2010}, + doi = {10.1175/2009JPO4236.1}, + URL = {https://doi.org/10.1175/2009JPO4236.1} + } + + + - http://sose.ucsd.edu/DATA/SO6_V2/THETA_mnthlyBar.0000000100.data.gz + - http://sose.ucsd.edu/DATA/SO6_V2/THETA_mnthlyBar.0000000100.meta + - http://sose.ucsd.edu/DATA/SO6_V2/SALT_mnthlyBar.0000000100.data.gz + - http://sose.ucsd.edu/DATA/SO6_V2/SALT_mnthlyBar.0000000100.meta + + + preprocess_observations/remap_SOSE_T_S.py + + + - climatologyMapSoseTemperature + - climatologyMapSoseSalinity + + + + + + Antarctic melt rates and fluxes + + + ocean + + + Melt rates and melt fluxes from Rignot et al. (2013) + + + [Ice-Shelf Melting Around Antarctica](http://science.sciencemag.org/content/341/6143/266) + + + Data available upon request from co-author J. Mouginot. + + + [Rignot et al. (2013)](http://science.sciencemag.org/content/341/6143/266) + + + @article{Rignot2013, + title = {Ice-{Shelf} {Melting} {Around} {Antarctica}}, + volume = {341}, + url = {http://www.ncbi.nlm.nih.gov/pubmed/23765278}, + doi = {10.1126/science.1235798}, + number = {6143}, + journal = {Science}, + author = {Rignot, E. and Jacobs, S. and Mouginot, J. and Scheuchl, B.}, + month = jul, + year = {2013}, + pages = {266--270} + } + + + - http://science.sciencemag.org/highwire/filestream/594977/field_highwire_adjunct_files/0/1235798tableS1.xlsx + - (data available upon request from J. Mouginot) + + + preprocess_observations/remap_rignot.py + + + - climatologyMapAntarcticMelt + - timeSeriesAntarcticMelt + + + + + + HadISST Nino 3.4 Index + + + ocean + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + - indexNino34 + + + + + + ERS SSTv4 Nino 3.4 Index + + + ocean + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + (missing) + + + - indexNino34 + + + + + + + + + + Ice concentration: SSM/I, NASATeam algorithm + + + seaice + + + This data set is generated from brightness temperature data and is + designed to provide a consistent time series of sea ice concentrations + spanning the coverage of several passive microwave instruments. The data + are provided in the polar stereographic projection at a grid cell size of + 25 x 25 km. + + + [NSIDC NASATeam Website](http://nsidc.org/data/NSIDC-0051) + + + NASA data are not copyrighted; however, when you publish our data or + results derived therefrom, we request that you include an acknowledgment + within the text of the publication and reference list. + [Data Citation and Acknowledgements] + (https://podaac.jpl.nasa.gov/CitingPODAAC) + + + [Cavalieri et al. (1996)](https://doi.org/10.5067/8GQ8LZQVL0VL) + + + @misc{Cavalieri1996, + author = {D. J. Cavalieri, and C. L. Parkinson and P. Gloersen and H. J. Zwally}, + title = {Sea Ice Concentrations from Nimbus-7 SMMR and DMSP SSM/I-SSMIS Passive Microwave Data, Version 1}, + year = {1996}, + doi = {10.5067/8GQ8LZQVL0VL}, + notes = {updated yearly}, + url = {https://doi.org/10.5067/8GQ8LZQVL0VL} + } + + + (missing, requires registration with NSIDC) + + + (missing) + + + - climatologyMapSeaIceConcNH + - climatologyMapSeaIceConcSH + + + + + + Ice concentration: SSM/I, Bootstrap algorithm + + + seaice + + + This sea ice concentration data set was derived using measurements from + the Scanning Multichannel Microwave Radiometer (SMMR) on the Nimbus-7 + satellite and from the Special Sensor Microwave/Imager (SSM/I) sensors on + the Defense Meteorological Satellite Program's (DMSP) -F8, -F11, and -F13 + satellites. Measurements from the Special Sensor Microwave Imager/Sounder + (SSMIS) aboard DMSP-F17 are also included. The data set has been + generated using the Advanced Microwave Scanning Radiometer - Earth + Observing System (AMSR-E) Bootstrap Algorithm with daily varying + tie-points. Daily (every other day prior to July 1987) and monthly data + are available for both the north and south polar regions. Data are + gridded on the SSM/I polar stereographic grid (25 x 25 km) and provided + in two-byte integer format. Data are available via FTP. + + + [NSIDC Bootstrap Website](http://nsidc.org/data/NSIDC-0079) + + + NASA data are not copyrighted; however, when you publish our data or + results derived therefrom, we request that you include an acknowledgment + within the text of the publication and reference list. + [Data Citation and Acknowledgements] + (https://podaac.jpl.nasa.gov/CitingPODAAC) + + + [Comiso (2017)](https://doi.org/10.5067/7Q8HCCWS4I0R) + + + @misc{Comiso1996, + author = {J. C. Comiso}, + title = {Bootstrap Sea Ice Concentrations from Nimbus-7 SMMR and DMSP SSM/I-SSMIS, Version 3}, + year = {2017}, + doi = {10.5067/7Q8HCCWS4I0R}, + notes = {updated yearly}, + url = {https://doi.org/10.5067/7Q8HCCWS4I0R} + } + + + (missing, requires registration with NSIDC) + + + (missing) + + + - climatologyMapSeaIceConcNH + - climatologyMapSeaIceConcSH + + + + + + Ice area and extent time series: SSM/I derived + + + seaice + + + The sea ice data presented here were derived from satellite + passive-microwave radiometers, specifically, the Scanning Multichannel + Microwave Radiometer (SMMR) on NASA's Nimbus 7 satellite, for November + 1978-August 1987, a sequence of Special Sensor Microwave Imagers (SSMIs) + on the F8, F11, and F13 satellites of the Defense Meteorological + Satellite Program (DMSP), for August 1987-December 2007, and the Special + Sensor Microwave Imager Sounder (SSMIS) on the DMSP F17 satellite for + January 2008-December 2012. The baseline data used were daily maps of + sea ice concentration. The maps are polar stereographic projections with + individual grid elements of approximately 25 km x 25 km; and the ice + concentration data are also archived at the National Snow and Ice Data + Center (NSIDC) at http://nsidc.org. The concentrations are calculated for + each ocean grid element and are used to derive 'sea ice extent', which is + calculated as the sum of all ocean elements having a sea ice + concentration of at least 15%, and 'sea ice area', which is calculated as + the sum over all ocean grid elements of the product of ice concentration + and grid element area. The data sets provided here include the + hemispheric totals and additionally the values for nine regions in the + Arctic and five regions in the Antarctic. These regions are identified in + Figures 1 and 2 respectively. Figures 3 and 4 provide plots of the trends + in the Arctic and Antarctic sea ice extents, along with monthly + deviations and 12-month running means. The monthly deviations are + calculated by taking the individual month's ice extent/area and + subtracting from it the average over the course of the data set of the + extents/areas for that month. + + + [NASA Ice area and extent website](https://neptune.gsfc.nasa.gov/csb/index.php?section=59) + + + NASA data are not copyrighted; however, when you publish our data or + results derived therefrom, we request that you include an acknowledgment + within the text of the publication and reference list. + [Data Citation and Acknowledgements] + (https://podaac.jpl.nasa.gov/CitingPODAAC) + + + - [Cavalieri et al. (1999)](https://doi.org/10.1029/1999JC900081) + - [Cavalieri et al. (2012)](https://doi.org/10.1109/LGRS.2011.2166754) + - [Cavalieri and Parkinson (2012)](https://doi.org/10.5194/tc-6-881-2012) + - [Parkinson et al. (1999)](https://doi.org/0.1029/1999JC900082) + - [Parkinson and Cavalieri (2012)](https://doi.org/10.5194/tc-6-871-2012) + - [Zwally et al. (2002)](https://doi.org/10.1029/2000JC000733) + + + @article{Cavalieri1999, + author = {D. J. Cavalieri and C. L. Parkinson and P. Gloersen and J. C. Comiso and H. J. Zwally}, + title = {Deriving long‐term time series of sea ice cover from satellite passive‐microwave multisensor data sets}, + journal = {Journal of Geophysical Research: Oceans}, + volume = {104}, + number = {C7}, + year = {1999}, + pages = {15803-15814}, + doi = {10.1029/1999JC900081}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/1999JC900081} + } + @article{Cavalieri2012a, + author={D. J. Cavalieri and C. L. Parkinson and N. DiGirolamo and A. Ivanoff}, + journal={IEEE Geoscience and Remote Sensing Letters}, + title={Intersensor Calibration Between F13 SSMI and F17 SSMIS for Global Sea Ice Data Records}, + year={2012}, + volume={9}, + number={2}, + pages={233-236}, + doi={10.1109/LGRS.2011.2166754}, + ISSN={1545-598X}, + month={March} + } + @Article{Cavalieri2012b, + AUTHOR = {Cavalieri, D. J. and Parkinson, C. L.}, + TITLE = {Arctic sea ice variability and trends, 1979--2010}, + JOURNAL = {The Cryosphere}, + VOLUME = {6}, + YEAR = {2012}, + NUMBER = {4}, + PAGES = {881--889}, + URL = {https://www.the-cryosphere.net/6/881/2012/}, + DOI = {10.5194/tc-6-881-2012} + } + @article{Parkinson1999, + author = {Claire L. Parkinson and Donald J. Cavalieri and Per Gloersen and H. Jay Zwally and Josefino C. Comiso}, + title = {Arctic sea ice extents, areas, and trends, 1978–1996}, + journal = {Journal of Geophysical Research: Oceans}, + volume = {104}, + number = {C9}, + year = {1999}, + pages = {20837-20856}, + doi = {10.1029/1999JC900082}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/1999JC900082} + } + @Article{Parkinson2012, + AUTHOR = {Parkinson, C. L. and Cavalieri, D. J.}, + TITLE = {Antarctic sea ice variability and trends, 1979--2010}, + JOURNAL = {The Cryosphere}, + VOLUME = {6}, + YEAR = {2012}, + NUMBER = {4}, + PAGES = {871--880}, + URL = {https://www.the-cryosphere.net/6/871/2012/}, + DOI = {10.5194/tc-6-871-2012} + } + @article{Zwally2002, + author = {H. Jay Zwally and Josefino C. Comiso and Claire L. Parkinson and Donald J. Cavalieri and Per Gloersen}, + title = {Variability of Antarctic sea ice 1979–1998}, + journal = {Journal of Geophysical Research: Oceans}, + volume = {107}, + number = {C5}, + pages = {9-1-9-19}, + keywords = {sea ice, Antarctic, climate, passive microwave, Southern Ocean}, + doi = {10.1029/2000JC000733}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2000JC000733}, + year = {2002} + } + + + - https://neptune.gsfc.nasa.gov/uploads/files/NH_IceArea_Monthly_1978-2012.txt + - https://neptune.gsfc.nasa.gov/uploads/files/NH_IceExt_Monthly_1978-2012.txt + - https://neptune.gsfc.nasa.gov/uploads/files/SH_IceArea_Monthly_1978-2012.txt + - https://neptune.gsfc.nasa.gov/uploads/files/SH_IceExt_Monthly_1978-2012.txt + + + (missing) + + + - timeSeriesSeaIceAreaVol + + + + + + IceSat Ice Thickness + + + seaice + + + This data set provides measurements of sea ice freeboard and sea ice + thickness for the Arctic region. The data were derived from measurements + made by from the Ice, Cloud, and land Elevation Satellite (ICESat) + Geoscience Laser Altimeter System (GLAS) instrument, the Special Sensor + Microwave/Imager (SSM/I), and climatologies of snow and drift of ice. + + + [NASA: Arctic Sea Ice Freeboard and Thickness](http://nsidc.org/data/NSIDC-0393) + + + NASA data are not copyrighted; however, when you publish our data or + results derived therefrom, we request that you include an acknowledgment + within the text of the publication and reference list. + [Data Citation and Acknowledgements] + (https://podaac.jpl.nasa.gov/CitingPODAAC) + + + [Yi and Zwally (2009)](https://doi.org/10.5067/SXJVJ3A2XIZT) + + + @misc{Yi2009, + author = {D. Yi and H. J. Zwally}, + title = {Arctic Sea Ice Freeboard and Thickness, Version 1}, + year = {2009}, + doi = {10.5067/7Q8HCCWS4I0R}, + url = {https://doi.org/10.5067/SXJVJ3A2XIZT} + } + + + (missing, requires registration with NSIDC) + + + + + - timeSeriesSeaIceAreaVol + + + + + + PIOMAS Arctic Sea Ice Volume Reanalysis + + + seaice + + + Sea Ice Volume is calculated using the Pan-Arctic Ice Ocean Modeling and + Assimilation System (PIOMAS, Zhang and Rothrock, 2003) developed at + APL/PSC. Anomalies for each day are calculated relative to the average + over the 1979 -2016 period for that day of the year to remove the annual + cycle. The model mean annual cycle of sea ice volume over this period + ranges from 28,000 km3 in April to 11,500 km3 in September. + + + [PIOMAS website](http://psc.apl.uw.edu/research/projects/arctic-sea-ice-volume-anomaly/) + + + Data is public, but they optionally ask for basic information about the + person downloading the data (name, e-mail, and affiliation). + + + - [Schweiger et al. (2011)](https://doi.org/10.1029/2011JC007084) + - [Zhang and Rothrock (2003)](https://doi.org/10.1175/1520-0493%282003%29131<0845:MGSIWA>2.0.CO;2) + + + @article{Schweiger2011, + author = {Axel Schweiger and Ron Lindsay and Jinlun Zhang and Mike Steele and Harry Stern and Ron Kwok}, + title = {Uncertainty in modeled Arctic sea ice volume}, + journal = {Journal of Geophysical Research: Oceans}, + volume = {116}, + number = {C8}, + pages = {}, + keywords = {Arctic, climate change, ice volume, modelling, sea ice}, + doi = {10.1029/2011JC007084}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2011JC007084}, + year = {2011} + } + @article{Zhang2003, + author = { Jinlun Zhang and D. A. Rothrock }, + title = {Modeling Global Sea Ice with a Thickness and Enthalpy Distribution Model in Generalized Curvilinear Coordinates}, + journal = {Monthly Weather Review}, + volume = {131}, + number = {5}, + pages = {845-861}, + year = {2003}, + doi = {10.1175/1520-0493(2003)131<0845:MGSIWA>2.0.CO;2}, + URL = {https://doi.org/10.1175/1520-0493(2003)131<0845:MGSIWA>2.0.CO;2} + } + + + - http://psc.apl.uw.edu/wordpress/wp-content/uploads/schweiger/ice_volume/PIOMAS.2sst.monthly.Current.v2.1.txt + + + (missing) + + + - timeSeriesSeaIceAreaVol + + + + + + + + + diff --git a/mpas_analysis/obs/observationstable.xml b/mpas_analysis/obs/observationstable.xml deleted file mode 100644 index bd202df5d..000000000 --- a/mpas_analysis/obs/observationstable.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - sst Hadley-NOAA - - - ocean - - - SST global annual climatology and trend - - - - Global latitude/longitude plot on ocean native grid. Annual climatologies computed over 5-10 year periods at regular intervals throughout the run. - - Time series of area-weighted (AW) global mean (1-year running average). - - - [Merged Hadley Center-NOAA/OI data set from Hurrell et al. 2008](https://climatedataguide.ucar.edu/climate-data/merged-hadley-noaaoi-sea-surface-temperature-sea-ice-concentration-hurrell-et-al-2008) - - Update 4/11/18: emailed UCAR to ask about their release policy. - - - - - CESM Atm diagnostic package - - Gent et al. (2011, Fig.1) - - - - - - - - - - SSS NASA Aquarius - - - ocean - - - SSS global annual climatology - - - - Global latitude/longitude plot on ocean native grid . Annual climatologies computed over 5-10 year periods at regular intervals throughout the run. - - - [NASA Aquarius satellite data ~4 years until Jun 2015](ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L3/mapped/V4/7day_running/SCI/) - - This statement is from the NASA daac (Distributed - Active Archive Center) website: "NASA data are not copyrighted; however, - when you publish our data or results derived therefrom, we request that - you include an acknowledgment within the text of the publication and - reference list." This should apply to all NASA data sets. - - - - [PHC](http://psc.apl.washington.edu/nonwp_projects/PHC/Climatology.html) - or [WOA13 climatology](https://www.nodc.noaa.gov/OC5/woa13/). - - - - Large and Danabasoglu (2006, Fig.1) - - Griffies et al. (2009, Fig. 8) - - - - - - - - - - - Ice area/extent annual climatology, and annual and seasonal trends - - - seaice - - - Sea ice concentration - - - - Arctic and Antarctic seasonal and annual climatologies (maps) of ice area and extent. Annual climatologies computed over 5-10 year periods at regular intervals throughout the run. - - Daily, monthly and 1-year average time series of area-weighted ice area and extent. - - - - [Ice concentration: SSM/I, NASATeam algorithm(both NH and SH)](http://nsidc.org/data/NSIDC-0051) - - [Ice concentration: SSM/I, Bootstrap algorithm (both NH and SH)](http://nsidc.org/data/NSIDC-0079) - - [Ice area time series: SSM/I derived (both NH and SH)](http://neptune.gsfc.nasa.gov/csb/index.php?section=59) - - Same as all NASA data. - - - - - [Antarctic ship-based data](http://aspect.antarctica.gov.au/data) - - [Ice type, and drift](http://marine.copernicus.eu/services-portfolio/access-to-products/?option=com_csw&view=details&product_id=SEAICE_GLO_SEAICE_L4_NRT_OBSERVATIONS_011_001) - - [MANY data sets available for both ocean and sea ice, both global and regional](high-reshttp://marine.copernicus.edu) - - - - CESM CICE diagnostics - - Ivanova et al. (2012) - - Worby et al. (2008) - - - See CESM sea ice diagnostic package - - - - - - - - - Present-day ice sheet area and volume (scalar) - - - landice - - - Land ice area / volume - - - - Difference between modeled and observed values. - - - Greenland ice thickness at bed topography at 1 km posting - - [Bedmap2 paper](http://www.the-cryosphere.net/7/375/2013/), [Bedmap2 data](https://www.bas.ac.uk/project/bedmap-2/) - - [R-Topo2 paper](http://www.earth-syst-sci-data-discuss.net/essd-2016-3/), [R-Topo2 data](https://www.pangaea.de/PHP/hs.php?s=Maps&d=RTopo-2.0&ID=856844) - Antarctic ice thickness and bed topography at 1 km posting - - Same as all NASA data. - - - - - [Antarctic ship-based data](http://aspect.antarctica.gov.au/data) - - [Ice type, and drift](http://marine.copernicus.eu/services-portfolio/access-to-products/?option=com_csw&view=details&product_id=SEAICE_GLO_SEAICE_L4_NRT_OBSERVATIONS_011_001) - - [MANY data sets available for both ocean and sea ice, both global and regional](high-reshttp://marine.copernicus.edu) - - - - Bamber et al. (2013) - - Fretwell et al. (2013) - - - validate initial conditions - - - - - - - From d3db91348137efa0d955c78b0df4d7e47d583ac0 Mon Sep 17 00:00:00 2001 From: Milena Veneziani Date: Tue, 24 Apr 2018 19:59:31 -0400 Subject: [PATCH 5/7] Update obs. database. Add Milena's matlab pre-process sea-ice scripts --- mpas_analysis/obs/observational_datasets.xml | 12 ++- .../Bootstrap_Antarctic_compute_climo.m | 73 +++++++++++++ .../Bootstrap_Arctic_compute_climo.m | 73 +++++++++++++ .../ICESat_Arctic_compute_climo.m | 95 ++++++++++++++++ preprocess_observations/IceaArea_txt2netcdf.m | 96 +++++++++++++++++ .../NASATeam_Antarctic_compute_climo.m | 74 +++++++++++++ .../NASATeam_Arctic_compute_climo.m | 74 +++++++++++++ preprocess_observations/PIOMAS_txt2netcdf.m | 101 ++++++++++++++++++ preprocess_observations/notes4seaiceData.txt | 13 +++ 9 files changed, 606 insertions(+), 5 deletions(-) create mode 100644 preprocess_observations/Bootstrap_Antarctic_compute_climo.m create mode 100644 preprocess_observations/Bootstrap_Arctic_compute_climo.m create mode 100644 preprocess_observations/ICESat_Arctic_compute_climo.m create mode 100644 preprocess_observations/IceaArea_txt2netcdf.m create mode 100644 preprocess_observations/NASATeam_Antarctic_compute_climo.m create mode 100644 preprocess_observations/NASATeam_Arctic_compute_climo.m create mode 100644 preprocess_observations/PIOMAS_txt2netcdf.m create mode 100644 preprocess_observations/notes4seaiceData.txt diff --git a/mpas_analysis/obs/observational_datasets.xml b/mpas_analysis/obs/observational_datasets.xml index d40ffc122..bfcafc2c2 100644 --- a/mpas_analysis/obs/observational_datasets.xml +++ b/mpas_analysis/obs/observational_datasets.xml @@ -31,7 +31,9 @@ (https://climatedataguide.ucar.edu/climate-data/merged-hadley-noaaoi-sea-surface-temperature-sea-ice-concentration-hurrell-et-al-2008) - Unknown + [Acknowledgment:] Hurrell, J. W., J. J. Hack, D. Shea, J. M. Caron, and J. Rosinski, + 2008: A New Sea Surface Temperature and Sea Ice Boundary Dataset for the Community + Atmosphere Model. Journal of Climate, 21, 5145-5153. [Hurrell et al. (2008)](https://doi.org/10.1175/2008JCLI2292.1) @@ -76,7 +78,8 @@ [NASA Aquarius FTP server] - (ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L3/mapped/V4/7day_running/SCI/) + (https://podaac.jpl.nasa.gov/dataset/AQUARIUS_L4_OISSS_IPRC_7DAY_V4) + NASA data are not copyrighted; however, when you publish our data or @@ -91,7 +94,7 @@ - (missing) + (ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L4/IPRC/v4/7day/) (missing) @@ -124,7 +127,6 @@ co-located on the same 1 degree grids. - - [AVISO+ website](https://www.aviso.altimetry.fr/en/data/products/sea-surface-height-products/global/madt-h-uv.html) - [NASA JPL AVISO website](https://podaac.jpl.nasa.gov/dataset/AVISO_L4_DYN_TOPO_1DEG_1MO) @@ -136,7 +138,7 @@ (http://www.aviso.altimetry.fr/duacs/)" - (missing) + [ftp://podaac.jpl.nasa.gov/allData/aviso/L4/dynamic_topo_1deg_1mo/docs/zosTechNote_AVISO_L4_199210-201012.pdf] diff --git a/preprocess_observations/Bootstrap_Antarctic_compute_climo.m b/preprocess_observations/Bootstrap_Antarctic_compute_climo.m new file mode 100644 index 000000000..af13bb614 --- /dev/null +++ b/preprocess_observations/Bootstrap_Antarctic_compute_climo.m @@ -0,0 +1,73 @@ +% +% Combined SSM/I-SSMIS and SMMR sea-ice concentration data for both the +% Arctic and Antarctic. +% *** Bootstrap algorithm *** +% +% Source: http://nsidc.org/data/NSIDC-0079 +% +clear all; +close all; + +homedir = getenv('HOME'); + +maindir = [homedir '/ACME/observations/obsdir/SeaIce/SSMI/'... + 'Bootstrap_NSIDC0079']; +datadir = [maindir '/final-gsfc/south/monthly']; +griddir = [homedir '/ACME/observations/obsdir/SeaIce/ICESat/Antarctic/climo']; +lonlatfile = 'spring_ICESat_gridded_mean_thickness'; +months4climo = [12 1 2; % (boreal) winter months + 3 4 5; % (boreal) spring months + 6 7 8; % (boreal) summer months + 9 10 11]; % (boreal) fall months +seasons = {'djf','mam','jja','son'}; + +M = 332; % Polar Stereographic grid for Antarctica, # of rows +N = 316; % Polar Stereographic grid for Antarctica, # of columns + +[err,cwd] = unix('pwd'); +% Read in lon,lat: +eval(sprintf('cd %s;',griddir)); +eval(sprintf('load %s.txt',lonlatfile)); +eval(sprintf('cd %s;',cwd)); +eval(sprintf('lat = %s(:,1);',lonlatfile)); +eval(sprintf('lon = %s(:,2);',lonlatfile)); +x = reshape(lon,M,N); +y = reshape(lat,M,N); + +eval(sprintf('cd %s;',datadir)); +for is=1:length(seasons), + season = char(seasons(is)); + + % Get list of files to compute seasonal climatologies from: + filenames = sprintf('bt_????%02d*',months4climo(is,1)); + for i=2:size(months4climo,2), + filenames = [filenames sprintf(' bt_????%02d*',months4climo(is,i))]; + end + eval(sprintf('[err,filelist] = unix(''/bin/ls %s'');',filenames)); + filelist = strsplit(filelist); % convert to cell of strings + filelist = filelist(2:end-1); % remove redudant first and last space chars + + % Compute seasonal climatology: + for ifile=1:length(filelist); + infile = char(filelist(ifile)); + % Read in binary data: + fid = fopen(infile,'r','l'); + aice(ifile,:,:) = fread(fid,[N M],'int16'); + fclose(fid); + aice(find(aice>1000)) = nan; + aice(find(aice==0))=nan; + end + aice = squeeze(nanmean(aice,1)); + aice = aice/1000; + aice(find(isnan(aice)==1)) = -999; + aice = aice'; + + % Write to file: + outfile = ['SSMI_Bootstrap_gridded_concentration_SH_' season]; + fid = fopen(sprintf('%s/%s.txt',maindir,outfile),'w'); + fprintf(fid,'%12.4f %12.4f %12.5f\n',[y(:)'; x(:)'; aice(:)']); + fclose(fid); + + clear aice +end +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/Bootstrap_Arctic_compute_climo.m b/preprocess_observations/Bootstrap_Arctic_compute_climo.m new file mode 100644 index 000000000..3e53121db --- /dev/null +++ b/preprocess_observations/Bootstrap_Arctic_compute_climo.m @@ -0,0 +1,73 @@ +% +% Combined SSM/I-SSMIS and SMMR sea-ice concentration data for both the +% Arctic and Antarctic. +% *** Bootstrap algorithm *** +% +% Source: http://nsidc.org/data/NSIDC-0079 +% +clear all; +close all; + +homedir = getenv('HOME'); + +maindir = [homedir '/ACME/observations/obsdir/SeaIce/SSMI/'... + 'Bootstrap_NSIDC0079']; +datadir = [maindir '/final-gsfc/north/monthly']; +griddir = [homedir '/ACME/observations/obsdir/SeaIce/ICESat/Arctic/' ... + 'NSIDC0393_GLAS_SI_Freeboard_v01/glas_seaice_grids']; +lonfile = [griddir '/PS25km_north_lon.img']; +latfile = [griddir '/PS25km_north_lat.img']; +months4climo = [ 1 2 3; % (boreal) winter months + 4 5 6; % (boreal) spring months + 7 8 9; % (boreal) summer months + 10 11 12]; % (boreal) fall months +seasons = {'jfm','amj','jas','ond'}; + +M = 304; % Polar Stereographic grid for the Arctic, # of rows +N = 448; % Polar Stereographic grid for the Arctic, # of columns + +% Read in lon,lat: +fid = fopen(lonfile,'r','l'); +x = fread(fid,[M N],'single'); +fclose(fid); +fid = fopen(latfile,'r','l'); +y = fread(fid,[M N],'single'); +fclose(fid); + +[err,cwd] = unix('pwd'); +eval(sprintf('cd %s;',datadir)); +for is=1:length(seasons), + season = char(seasons(is)); + + % Get list of files to compute seasonal climatologies from: + filenames = sprintf('bt_????%02d*',months4climo(is,1)); + for i=2:size(months4climo,2), + filenames = [filenames sprintf(' bt_????%02d*',months4climo(is,i))]; + end + eval(sprintf('[err,filelist] = unix(''/bin/ls %s'');',filenames)); + filelist = strsplit(filelist); % convert to cell of strings + filelist = filelist(2:end-1); % remove redudant first and last space chars + + % Compute seasonal climatology: + for ifile=1:length(filelist); + infile = char(filelist(ifile)); + % Read in binary data: + fid = fopen(infile,'r','l'); + aice(ifile,:,:) = fread(fid,[M N],'int16'); + fclose(fid); + aice(find(aice>1000)) = nan; + aice(find(aice==0))=nan; + end + aice = squeeze(nanmean(aice,1)); + aice = aice/1000; + aice(find(isnan(aice)==1)) = -999; + + % Write to file: + outfile = ['SSMI_Bootstrap_gridded_concentration_NH_' season]; + fid = fopen(sprintf('%s/%s.txt',maindir,outfile),'w'); + fprintf(fid,'%12.4f %12.4f %12.5f\n',[y(:)'; x(:)'; aice(:)']); + fclose(fid); + + clear aice +end +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/ICESat_Arctic_compute_climo.m b/preprocess_observations/ICESat_Arctic_compute_climo.m new file mode 100644 index 000000000..2dcae49a7 --- /dev/null +++ b/preprocess_observations/ICESat_Arctic_compute_climo.m @@ -0,0 +1,95 @@ +% +% ICESat sea-ice thickness data for the Arctic. +% +% Source: http://nsidc.org/data/NSIDC-0393 +% +clear all; +close all; + +homedir = getenv('HOME'); + +datadir = [homedir '/ACME/observations/obsdir/SeaIce/ICESat/Arctic/' ... + 'NSIDC0393_GLAS_SI_Freeboard_v01/glas_seaice_grids']; +% Infile names (austral spring (Oct-Nov), max Antarctic ice extent; +% austral late summer (Feb-Mar), min Antarctic ice extent): +on_files_th = {'laser2a_thickness_mskd.img','laser3a_thickness_mskd.img',... + 'laser3d_thickness_mskd.img','laser3g_thickness_mskd.img',... + 'laser3i_thickness_mskd.img','laser3k_thickness_mskd.img'}; +fm_files_th = {'laser1_thickness_mskd.img' ,'laser2b_thickness_mskd.img',... + 'laser3b_thickness_mskd.img','laser3e_thickness_mskd.img',... + 'laser3h_thickness_mskd.img','laser3j_thickness_mskd.img'}; +on_files_fb = {'laser2a_freeboard_mskd.img','laser3a_freeboard_mskd.img',... + 'laser3d_freeboard_mskd.img','laser3g_freeboard_mskd.img',... + 'laser3i_freeboard_mskd.img','laser3k_freeboard_mskd.img'}; +fm_files_fb = {'laser1_freeboard_mskd.img' ,'laser2b_freeboard_mskd.img',... + 'laser3b_freeboard_mskd.img','laser3e_freeboard_mskd.img',... + 'laser3h_freeboard_mskd.img','laser3j_freeboard_mskd.img'}; +outfiles = {'ICESat_gridded_mean_thickness_NH_on',... + 'ICESat_gridded_mean_thickness_NH_fm'}; +lonfile = 'PS25km_north_lon.img'; +latfile = 'PS25km_north_lat.img'; + +M = 304; % Polar Stereographic grid for the Arctic, # of rows +N = 448; % Polar Stereographic grid for the Arctic, # of columns + +eval(sprintf('cd %s;',datadir)); + +% Read in lon,lat: +fid = fopen(lonfile,'r','l'); +x = fread(fid,[M N],'single'); +fclose(fid); +fid = fopen(latfile,'r','l'); +y = fread(fid,[M N],'single'); +fclose(fid); + +% Compute Oct-Nov climatologies: +for ifile=1:length(on_files_th), + on_file = char(on_files_th(ifile)); + fid = fopen(on_file,'r','l'); + hi(ifile,:,:) = fread(fid,[M N],'single'); + fclose(fid); +end +hi(find(hi<0)) = nan; +hi = squeeze(nanmean(hi,1)); +hi(find(isnan(hi)==1)) = -999; +for ifile=1:length(on_files_fb), + on_file = char(on_files_fb(ifile)); + fid = fopen(on_file,'r','l'); + fb(ifile,:,:) = fread(fid,[M N],'single'); + fclose(fid); +end +fb(find(fb<0)) = nan; +fb = squeeze(nanmean(fb,1)); +fb(find(isnan(fb)==1)) = -999; +% Write to file: +outfile = char(outfiles(1)); +fid = fopen(sprintf('%s.txt',outfile),'w'); +fprintf(fid,'%12.4f %12.4f %12.5f %12.5f\n',[y(:)'; x(:)'; fb(:)'; hi(:)']); +fclose(fid); + +clear hi fb + +% Compute Feb-Mar climatologies: +for ifile=1:length(fm_files_th), + fm_file = char(fm_files_th(ifile)); + fid = fopen(fm_file,'r','l'); + hi(ifile,:,:) = fread(fid,[M N],'single'); + fclose(fid); +end +hi(find(hi<0)) = nan; +hi = squeeze(nanmean(hi,1)); +hi(find(isnan(hi)==1)) = -999; +for ifile=1:length(fm_files_fb), + fm_file = char(fm_files_fb(ifile)); + fid = fopen(fm_file,'r','l'); + fb(ifile,:,:) = fread(fid,[M N],'single'); + fclose(fid); +end +fb(find(fb<0)) = nan; +fb = squeeze(nanmean(fb,1)); +fb(find(isnan(fb)==1)) = -999; +% Write to file: +outfile = char(outfiles(2)); +fid = fopen(sprintf('%s.txt',outfile),'w'); +fprintf(fid,'%12.4f %12.4f %12.5f %12.5f\n',[y(:)'; x(:)'; fb(:)'; hi(:)']); +fclose(fid); diff --git a/preprocess_observations/IceaArea_txt2netcdf.m b/preprocess_observations/IceaArea_txt2netcdf.m new file mode 100644 index 000000000..573f12b81 --- /dev/null +++ b/preprocess_observations/IceaArea_txt2netcdf.m @@ -0,0 +1,96 @@ +% Converts txt IceArea files to netcdf files +% +% Data source: http://neptune.gsfc.nasa.gov/csb/index.php?section=59 +% + +workdir = '/lustre/atlas1/cli115/proj-shared/milena/observations/SeaIce/IceArea_timeseries'; +files = {'iceAreaNH','iceAreaSH'}; + +cwd = pwd; +eval(sprintf('cd %s;',workdir)); + +for i=1:length(files), + varname = char(files(i)); + infile = sprintf('%s_year.txt',varname); + outfile1 = sprintf('%s_year.nc', varname); + outfile2 = sprintf('%s_climo.nc', varname); + varname = [varname '_year']; + + % the following loads t (yyyy.yearfraction),icearea (km^2) + eval(sprintf('load %s;',infile)); + + % First create netcdf file with original data: + % + % create netcdf file + ncid = netcdf.create(outfile1,'clobber'); + % define dimension(s) + t_dimid = netcdf.defDim(ncid,'Time',netcdf.getConstant('NC_UNLIMITED')); + strLen_dimid = netcdf.defDim(ncid,'StrLen',64); + % define variables and attributes + t_varid = netcdf.defVar(ncid,'xtime','NC_CHAR',[strLen_dimid,t_dimid]); + %t_varid = netcdf.defVar(ncid,'time','NC_DOUBLE',t_dimid); + icearea_varid = netcdf.defVar(ncid,'IceArea','NC_DOUBLE',t_dimid); + netcdf.putAtt(ncid,t_varid,'long_name','calendar date'); + %netcdf.putAtt(ncid,t_varid,'long_name','days since 0001-01-01'); + netcdf.putAtt(ncid,t_varid,'format','YYYY-MM-DD_HH:MM:SS character string'); + netcdf.putAtt(ncid,icearea_varid,'long_name','SSM/I derived ice area'); + netcdf.putAtt(ncid,icearea_varid,'units','km^2'); + + % leave define mode and enter data mode to write data + netcdf.endDef(ncid); + + % add variables + eval(sprintf('t = %s(:,1);',varname)); + eval(sprintf('var = %s(:,2);',varname)); + % go from year.fraction_of_year to date (string format) + tdate = yf2num(t); + date = datestr(tdate,'yyyy-mm-dd_HH:MM:SS'); + ntot = length(t); + %netcdf.putVar(ncid,t_varid,0,ntot,t); + for n=1:ntot, + netcdf.putVar(ncid,t_varid,[0,n-1],[size(date,2),1],date(n,:)); + end + netcdf.putVar(ncid,icearea_varid,0,ntot,var); + + % close netcdf file + netcdf.close(ncid); + + % Then create netcdf file with climatological annual cycle: + % + % create netcdf file + ncid = netcdf.create(outfile2,'clobber'); + % define dimension(s) + t_dimid = netcdf.defDim(ncid,'Time',netcdf.getConstant('NC_UNLIMITED')); + strLen_dimid = netcdf.defDim(ncid,'StrLen',64); + % define variables and attributes + t_varid = netcdf.defVar(ncid,'xtime','NC_CHAR',[strLen_dimid,t_dimid]); + %t_varid = netcdf.defVar(ncid,'time','NC_DOUBLE',t_dimid); + icearea_varid = netcdf.defVar(ncid,'IceArea','NC_DOUBLE',t_dimid); + netcdf.putAtt(ncid,t_varid,'long_name','climatological date'); + %netcdf.putAtt(ncid,t_varid,'long_name','days since 0001-01-01'); + netcdf.putAtt(ncid,t_varid,'format','YYYY-MM-DD_HH:MM:SS character string'); + netcdf.putAtt(ncid,icearea_varid,'long_name','SSM/I derived ice area'); + netcdf.putAtt(ncid,icearea_varid,'units','km^2'); + + % leave define mode and enter data mode to write data + netcdf.endDef(ncid); + + % add variables + tdatevec = datevec(tdate); + for im=1:12, + indmonth = find(tdatevec(:,2)==im); + var_climo(im) = nanmean(var(indmonth)); + end + tdate = datenum(1,1:12,15); + date = datestr(tdate,'yyyy-mm-dd_HH:MM:SS'); + %netcdf.putVar(ncid,t_varid,0,ntot,t); + for n=1:12, + netcdf.putVar(ncid,t_varid,[0,n-1],[size(date,2),1],date(n,:)); + end + netcdf.putVar(ncid,icearea_varid,0,12,var_climo); + + % close netcdf file + netcdf.close(ncid); +end % loop on data files + +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/NASATeam_Antarctic_compute_climo.m b/preprocess_observations/NASATeam_Antarctic_compute_climo.m new file mode 100644 index 000000000..cd8fcee37 --- /dev/null +++ b/preprocess_observations/NASATeam_Antarctic_compute_climo.m @@ -0,0 +1,74 @@ +% +% Combined SSM/I-SSMIS and SMMR sea-ice concentration data for both the +% Arctic and Antarctic. +% *** NASA Team algorithm *** +% +% Source: http://nsidc.org/data/NSIDC-0051 +% +clear all; +close all; + +homedir = getenv('HOME'); + +maindir = [homedir '/ACME/observations/obsdir/SeaIce/SSMI/'... + 'NASATeam_NSIDC0051']; +datadir = [maindir '/south/monthly']; +griddir = [homedir '/ACME/observations/obsdir/SeaIce/ICESat/Antarctic/climo']; +lonlatfile = 'spring_ICESat_gridded_mean_thickness'; +months4climo = [12 1 2; % (boreal) winter months + 3 4 5; % (boreal) spring months + 6 7 8; % (boreal) summer months + 9 10 11]; % (boreal) fall months +seasons = {'djf','mam','jja','son'}; + +M = 332; % Polar Stereographic grid for Antarctica, # of rows +N = 316; % Polar Stereographic grid for Antarctica, # of columns + +[err,cwd] = unix('pwd'); +% Read in lon,lat: +eval(sprintf('cd %s;',griddir)); +eval(sprintf('load %s.txt',lonlatfile)); +eval(sprintf('cd %s;',cwd)); +eval(sprintf('lat = %s(:,1);',lonlatfile)); +eval(sprintf('lon = %s(:,2);',lonlatfile)); +x = reshape(lon,M,N); +y = reshape(lat,M,N); + +eval(sprintf('cd %s;',datadir)); +for is=1:length(seasons), + season = char(seasons(is)); + + % Get list of files to compute seasonal climatologies from: + filenames = sprintf('nt_????%02d*',months4climo(is,1)); + for i=2:size(months4climo,2), + filenames = [filenames sprintf(' nt_????%02d*',months4climo(is,i))]; + end + eval(sprintf('[err,filelist] = unix(''/bin/ls %s'');',filenames)); + filelist = strsplit(filelist); % convert to cell of strings + filelist = filelist(2:end-1); % remove redudant first and last space chars + + % Compute seasonal climatology: + for ifile=1:length(filelist); + infile = char(filelist(ifile)); + % Read in binary data: + fid = fopen(infile,'r'); + header = fread(fid,300,'char=>char'); + aice(ifile,:,:) = fread(fid,[N M],'uint8'); + fclose(fid); + aice(find(aice>250)) = nan; + aice(find(aice==0))=nan; + end + aice = squeeze(nanmean(aice,1)); + aice = aice/250; + aice(find(isnan(aice)==1)) = -999; + aice = aice'; + + % Write to file: + outfile = ['SSMI_NASATeam_gridded_concentration_SH_' season]; + fid = fopen(sprintf('%s/%s.txt',maindir,outfile),'w'); + fprintf(fid,'%12.4f %12.4f %12.5f\n',[y(:)'; x(:)'; aice(:)']); + fclose(fid); + + clear aice +end +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/NASATeam_Arctic_compute_climo.m b/preprocess_observations/NASATeam_Arctic_compute_climo.m new file mode 100644 index 000000000..73e3cfe2b --- /dev/null +++ b/preprocess_observations/NASATeam_Arctic_compute_climo.m @@ -0,0 +1,74 @@ +% +% Combined SSM/I-SSMIS and SMMR sea-ice concentration data for both the +% Arctic and Antarctic. +% *** NASA Team algorithm *** +% +% Source: http://nsidc.org/data/NSIDC-0051 +% +clear all; +close all; + +homedir = getenv('HOME'); + +maindir = [homedir '/ACME/observations/obsdir/SeaIce/SSMI/'... + 'NASATeam_NSIDC0051']; +datadir = [maindir '/north/monthly']; +griddir = [homedir '/ACME/observations/obsdir/SeaIce/ICESat/Arctic/' ... + 'NSIDC0393_GLAS_SI_Freeboard_v01/glas_seaice_grids']; +lonfile = [griddir '/PS25km_north_lon.img']; +latfile = [griddir '/PS25km_north_lat.img']; +months4climo = [ 1 2 3; % (boreal) winter months + 4 5 6; % (boreal) spring months + 7 8 9; % (boreal) summer months + 10 11 12]; % (boreal) fall months +seasons = {'jfm','amj','jas','ond'}; + +M = 304; % Polar Stereographic grid for the Arctic, # of rows +N = 448; % Polar Stereographic grid for the Arctic, # of columns + +% Read in lon,lat: +fid = fopen(lonfile,'r','l'); +x = fread(fid,[M N],'single'); +fclose(fid); +fid = fopen(latfile,'r','l'); +y = fread(fid,[M N],'single'); +fclose(fid); + +[err,cwd] = unix('pwd'); +eval(sprintf('cd %s;',datadir)); +for is=1:length(seasons), + season = char(seasons(is)); + + % Get list of files to compute seasonal climatologies from: + filenames = sprintf('nt_????%02d*',months4climo(is,1)); + for i=2:size(months4climo,2), + filenames = [filenames sprintf(' nt_????%02d*',months4climo(is,i))]; + end + eval(sprintf('[err,filelist] = unix(''/bin/ls %s'');',filenames)); + filelist = strsplit(filelist); % convert to cell of strings + filelist = filelist(2:end-1); % remove redudant first and last space chars + + % Compute seasonal climatology: + for ifile=1:length(filelist); + infile = char(filelist(ifile)); + % Read in binary data: + fid = fopen(infile,'r'); + header = fread(fid,300,'char=>char'); + aice(ifile,:,:) = fread(fid,[M N],'uint8'); + fclose(fid); + aice(find(aice>250)) = nan; + aice(find(aice==0))=nan; + end + aice = squeeze(nanmean(aice,1)); + aice = aice/250; + aice(find(isnan(aice)==1)) = -999; + + % Write to file: + outfile = ['SSMI_NASATeam_gridded_concentration_NH_' season]; + fid = fopen(sprintf('%s/%s.txt',maindir,outfile),'w'); + fprintf(fid,'%12.4f %12.4f %12.5f\n',[y(:)'; x(:)'; aice(:)']); + fclose(fid); + + clear aice +end +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/PIOMAS_txt2netcdf.m b/preprocess_observations/PIOMAS_txt2netcdf.m new file mode 100644 index 000000000..f00adfbf6 --- /dev/null +++ b/preprocess_observations/PIOMAS_txt2netcdf.m @@ -0,0 +1,101 @@ +% Converts txt PIOMAS data to netcdf files +% +% Data source: http://psc.apl.uw.edu/research/projects/arctic-sea-ice-volume-anomaly/ +% + +clear all; +close all; + +workdir = '/lustre/atlas1/cli115/proj-shared/milena/observations/SeaIce/PIOMAS'; +infile = 'PIOMASvolume_monthly'; +outfile1 = [infile '.nc']; +outfile2 = [infile '_climo.nc']; + +cwd = pwd; +eval(sprintf('cd %s;',workdir)); + +% the following loads year (first column) and ice volume (in 10^3 km^3) +% for each month of that year (subsequent 12 columns): +eval(sprintf('load %s.txt;',infile)); + +eval(sprintf('years = %s(:,1);',infile)); +eval(sprintf('obs = %s(:,2:13);',infile)); + +obs(find(obs==-1)) = nan; + +% Reorganize monthly observations: +ind = 1; +for iy=1:length(years), + for im=1:12, + tdate(ind) = datenum(years(iy),im,15); + date(ind,:) = datestr(tdate(ind),'yyyy-mm-dd_HH:MM:SS'); + icevol(ind) = obs(iy,im); + ind = ind+1; + end +end + +% Compute climatological annual cycle: +tdatevec = datevec(tdate); +for im=1:12, + indmonth = find(tdatevec(:,2)==im); + icevol_climo(im) = nanmean(icevol(indmonth)); +end +tdate_climo = datenum(1,1:12,15); +date_climo = datestr(tdate_climo,'yyyy-mm-dd_HH:MM:SS'); + +% First create netcdf file with monthly data: +% +% create netcdf file +ncid = netcdf.create(outfile1,'clobber'); +% define dimension(s) +t_dimid = netcdf.defDim(ncid,'Time',netcdf.getConstant('NC_UNLIMITED')); +strLen_dimid = netcdf.defDim(ncid,'StrLen',64); +% define variables and attributes +t_varid = netcdf.defVar(ncid,'xtime','NC_CHAR',[strLen_dimid,t_dimid]); +icevol_varid = netcdf.defVar(ncid,'IceVol','NC_DOUBLE',t_dimid); +netcdf.putAtt(ncid,t_varid,'long_name','calendar date'); +netcdf.putAtt(ncid,t_varid,'format','YYYY-MM-DD_HH:MM:SS character string'); +netcdf.putAtt(ncid,icevol_varid,'long_name','PIOMAS ice volume'); +netcdf.putAtt(ncid,icevol_varid,'units','10^3 km^3'); + +% leave define mode and enter data mode to write data +netcdf.endDef(ncid); + +% add variables +ntot = ind-1; +for n=1:ntot, + netcdf.putVar(ncid,t_varid,[0,n-1],[size(date,2),1],date(n,:)); +end +netcdf.putVar(ncid,icevol_varid,0,ntot,icevol); + +% close netcdf file +netcdf.close(ncid); + +% Then create netcdf file with climatological annual cycle: +% +% create netcdf file +ncid = netcdf.create(outfile2,'clobber'); +% define dimension(s) +t_dimid = netcdf.defDim(ncid,'Time',netcdf.getConstant('NC_UNLIMITED')); +strLen_dimid = netcdf.defDim(ncid,'StrLen',64); +% define variables and attributes +t_varid = netcdf.defVar(ncid,'xtime','NC_CHAR',[strLen_dimid,t_dimid]); +icevol_varid = netcdf.defVar(ncid,'IceVol','NC_DOUBLE',t_dimid); +netcdf.putAtt(ncid,t_varid,'long_name','climatological date'); +netcdf.putAtt(ncid,t_varid,'format','YYYY-MM-DD_HH:MM:SS character string'); +netcdf.putAtt(ncid,icevol_varid,'long_name','PIOMAS ice volume'); +netcdf.putAtt(ncid,icevol_varid,'units','10^3 km^3'); + +% leave define mode and enter data mode to write data +netcdf.endDef(ncid); + +% add variables +for n=1:12, + netcdf.putVar(ncid,t_varid,[0,n-1],[size(date_climo,2),1],date_climo(n,:)); +end +netcdf.putVar(ncid,icevol_varid,0,12,icevol_climo); + +% close netcdf file +netcdf.close(ncid); + +eval(sprintf('cd %s;',cwd)); diff --git a/preprocess_observations/notes4seaiceData.txt b/preprocess_observations/notes4seaiceData.txt new file mode 100644 index 000000000..2194632bd --- /dev/null +++ b/preprocess_observations/notes4seaiceData.txt @@ -0,0 +1,13 @@ +SSMI NASATeam or Bootstrap: Milena computed climatologies from the binary files +using the compute_climo.m scripts. The resulting netcdf files contain the fields +on the original stereographic projection. Mat then interpolated these +fields onto regular lat/lon grids. + +ICESat Arctic: a similar procedure as the SSMI data was taken. + +ICESat Antarctic: this data was only available for Feb/Mar and Oct/Nov, in ASCII +format. Milena cannot find preprocessing scripts for this data, so she is thinking +that probably Mat processed the ASCII data (already FM/ON climos) directly. + +IceArea_timeseries: Milena used the txt2netcdf.m scripts to go from the ASCII +files to netcdf. From da66005f8aa342c63b3f7241258d5422488f939e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 25 Apr 2018 09:28:40 +0200 Subject: [PATCH 6/7] Add Matlab scripts to preprocessing steps in database The scripts were added to the repo but not listed in the database. --- mpas_analysis/obs/observational_datasets.xml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/mpas_analysis/obs/observational_datasets.xml b/mpas_analysis/obs/observational_datasets.xml index bfcafc2c2..2ebb06340 100644 --- a/mpas_analysis/obs/observational_datasets.xml +++ b/mpas_analysis/obs/observational_datasets.xml @@ -32,7 +32,7 @@ [Acknowledgment:] Hurrell, J. W., J. J. Hack, D. Shea, J. M. Caron, and J. Rosinski, - 2008: A New Sea Surface Temperature and Sea Ice Boundary Dataset for the Community + 2008: A New Sea Surface Temperature and Sea Ice Boundary Dataset for the Community Atmosphere Model. Journal of Climate, 21, 5145-5153. @@ -79,7 +79,7 @@ [NASA Aquarius FTP server] (https://podaac.jpl.nasa.gov/dataset/AQUARIUS_L4_OISSS_IPRC_7DAY_V4) - + NASA data are not copyrighted; however, when you publish our data or @@ -577,7 +577,9 @@ (missing, requires registration with NSIDC) - (missing) + preprocess_observations/NASATeam_Antarctic_compute_climo.m + preprocess_observations/NASATeam_Arctic_compute_climo.m + (missing remapping from stereographic to lat/lon) - climatologyMapSeaIceConcNH @@ -633,7 +635,9 @@ (missing, requires registration with NSIDC) - (missing) + preprocess_observations/Bootstrap_Antarctic_compute_climo.m + preprocess_observations/Bootstrap_Arctic_compute_climo.m + (missing remapping from stereographic to lat/lon) - climatologyMapSeaIceConcNH @@ -770,7 +774,7 @@ - https://neptune.gsfc.nasa.gov/uploads/files/SH_IceExt_Monthly_1978-2012.txt - (missing) + preprocess_observations/IceaArea_txt2netcdf.m - timeSeriesSeaIceAreaVol @@ -817,6 +821,9 @@ (missing, requires registration with NSIDC) + ICESat_Arctic_compute_climo.m + (missing Antarctic climo) + (missing remapping from stereographic to lat/lon) - timeSeriesSeaIceAreaVol @@ -878,7 +885,7 @@ - http://psc.apl.uw.edu/wordpress/wp-content/uploads/schweiger/ice_volume/PIOMAS.2sst.monthly.Current.v2.1.txt - (missing) + preprocess_observations/PIOMAS_txt2netcdf.m - timeSeriesSeaIceAreaVol From 9fd3910f046d9d64c3e97879123bd666ad1ad995 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 25 Apr 2018 09:44:24 +0200 Subject: [PATCH 7/7] Some clean-up to the obs database --- mpas_analysis/obs/observational_datasets.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mpas_analysis/obs/observational_datasets.xml b/mpas_analysis/obs/observational_datasets.xml index 2ebb06340..a5d5675ba 100644 --- a/mpas_analysis/obs/observational_datasets.xml +++ b/mpas_analysis/obs/observational_datasets.xml @@ -31,7 +31,7 @@ (https://climatedataguide.ucar.edu/climate-data/merged-hadley-noaaoi-sea-surface-temperature-sea-ice-concentration-hurrell-et-al-2008) - [Acknowledgment:] Hurrell, J. W., J. J. Hack, D. Shea, J. M. Caron, and J. Rosinski, + Acknowledgment: Hurrell, J. W., J. J. Hack, D. Shea, J. M. Caron, and J. Rosinski, 2008: A New Sea Surface Temperature and Sea Ice Boundary Dataset for the Community Atmosphere Model. Journal of Climate, 21, 5145-5153. @@ -77,7 +77,7 @@ degree spatial resolution. - [NASA Aquarius FTP server] + [NASA Aquarius Website] (https://podaac.jpl.nasa.gov/dataset/AQUARIUS_L4_OISSS_IPRC_7DAY_V4) @@ -94,7 +94,7 @@ - (ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L4/IPRC/v4/7day/) + ftp://podaac-ftp.jpl.nasa.gov/allData/aquarius/L4/IPRC/v4/7day/ (missing) @@ -138,7 +138,8 @@ (http://www.aviso.altimetry.fr/duacs/)" - [ftp://podaac.jpl.nasa.gov/allData/aviso/L4/dynamic_topo_1deg_1mo/docs/zosTechNote_AVISO_L4_199210-201012.pdf] + [AVISO: Sea Surface Height above Geoid] + (ftp://podaac.jpl.nasa.gov/allData/aviso/L4/dynamic_topo_1deg_1mo/docs/zosTechNote_AVISO_L4_199210-201012.pdf)