top | item 17486110

Weather reports with curl

89 points| theptrk | 7 years ago |theptrk.com | reply

48 comments

order
[+] ternaryoperator|7 years ago|reply
> curl is a program that is included in your Mac OSX distribution used for transferring data from or to a server.

For newbies who might be misled, cURL is available on a ridiculous number of platforms[1]

[1] https://curl.haxx.se/download.html

[+] theptrk|7 years ago|reply
^ definitely right, I kind of write my blog as a peripheral extension of my brain so I forget there are other computers.
[+] gkya|7 years ago|reply
Nice! The http://wttr.in website shows a nice report too.

If you use emacs, I've made this [1][2] which gets its data from DarkSky.net.

[1] https://github.com/cadadr/elisp/blob/master/forecast.el

[2] https://raw.githubusercontent.com/cadadr/elisp/master/foreca...

[+] theptrk|7 years ago|reply
yeah interestingly enough, `wttr.in` uses `wego` which (according to their github) uses `forecast.io` as the default weather service, but if you click on the link, it forwards you to `darksky.net`. So you've built your own wttr.in
[+] samcheng|7 years ago|reply
My favorite text-based weather report is definitely the "discussion" product from the National Weather Service. It gives some perspective, instead of just the numbers. Importantly, it commonly has a discussion of forecast confidence/uncertainty.

If you read it long enough, you'll start to pick up some of the 'why' in the weather.

Here's an example:

https://forecast.weather.gov/product.php?site=NWS&issuedby=M...

I suppose you could curl it...

[+] craftyguy|7 years ago|reply
How stable is the output here? I noticed sections are delimited by '&&', and start with '.<SECTION TITLE>...'.

If it's stable, then it might be fun to write a cli client to query/display this..

[+] bionoid|7 years ago|reply
If you are delivering software or hardware products that include weather forecast, do not rely on anyone else's API directly. Build a wrapper service and direct your clients there.

As a particularly disasterous example, the Yahoo Weather API was unchanged for the longest time. Integrators worldwide deployed thousands - no probably millions - of systems using an unofficial "Yahoo Weather Module". It was the canonical solution.

Then they made a breaking change to the API and everyone cried.

[+] craftyguy|7 years ago|reply
On zsh, I had to surround the url in quotes since it (zsh) kept trying to handle the '?'
[+] Fnoord|7 years ago|reply
I like it (the usage of ascii chars to draw the weather, the usage of arrow for wind direction, the articulation on temperate with color)

The geolocation is off (as usual) because it uses the same DB as ipleak.net and others which is wrong for my (semi static) cable IPv4. I don't mind though, I just add some city.

It doesn't show well in a standard 80x25 terminal either, and that I do mind. That's my main issue with it.

So I ended up with:

n=0 ; while (( $n <= 72 )) ; date ; do curl wttr.in/~Amsterdam?0 ; sleep 1200 ; n=$(( n+1 )) ; done

Which grabs the weather every 20 min for 24 hours straight after which it has to be restarted. Not sure how it deals with laptop's suspend though.

watch -cn 1200 didn't work for me because while it does parse the ascii colors, it doesn't show them.

Since that hammers the servers though I'd write an alias for wttr.in/~Amsterdam?0 such as 'gcw' ("get current weather") or something like that.

Anyway, instead of having a dedicated terminal for this open (e.g. in Tmux) its probably better to queue for this every X minutes in Tmux statusbar as someone else suggested.

For now though I just use the KNMI application on Android though which gives a notification in the morning and evening about the weather (the evening one also describing the forecast for next day). Its basically as if watching the weather forecast on TV. I get the notification on my smartwatch as well (Pebble 2).

Also, this doesn't beat Android's Buienalarm push notification service which alerts you right before it is going to rain on current location plus locations you specified (home, work, family, etc)

[+] BurnGpuBurn|7 years ago|reply
To create the last bit you could use the Buienradar radar service at https://gps.buienradar.nl/getrr.php?lat=xx.xx&lon=yy.yy which is updated every five minutes and returns a table with precipitation predictions for the next two hours. To calculate how much it'll rain precisely use the formula 10^((value-109)/32) on the first column to get to mm/h (eg a value of 77 is equal to 0.1mm/h.) I assume this is just a couple of radars or perhaps just one in The Netherlands.
[+] danso|7 years ago|reply
Given that `curl` was initially created to make it easier to fetch currency rates for IRC, seems very apt for users to learn to use it for everyday things like checking the weather

https://youtu.be/Lq2ksox21Eg?t=6m11s

[+] emwjacobson|7 years ago|reply
Calling it on its own always returns the weather for Ottawa. Id expect it to use the requesting IP's location at the least. Using wttr.in/~LosAngeles returns the weather for "Rua Professora Maria Losângeles Navarro", a street in Brazil.
[+] opk|7 years ago|reply
It gives me the weather for "Italy, United States of America". So having got the country of Italy from the geolocation, it must then be doing a US-centric text search for the location.

The weather report is nice but doesn't work too well with rxvt-unicode or with a light-coloured background.

[+] sudosushi|7 years ago|reply
Mine returned Oymyakon, Russia. Nearly 8,000km from my location, or IP address geoloc. I'm assuming it's possibly picking up some hop in between, maybe?
[+] theptrk|7 years ago|reply
I have no idea how it parses text. `curl wttr.in/~LosAngelesCA` gave me an address in Russia `curl wttr.in/~LosAngeles,CA` gave me LA in California
[+] gkoberger|7 years ago|reply
For me, it used my IP and got the correct location.
[+] bkanber|7 years ago|reply
It found my correct location automatically.
[+] mongol|7 years ago|reply
Nice. But wind speed when expressed in SI units are more often expressed as m/s rather than km/h.
[+] Bromskloss|7 years ago|reply
> Notice that wttr is returning ASCII characters.

The wind arrows are not ASCII. Not that I have any trouble with that.

[+] theptrk|7 years ago|reply
oh no I think we maxed out the API calls. "Sorry, we are running out of queries to the weather service at the moment. Here is the weather report for the default city (just to show you, how it looks like). We will get new queries as soon as possible."
[+] swanlyk|7 years ago|reply
Can anyone suggest any other good curl-able datasets for other domain areas?
[+] theptrk|7 years ago|reply
The author also created “rate.sx” for bitcoin prices
[+] fergie|7 years ago|reply
Wow- the thunder animation is pretty cool
[+] rmbeard|7 years ago|reply
Worked beautifully for me. Love it.