All Posts

The Many Lives of Null Island

Last year we rebuilt our well-loved Stamen basemaps from scratch, re-creating them on a totally new tech stack in partnership with Stadia Maps. This was a bittersweet and challenging process, trying to build new styles that matched the aesthetics of the old maps, while still giving us a fresh start to keep these maps running efficiently for the years ahead. There were some annoying old bugs we were happy to be done with, but also some charming old quirks and a few hidden Easter Eggs we had to decide whether or not we could (or should) try to bring into the new styles. Last month I gave a presentation about this topic at the State of the Map US conference (and you can view the video of my talk here), but today I want to go a bit deeper into just one of those little details in the original maps, one we knew for sure that we absolutely had to include in the new styles: Null Island. 

Null What?

At risk of ruining the secret for you, Null Island is a long-running inside joke among cartographers. It is an imaginary island located at a real place: the coordinates of 0º latitude and 0º longitude, a location in the Atlantic Ocean off the coast of Africa where the Prime Meridian meets the Equator, hundreds of miles from any real dry land.

Null Island is not just a silly place to think about when cartographers are bored, it is a phenomenon that repeatedly and annoyingly asserts itself in the middle of day-to-day cartographic work, often when you least expect it. Sometimes you load a new dataset into your GIS program, but the coordinates aren’t parsed correctly and they turn into all zeroes: your data is on Null Island. Or sometimes if the map projection file for your data is wrong, you’ll find a tiny scaled-down copy of your coordinates floating around Null Island. Or even worse, maybe most of your data is showing up in the right place, but only a few of your records are missing coordinates; if you don’t think to check for it, you won’t even realize that some of your data points have “taken a trip to Null Island.”

Let me try to explain with a few examples.

If you know to look for it, you’ll find data showing up on Null Island all the time. Right now it looks like someone has a misconfigured PurpleAir sensor which shows a delightful Air Quality Index of 19 in the central Atlantic (no, that sensor is not really there). 

Null Island on PurpleAir

On Weather Underground’s map of amateur weather measurements, several stations are also reporting their results on Null Island, even though the stations themselves are in places like Schwertberg, Austria and Ahwatukee, Arizona.

Null Island on Weather Underground

If you look at Strava’s global map of public GPS traces, you see a lot of ghostly traces of running tracks and city blocks floating around Null Island, and lots of bizarre patterns perhaps created by glitches in athletes’ GPS trackers? 

Strava’s heatmap around Null Island (Note, you need to create a Strava account to zoom in all the way) 

OpenStreetMap’s public collection of volunteered GPS traces also contains a scribble-like hairball of lines around Null Island. These are either due to miscalibrated or broken GPS devices or faulty data translation software; you can be sure that nobody was walking (or sailing) around that spot in the ocean with their GPS tracker turned on.

Null Island GPS traces on OpenStreetMap

As an aside, if you go looking around Null Island trying to find misplaced data, you’ll sometimes see glitches in the basemap itself. Because bathymetry data (the measurements of the depth of the ocean floor) often comes in square chunks that have edges along the Equator or Prime Meridian, the shaded terrain effects on the seafloor often have stitching errors at 0º, 0º. On Apple Maps you can see something that looks like a little whirlpool, while on Google Maps there appears to be a seamount with a rougher texture that doesn’t look like any of the other features on the ocean floor, and if you stare at it long enough you might start to see a scary version of the famous “face on Mars” photo.

And sometimes it’s not the data itself that is wrong, but through the design and usage of the default settings of geographic tools, you can see signs of Null Island by inspecting server logs of web traffic. For example, when we first launched our public basemaps back in 2012, we were curious to see where in the world people were looking at. When you parse the logs of which parts of the map users requested, and then make a map of those requests (a map of map views, if you will) you see a surprising amount of map tiles loaded for the area around Null Island. There’s not much to see there, just empty ocean, so what are people looking for? Probably what we are seeing is software that loads a zoomed in map of 0,0 and then refreshes the map for the user’s location after it loads. 

