My visual system craves more. If all you have is data for this single latitude…

No, Blake was using air surface temperature data available from here:

• NCEP/NCAR Reanalysis 1: Surface.

**NCEP** is the National Centers for Environmental Prediction, and **NCAR** is the National Center for Atmospheric Research. They have a bunch of files here containing worldwide daily average temperatures on a 2.5 degree latitude × 2.5 degree longitude grid (that’s 144 × 73 grid points), from 1948 to 2010. And if you go here, the website will help you get data from within a chosen rectangle in a grid, for a chosen time interval. These are NetCDF files.

I discussed all this and how to use Graham Jones’ program for converting these NetCDF files into a format suitable for work with the statistical programming language R in El Niño Project (Part 5). Blake used this program to extract temperatures at just a single latitude, but it’s equally easy to get temperature data for any sub-rectangle of the grid for any interval of time between 1948 and 2010.

I urge people out there to play around with this and report back! Blake will do more, but he also has to write a thesis with me on the network theory of Markov processes, so it would be great if other people joined in the fun. I can post more articles in this series about other data visualizations if people 1) give them to me and 2) clearly explain them. Making the code available is good too.

]]>http://azimuth.mathforge.org/discussion/1480/tidal-records-and-enso/

Timely post Blake, thanks!

]]>My visual system craves more. If all you have is data for this single latitude, one possibility might be a two-part display: The top part would be a ‘3-D’ graph plotting temp=f(longitude, time), equipped with a manual slider controlling which time-slice gets displayed in the *bottom* graph (which would otherwise be just like the ones in this posting).

]]>ani.options(convert = shQuote(‘C://Program Files//ImageMagick-6.8.9-Q16//convert.exe’))

Once R can find the function ‘convert’ which is in ImageMagick and is the real work-horse of the whole thing, converting a bunch of images into a .gif, is pretty easy.

The command,

saveGIF({ loop that makes images })

creates a GIF. Inside the brackets is a loop that generates the images which will be the frames of your animation. You do all your cosmetics for the animation inside the brackets. You can also specify a directory to save the animation, otherwise it ends up in some obscure temp folder.

A good package for making plots/images is ggplot2.

]]>I’ve found animated gif’s fairly limiting. I found that I could do much better with a bit of Javascript. You can give users full control of play speed, pause etc. Here is one effort, with R code and HTML/JS (referring to this). If you want to get really fancy, you can move on to WebGL ]]>

Say there’s a 3X3 grid of game squares. Any square could either be covered or uncovered. But say in this situation that’s all I know– just whether or not each square is covered or uncovered. I could cover up all the squares with one piece of paper, cover any number of the squares by cutting a piece of paper appropriately, or just cover up one square with a piece. Now I want to constrain the situation so I don’t have the information available to determine which of these given options is covering the square(s)– the only information available to me is that the square(s) is(are) covered, I don’t know how. However, even with this limited information I can figure something out. For example if square (1,1) is covered and all the rest of the squares are uncovered, I can infer based on what’s given that there’s a piece on square (1,1). And so on for all the other squares. I want to use complex numbers to name these possible states. Say that I name the state of square (1,1) being covered with the complex number Y(1,1). And that I name the state of all the other squares Except (1,1) being uncovered with the complex number Y(1,1)* – the complex conjugate of Y(1,1). Then the possibility of the state of a piece being on square (1,1) is Y(1,1)Y(1,1)* – the multiplication of two complex numbers, or the logical ANDing of the logically equivalent statements.

I want to connect this to something about the real numbers. So I imagine a different situation. In fact, I imagine a different Type of situation, to which I can attach a real number. It’s a game. Each move in the game is just that a player following the constraints of some complex function places a token on one of the squares. And then after the player makes a move, the board is cleared and the next move occurs. This is the Type of situation I need. On each move, an instance of that Type of situation is created. When the piece is removed after the completion of the move, the instance of that Type of situation is destroyed. The Type of the situation is constant, but instances of that Type are created and destroyed.

In this type of situation, as compared to the previous, we do know whether it was paper or a piece that covered a square as the result of a move. So we can run the game, count the number of moves, count the number of coverings per each square, and assign, for these instances of the situation Type, frequentist probabilities to each square for the piece occurring there. In addition, we can attach a real number for each square to the Type of the situation (Bayesian?). Names of states are translated into names of points on a real line. But now there’s more to talk about.

Say that I’ve given up on modeling time as a standard real number. Why- there’s no structure, no machinery, inside the dimensionless point on a line. (Hmmm, there’s likewise no structure, no machinery to model dark matter and energy in today’s physics.) It’s probably also good to model discrete as well as continuous time. So I turn to nonstandard real numbers. In front of a standard point there is a halo of nonstandard points. In back of each standard point there is another halo of nonstandard points. All three together – the standard point with nonstandard halos front and back – is called a “monad.” Call the nonstandard points in front of the standard core of the monad “the nonstandard future.” And those in back, “the nonstandard past.” Next use the idea of a non-wellfounded set to model time as a stream –

time = (monad, time)

But I have to do more than that. The first type of situation, where we just have the information available as to which squares are covered and uncovered, not what is covering them, is the nonstandard future. The second type of situation is the nonstandard past. Now, at least in the Heisenberg picture (where the wave function is constant), we have a loop of arrows. First there’s an arrow from the nonstandard past to the nonstandard future, which maps every nonstandard point in the nonstandard past to its mirror nonstandard point the nonstandard future. Then there are the “supports” relations from each of these situations to the numbers, as above. The nonstandard future supports naming possible states with complex numbers. The nonstandard past supports naming probabilities with real numbers. And then there’s the final arrow, the Born rule, from complex numbers naming possible states to real numbers representing probabilities.

I can now justify saying as I did above that “names of states are translated into names of points on a real line.” Barwise called such a loop of arrows an “infomorphism” – something that translates statements from one language into another and vice versa. Language about possibilities in the nonstandard future translates perfectly into language about probabilities in the nonstandard past (at least – in the Heisenberg picture). So because of the logic of real and complex numbers, existence seems to be a stream –

existence = (theBornInfomorphism, existence)

But right now it’s just an intuition.

Here’s Barwise’s Information and Impossibilities:

]]>