How we visualise currents
Also: Los Angeles after the flames
Thank you for subscribing to Off the Charts on Substack. If you want more, you can save 25% on a paid subscription until January 18th. Paid subscribers will receive two bonus pieces of The Economist’s data journalism each week. You can find one below. We’ll send the other as an additional newsletter this Friday.
For paid subscribers: Los Angeles after the flames
Data journalist
One year after a wildfire ripped through Los Angeles the recovery has just begun. The blaze killed 31 people and destroyed more than 16,000 buildings. We reported from Altadena and Pacific Palisades, two unequal neighbourhoods, where construction is under way. While some in the rich Palisades are buying up lots for bigger houses and gardens, many in Altadena are struggling to afford rent for their temporary homes while continuing to pay their mortgages.
More of our data and visual reporting this week:
For months our team has tracked America’s campaign against Venezuela. Since September the Trump administration has killed at least 115 people in small boats across the Caribbean and the eastern Pacific that the government says are smuggling drugs. On January 3rd the conflict escalated.
Post-covid health-care subsidies are running out and some 24m Americans—7% of the population—could be in for a shock when renewing their coverage.
In the first piece of a two-part deep dive, Rosamund Pearce explains how she calculated and visualised the streamlines of a mighty ocean current. Read on to follow her process.
Streamlining
Rosamund Pearce
Visual data journalist
As a visual journalist you have to be a bit of a generalist. From Britain’s quirky electoral system to strikes on Venezuela, we often work on complex topics that push us out of our comfort zone. For one of our Christmas specials I had a crack at some amateur oceanography. The idea was to animate the Kuroshio, a powerful current that connects East Asia. Currents are often illustrated like wind in a weather forecast, with flowing lines called “streamlines”. But unfortunately you cannot download the coordinates of these patterns and pop them on a map. I had to calculate them myself.
Copernicus offers a range of time periods: six-hourly, daily and monthly
Copernicus, a branch of the European Union’s space programme, offers an impressive array of ocean data. I was spoilt for choice. Did I want surface-level currents or deeper? Daily or monthly? The Kuroshio wiggles around with the weather, so each map will look slightly different, depending on the date and time of day. My first instinct was to use a long timeframe to get a better idea of where the current usually is, smoothing out short-term variations. However, the monthly data looked a bit lifeless (see above). Daily seemed to be the sweet spot: rich in movement but not chaotic.
The Kuroshio current (yellow-green) loses strength with depth
The Kuroshio flows as deep as 1,000 metres, but it is strongest towards the surface. I chose data for five metres down—this was slightly less noisy than right at the surface, but not so deep that I would lose the shallow parts of the ocean (see how the black area with no data expands above).
I shaded the background of my map by the current’s speed (see below). Since “Kuroshio” is Japanese for “black stream”, I initially wanted to make the current black. But after some experimentation, I preferred the design below. The yellows and oranges help the current stand out, while the blues keep the ocean looking watery. It reminds me a bit of Van Gogh’s “The Starry Night”.
The base of my map, before animating streamlines
The map above shows the outline of the current, but there is no sense of direction. Adding streamlines gives an impression of flow. Streamlines begin with a grid of particles, known as “seeds”. I used the “field” of data to predict where each particle will end up after a short interval. From this new position I repeat the calculation, until a trail of coordinates takes shape—the streamline.
Each streamline grows forwards and backwards from a “seed” (white dot)
The process made me appreciate why climate scientists use supercomputers. At first my script was taking days to run. I cropped my map to the smallest area needed. Fewer seeds and fewer iterations took the process from days to hours.
I also spotted a problem: in some places my streamlines were meandering across land (see below). Since Copernicus’ data has a resolution of a twelfth of a degree, it does not line up perfectly with my coastline. However I was puzzled by how far inland the streamlines were travelling. Then I realised that by slightly smoothing the underlying “field”—for a less wobbly line—I had inadvertently shrunk the land. Oops. To keep the streamlines at bay, I reconfigured my script so that they would stop a few kilometres ahead of shore.
The current data are coarser than my coastline file
Fresh out of my script, all streamlines have the same number of coordinates (unless they cut off at the coast). This is inefficient: a straight and short streamline requires fewer coordinates than one that is long and curvy. Of course, I didn’t know what they were going to look like before I calculated them, but now I could use an algorithm to trim superfluous coordinates (red crosses below), without altering the shape.
Streamlining my streamlines, to help my map load more quickly
I also removed the slowest streamlines, which is why there aren’t many lines in the darkest parts of the ocean. As well as slimming my file, this emphasises the fastest currents.
It has been a lot of effort for one map. But next time we need to depict currents or winds, I’ve got a script—so there’s no sunk cost.
Editor’s picks
A selection of must-read articles
What our data journalists are reading
▸Last year saw record levels of wind and solar electricity in Britain (BBC)
▸Donald Trump’s tangled web of deal-making, policy and riches (New York Times)
▸American vaccination rates are plunging. See where your local school stands (Washington Post)
▸Life after a year of congestion pricing in New York (New York Times)

















