OpenWeatherMap API vs Wunderground API? - weather-api

I don't see a lot of information available comparing the weather APIs that are available. What is the difference between OpenWeatherMap and Wunderground. I see that the paid version of Wunderground has some higher tiers with more features, but OpenWeatherMap's free tier allows a huge number of uses.
Are there implementation tradeoffs that aren't obvious?

Here's a comparison of different weather forecast APIs:
7 Weather Forecast API for Developing Apps
It contains a comparison of the following:
Open Weather Map
AccuWeather
The Weather Channel
Dark Sky
APIXU Weather API
World Weather Online
Weatherbit.io
Here's the article text:
1. Open Weather Map
The OpenWeatherMap service provides free weather data and forecast API suitable for any cartographic services like web and smartphones applications.
Ideology is inspired by OpenStreetMap and Wikipedia that make information free and available for everybody.
OpenWeatherMap provides wide range of weather data such as map with current weather, week forecast, precipitation, wind, clouds, data from weather Stations and many others. Weather data is received from global Meteorological broadcast services and more than 40 000 weather stations.
You can receive any weather data for your application by using JSON / XML API
Price: Free (See pricing details)
API: http://www.openweathermap.com/API
2. AccuWeather
AccuWeather provides premium weather forecasting services worldwide. The AccuWeather API provides subscribers access to location based weather data via a simple RESTful web interface. Data is available in more than 40 languages and dialects. Data responses are returned in JSON and JSONP. SSL encryption is also available for secure communication.
Access to the AccuWeather API requires an API key. Contact sales#accuweather.com to receive an API key.
Update: AccuWeather now offers a new API Developer Portal for easier access of the API: https://developer.accuweather.com/
Price: Premium (Contact sales#accuweather.com)
API: http://api.accuweather.com/
3. The Weather Channel
The Weather Channel (weather.com) is an American satellite television channel providing weather forecast for more than 30 years. The Weather Channel and Weather Underground, Inc partnered to provide weather API with global coverage in 80 languages.
You can receive weather data for your application in JSON or XML. GIF, PNG or SWF format is also offered.
Price: Premium – Free 500 API calls per day for developing. (See pricing details)
API: http://www.wunderground.com/weather/api/?ref=twc
4. Dark Sky
The Dark Sky Company specializes in weather forecasting and visualization and they provide a developer friendly global weather forecast API with up to 1000 API calls per day for free.
The API uses a simple, JSON interface. Community-provided API wrappers enable you to integrate with just a couple lines of code.
You can use the API in both commercial and non-commercial applications. A credit with a “Powered by Dark Sky” badge is required wherever you display data from the API.
Price: Free for 1000 API calls daily, $1 per 10,000 API calls after that.
API: https://darksky.net/dev/
5. APIXU Weather API
APIXU provides a Weather API service in JSON and XML format. Their free plan has a limit of 5000 API calls per month.
They offer current weather information as well as 10 day forecast along with 30 days weather history in the free plan.
API libraries are available in all major programming languages such as C#, PHP, JAVA, Ruby, Python and JavaScript.
Price: Free for 5000 API calls monthly. Up-gradable (See Pricing)
API: https://www.apixu.com/api.aspx
6. World Weather Online
World Weather Online APIs provide a way to get local weather, historical local weather, ski and mountain weather and marine weather data. The APIs deliver weather information using standard HTTP/S requests in formats like XML, JSON and JSON-P.
They provide an API explorer for you to dive deep into their APIs. While their free plan is now discontinued, you can try their premium API for 60 days.
Code examples in all major programming languages is provided on their website, including VB.Net, PHP, Objective-C, C# etc.
Price: Premium with 60 day free trial (See Pricing)
API: https://developer.worldweatheronline.com/api/
7. Weatherbit.io
Weatherbit.io provides free weather API as well as historic weather data API. Their free plan allows 45 API calls per minute along with access to 30 days historic weather data and 5 day forecast at an update interval of 2 hours.
You would need to upgrade to a premium plan to get access to HTTPS API calls, as well to reduce the update interval to 10 mins. By upgrading you can also get access to hourly weather forecast and higher limit on API calls per minute.
Price: Free tier with premium upgrades (See Pricing)
API: https://www.weatherbit.io/api

I made small python script for WorldWeatherOnline historical weather data for my personal project. The result can be saved in pandas dataframe and csv files.
Install the package:
pip install wwo-hist
Import package
from wwo_hist import retrieve_hist_data
import pandas as pd
Example code
frequency=3
start_date = '11-DEC-2018'
end_date = '11-MAR-2019'
api_key = 'YOUR_API_KEY'
location_list = ['singapore','california']
hist_weather_data = retrieve_hist_data(api_key,
location_list,
start_date,
end_date,
frequency,
location_label = False,
export_csv = True,
store_df = True)
You can check it out here.
https://github.com/ekapope/WorldWeatherOnline

I've been searching for an accurate free weather API and came across this answer. A lot of people are recommending Dark Sky, which shut down their API after they were acquired by Apple. Also, Wunderground which is pretty accurate because of a huge number of weather stations recently shut down their free plan. There's a pretty good comparison of OpenWeatherMap and Wunderground and a few more on Reddit.

You can find a good comparison between most weather APIs
here.

Related

How to get artist, album, or track metrics from Spotify API, if possible

I have been looking into the Spotify API over the last few days, and it's not clear to me whether any of the following information is available:
For artists, either their stream counts or album sales or any other metrics that indicate how popular an artist is.
Same for albums and tracks, any indication of popularity of the album or track
Here's output from their /get-artist endpoint for Kanye West:
We only receive a followers count of 16011935, which I assume is their Spotify followers, and a popularity of 95 that appears to be on a 0 - 100 scale and is presumably derived from the followers metric. As far as metrics for albums are concerned, from their /get-album endpoint:
Here we receive a popularity for Kanye's Donda album, but no other metrics associated with the album. And from their /get-track endpoint, there are no metrics at all associated with the track.
Am I missing something? Going into this, I sort of assumed that the Spotify web API would have some additional metrics on artists, albums, and tracks, but perhaps not?
Unfortunately you're correct in your analysis, as in Spotify APIs do not directly give access to any kind of streaming metrics. Also note that the popularity is a dynamic metric which changes over time, not only related to follower counts. An alternative way to get some kind of streaming info would be to look at external data sources, such as last.fm, but of course this requires you to match the two APIs.

Azure Form Recognizer pricing

"I've got some questions about the Azure Form Recognizer pricing. The website says $50 per 1000 pages for the S0 Web custom document type. If I upload a 1000 page PDF but make 10 API calls on each page, will we be charged per API call to the uploaded document or based purely on the number of pages? So would we expect a $50 bill or a $500 bill for those 1000 pages?"
Well, I had this same doubt and drilled down a bit more to figure out that it is based on the number of pages you analyze using the API. So in your case, since, you are calling the API which is essentially analyzing the pages of the document, the bill would be $500.
However, it is always better to save the results and refer them later as with one model the result will always be the same for the same document/page.

How can I use the CEX REST API to place a market order?

The documentation for the CEX exchange's REST API is quite good but it only says how to place limit orders as far as I can tell. You have to specify the price at which you want to purchase, e.g. Bitcoin, what if I just want to pay whatever the market price is? I know how to use the requests module on python to interact with a REST API.

What sort of technologies were used to build NoHomophobes.com (real-time keyword tracker for Twitter)?

Do you think that they plugged directly into the Twitter API, or do they have some sort of backend which is what connects to the Twitter API directly instead? I didn't realize this kind of functionality was available to standard users.
Link: NoHomophobes.com
This site has a (short) piece about the technology used - it does seem like they're using the standard, public API:
"Using Twitter's API, tweets [...] were pulled, tracked and displayed
in real time
[...]
We couldn't simply pull every tweet ... A lot of research and testing
was conducted to determine which words and phrases to capture, as well
as what parameters the tweets had to follow in order to be funneled
onto the site"
Also, the site's own T&C's mention
This website contains a licensed real time display of Tweets
At a guess, they're effectively continually searching for certain terms in public tweets (as any Twitter client can do) and displaying the results.
Basically, the site uses the Twitter Streaming APIs which allow a persistent connection with Twitter. And as filtered tweets come through, it processes the data and delivers it to website users through web sockets via a 3rd party service called Pusher.

How to display weather using any weather website

I am supposed to develop an application in which I am supposed to display weather conditions. When I enter a city that time it should get connected to any weather site suppose weather.com, and display only the weather conditions like humidity, rainfall, temperature, etc that is all sorts of weather conditions. But it should not display the complete web-page.
We are supposed to work on SDK-3.0 - in which it shows us the model of mobiles and we have to code which will be implemented on that mobile model.
So how do I connect to internet? And later how will I display only the weather on the mobile of SDK, because internet always keep on changing its format?
I am completely new to J2ME+MIDlets, and this is my first application in j2me. I want to know the detailed procedure for how to do this.
You can use Yahoo Weather API.
Have in mind that Yahoo explicitly states that their API is for non-commercial use though.
To parse the RSS returned by the API I'd recommend an XML pull parser. You'll find more information on those here.

Resources