Testing Python map frameworks

  • Plotly
  • folium
  • basemap
  • Cartopy

In [1]:
%matplotlib inline

import os
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

# folium
import folium
print('folium:', folium.__version__)
#cartopy
import cartopy
import cartopy.crs as ccrs
from cartopy.io.img_tiles import OSM
print('cartopy:', cartopy.__version__)
#plotly
import plotly
plotly.offline.init_notebook_mode()
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
print('plotly:', plotly.__version__)
#basemap
from mpl_toolkits.basemap import Basemap


folium: 0.2.0.dev
cartopy: 0.13.0
plotly: 1.9.5

In [2]:
plt.rcParams['figure.figsize'] = (12, 10)

In [3]:
def haversine(lon1, lat1, lon2, lat2):
    # Distance between two points
    # assuming that the input is in WGS84 and is equivalent
    # to SIRGAS 2000
    lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])
    # haversine formula 
    a = np.sin((lat2 - lat1 )/2.)**2 + np.cos(lat1) * np.cos(lat2) * np.sin((lon2 - lon1)/2.)**2
    c = 2. * np.arcsin