The density and type of ads masks well presented information. I don't see the ads but am left unwilling to share links to the site where I sure would otherwise.
I agree, without reading your comment I thought the map fingerprints were linking to a tabloid weather report. I went back and realized the pages have very well developed interactive data visualizations.
Yeah, the ads are a double-edged sword. We've been running this site for... ten years? And for the longest time it languished with some Google Adsense ads on there, making enough to keep the servers running, but not enough to invest more effort in it.
Then we recently switched ad provider, and the site grew a bit as covid started easing up, revenue doubled with the potential for more, and boom it's worth it to invest in it again.
I don't like the ads. I'd rather offer the site without them. But without them the site wouldn't be up - I'd have to turn off the servers, and there wouldn't be a map of temperature fingerprints at all.
I really wish there were a better solution. But so far there just isn't.
I'm curious. What do the hosting costs & tech stack looks like? I'm assuming you're mostly just serving some static content & some server costs to generate the images periodically? Is there anything else?
Every page & image (they’re all embedded SVGs) is generated from scratch using raw data on every request - with the number of languages and units supported it gets quite unwieldy when pre-generating (we had a mediocre experience w that on statisticalatlas.com).
In order to render in a timely fashion the sections & graphs are rendered in parallel on a decent sized instance.
Typically 80-90% of our traffic is search engine bots crawling the site, which is not very amenable to caching. So even if we cached all user traffic the overall load wouldn't move much.
That said, it might make sense to cache to protect against load spikes on specific pages, but unfortunately those don't happen a whole lot.
hmm i wonder if a site like this would be a good candidate for cloudflare pages where bandwidth is unlimited (even though they have a 20K file limit). Then servers wouldn't need to serve any requests, and every time the source weather data is updated, you rebuild the files and push to cloudflare.
love the site despite the ads. who/what did you use for i18n?
Disclaimer: I work on Cloudflare Workers so I was thinking about how they might be able to drastically cut their costs.
Conceivably you could put up Cloudflare pages & put the assets behind a CDN with whatever TTL makes sense for how long the assets are expected to not expire for. I don't know how much that might save but certainly a cheap experiment to run.
If you wanted to experiment with a completely alternate architecture, generating them on-demand for each page's needs might be free/significantly cheaper on Cloudflare Workers. That might be a larger rewrite of the stack though and maybe worst case there are SVGs that take longer than 30s to fetch the underlying data + generate the graph.
That being said, I couldn't really tell which specific SVGs actually even needed to be generated realtime. It seemed like most of the assets would be largely ahead-of-time generated SVG w/ some localization that happens in the frontend but maybe the axis for the graphs/text within them are part of the SVG which could be something that's optimized by moving that out to HTML/JS land in the browser so that the underlying assets can have an improved cache efficiency. Certainly nothing on the front page seemed like it needed that since the map itself isn't localized & all of the heatmap summaries seem like they would be statically generated.
Not trying to push our products, just got nerd sniped by the problem.
We embed the assets in page to have the code for each section in one place - there's a lot of little logic & math to figure out the phrases (they're not just formatted numbers), and both the text & the graphs rely on the same source data so might as well do all the work while you've got the data right there.
It also allows us to serve the entire page in a single request, and the gzipping of the SVGs works really well (~7x).
Keep in mind that every single graph would need 15 languages * typically 2 units = 15-30 versions. And each page has 10-20 graphs. And you can view each location by year/season/month/day, and the stations have histories sometimes going back to the 40s with a page for every single day (not indexed by Google). Not to mention the comparisons - we have some 150k locations that can be compared up to 5 at a time.
The combinatorial explosion makes pre-gen unattractive, and producing each graph in a separate request would also increase both server load and developer headaches.
If we re-architected the site today I'd probably do client side rendering of the charts, but the dev cost of making that change now would so far exceed any gains that it's not even funny.
(To be clear, the by far biggest cost of the service is developer time, not hosting cost, sorry if I implied otherwise)
wow what a gross underestimate on my part for how big this project is.
is there somewhere i can read more? did you know it would cost this much before you started? was 15 languages just for completeness i can’t imagine ads paying that well in some markets
Nitpick: Changing the temperature unit does not automatically update the help modal (elsewhere is fine); it seems that a particular language is always associated with a particular unit.
I miss the old WeatherSpark visualization of past conditions and the future forecast.
They had a wonderful graph of various weather parameters in a nice slippy zoom interface that made it easy to visualize the forecast. It was built in Flash and they decided that a HTML version wasn't viable due to declining ad revenue.
Some appreciation and screenshots of the old version:
Yeah, those were good times indeed. I try not to think too much about just how many hours/days/weeks/months I spent writing creatively cached Flash graph drawing to get the silky smooth pan & zoom behavior the dashboard offered.
But while lord Google is amazing at indexing SEOd text content, they aren't (weren't?) very good at feeding traffic to a tool with effectively no text. How could they know it was a good way to view the forecast for San Francisco without having a dedicated weathespark.com/forecast/san_francisco page with a decent amount of text along the lines of "forecast", "ten day forecast", "temperature", "precipitation", "rain", etc?
We did try to do something like that but Google never picked it up - while many people loved the dashboard, as a fraction of overall forecast consumers it was probably quite tiny, so I can't say I blame them ;)
Searching for any recipe shows the same paperclip-maximizing-gone-amok do-not-want SEO trap: I don't care about some made-up story about how this ratatouille makes you think of summers at grandma's garden. That's all empty word-calories best left for the writers at pixar. Something truly revolutionary would be if google ranked recipe sites by higher recipe-to-fluff ratios.
Thanks for developing all the stuff at weatherspark. It's one of my favorite practical examples of compact visualization done right.
Thank you so much for that, I miss it terribly but understand that it wasn't worth the effort. It was beautiful while it lasted. (and this map is super cool too)
Congratulations on the new thing! I've loved Weatherspark ever since y'all were doing very innovative presentation back in 2013 or so.
One suggestion; have you tried re-centering Southern hemisphere calendars so summer is still in the middle? The "red dot in the middle" is such a clear pattern, no reason you couldn't have it in Australia too.
We've talked about it, but so far no, it messes with the x-axis a little too much (averages, history, compare, everything needs to work & line up across both time & northern/southern hemisphere, and what graph has two x-axes anyway!? ;) and while neat it's a little marginal from a substantive utility perspective?
Double agree with this suggestion - as I've split my life between hemispheres, weatherspark has been enormously useful for explaining relative climates to new and old friends, but I always have to edit the comparison graphs myself to put summer in the middle before sharing so you can actually compare the differences.
Same here. Funny enough they seem to have done the adjustment for the similar cities feature (“far-away foreign places with temperatures most similar”) but when you click to compare them the charts are all unadjusted.
* pop-up with location name when hovering over a fingerprint.
* adjust colours in temperature scale to personal taste. And/or adjust temperature range in each category (my freezing cold may be another person's chilly).
Absolutely. What happened to all the below-0 degrees of cold? -2°C is mushy, -10° is crispy, and then it gets very cold. It's important!
EDIT: now I see the last interval is just very large: -9°C to 0°C. Something around -5°C would work better, as this is roughly where the physical properties of the world change, because road salt stops working.
It's sad that official weather reports are centered around airports. I understand why it was easy to choose. Their locations tend to not represent the area of interest to most individuals. Lots of wide open spaces, no trees, etc. Seems like there could be a mobetta way of doing a centralized "official" way, but alas, it is what it is.
I do like the sites that gather/present data on a more granular level from interested parties installing weather gear like local schools, libraries, weather-nerds, etc.
This reminds me of “Temperature Blankets”. They seem pretty well known in knitting/crocheting world. Typically they’ll do a row or two of a color representing the weather for each day of the year.
My wife made one for the year 2020. It’s really neat looking at it and seeing how the weather fluctuated in and out the days and weeks. I think it would be so cool to have several for different important/notable years… but they can be so much work!
nice! I might like to apply this to a geodesic sphere, could be arbitrarily divisible, images could fill the faces instead of floating above the map in boxes.
This is so awesome, thank you! I've got friends in quite a few countries, and this in 20 minutes has told me more about what it's like where they live than I learned in the previous 10 years.
You wouldn't be able to visualize the impact of global warming with this data/representation. Global warming is roughly 1 degree celcius over the past couple hundred years, as a global average. This visualization only shows temperatures in 6 degree increments in specific locations. The historical data in many locations probably isn't even enough to capture that 1 degree average change, and there would be so much noise from "random" variations in local climates that there would be no way to accurately draw any conclusions from such a visual representation. If you want to see visualizations of the impact of global warming, I'd recommend the visualizations based on research-backed models on https://picturing.climatecentral.org/
Neat, but those visualizations seem like an unrealistic exaggeration for dramatic effect. I would assume that people would generally respond in some way to large scale flooding as they've done in the past, whether building levies or creating artificial land & rebuilding on top to try to stem the problem. Certainly an expensive endeavor that'll continue to create drastic inequalities across the globe & it'll create a lot of humanitarian crises, but it would genuinely surprise me that 10 years from now Google Earth images will actually look similar to these predictions even if we don't change our path.
I think the better way to message this is "here's the cost of what it'll cost your government to keep this city running over the next 10 years/here's how much money you'll lose if you don't start getting ready".
This is a really neat site! I've always wanted a feature that would show me areas with similar weather to a certain location (or allow me to draw my own graph to find).
You probably already know this, but crossing international time line stops rendering fingerprints on one side and starts rendering on another - can't seem to have both on screen.
Also - any chance to have this as a table? i.e. so you can find places with bestest weather? So far looking at map Sidi Ifni Airport stands out for some strange reason.
Finally the range at 18-24 degrees should be potentially more finely grained. The difference of 6 degrees is huge.
This is awesome! I can compare climates of my home to others in the world and see weather patterns all over. It's mind blowing. All though a visual medium rather than auditory (text is based on sound), which would be impossible to do the same. Or a lot harder. I think it's impressive.
This reminds me of an art installation at the university in Trondheim, Norway. It's using a glass ball as a lens to burn holes in a tin plate. Every year the tin plate is changed and displayed on the wall inside the university.
I like the way that this site lets you compare "pleasantness" of climates, e.g. humidity + temperature etc year round.
This makes me wonder, where in the world has the objectively "best" climate? Comfortable or warm all year round, not too humid, not too windy, lots of sun.
Very cool. Reiterate other's comments that mouse-over a fingerprint showing a hover would be great.
When clicking a fingerprint, the next page should prominently show the fingerprint, burying it in the page, especially when it isn't obviously a long scroll page, made it hard to find.
Please consider inverting "Spring" etc for Southern Hemisphere, as currently it has a _very_ Northern centric view of the world.
82 comments
[ 3.1 ms ] story [ 139 ms ] threadThen we recently switched ad provider, and the site grew a bit as covid started easing up, revenue doubled with the potential for more, and boom it's worth it to invest in it again.
I don't like the ads. I'd rather offer the site without them. But without them the site wouldn't be up - I'd have to turn off the servers, and there wouldn't be a map of temperature fingerprints at all.
I really wish there were a better solution. But so far there just isn't.
At least we don't do anti-ad-block ;)
(I'm one of the site creators)
In order to render in a timely fashion the sections & graphs are rendered in parallel on a decent sized instance.
That said, it might make sense to cache to protect against load spikes on specific pages, but unfortunately those don't happen a whole lot.
love the site despite the ads. who/what did you use for i18n?
Conceivably you could put up Cloudflare pages & put the assets behind a CDN with whatever TTL makes sense for how long the assets are expected to not expire for. I don't know how much that might save but certainly a cheap experiment to run.
If you wanted to experiment with a completely alternate architecture, generating them on-demand for each page's needs might be free/significantly cheaper on Cloudflare Workers. That might be a larger rewrite of the stack though and maybe worst case there are SVGs that take longer than 30s to fetch the underlying data + generate the graph.
That being said, I couldn't really tell which specific SVGs actually even needed to be generated realtime. It seemed like most of the assets would be largely ahead-of-time generated SVG w/ some localization that happens in the frontend but maybe the axis for the graphs/text within them are part of the SVG which could be something that's optimized by moving that out to HTML/JS land in the browser so that the underlying assets can have an improved cache efficiency. Certainly nothing on the front page seemed like it needed that since the map itself isn't localized & all of the heatmap summaries seem like they would be statically generated.
Not trying to push our products, just got nerd sniped by the problem.
[1] https://devclass.com/2021/04/14/cloudflare-goes-live-with-wo...
It also allows us to serve the entire page in a single request, and the gzipping of the SVGs works really well (~7x).
Keep in mind that every single graph would need 15 languages * typically 2 units = 15-30 versions. And each page has 10-20 graphs. And you can view each location by year/season/month/day, and the stations have histories sometimes going back to the 40s with a page for every single day (not indexed by Google). Not to mention the comparisons - we have some 150k locations that can be compared up to 5 at a time.
The combinatorial explosion makes pre-gen unattractive, and producing each graph in a separate request would also increase both server load and developer headaches.
If we re-architected the site today I'd probably do client side rendering of the charts, but the dev cost of making that change now would so far exceed any gains that it's not even funny.
(To be clear, the by far biggest cost of the service is developer time, not hosting cost, sorry if I implied otherwise)
is there somewhere i can read more? did you know it would cost this much before you started? was 15 languages just for completeness i can’t imagine ads paying that well in some markets
Yeah, it's a weird decision.
Google has indexed >40M pages on the site, so we'd need a little exception on that 20k limit ;)
They had a wonderful graph of various weather parameters in a nice slippy zoom interface that made it easy to visualize the forecast. It was built in Flash and they decided that a HTML version wasn't viable due to declining ad revenue.
Some appreciation and screenshots of the old version:
https://www.linkedin.com/pulse/sad-day-weatherspark-dashboar...
https://flowingdata.com/2011/03/14/weatherspark-for-more-gra...
https://www.reddit.com/r/weather/comments/4hkbq4/rest_in_pea...
https://www.glerl.noaa.gov/pubs/fulltext/2016/20160004.pdf - The interface was even noted in a NOAA paper.
But while lord Google is amazing at indexing SEOd text content, they aren't (weren't?) very good at feeding traffic to a tool with effectively no text. How could they know it was a good way to view the forecast for San Francisco without having a dedicated weathespark.com/forecast/san_francisco page with a decent amount of text along the lines of "forecast", "ten day forecast", "temperature", "precipitation", "rain", etc?
We did try to do something like that but Google never picked it up - while many people loved the dashboard, as a fraction of overall forecast consumers it was probably quite tiny, so I can't say I blame them ;)
Thanks for developing all the stuff at weatherspark. It's one of my favorite practical examples of compact visualization done right.
One suggestion; have you tried re-centering Southern hemisphere calendars so summer is still in the middle? The "red dot in the middle" is such a clear pattern, no reason you couldn't have it in Australia too.
(I'm one of the site creators)
While we are making suggestions, here's two more:
* pop-up with location name when hovering over a fingerprint.
* adjust colours in temperature scale to personal taste. And/or adjust temperature range in each category (my freezing cold may be another person's chilly).
EDIT: now I see the last interval is just very large: -9°C to 0°C. Something around -5°C would work better, as this is roughly where the physical properties of the world change, because road salt stops working.
I do like the sites that gather/present data on a more granular level from interested parties installing weather gear like local schools, libraries, weather-nerds, etc.
My wife made one for the year 2020. It’s really neat looking at it and seeing how the weather fluctuated in and out the days and weeks. I think it would be so cool to have several for different important/notable years… but they can be so much work!
It’s not available on the world map, but you can drill down to any year in any location we have data for.
I think the better way to message this is "here's the cost of what it'll cost your government to keep this city running over the next 10 years/here's how much money you'll lose if you don't start getting ready".
The interface says that these are predictions of sea level rise several centuries from now.
Also - any chance to have this as a table? i.e. so you can find places with bestest weather? So far looking at map Sidi Ifni Airport stands out for some strange reason.
Finally the range at 18-24 degrees should be potentially more finely grained. The difference of 6 degrees is huge.
https://www.trondheim.no/en/art/art-in-public-spaces/art-sun...
https://www.sfartscommission.org/our-role-impact/press-room/...
Best picture I could find: https://koro.no/content/uploads/2020/04/55-417x550.jpg (some of them not burned yet)
From the end of the long album here: https://koro.no/prosjekter/ntnu-trondheim-norges-teknisk-nat...
My favorite art installation in that building is a huge Foucault pendulum. Always had to wait for it to knock over a peg when walking past.
They are really worth checking out as I find some of them very useful.
[0]: https://cedarlakeventures.com/
This makes me wonder, where in the world has the objectively "best" climate? Comfortable or warm all year round, not too humid, not too windy, lots of sun.
https://weatherspark.com/y/147639/Average-Weather-at-Tenerif...
Doesn't seem to get much better according to weatherspark :)
https://weatherspark.com/y/145050/Average-Weather-at-Hilo-In...
When clicking a fingerprint, the next page should prominently show the fingerprint, burying it in the page, especially when it isn't obviously a long scroll page, made it hard to find.
Please consider inverting "Spring" etc for Southern Hemisphere, as currently it has a _very_ Northern centric view of the world.
Thanks!
Spring in Sydney is Sep-Nov: https://weatherspark.com/s/144544/0/Average-Spring-Weather-i...
But maybe you meant something else?
https://weatherspark.com/compare/s/0/23912~149466/Comparison...
This second link gives a better view
https://weatherspark.com/compare/y/23912~149466/Comparison-o...
[0]: https://weatherspark.com/compare/s/0/23912~149466/Comparison...
[1]: https://weatherspark.com/compare/s/0/149466~23912/Comparison...
We've added double-x-axis for comparisons to the todo-list.
EDIT: it can be changed at the top right
Maybe it depends on your location?