I maintain a page showing high resolution (1/4degree) AVHRR SST data from NOAA - in detail:
"NOAA High Resolution SST data provided by the NOAA/OAR/ESRL PSD, Boulder, Colorado, USA, from their Web site at http://www.esrl.noaa.gov/psd/". It renders it in WebGL and goes back with daily maps for a decade or so, then les frequently. It shows anomalies relative to 1971-2000. I have been tracking the effect of Hurricane Harvey. It was said to have grown rapidly because of warm Gulf waters; they were warm, but not exceptionally, as this extract from 15 August shows:
It remained much the same to 24th August, when Harvey grew rapidly, and gained Hurricane status late in the day (). But by 25th, there is some sign of cooling. 26th (not shown) was about the same. But by 27th, There was marked cooling, and by 28th more so. The cooling seems to show up rather belatedly alomg the path of the hurricane.
Here's is the latest day at higher resolution:
A few years ago, I developed a set of movies based on recent hurricanes of the time, showing their locations and SST at the time. Some showed a big effect, some not so much. Harvey was interesting in that it covered a fairly confined area of ocean, and moved slowly.
Wednesday, August 30, 2017
Thursday, August 24, 2017
Surface temperature sparsity error modes
This post follows last week's on temperature integration methods. I described a general method of regression fitting of classes of integrable functions, of which the most used to date is spherical harmonics (SH). I noted that the regression involved inverting a matrix HH consisting of all the scalar product integrals of the functions in the class. With perfect integration this matrix would be a unit matrix, but as the SH functions become more oscillatory, the integration method loses resolution, and the representation degrades with the condition number of the matrix HH. The condition number is the ratio of largest eigenvalue to smallest, so what is happening is that some eigenvectors become small, and the matrix is near singular. That means that the corresponding eigenvector might have a large multiplier in the representation.
I also use fitted SH for plotting each month's temperature. I described some of the practicalities here (using different functions). Increasing the number of functions improves resolution, but when HH becomes too ill-conditioned, artefacts intrude, which are multiples of these near null eigenvectors.
In the previous post, I discussed how the condition of HH depends on the scalar product integral. Since the SH are ideally orthogonal, better integration improves HH. I have been taking advantage of that in recent TempLS to increase the order of SH to 16, which implies 289 functions, using mesh integration. That might be overdoing it - I'm checking.
In this post, I will display those troublesome eigen modes. They are of interest because they are associated with regions of sparse coverage, and give a quantification of how much they matter. Another thing quantified is how much the integration method affects the condition number for a given order of SH. I'll develop that further in another post.
I took N=12 (169 functions), and looked at TempLS stations (GHCN+ERSST) which reported in May 2017. Considerations on choice of N are that if too low, the condition number is good, and the minimum modes don't show features emphasising sparsity. If the number is too high, each region like Antarctica can have several split modes, which confuses the issue.
The integration methods I chose were mostly described here
I'll show the plots of the modes as an active lat/lon plot below, and then the OLS versions in WebGL, which gives a much better idea of the shapes. But first I'll show a table of the tapering eigenvalues, numbering from smallest up. They are scaled so that the maximum is 1, so reciprocal of the lowest is the condition number.
I also use fitted SH for plotting each month's temperature. I described some of the practicalities here (using different functions). Increasing the number of functions improves resolution, but when HH becomes too ill-conditioned, artefacts intrude, which are multiples of these near null eigenvectors.
In the previous post, I discussed how the condition of HH depends on the scalar product integral. Since the SH are ideally orthogonal, better integration improves HH. I have been taking advantage of that in recent TempLS to increase the order of SH to 16, which implies 289 functions, using mesh integration. That might be overdoing it - I'm checking.
In this post, I will display those troublesome eigen modes. They are of interest because they are associated with regions of sparse coverage, and give a quantification of how much they matter. Another thing quantified is how much the integration method affects the condition number for a given order of SH. I'll develop that further in another post.
I took N=12 (169 functions), and looked at TempLS stations (GHCN+ERSST) which reported in May 2017. Considerations on choice of N are that if too low, the condition number is good, and the minimum modes don't show features emphasising sparsity. If the number is too high, each region like Antarctica can have several split modes, which confuses the issue.
The integration methods I chose were mostly described here
- OLS - just the ordinary scalar product of the values
- grid - integration by summing on a 5x5° latitude/longitude grid. This was the earliest TempLS method, and is used by HADCRUT.
- infill - empty cells are infilled with an average of nearby values. Now the grid is a cubed sphere with 1536 cells
- mesh - my generally preferred method using an irregular triangular grid (complex hull of stations) with linear interpolation.
I'll show the plots of the modes as an active lat/lon plot below, and then the OLS versions in WebGL, which gives a much better idea of the shapes. But first I'll show a table of the tapering eigenvalues, numbering from smallest up. They are scaled so that the maximum is 1, so reciprocal of the lowest is the condition number.
OLS | grid | infilled | mesh | |
Eigen1 | 0.0211 | 0.0147 | 0.0695 | 0.135 |
Eigen2 | 0.0369 | 0.0275 | 0.138 | 0.229 |
Eigen3 | 0.0423 | 0.0469 | 0.212 | 0.283 |
Eigen4 | 0.0572 | 0.0499 | 0.244 | 0.329 |
Eigen5 | 0.084 | 0.089 | 0.248 | 0.461 |
Eigen6 | 0.104 | 0.107 | 0.373 | 0.535 |
Eigen7 | 0.108 | 0.146 | 0.406 | 0.571 |
Eigen8 | 0.124 | 0.164 | 0.429 | 0.619 |
And here is a graph of the whole sequence, now largest first:
The hierarchy of condition numbers is interesting. I had expected that it would go in the order of the columns, and so it does until near the end. Then mesh drops below infilled grid, and OLS below grid, for the smallest eigenvalues. I think what determines this is the weighting of the nodes in the sparse areas. For grid, this is not high, because each just gets the area of its cell. For both infilled and mesh, the weight rises with the area, and apparently with infilled, more so.
The hierarchy of condition numbers is interesting. I had expected that it would go in the order of the columns, and so it does until near the end. Then mesh drops below infilled grid, and OLS below grid, for the smallest eigenvalues. I think what determines this is the weighting of the nodes in the sparse areas. For grid, this is not high, because each just gets the area of its cell. For both infilled and mesh, the weight rises with the area, and apparently with infilled, more so.
Thursday, August 17, 2017
Temperature averaging and integration - the basics
I write a lot about spatial integration, which is at the heart of global temperature averaging. I'll write more here about the principles involved. But I'm also writing to place in context methods I use in TempLS, which I think are an advance on what is currently usual. I last wrote a comparison of methods in 2015 here, which I plan to update in a sequel. Some issues here arose in a discussion at Climate Audit.
It's a long post, so I'll include a table of contents. I want to start from first principles and make some math connections. I'll use paler colors for the bits that are more mathy or that are just to make the logic connect, but which could be skipped.
It's a long post, so I'll include a table of contents. I want to start from first principles and make some math connections. I'll use paler colors for the bits that are more mathy or that are just to make the logic connect, but which could be skipped.
- Basics - averaging temperature and integration
- Averaging and integration.
- Integration - theory
- Numerical integration - sampling and cells
- Triangular mesh
- Integration by function fitting
- Fitting - weighted least squares
- Basis functions - grid
- Basis functions - mesh
- Basis functions - spherical harmonics
- Basis functions - radial basis functions
- Basis functions - higher order finite element
- Next in the series.
Wednesday, August 16, 2017
GISS July up 0.15°C from June.
GISS was up from 0.68°C in June to 0.83°C in July. It was the warmest July in the record, though the GISS report says it "statistically tied" with 2016 (0.82). The increase was similar to the 0.12°C rise in TempLS.
The overall pattern was similar to that in TempLS. Warm almost everywhere, with a big band across mid-latitude Eurasia and N Africa. Cool in parts of the Arctic, which may save some ice.
I'll show the plot of recent months on the same 1981-2010 base, mainly because they are currently unusually unanimous. The group HADCRUT/NOAA/TempLS_grid tend to be less sensitive to the Antarctic variations that have dominated recent months, and I'd expect them to be not much changed in July also, which would leave them also in much the same place.
Recently, August reanalysis has been unusually warm. As usual here, I will compare the GISS and previous TempLS plots below the jump.
The overall pattern was similar to that in TempLS. Warm almost everywhere, with a big band across mid-latitude Eurasia and N Africa. Cool in parts of the Arctic, which may save some ice.
I'll show the plot of recent months on the same 1981-2010 base, mainly because they are currently unusually unanimous. The group HADCRUT/NOAA/TempLS_grid tend to be less sensitive to the Antarctic variations that have dominated recent months, and I'd expect them to be not much changed in July also, which would leave them also in much the same place.
Recently, August reanalysis has been unusually warm. As usual here, I will compare the GISS and previous TempLS plots below the jump.
Tuesday, August 8, 2017
July global surface temperature up 0.11°C
TempLS mesh anomaly (1961-90 base) was up from 0.568°C in June to 0.679°C in July. This follows the smaller rise of 0.06°C in the NCEP/NCAR index, and a similar rise (0.07) in the UAH LT satellite index. The July value is just a whisker short of July 2016, which was a record warm month. With results for Mexico and Peru still to come, that could change..
Again the dominant change was in Antarctica, from very cold in June to just above average in July. On this basis, I'd expect GISS to also rise; NOAA and HADCRUT not so much. Otherwise as with the reanalysis, Middle East and around Mongolia were warm, also Australia and Western USA. Nowhere very hot or cold. Here is the map:
Again the dominant change was in Antarctica, from very cold in June to just above average in July. On this basis, I'd expect GISS to also rise; NOAA and HADCRUT not so much. Otherwise as with the reanalysis, Middle East and around Mongolia were warm, also Australia and Western USA. Nowhere very hot or cold. Here is the map:
Thursday, August 3, 2017
July NCEP/NCAR up 0.058°C
In the Moyhu NCEP/NCAR index, the monthly reanalysis average rose from 0.241°C in June to 0.299°C in July, 2017. This is lower than July 2016 but considerably higher than July 2015. The interesting point was a sudden rise on about July 24, which is responsible for all the increase since June. It may be tapering off now.
It was generally warm in temperate Asia and the Middle East, and even Australia. Antarctica was mixed, not as cold as June. The Arctic has been fairly cool.
It was generally warm in temperate Asia and the Middle East, and even Australia. Antarctica was mixed, not as cold as June. The Arctic has been fairly cool.
Subscribe to:
Posts (Atom)