A map of which map tiles were loaded in the 10 days after the launch of maps.stamen.com in 2012. Note the dark spot southwest of the Africa label, that’s not actually on Africa, that’s 0º, 0º. Null Island!

Maps of OpenStreetMap’s tile server logs show a similar pattern, with lots of tile requests for that specific spot in the middle of the ocean. See if you can spot Null Island in each of these maps:

Paul Norman even made an animated version of these access log maps, showing tile requests over time. Many interesting and mysterious temporal quirks and glitches appear and disappear as you watch the video, but Null Island shines on and on like a beacon:

Animated map showing OpenStreetMap tile access logs, by Paul Norman

Similarly, our Field Papers tool has a database of every printed map people created from OpenStreetMap data, and if you map centers of all of those printed maps, you see some lines converging on Null Island (and some even stronger lines converging on a point in Morocco which happens to be the center of the map view when you get started creating a Field Papers atlas:

The centroids of every Field Papers atlas as of 2021, by Eric Brelsford

The mythology of Null Island

Every cartographer has countless stories of messy data like these. So, to make light of these frustrating problems, the whimsical story of Null Island was born.

There have been several excellent histories written about Null Island, such as “Null Island Is One of the Most Visited Places on Earth. Too Bad It Doesn’t Exist” by Tim St. Onge, “Welcome to Null Island, where lost data goes to die” by Frank Jacobs or “Null Island: the island that doesn’t exist but lives on maps” by Isabel Carrasco. Any of these articles gives a good overview of how the idea of Null Island came to be, but far the most thoroughly researched history of the Null Island phenomenon is this recent open-access academic article by Levente Juhász and Peter Mooney “Null Island, the most real of fictional places”.

Of these articles, only the one by Juhász and Mooney is also the only one that digs into the history of the fictional Null Island shape that we see on T-shirts and stickers, and occasionally hidden on basemaps. Null Island as a data glitch really only exists as a point in space (precisely at 0º, 0º) so where did this imaginary polygon come from?

It turns out, the first Null Island shape on a basemap (based on the island from Myst) was added by Mike Migurski to the “Acetate” style basemap that Stamen designed with GeoIQ in 2010. That Acetate basemap no longer exists on the web, but we used the same Null Island shapefile in our Toner and Terrain styles starting in 2011, where it has been visible ever since.

The map of the island from the game Myst

When it came time to re-create our old raster map styles using Stadia’s modern vector maps platform, we had to start completely from scratch. None of the old map styling code could be adapted to the new vector styling paradigm, and similarly the old database setup wasn’t relevant given that Stadia already had a complete OpenMapTiles pipeline running that we would use as the basis of the new styles. The only thing missing that we might need to pull from the old github repository was Null Island.

I knew that we had a shapefile of Null Island in the old repo for the raster-based Toner style, but instead of downloading the shapefile and converting it to GeoJSON (really not hard to do at all, but I was lazy) I figured someone else must have already done that conversion, so I just Googled for “null island geojson” and downloaded the first one I saw.

But something wasn’t right. When I compared the shape of Null Island in the old raster Toner map with the new vector style we were developing, they didn’t line up at all. In fact, they weren’t even remotely the same size!

It turns out that the GeoJSON I downloaded was from Nicholas Furness (github handle @nixta), a developer at ESRI, who had created a Null Island geojson that is way bigger than the one we had been using. Ours is about 100 meters across, but this one is nearly 10 kilometers across. 

The “nixta” Null Island, with the tiny Myst-inspired original Null Island visible in the center.

The size difference is dramatic! The original Null Island at 100m could fit inside Yankee Stadium, the Zocalo plaza in Mexico City, or St. Peter’s Square in the Vatican. While the new version at 10km wide is nearly the size of Disney World, or the city of Paris, or the entire country of Liechtenstein.

Or to put it in terms more familiar to Stamen’s home base in the Bay Area, the original Null Island would fit inside the AT&T Park baseball stadium, while the new one is as big as the whole city of San Francisco.

The original Null Island shape overlaid on AT&T Park in San Francisco
The larger Null Island shape covers the entire 7 mile width of San Francisco

So why is this second Null Island shape so big? Well, the area of 63.8 km2 I calculate for that shape in my GIS matches nearly exactly the 6,400 hectares mentioned on an old joke website for the “Republic of Null Island” created way back in 2008. As far as I can tell, the creator of that website, Steve Pellegrin (who also coined the name “Null Island”) just pulled that number out of thin air. But when Nicholas Furness set out to trace the shape of the island and create a GeoJSON file (not knowing that the Stamen shapefile was already available) he adjusted the size of his tracing until it fit Pellegrin’s 6,400 hectares.

So, how big “should” Null Island be? If we note that it’s based on the shape of the island in Myst, (and that you can see from the shape of the island that it actually includes a ship docked to the lower part of the island) then the 100m shape is closer to “accurate” and perhaps even a little too large.

And if we think about the extent of “normal” erroneous data, in the cases where data shows up at Null Island not because of lack of coordinates (which would have all your points piling up exactly at 0,0) there are the less common cases where the wrong projection information is applied to your data. In this case, a location of 122ºW and 48ºN might be misconstrued by your GIS as a point 122 meters west and 48 meters north of the center of your map, which is often aligned right at Null Island (for the Mercator projection in particular). In that case, the 100m shape of the Null Island polygon is also a nice “canvas” to help you locate your messed up data, even though it’s not quite big enough to keep the points from falling in the water:

Example map using major cities of the world sourced by Natural Earth, but with the deliberate error where we interpret latitude and longitude degrees as meters instead.

The Myst-inspired version of Null Island isn’t the only Null Island that is experiencing geographic inflation! Not long after we included the first Null Island in the Acetate Map, a year later in 2011 an even smaller version, in the form of a 1 meter square, was added to version 1.3 of the Natural Earth dataset used by countless maps around the world. But apparently, 1 meter isn’t large enough! In 2018, version 4.1 of Natural Earth bumped the size to 1 square kilometer. If you download the “land” or “coastline” layers from Natural Earth, you’ll still see it today.

Zooming in on the original Null Island, with the Natural Earth first “Null Island Square” visible in the center.
Zooming out to see the new 1km square version of Natural Earth surrounding the original Null Island.

To put these sizes into context, the one meter Natural Earth Null Island is: about the size of 9 laptops looking at a map of Null Island in this blog post; the width of 5.6 bananas; about half the surface area of an average human. One meter is also about half the size of the real-world weather buoy that is moored at 0º, 0º (but more on that later).

The original Null Island square from Natural Earth, compared to the one meter reference square centered on two picnickers in a park, from the classic short film Powers of Ten by Charles and Ray Eames

The one kilometer Null Island, on the other hand, is: the size of the Kingdom of Monaco; a bit wider than the Burj Khalifa is tall; almost the length of the Golden Gate Bridge.

The updated Null Island square in Natural Earth version 4, compared to the Golden Gate.

In this case, it does seem to make a lot of sense to make the Null Island square a bit bigger. If its purpose is to catch bad data, 1 square meter probably isn’t big enough.

When your Easter Egg is an an ostrich egg

In the end, Null Island is a totally made up thing, so we can pick whatever size for it we want. Sure we can debate whether our imaginary world is internally consistent (that is, if we’re literal about the Myst reference, the size of the boat docked to island ought be be the correct scale) or we can come up with a post hoc rationale that we need it to be a useful size for debugging. But ultimately, it’s an Easter Egg and the process of creating a good Easter Egg of any kind has its own rules and logic.

Choosing the right size for Null Island (or any Easter Egg) is a design decision, a balance of exclusivity and accessibility, of form versus function. An Easter Egg should be a surprise, a treat, and it should make someone pleased and a little bit proud of themselves when they find it.

It’s not much fun if it’s too hard to find, and it’s not worth the work of creating it if no one will ever see it! But if it’s too big and too obvious, it loses all of its charm.

The location of Null Island presents an especially tricky design challenge, precisely because it is so far from everything else. There’s nothing around to orient you, so if you are actually going looking for it, it can be very hard to find! Some mapping websites have the zoom and coordinates right there for you to see in the URL hash (which is something we try to do on most of our Stamen projects) and if that’s the case, it’s easy to type in “18/0/0” in the URL (that means zoom level 18, latitude 0, longitude 0) and find your way right to Null Island: https://maps.stamen.com/toner/#18/0/0. But if there is no way to control the latitude and longitude from the URL, it can be very hard to zoom in from a global view and find it without getting lost.

If we want Null Island to be just barely findable, but not too obvious, I’d argue that the “right” size would be such that it’s just one pixel at the edge of your screen while the coast of Africa is still in view. We can do some back of the envelope calculations, assuming a screen size of about 2000 pixels, and zoom level around 7, where one pixel represents an area about 1,200 meters wide. Which means that the original 100m Null Island is just a bit too small to easily find, and the new 10km version just a bit too big to easily hide without everybody noticing it. 

Adding an Easter Egg to a map is also a different undertaking than putting one in a video game. Maps are (usually) meant to be serious, functional, trustworthy, and, you know, accurate. Once we start tampering with the map, showing things that aren’t really there, it makes people doubt the validity of the rest of the map. And even if people understand that it’s an obvious joke, an Easter Egg that is too big can get in the way of the “real” work that someone is doing. Ultimately, if an Easter Egg draws too much attention to itself you might be obligated to remove it.

We ran into this problem when we implemented Null Island in the basemap we worked on for Meta. We originally had full buy-in from the team we were working with, and we all enjoyed knowing that Null Island would live on in another map, even if few people would ever see it. Or rather, we expected that not many people would see it. Unfortunately it certainly had many more eyes on it than we expected when Facebook’s recommendations tool started showing a zoomed-in map of Null Island when people asked for recommendations but hadn’t gotten any suggestions yet (thanks to Andrew Wiseman and Chris Whong for catching screenshots for posterity).

Null Island shown on Meta’s basemap in a Facebook recommendations post in 2021 (image via Twitter)

If you look closely at that shape, you’ll notice that for Meta we used the larger version of Null Island. I don’t recall whether we consciously picked the larger version, or if we grabbed it accidentally, as we almost did again for the reboot of our Toner and Terrain styles. While we can’t know for sure, had we picked the smaller original Null Island, perhaps it wouldn’t even have been visible in those recommendations pages? The smaller version of Null Island likely would have been little more than a single white pixel in a sea of blue.

In a later iteration, we even added lovingly hand-drawn bathymetry rings around it, as seen in this screenshot of the Meta basemap in use as the background of Mapillary:

Null Island seen in the Mapillary app, using Meta’s basemap from 2022. Screenshot from Juhász and Mooney’s article.

Sadly, in the latest iteration of the Meta map, Null Island is no more. Coincidentally, around the time we wrapped up our work with Meta, they silently dropped Null Island from their maps. While we aren’t privy to the specific reasons for dropping Null Island, the attention it had gotten by showing up in all those recommendation posts surely did not help. When an Easter Egg can’t fly under the radar, it stops being an Easter Egg and starts just being a bug.

Null-flation?

It does feel like every time you turn around, Null Island is getting bigger, giving me flashbacks of the guy who claimed on Twitter: “Every time I’m drunk I make Missouri slightly larger on its Wikipedia page”. Just like the ever-growing Null Island, it was only a matter of time before too many people noticed it.

Constantly making things bigger on maps: a common compulsion (via Reddit)

Hopefully, the Null Islands we have now are big enough; we already have four different versions of Null Island circulating in the wild, let’s not add to the confusion.

To help clear things up, and to get a sense of the relative sizes of these four Null Islands, here is an interactive map showing the four Null Island shapes that are actually circulating in the wild. It includes the two Myst-inspired islands (the original 100 meter wide “smol” version and Nixta’s hypertrophied 10km wide follow-up), and the two Natural Earth rectangles (the 1 meter square and the 1km square) which give results in a pleasing homage to the classic Eames Office “Powers of Ten” video.

Try our interactive map yourself at stamen.github.io/null-island

Getting the data on the map

But back to adding Null Island to our Stadia Maps basemaps. After finding the correct file, there’s still the matter of how do we get it into the map? Our new basemap styles now hosted on Stadia were designed to use an unmodified copy of OpenStreetMap using the OpenMapTiles schema. For various reasons we didn’t want to tamper with this database and insert our own data for Null Island. The island, at least at the moment, doesn’t exist in OSM (or if it has been added to OSM in the past, it has since been deleted… which is probably for the best).  

Originally we considered including the Null Island GeoJSON with every request of the stylesheet. We could get the file down to 12KB, which is really quite small, and it was amusing to think that everyone who loaded the map would be downloading the shape of Null Island even if they were looking at some completely different part of the world. In the end, though, we didn’t go down this path, and instead decided to do things the “right” way. So now Null Island lives on in its own very small tile layer, which means your browser only loads it if you are looking at the exact right spot and the right zoom level to actually see it. This also means that if you’re making a Very Serious Map and you don’t want Null Island on it, we can remove it for you.

The raw Null Island tile data as seen in Maputnik’s Inspect view

Also, check out all those lovely name translations we have in the data! Those aren’t present in our original shapefile, because the old raster versions of Toner and Terrain were English-only, and it would have been prohibitively expensive to render separate world-wide raster layers to support additional languages. But as we wrote about in an earlier blog post, one of the fantastic things about modern vector-based web maps is that it’s easy to swap out the language on the client side, enabling users to view Toner or Terrain in any language they prefer. The OpenMapTiles schema already pulls every available language from OpenStreetMap, so if we wanted our Null Island shapefile to work in the same way, I needed to find the name of Null Island in as many languages as I could. One of the powerful ways that OpenStreetMap extends their multilingual coverage is by linking OSM features with their WikiData counterparts, so I figured I’d try the same thing with Null Island.

I was delighted to find that the WikiData entry for Null Island (there known as item “Q16896007”) contained dozens of translations of Null Island in other languages. In some cases, other languages just use the English word, which is no fun, but there are still plenty that do not. So if you ever wanted to learn the name of Null Island in Breton, Hungarian, or Igbo (or in constructed languages like Esperanto and Lojban) now you can. Or even better, you could easily make the first-ever map to show Null Island labeled in Macedonian. Give it a try!

Multilingual support for Null Island in WikiData

Digital signposts and virtual journeys

WikiData is a fascinating project if you’re a data nerd like me (and if you’ve read this far, well…) not only because of the way it provides connections between different languages on Wikipedia, but also how it connects diverse open data projects together. By giving a unique numeric identifier to every Wikipedia page (including structured information about how each concept relates to other concepts) it’s like a trail of breadcrumbs that we can follow from idea to idea, and from virtual place to virtual place. But even these identifiers get broken and corrupted sometimes, perhaps leading you to the wrong page, much like corrupted geographic coordinates lead you to Null Island. (Also let’s take a moment for the unfortunate souls named “Null”, who have their own set of problems where databases refuse to recognize their name is real).

Browsing the metadata identifiers for Null Island listed in WikiData, we see appropriately enough that in the Where On Earth ID database (a project similar to WikiData, but only for geographic places) ID number 0 takes you to Null Island. While “Where On Earth” no longer exists, in its successor project “Who’s On First” Null Island has an ID of 1 (because they wanted to assign ID 0 to the planet Earth). Personally, I’m a bit disappointed that the WikiData identifier for Null Island (Q16896007) is so meaningless, while The Universe is “Q1”, Earth is “Q2”, and some other entries have appropriately silly Easter Eggs like author Douglas Adams as Q42. C’mon WikiData, ID “Q0” is just sitting there, unused. Can we redirect Null Island there? If any Wikipedians can help me with that, please get in touch!

The WikiData page also includes links to Null Island’s identifier on several other platforms, such as Instagram! So if you’re curious about any Instagram photos tagged at Null Island (whether or not, most likely not, the photo’s GPS coordinates are actually at 0º, 0º), you can browse them here: https://www.instagram.com/explore/locations/634174294/ On Instagram, the place name tagged on a photo doesn’t necessarily have to be the place the photo is taken (or where the GPS coordinates of the photo say they are), and in this case even the place named “Null Island” appears to be located somewhere in the suburbs of Southwest Philadelphia.

Recent photos on the place page for “Null Island” on Instagram

This feels like we’ve come full circle: Null Island has become such a phenomenon that people are deliberately tagging their photos at a place called “Null Island” just for fun. There’s no easy way to tell if the deliberate check-ins at this fake “Null Island” place outweigh the number of photos tagged erroneously at “0º, 0º” (that is, whether the simulacra of Null Island has overtaken the original “real”, but also “fake”, Null Island). 

If you really want to get your photos to Null Island so badly, you could always set up a GPS spoofing device to truly trick your phone into thinking it is at Null Island, as artist Simon Weckert did in a 2022 installation in Ljubljana

A phone showing its location at Null Island at Simon Weckert’s installation in the Aksioma Institute for Contemporary Art in Ljubljana

Finally, though, there is no substitute for actually going to Null Island, even if it does seem to me like missing the point. If you look closely at some of those Instagram photos, it appears that at least one cruise ship visited Null Island recently on a world tour. It’s even listed as a destination on Holland America cruises. But did any of those cruise passengers really visit the spot? The only real evidence of visiting Null Island is if they saw the weather buoy tethered at 0º, 0º, but there is a five nautical mile exclusion zone around that spot to prevent damage to the buoy. That would seem to prevent any cruise ships or other tourists from visiting. To officially go to 0º, 0º you must be part of the maintenance crew there to check on the buoy. Visiting Null Island is Very Serious Business.

A visit to the Null Island Buoy by Pål Torsgård on Instagram, on the ship MOU Island Constructor

In any case, it’s clear that Null Island is here to stay, no matter how you choose to visit it. And we’re pleased that for the foreseeable future, Null Island will survive on our basemaps, thanks to our friends at Stadia Maps.

UPDATE!

It has been brought to my attention by Arne Johannessen on Mastodon that the buoy at Null Island no longer exists! The buoy, officially named “13010 Soul”, was part of the “PIRATA” array of buoys in the Atlantic Ocean, specifically of the “ATLAS” type. According to this NOAA document, the ATLAS buoys were gradually being converted to an improved “T-Flex” type, and during this process they retired the buoy at 0º, 0º. Perhaps coincidentally, at around the same time a new ATLAS buoy showed up at 0º, 3ºW, about 300 kilometers to the west. So possibly this is the same buoy that was at Null Island, just relocated and renamed as “15009”.

We can also visit NOAA’s map of weather buoys, which still shows 13010 Soul, but styled with a red marker which indicates “Stations with no data in last 8 hours”. When we click through to the page for 13010 Soul, which is supposed to display recent weather readings from the buoy, in fact we see that there has been no data in the past 45 days. If we check the Internet Archive’s database for older versions of the 13010 Soul web page, we see that the live data disappears sometime shortly after March 2021, which matches up with NOAA’s information that 13010 Soul was decommissioned that March.

If the Null Island Buoy is truly gone, that explains why recent visits by cruise ships have been unable to find it. We will miss you, Null Island Buoy. You will not be forgotten!

R.I.P. Null Island Buoy (with credit to the original buoy drawing by Ekta Daryanani)

UPDATE #2:

The OpenStreetMap feature for the Null Island Buoy is now marked as “disused“, thanks to OSM contributor Pieter Vander Vennet.

About Stamen

Stamen is a globally recognized strategic design partner and one of the most established cartography and data visualization studios in the industry. For over two decades, Stamen has been helping industry giants, universities, and civic-minded organizations alike bring their ideas to life through designing and storytelling with data. We specialize in translating raw data into interactive visuals that inform, inspire and incite action. At the heart of this is our commitment to research and ensuring we understand the challenges we face. We embrace ambiguity, we thrive in data, and we exist to build tools that educate and inspire our audiences to act.