What weather services have APIs? Out of the handful or so, which ones are easiest to tie into? Do they use "raw" HTTP requests or web services? Are there wrapper APIs for Python, .NET, Java, etc. Which have you had the best experience with?
weather underground has xml api, i haven't used it, but judging by their website the service is quite useful in general.
- The National Weather Service has a SOAP Web service.
- Yahoo has a weather RSS feed.
- Animaonline is a weather API powered by Google. There are code samples and tutorial links on the project page, but I found another tutorial here.
Update:
ProgrammableWeb is currently listing 13 weather APIs in their directory.
There is a project at Sourceforge called "PHP Weather" that makes use of METAR-data in a neat way.
The Weather Channel also provides a web based API that allows searching by city or zip code. IIRC, it was pretty straightforward to use.
PyMETAR is a python-based API that fetches and decodes METAR (text-based aviation weather) reports. I enjoy using it for my projects.
http://www.schwarzvogel.de/software-pymetar.shtml
METARs give temperature, dew point (humidity), wind, current conditions (rain, snow, fog, sunny), atmospheric pressure, etc.
Note that METARs do not include forecast information; TAFs are used for this. But PyMETAR does not handle TAFs.
Accuweather have an API similar to HAMweather (i.e. XML files over HTTP or FTP) but again it's not free and you'll need to contact them for information/pricing
Not sure if it was just free services that you were after? Free data (except NOAA) usually means that you can only use it on free sites: no subscriptions or even Google ads! It's usually quite basic (although fine for general use). Commercial-use data is more expensive and the providers don't tend to be very open about pricing etc. I've also found several sites claiming to provide commercial weather data who don't reply to contact emails. Very few data providers provide or support any programming libraries and generally just provide an XML, CSV or plain text data file -- though third-party libraries exist.
HAMweather have a raw data service, although it's not free. They provide an XML file in response to a simple HTTP call. They also provide a database dump of place names (so you can build a browseable interface) or you can query by long/lat and they support international locations. There's a Ruby api available on github (third-party, I haven't used it) and I'm sure there are other examples out there (I can't post more than one link)
HAMweather also have a PHP-based library ("HAMweather 3") for retrieving / displaying weather forecasts (free, with some conditions). The website is quite lacking in information but ping them an email and they can provide examples, pricing, documentation etc (I'm only a user of their services).
I would suggest Wunderground It is free and the basic set of API that they provide is simple to use and developer friendly.
I have developed one Weather Forecast application based on their API for Android- http://code.google.com/p/cityweather/
Radarmatic has a JSON API for doppler radar base reflectivity data: http://radarmatic.com/api.html