RECENT POST

TOP POST

Weather Dashboard for Current, History, & Forecast Weather-Part 4

by | May 9, 2024

Weather dashboards are one of the most effective services we have seen in many applications and platforms recently. A weather dashboard provides its users with detailed data about the weather in a beautiful design. The data in weather dashboards is mostly taken from a weather API, which increases the user experience of many businesses a lot.

It is very important that a weather dashboard used by applications and platforms provides comprehensive data. In other words, it offers both past, current, and forecast weather data. A weather dashboard that provides comprehensive data has many advantages. In this article, we will talk about these advantages first. Then we will develop a comprehensive weather dashboard with today’s best weather API.

Weather applications for Snow track and contact work

What Are the Advantages of Comprehensive Weather Dashboards?

Comprehensive weather dashboards have many benefits for both businesses and users. Some of these are as follows:

  • Operational Effectiveness: Businesses should be aware of weather conditions when planning their day-to-day operations. Comprehensive weather dashboards can increase operational efficiency, especially by helping logistics and tourism businesses adjust their business processes according to weather conditions.
  • Advertising and Marketing: Weather conditions can affect consumer behavior. Restaurants, shops, or events can use weather forecasts to better engage their audience or plan their events using comprehensive weather dashboards.
  • Daily Planning: Individuals need weather information when planning their daily activities. Sometimes they even need historical weather data. These comprehensive dashboards can facilitate clothing, events, and travel planning by providing users with information on what weather conditions are expected during the day.
  • Agriculture and Gardening: Farmers and gardeners must manage their crops according to weather conditions. Comprehensive weather dashboards can help them optimize their farming operations such as planting, irrigation, and harvesting.

Why Is the weatherstack the Most Suitable API for Weather Dashboards?

The weatherstack global weather API is currently one of the most popular weather APIs in the market. There are many reasons why this API is preferred in the market by international companies such as Microsoft, Deloitte, and Warner Bros.

First of all, this weatherstack API provides its users with comprehensive weather-related data. It provides historical, current, and weather forecast data for millions of official locations around the world. The accuracy of the data it provides is quite high because it obtains its data from many official weather stations. It is seen as a valuable resource by many businesses because it provides historical data up to 2008. Therefore, it is also the best historical weather API on the market. The weatherstack API provides detailed information about weather data for any location. Wind speed, wind degree, pressure, humidity, and wind direction are just a few of them.

Meet the best weather API for Python!

Another reason why the weatherstack API is the most preferred weather conditions provider in the market is that it is a free weather API. It offers its users up to 1,000 API requests per month with the ‘Free’ plan. Also, the first of its paid plans is the ‘Standard’ plan which costs just $9.99 per month for 50,000 API requests.

home page of the weatherstack weather api

Create a Comprehensive Weather Data Dashboard in a Web App

In this part, we will develop a very comprehensive weather dashboard using the weatherstack API. We will develop this dashboard using HTML, CSS, and JavaScript.

Before developing the dashboard, we need to register for one of the subscription plans offered by the weatherstack to get an API key. This plan must be at least the ‘Professional’ plan.

Learn how to develop a global weather forecasting chatbot.

After the registration process, let’s put the following codes in the bit HTML file:

<!DOCTYPE html>
<html>

