Description of the OI.v2 (v2 indicates version 2) Weekly SST Analysis -------------------------------------------------------------------- NOTE FOR USERS THAT PREFER DATA IN ASCII: The Data Support Section (DSS) of NCAR makes both weekly and monthly OIv2 data available in ASCII at: http://rda.ucar.edu/datasets/ds277.0/ If the NCAR archive is not up-to-date, check: ftp://ftp.emc.ncep.noaa.gov/cmb/sst/oimonth_v2/ASCII_UPDATE (monthly) ftp://ftp.emc.ncep.noaa.gov/cmb/sst/oisst_v2/ASCII_UPDATE (weekly) -------------------------------------------------------------------- The optimum interpolation (OI) sea surface temperature (SST) analysis is produced weekly on a one-degree grid. The analysis uses in situ and satellite SST's plus SST's simulated by sea-ice cover. Before the analysis is computed, the satellite data is adjusted for biases using the method of Reynolds (1988) and Reynolds and Marsico (1993). The OI.v2 analysis is described in Reynolds, R.W., N.A. Rayner, T.M. Smith, D.C. Stokes, and W. Wang, 2002: An Improved In Situ and Satellite SST Analysis for Climate, J. Climate, Vol 15. The paper is available in Adobe Acrobat in the directory: ftp://ftp.emc.ncep.noaa.gov/cmb/sst/papers/oiv2pap/ The NOAA OIv2 SST analyses are available in individual weekly files. Each file is named oisst.{YYYYMMDD}, where {YYYYMMDD} is the year, month, and day of the middle day of the week. To ease transfer, some files may be tar'd by year in files named oisst.{YYYY}.tar where {YYYY} is the year. From 1990 onward the weeks are centered on Wednesday. For the 1980's the weeks are centered on Sunday because the best satellite data available to us for that period are weekly fields centered on Sunday. The files were written in IEEE binary (big-endian). Each file contains four records described as follows: rec 1: date and version number (8 4-byte integer words) rec 2: gridded sst values in degC (360*180 4-byte real words) rec 3: normalized error variance (360*180 4-byte real words) rec 4: gridded ice concentration (360*180 1-byte integer words) (This is the layout as seen by a fortran code reading sequential access data. The true file size is larger than indicated here. For details, please see note at bottom regarding sequential access files.) The ice field shows the weekly median ice concentration values input to the SST analysis. Ice concentration is stored as the percentage of area covered. For the ice fields, the value 122 represents land or coast. Note, the ice land mask is a function of the ice analysis and may change periodically. The sst,error and ice fields are on a 1-degree (360 lon by 180 lat) grid. The first gridbox of each array is centered on 0.5E, 89.5S. The points move eastward to 359.5E, then northward to 89.5N. The OI analysis is done over all ocean areas and the Great Lakes. There is no analysis over land. The land values are filled by a Cressman interpolation to produce a complete grid for possible interpolation to other grids. The ocean and land areas are defined by a land sea mask. This data set is a binary, direct access file, lstags.ondeg.dat, which is included in the same directory. The spatial grid is defined identically to the grid for the SST arrays. The values in ls.dat are set to 1 over the ocean and 0 over land. It can be read by the following fortran code: REAL*4 TAGLS(360,180) c c NOTE, recl definition below depends on compiler c (number of 4-byte words OR number of bytes) c choose one of following krecl definitintions parameter(krecl=360*180) ! number of 4-byte words c parameter(krecl=360*180*4) ! number of bytes open (24,file='lstags.onedeg.dat',form='unformatted', 1 access='direct',recl=krecl) c c Read in land sea tags (1 for ocean; 0 for land) c READ (24,rec=1) TAGLS STOP 1 END The following sample fortran program reads the data and prints out sample values: c-------------- start of code ----------------------------------------- program rdoiv2 c read OIv2 SST file and land mask and print selected values. c sst - sea surface temperature array (deg C) c err - normalized error variance c ice - ice concentration array (%) (0-100, >100 = land or coast) c iyrst - year of start date of analysis c imst - month of start date of analysis c idst - day of start date of analysis c iyrnd - year of end date of analysis c imnd - month of end date of analysis c idnd - day of end date of analysis c ndays - number of days in analysis (start date thru enddate) c index - analysis version for reference c xlon - longitude of center of grid square c xlat - latitude of center of grid square c tagls - land/sea tag array (0=land, 1=water) c NOTES: c - land values for sst do not necessarily coincide with land values c from ice analysis c - recl definition for the direct access open depends on the compiler c (number of 4-byte words OR number of bytes). c Choose the appropiate parameter statement for krecl c implicit none c integer krecl parameter(krecl=360*180) ! number of 4-byte words c parameter(krecl=360*180*4) ! number of bytes real*4 sst(360,180),err(360,180),xlon,xlat integer*4 iyrst,imst,idst,iyrnd,imnd,idnd,ndays,index,i,j integer*4 ice(360,180) character*1 cice(360,180) real*4 tagls(360,180) open (24,file='lstags.onedeg.dat',form='unformatted', 1 access='direct',recl=krecl) c c Read in land sea tags (1 for ocean; 0 for land) c read (24,rec=1) tagls c date string used in filename represents the mid-week date c weeks prior 1990 are centered on Sunday c weeks in 1990 and onward are centered on Wednesday open(11,file='oisst.19930804',form='unformatted') read(11) iyrst,imst,idst,iyrnd,imnd,idnd,ndays,index read(11) ((sst(i,j),i=1,360),j=1,180) read(11) ((err(i,j),i=1,360),j=1,180) read(11) ((cice(i,j),i=1,360),j=1,180) print '(a,i4,1x,i2,1x,i2)', 'start date: ',iyrst,imst,idst print '(a,i4,1x,i2,1x,i2)', ' end date: ',iyrnd, imnd,idnd print '(a,i2)', ' num days: ',ndays print '(a,i10,/)', ' index: ',index c ...choosing one longitude i = 181 c ... determine longitude of middle of grid boxes with this index xlon = float(i) - 0.5 c .... loop thru several latitudes (decrementing to run North->South) do j = 180,150,-1 ice(i,j)=ichar(cice(i,j)) xlat = float(j) - 90.5 print 125, 'lon = ',xlon,'lat = ',xlat,'sst = ',sst(i,j), 1 'nev = ',err(i,j),'ice = ',ice(i,j),'tagls= ',tagls(i,j) 125 format(a,f5.1,4x,a,f5.1,4x,a,f5.1,4x,a,f5.3,3x,a,i3,3x,a,f2.0) enddo stop end c-------------- end of code ----------------------------------------- Following are the results of the above code when reading the week centered on 04 August 1993. If your 'index' does not match the one shown below, you have a newer analysis version and your SST, error, and ice values likely will not match either. Please feel free to request the correct output for your version to ensure you are reading the data correctly. --- Start Output start date: 1993 8 1 end date: 1993 8 7 num days: 7 index: 1141070244 lon = 180.5 lat = 89.5 sst = -1.8 nev = 1.000 ice = 100 tagls= 1. lon = 180.5 lat = 88.5 sst = -1.8 nev = 1.000 ice = 98 tagls= 1. lon = 180.5 lat = 87.5 sst = -1.8 nev = 0.170 ice = 100 tagls= 1. lon = 180.5 lat = 86.5 sst = -1.7 nev = 0.123 ice = 100 tagls= 1. lon = 180.5 lat = 85.5 sst = -1.7 nev = 0.096 ice = 94 tagls= 1. lon = 180.5 lat = 84.5 sst = -1.7 nev = 0.080 ice = 87 tagls= 1. lon = 180.5 lat = 83.5 sst = -1.7 nev = 0.070 ice = 98 tagls= 1. lon = 180.5 lat = 82.5 sst = -1.8 nev = 0.060 ice = 92 tagls= 1. lon = 180.5 lat = 81.5 sst = -1.8 nev = 0.057 ice = 93 tagls= 1. lon = 180.5 lat = 80.5 sst = -1.8 nev = 0.057 ice = 94 tagls= 1. lon = 180.5 lat = 79.5 sst = -1.8 nev = 0.056 ice = 95 tagls= 1. lon = 180.5 lat = 78.5 sst = -1.8 nev = 0.053 ice = 96 tagls= 1. lon = 180.5 lat = 77.5 sst = -1.8 nev = 0.048 ice = 97 tagls= 1. lon = 180.5 lat = 76.5 sst = -1.6 nev = 0.041 ice = 98 tagls= 1. lon = 180.5 lat = 75.5 sst = -0.4 nev = 0.040 ice = 88 tagls= 1. lon = 180.5 lat = 74.5 sst = 1.1 nev = 0.048 ice = 36 tagls= 1. lon = 180.5 lat = 73.5 sst = 2.6 nev = 0.068 ice = 0 tagls= 1. lon = 180.5 lat = 72.5 sst = 3.5 nev = 0.101 ice = 0 tagls= 1. lon = 180.5 lat = 71.5 sst = 3.1 nev = 0.134 ice = 0 tagls= 1. lon = 180.5 lat = 70.5 sst = 2.9 nev = 0.144 ice = 0 tagls= 1. lon = 180.5 lat = 69.5 sst = 2.5 nev = 0.166 ice = 0 tagls= 1. lon = 180.5 lat = 68.5 sst = 2.8 nev = 1.000 ice = 122 tagls= 0. lon = 180.5 lat = 67.5 sst = 4.8 nev = 1.000 ice = 122 tagls= 0. lon = 180.5 lat = 66.5 sst = 8.5 nev = 1.000 ice = 122 tagls= 0. lon = 180.5 lat = 65.5 sst = 9.6 nev = 0.172 ice = 0 tagls= 1. lon = 180.5 lat = 64.5 sst = 8.8 nev = 0.122 ice = 0 tagls= 1. lon = 180.5 lat = 63.5 sst = 8.1 nev = 0.107 ice = 0 tagls= 1. lon = 180.5 lat = 62.5 sst = 7.6 nev = 0.168 ice = 0 tagls= 1. lon = 180.5 lat = 61.5 sst = 7.4 nev = 0.311 ice = 0 tagls= 1. lon = 180.5 lat = 60.5 sst = 7.8 nev = 0.505 ice = 0 tagls= 1. lon = 180.5 lat = 59.5 sst = 9.1 nev = 0.753 ice = 0 tagls= 1. --- End Output Please note, a new climatology based on these fields was derived by Yan Xue of NCEPs Climate Prediction Center following the technique of Reynolds and Smith (1995) and Smith and Reynolds (1998). The new climatology is available in: ftp://ftp.cpc.ncep.noaa.gov/wd52yx/sstclim/ For further information on the climatology, contact: Yan.Xue@noaa.gov The OIv2 SST web page is: http://www.emc.ncep.noaa.gov/cmb/sst_analysis/ and a Frequently-Asked-Questions list is available at: http://www.emc.ncep.noaa.gov/cmb/sst_analysis/FAQ.html For further information on the OIv2 SST fields, contact: Diane C. Stokes --------------- email: Diane.Stokes@noaa.gov Voice: (301) 683-3713 FAX: (301) 683-3703 Postal Address: Global Climate & Weather Modeling Branch W/NP23 Environmental Modeling Center National Centers for Environmental Prediction 5830 University Research Court College Park, MD 20740 * NOTE * These SST analysis files were written, and are read in the program above, as fortran sequential access. When a file is written as such, a 4-byte control word is included at the beginning and end of each record. The control words indicate the number of bytes in that record. Non-fortran or non-unix users may need to modify the above code to skip these words. See the FAQ for more details. The land sea mask file, lstags.ondeg.dat, was written as a direct access file. Such files do not include these fortran control words. The recl paramenter in the open statement indicates the number of bytes (or words) per record. UPDATED: 04 September 2013