RECENT POST

TOP POST

Creating a Historic Weather Dashboard With a Weather API

by | Sep 22, 2023

Many apps and websites today integrate weather data, from news sites to e-commerce platforms. Presenting this weather data in a weather dashboard significantly enhances the user experience. This is because a weather dashboard is visually appealing and makes the weather data easy to understand. We can present different types of weather data in a weather dashboard, such as real-time, historical, and weather forecast data. This data is of great use to businesses operating in different sectors, weather analysts, etc. For example, the agriculture sector can use historical weather data to plan future farming seasons, optimize irrigation schedules, and determine crop harvest timings. 

But how do you easily create a weather dashboard that displays accurate historical weather data? A reliable historic weather API is the answer.

A good weather API makes it simpler and easier to create a weather dashboard that shows historical weather information for any chosen date range.

In this article, we’ll:

  • Discuss the use cases of historic weather data
  • Explore leading weather APIs that provide accurate historical data
  • Provide a step-by-step tutorial for building a weather dashboard with a historic weather API

Why Historical Weather Data is Important?

Historical weather data is of great importance. It enables us to examine and understand past weather conditions, helping businesses make effective future plans and managing risks. 

Here are some popular uses cases of historical weather data:

Use cases of historical weather data

Climate Change Analysis

The most popular use case of historical weather data is its use in long-term climate change analysis. This data includes weather conditions such as natural events, temperature, precipitation, and wind that have occurred in the past years. 

These analyses help businesses and analysts understand long-term climate trends and predict future climate changes.

Agriculture

The agricultural sector is an area where weather conditions have a major impact on product productivity and quality. Historical weather data is used to plan future farming seasons, optimize irrigation schedules, and determine crop harvest timings by analyzing weather conditions in past years.

Energy Management and Planning

The efficiency of renewable energy sources such as wind and solar energy depends on weather conditions. Historical weather data can help evaluate the performance of these energy sources and optimize energy production. 

This data is also used to forecast electricity demand and plan energy supply.

Travel and Tourism

Weather is one of the most important factors when making holiday plans. Historical weather data helps tourists make their travel plans by analyzing the weather conditions of a particular region for a particular period.

Popular Historical Weather Data APIs

an illustration of historical weather API

With the increase in the importance and use of historical or past weather data, more and more historical weather data APIs are now available for developers to integrate historical weather data into their apps/websites.  

Among many options available in the market, weatherstack API is one of the most reliable APIs. The API provides highly accurate historical weather data all the way back to 2008 for millions of locations worldwide. 

With weatherstack historical weather API, you can retrieve data for a particular date or multiple dates simultaneously for a specific location. In addition, the API enables developers to customize their queries with many optional parameters. Thanks to all these features, weatherstack is preferred by giant companies such as Microsoft, Warner Bros, and Ericsson today.

Weatherstack also supports real-time and weather forecast data. Plus, it’s super easy to integrate into web apps and has detailed documentation to ease the integration process for developers.

Some other popular APIs that provide historical weather data include

For a more detailed comparison of weather APIs, check out this article: 6 best weather APIs of 2023!

Step-by-Step Guide to Creating a Historical Weather Dashboard in a Web App

In this section, we will develop a very useful and stunning weather dashboard that provides historical data using the weatherstack historical weather API. 

We will develop our application using HTML, CSS, and JavaScript.

Learn how to visualize global weather data in Python.

Obtaining Historical Weather API Key

Before we start developing the application, we need to obtain the weatherstack API key.

To do so, you first need to sign up and create your account. While weatherstack offers a free plan, it only supports real-time updates. So, you must subscribe to one of the paid subscription plans to retrieve historical weather data.

Once you’ve successfully created your account, you can obtain your unique API key in your weatherstack dashboard. You’ll need this API key to make an API call and get historical weather data.

Creating the Weather App

After obtaining the API key, let’s create an HTML file and put the following code in this file:

<!DOCTYPE html>
<html>
<head>
  <title>Historical Weather Dashboard</title>

  <style>
body {
  font-family: "Montserrat", sans-serif;
  text-align: center;
  padding: 100px;
}

.weather {
  perspective: 1000px;
}

.weather_dashboard {
  width: 340px;
  margin: 0 auto 1%;
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}

.dashboard-header {
  text-align: center;
  position: relative;
  overflow: hidden;
  height: 215px;
  padding-bottom: 40px;
  background-color: aliceblue;
}

.header-temperature {
  position: absolute;
  z-index: 200;
  text-align: center;
  font-size: 42px;
  left: 50%;
  transform: translateY(1px) translateX(-50%);
  text-shadow: 1px 1.732px 3px rgba(0, 0, 0, 0.2);
}

.hour {
  position: absolute;
  z-index: 200;
  text-align: center;
  font-size: 22px;
  font-weight: light;
  left: 50%;
  transform: translateY(-48px) translateX(-50%);
  text-shadow: 1px 1.732px 3px rgba(0, 0, 0, 0.2);
}

.main-content {
  position: relative;
  padding: 10px 0;
  text-align: left;
  left: 0;
  width: 100%;
  bottom: 0;
  transition: bottom 0.3s;
  background: white;
  box-shadow: 0px -3px 10px 0px rgba(0, 0, 0, 0.2);
  display: table;
}

