Skip to content

Built in Jupyter Notebook using Python, Pandas, Matplotlib, and Numpy. This builds on the idea that weather is warmer at the equator and breaks down the data comparing different environmental factors.

Notifications You must be signed in to change notification settings

GitJudd/Plotting_API_Data

Repository files navigation

Python API - Proving Data

Background

Data's true power lies in its ability to answer questions definitively. Use Python requests, APIs, and JSON traversals to answer a fundamental question: "What's the weather like as we approach the equator?" The obvious answer is "It gets hotter..." but we want to prove it.

Note: If you would like to run the included Jupyter Notebook files, you will need to provide your own API keys for OpenWeatherMap API and Google API.

Also, if you having trouble displaying the maps try running jupyter nbextension enable --py gmaps in your environment and retry.

Part I - Prove it!

  • Create a Python script to visualize the weather of 500+ cities across the world of varying distance from the equator using simple Python library and the OpenWeatherMap API to create a representative model of weather across world cities.

  • Create 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
  • Run linear regression on each relationship, only this time separating them into Northern Hemisphere (greater than or equal to 0 degrees latitude) and Southern Hemisphere (less than 0 degrees latitude):
  • Northern Hemisphere - Temperature (F) vs. Latitude
  • Southern Hemisphere - Temperature (F) vs. Latitude
  • Northern Hemisphere - Humidity (%) vs. Latitude
  • Southern Hemisphere - Humidity (%) vs. Latitude
  • Northern Hemisphere - Cloudiness (%) vs. Latitude
  • Southern Hemisphere - Cloudiness (%) vs. Latitude
  • Northern Hemisphere - Wind Speed (mph) vs. Latitude
  • Southern Hemisphere - Wind Speed (mph) vs. Latitude
  • Randomly select at least 500 unique (non-repeat) cities based on latitude and longitude.

  • Perform a weather check on each of the cities using a series of successive API calls.

  • Include a print log of each city as it's being processed with the city number and city name.

  • Save a CSV of all retrieved data and a PNG image for each scatter plot.

Part II - Plan a Vacation

  • Create a heat map that displays the humidity for every city from the Part I.

    heatmap

  • Narrow down the DataFrame to find the ideal weather condition. For example:

  • A max temperature lower than 80 degrees but higher than 70.
  • Wind speed less than 10 mph.
  • Zero cloudiness.
  • Drop any rows that don't contain all three conditions.
  • Use Google Places API to find the first hotel for each city located within 5000 meters of the coordinates.

  • Plot the hotels on top of the humidity heatmap with each pin containing the Hotel Name, City, and Country.

    hotel map

As final considerations:

  • Must be completed in Jupyter notebook.
  • Must use the Matplotlib or Pandas plotting libraries.

Considerations

  • Must be completed in Jupyter notebook.

  • Must use the Matplotlib or Pandas plotting libraries.

  • Remember that each coordinate will trigger a separate call to the Google API.

    Screenshots and Comparisons


API Calls Convert to Dataframe
API Call Convert to DF

Sample Plots by Latitude Last image is Clouds vs Humidity
Lat vs Temp Lat vs Feels Like
Lat vs Humidity Lat vs Clouds
Lat vs Wind Cloud vs Humidity

Linear Regression (Northern Hemisphere) Linear Regression (Southern Hemisphere)
Lin Reg Lin Reg
Lin Reg Lin Reg
Lin Reg Lin Reg
Lin Reg Lin Reg

Final Export/Hotel Destinations

API Call

About

Built in Jupyter Notebook using Python, Pandas, Matplotlib, and Numpy. This builds on the idea that weather is warmer at the equator and breaks down the data comparing different environmental factors.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published