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.
-
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.
-
Create a heat map that displays the humidity for every city from the Part I.
-
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.
As final considerations:
- Must be completed in Jupyter notebook.
- Must use the Matplotlib or Pandas plotting libraries.
-
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.
API Calls | Convert to Dataframe |
---|---|
Sample Plots by Latitude | Last image is Clouds vs Humidity |
---|---|
Linear Regression (Northern Hemisphere) | Linear Regression (Southern Hemisphere) |
---|---|