.weather-column {
  padding: 0 0 20px;
  display: table-cell;
  text-align: center;
  opacity: 0.5;
  transition: all 0.3s;
  cursor: pointer;
}

.is-active {
  opacity: 1;
  transition: all 0.3s;
}

.day {
  text-transform: uppercase;
  font-weight: bold;
  font-size: 20px;
  margin: 10px 0 0;
}

.temperature {
  margin: 5px 0 0;
}

.weather-desc{
  position: fixed;
    margin-top: -58px;
    font-size: 22px;
    transform: translateY(160px) translateX(-50%);
    text-shadow: 1px 1.732px 3px rgba(0, 0, 0, 0.2);
    left: 50%;
}

.location{
  font-size: 30px;
}
  </style>

</head>
<body>
  <div class="weather">
    <section class="weather_dashboard">
      <article>
        <header class="dashboard-header">
          <p id="location" class="location" ></p>
          <p id="weather_description" class="weather-desc"></p>
          <h1 id="temperature" class="header-temperature"></h1>
          <p id="hour" class="hour"></p>
        </header>
        <main class="main-content">
        </main>
      </article>
    </section>
  </div>

<script>
 const apiUrl = "http://api.weatherstack.com/historical?access_key=YOUR-API-KEY&query=New York&historical_date_start=2023-08-10&historical_date_end=2023-08-14";
        fetch(apiUrl)
          .then(response => response.json())
          .then(data => {
            const current = data.current;
            // Update header elements with API data
            document.getElementById("hour").textContent = current.observation_time;
            document.getElementById("temperature").textContent = `${current.temperature}°C`;
            document.getElementById("weather_description").textContent = current.weather_descriptions[0];
            document.getElementById("location").textContent = data.location.name;
      
            // Fill in historical data
            const historicalData = data.historical;
            const mainContent = document.querySelector(".main-content");
      
            for (const date in historicalData) {
              const historicalInfo = historicalData[date];
              const dayOfWeek = new Date(date).toLocaleDateString('en-US', { weekday: 'short' });
      
              const weatherColumn = document.createElement("article");
              weatherColumn.classList.add("weather-column");
              
      
              weatherColumn.innerHTML = `
                <span class="weather-symbol"></span>
                <p class="day">${dayOfWeek}</p>
                <p class="temperature">${historicalInfo.avgtemp}°</p>
              `;
      
              mainContent.appendChild(weatherColumn);
            }

            // Fill in current date
            const dateParts = data.location.localtime.split(' ')[0]
            const formattedDate = `${dateParts[2]}-${dateParts[1]}-${dateParts[0]}`;
            const dayOfWeek = new Date(dateParts).toLocaleDateString('en-US', { weekday: 'short' });

            const weatherColumn = document.createElement("article");
            weatherColumn.classList.add("weather-column");
            weatherColumn.classList.add("is-active");
      
            weatherColumn.innerHTML = `
              <span class="weather-symbol"></span>
              <p class="day">${dayOfWeek}</p>
              <p class="temperature">${current.temperature}°</p>
            `;
    
            mainContent.appendChild(weatherColumn);
          })
          .catch(error => console.error("Error:", error));
 </script>
</body>
</html>

With this application, we will use the historical endpoint of the weatherstack API with the date range. The weatherstack API also provides current weather data at the historical weather data endpoint. 

For this, we added the days before today while specifying the date range in the weatherstack API. Before running this application, replace ‘YOUR-API-KEY’ with your own API key and run the application.

The historical weather dashboard we get after running the application is as follows:

weather data from the weatherstack historical weather API

Read: How to Create a Great Weather Dashboard With a Weather API – Part 1 (Current Weather)

Read: How to Create a Great Weather Dashboard With a Weather API – Part 3 (Weather Forecast)

Read: How to Create a Great Weather Dashboard With a Weather API – Part 4 (Current, History, Forecast)

Conclusion

To sum up, historical data can be used for various purposes, from climate change analysis and agricultural planning to energy management and construction projects. This data offers businesses a valuable perspective on their decision-making processes. Creating a functional and information-filled weather dashboard using a reliable historical weather API like weatherstack can significantly enhance the user experience, and users understand the weather data better.

In this article, we’ve provided a step-by-step tutorial on creating a historic weather data dashboard using weatherstack historical weather API.

Sign up for weatherstack and quickly get historical data up to 2008!

FAQs

What is the historical weather database API?

A historical weather API enables developers to integrate historical weather data into their apps. This data can include various meteorological parameters, such as temperature, humidity, precipitation, wind speed, and more. These APIs provide different types of historical data, such as hourly historical data.

Is there any free API for weather?

Weatherstack is a reliable free weather API that offers a free plan supporting real-time weather data. Weatherstack also offers various premium plans providing historical data and future weather conditions.

What is the best accurate weather API?

Weatherstack is the best weather API known for its high accuracy and efficiency. The API provides real-time and historical data as well as weather forecasts.

Some of other popular historical weather APIs include:

  • OpenWeatherMap API
  • Aeris Weather API
  • Tomorrow.io API

Blog focus KW: historical weather api

Blog focus KW: historical weather api

CTA - APILayer API Marketplace - Sign-Up Free