<head>
    <title>Weather Dashboard</title>
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
    <style>
        @import url(https://fonts.googleapis.com/css?family=Montserrat:400,700);

        html,
        body {
            background-color: teal;
            font-family: "Montserrat", sans-serif;
        }

        .weather-dashboard {
            margin: 0 auto;
            margin-top: 5%;
            padding: 5px 30px;
            width: 327px;
            height: 425px;
            border-radius: 3px;
            box-shadow: 1px 2px 10px rgba(0, 0, 0, .2);
            background-color: aliceblue;
        }

        h1 {
            float: right;
            color: #666;
            font-weight: 300;
            font-size: 6.59375em;
            line-height: .2em;
            padding-top: 33px;
        }

        .location {
            font-weight: 300;
            font-size: 2.25em;
        }

        .weather-description {
            float: left;
            color: #777;
            font-weight: 400;
            font-size: 1em;
        }

        .main-content {
            position: relative;
            left: -29px;
            width: 118%;
            bottom: -23px;
            transition: bottom 0.3s;
            background: white;
            display: table;
        }

        .weather-column {
            padding: 0 0 20px;
            display: table-cell;
            text-align: center;
            opacity: 0.5;
        }

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

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

        .weather-icon {
            position: relative;
            padding-top: 65px;
        }

        .weather-icon .sun {
            width: 90px;
            height: 90px;
            border-radius: 50%;
            background: #FFD53C;
            border: 3px solid #000;
            position: absolute;
            left: -12px;
        }
    </style>
</head>

<body>
    <div class="weather-dashboard">
        <h2 id="location" class="location"></h2>
        <h3 id="weather-description" class="weather-description"></h3>
        <h1 id="temperature"></h1>
        <div class="weather-icon">
            <div class="sun"></div>
        </div>
        <main class="main-content">
        </main>
    </div>
    <script>
        const apiKey = "YOUR-API-KEY";
        const historicalWeatherUrl = `http://api.weatherstack.com/historical?access_key=${apiKey}&query=Berlin&historical_date_start=2023-08-13&historical_date_end=2023-08-15`;
        fetch(historicalWeatherUrl)
            .then(response => response.json())
            .then(data => {
                const current = data.current;
                // Update header elements with API data
                document.getElementById("location").textContent = data.location.name;
                // Display weather description
                const weatherDescription = current.weather_descriptions[0];
                document.getElementById("weather-description").textContent = weatherDescription;

                document.getElementById("temperature").textContent = `${current.temperature}°`;

                // 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);
            })
            .then(
                data => {
                    // Fill in forecast data
                    const forecastWeatherUrl = `https://api.weatherstack.com/forecast?access_key=${apiKey}&query=New York&forecast_days=4&hourly=0`;
                    fetch(forecastWeatherUrl)
                        .then(response => response.json())
                        .then(jsonResponse => {
                            const forecast = jsonResponse.forecast;
                            const mainContent = document.querySelector(".main-content");
                            console.log(mainContent)
                            // Get today's date in the format "YYYY-MM-DD"
                            const todayDate = new Date().toISOString().split("T")[0];
                            for (const date in forecast) {
                                if (date !== todayDate) {
                                    const avgTemp = forecast[date].avgtemp;
                                    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">${avgTemp}°</p>
                                            `;

                                    mainContent.appendChild(weatherColumn);
                                }
                            }
                        })
                }
            )
            .catch(error => console.error("Error:", error));
    </script>

</body>

</html>

With this code, we provide a single weather dashboard with both historical, current and forecast weather data. You can dynamically update the icon in this dashboard according to the weather description. Let’s put our own API key in the ‘YOUR-API-KEY’ field and run the application.

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

comprehensive weather dashboard

Weather Dashboard: Conclusion

As a result, today’s comprehensive weather dashboards offer many advantages to users and businesses. These are advantages such as operational effectiveness, advertising and marketing, and daily planning. When the data in these dashboards is obtained from reliable weather APIs that provide comprehensive data, it directly increases user satisfaction.

Sign Up for free at Weatherstack API to get the latest weather updates with higher accuracy.

Weather Dashboard: FAQs

Q: What is the Importance of Historical Weather Data?

A: Historical weather data is very important in areas such as understanding past weather conditions, analyzing trends, climate change studies, and planning in many other sectors.

Q: Is the weatherstack API a Comprehensive Weather API?

A: Yes, the weatherstack API provides weather information with extensive data coverage. This information includes various information such as instant and forecast data, time zones, and geographical locations.

Q: What are the Use Cases of Weather Data?

A: Weather data is used in many fields such as agriculture, transportation, energy management, travel planning, security, and marketing; affects the daily lives of businesses and individuals.

Q: Does the weatherstack Weather API Provide Current and Historical Data for any Location?

A: Yes, the weatherstack weather API provides both instantaneous and historical weather data for millions of locations, offering a wide range of data regardless of geographic location.

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 2 (Historical Weather)

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

CTA - APILayer API Marketplace - Sign-Up Free