Skip to content

bhavinidata/Weather-Analysis

Repository files navigation

Weather Analysis as we approach to equator

A Python script to visualize the weather of 500+ cities across the world of varying distance from the equator. To accomplish this, simple Python library, and the OpenWeatherMap API have been used.

Objectives

To build a series of scatter plots to showcase the following relationships:

  • Temperature (F) vs. Latitude
  • Humidity (%) vs. Latitude
  • Cloudiness (%) vs. Latitude
  • Wind Speed (mph) vs. Latitude

This project:

  • Randomly selects at least 500 unique (non-repeat) cities based on latitude and longitude.
  • Performs a weather check on each of the cities using a series of successive API calls.
  • Includes a print log of each city as it's being processed with the city number and city name.
  • Saves both a CSV of all data retrieved and png images for each scatter plot.
  • Includes a written description of three observable trends based on the data.

Observations:

  • Temperature is more near the equator, as we go far from equator, temprature decreases.
  • Humidity is more in north side of equator.
  • Windspeed is more in north side of equator.
  • There is no relation between Coudiness and Latitude

Web Visualization Dashboard

Background

Data is more powerful when we share it with others! Let's take look by creating a dashboard showing off the analysis that has been done above.

Images/landingResize.png

Latitude - Latitude Analysis Dashboard with Attitude

Created a visualization dashboard website using visualizations. Specifically, weather data has been plotted.

In building this dashboard, created individual pages for each plot and a means by which we can navigate between them. These pages will contain the visualizations and their corresponding explanations. There is a landing page, a page where we can see a comparison of all of the plots, and another page where we can view the data used to build them.

The website consists of 7 pages total, including:

  • A landing page containing:
    • An explanation of the project.
    • Links to each visualizations page.
  • Four visualization pages, each with:
    • A descriptive title and heading tag.
    • The plot/visualization itself for the selected comparison.
    • A paragraph describing the plot and its significance.
  • A "Comparisons" page that:
    • Contains all of the visualizations on the same page so we can easily visually compare them.
    • Uses a bootstrap grid for the visualizations.
      • The grid must be two visualizations across on screens medium and larger, and 1 across on extra-small and small screens.
  • A "Data" page that:
    • Displays a responsive table containing the data used in the visualizations.
      • The table must be a bootstrap table component.
      • The data must come from exporting the .csv file as HTML, or converting it to HTML. Try using a tool you already know, pandas. Pandas has a nifty method approprately called to_html that allows you to generate a HTML table from a pandas dataframe. See the documentation here

The website has a navigation menu that:

  • Has the name of the site on the left of the nav which allows users to return to the landing page from any page.
  • Contains a dropdown on the right of the navbar named "Plots" which provides links to each individual visualization page.
  • Provides two more links on the right: "Comparisons" which links to the comparisons page, and "Data" which links to the data page.
  • Is responsive (using media queries). The nav must have similar behavior as the screenshots "Navigation Menu" section (notice the background color change).

Finally, the website to GitHub pages. https://bhavinidata.github.io/Web-Design-Challenge/

Screenshots

This section contains screenshots of each page that must be built, at varying screen widths. These are a guide; you can meet the requirements without having the pages look exactly like the below images.

Landing page

Large screen: Landing page large screen

Small screen: Landing page small screen

Comparisons page

Large screen: comparison page large screen

Small screen: comparison page small screen

Data page

Large screen: data page large screen

Small screen: data page small screen

Visualization pages

You'll build four of these, one for each visualization. Here's an example of one:

Large screen: visualize page large screen

Small screen: visualize page small screen

Navigation menu

Large screen: nav menu large screen

Small screen: nav menu small screen