In [1]:
import numpy as np
In [2]:
import pandas as pd
pd.__version__
Out[2]:
In [3]:
url = "https://en.wikipedia.org/wiki/List_of_national_parks_of_the_United_States"
df = pd.read_html(url, header=0)[0]
df.head()
Out[3]:
In [4]:
locations = df['Location'].str.extract(u'(\D+) (\d+°\d+′[NS]) (\d+°\d+′[WE]).*')
locations.columns = ['State', 'lat', 'lon']
locations['lat'] = locations['lat'].str.replace(u'°', '.')
locations['lon'] = locations['lon'].str.replace(u'°', '.')
locations.loc[locations['lat'].str.endswith('S'), 'lat'] = '-' + locations['lat']
locations.loc[locations['lon'].str.endswith('W'), 'lon'] = '-' + locations['lon']
locations['lat'] = locations['lat'].str.slice_replace(start=-2)
locations['lon'] = locations['lon'].str.slice_replace(start=-2)
locations[['lat', 'lon']] = locations[['lat', 'lon']].astype(float)
locations.head()
Out[4]:
In [5]:
df = pd.concat([df, locations], axis=1)
In [6]:
import cesiumpy
In [7]:
v = cesiumpy.Viewer()
for i, row in df.iterrows():
l = row['Recreation Visitors (2014)[5]']
cyl = cesiumpy.Cylinder(position=[row['lon'], row['lat'], l / 2.], length=l,
topRadius=10e4, bottomRadius=10e4, material='aqua')
v.entities.add(cyl)
v
Out[7]:
In [8]:
v = cesiumpy.Viewer()
for i, row in df.iterrows():
l = row['Recreation Visitors (2014)[5]']
p= cesiumpy.Point(position=[row['lon'], row['lat'], 0],
pixelSize=np.sqrt(l / 10000), color='blue')
v.entities.add(p)
v
Out[8]:
In [9]:
v = cesiumpy.Viewer()
pin = cesiumpy.Pin()
for i, row in df.iterrows():
l = row['Recreation Visitors (2014)[5]']
b = cesiumpy.Billboard(position=[row['lon'], row['lat'], 0], image = pin, scale=0.4)
v.entities.add(b)
v
Out[9]:
In [ ]: