# start with same libraries as vector tutorial
%matplotlib inline
from __future__ import (absolute_import, division, print_function)
import os
import matplotlib as mpl
import matplotlib.pyplot as plt
from shapely.geometry import Point
import pandas as pd
import geopandas as gpd
from geopandas import GeoSeries, GeoDataFrame
%run -i load_data.py
co2_data_table.head()
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.head(2)
f, ax = plt.subplots(1, figsize=(12, 6))
ax.set_title('co2 site locations')
world.plot(ax=ax, edgecolor='gray')
co2_geo_data_table.plot(ax=ax, marker='.', color='r')
ax.set_ylim([-90, 90])
ax.set_axis_off()
plt.axis('equal');
NA_co2_geo_data_table = co2_geo_data_table[co2_geo_data_table.Latitude.between(23, 90) &
co2_geo_data_table.Longitude.between(-131, -68)]
import folium
firstmap = folium.Map(location=[39.8283, -98.5795], tiles='Stamen Terrain', zoom_start=4)
for index, row in NA_co2_geo_data_table.iterrows():
iconcolor='blue'
# if row['Status'] == "major":
# iconcolor = 'darkred'
# elif row['Status'] == 'action':
# iconcolor = 'lightred'
marker = folium.Marker((row['Latitude'],row['Longitude']), popup="{}:{}".format(row['Reference'], row['Site Type']))
marker.add_to(firstmap)
firstmap
import folium
from folium.plugins import MarkerCluster
mymap1 = folium.Map(location=[39.8283, -98.5795], tiles='Stamen Terrain', zoom_start=4)
mcluster = MarkerCluster().add_to(mymap1)
for index, row in NA_co2_geo_data_table.iterrows():
folium.Marker(location=[row['Latitude'],row['Longitude']], popup=row.Reference).add_to(mcluster)
mymap1
import folium
from folium.plugins import MarkerCluster
mymap2 = folium.Map(location=[co2_geo_data_table['Latitude'].mean(),co2_geo_data_table['Longitude'].mean()],
tiles='Stamen Terrain', zoom_start=1)
mcluster2 = MarkerCluster().add_to(mymap2)
for index, row in co2_geo_data_table.iterrows():
folium.Marker(location=[row['Latitude'],row['Longitude']], popup=row.Reference).add_to(mcluster2)
mymap2
import folium
mymap3 = folium.Map(location=[co2_geo_data_table['Latitude'].mean(),co2_geo_data_table['Longitude'].mean()], tiles='Stamen Terrain', zoom_start=1)
mcluster3 = MarkerCluster().add_to(mymap3)
for index, row in co2_geo_data_table.iterrows():
iconcolor='blue'
if pd.isnull(row['CO2']): # no CO2 values
if pd.isnull(row['CO2 Flux.1']): # no CO2 values and no flux values
iconcolor = 'red'
marker = folium.Marker((row['Latitude'],row['Longitude']), popup="{}: no CO2 values".format(row['Site Type']),
icon=folium.Icon(color=iconcolor, icon='warning-sign'))
marker.add_to(mcluster3)
else:
iconcolor = 'blue'
marker = folium.Marker((row['Latitude'],row['Longitude']), popup="{}: CO2 flux =\n {} mg C m-2 d-1".format(row['Site Type'], row['CO2 Flux.1']),
icon=folium.Icon(color=iconcolor, icon='info-sign'))
marker.add_to(mcluster3)
else: # CO2 values
if pd.isnull(row['CO2 Flux.1']): # CO2 values but no flux values
iconcolor = 'purple'
marker = folium.Marker((row['Latitude'],row['Longitude']), popup="{}: CO2 =\n {} micro-atm".format(row['Site Type'], row['CO2']),
icon=folium.Icon(color=iconcolor, icon='info-sign'))
marker.add_to(mcluster3)
else:
iconcolor = 'green' # both CO2 values and flux values
marker = folium.Marker((row['Latitude'],row['Longitude']), popup="{}: \n CO2 = {} micro-atm \n CO2 flux = {} mg C m-2 d-1".format(row['Site Type'], row['CO2'], row['CO2 Flux.1']),
icon=folium.Icon(color=iconcolor, icon='info-sign'))
marker.add_to(mcluster3)
mymap3