To visualize the data and the route maps, we'll be using micropip
with Pyodide, which brings the Python 3.9 runtime and the entire Python scientific data science stack to WebAssembly; as well as several other data analysis and geographic visualization libraries:
leaflet.js
map.To launch this notebook using github.dev
, simply press .
on your computer keyboard, or swap github.com
in your browser's URL to github.dev
. Dependent on the speed of your internet connection, running the cell below should take somewhere between 20-45 seconds.
import pyodide
import micropip
await micropip.install('plotly')
await micropip.install('folium')
import plotly.graph_objects as go
import pandas as pd
import folium
First we'll ingest the data describing train stops. The features included in this data set are straightforward: Latitude
and Longitude
for each of the stations, as well as Location
and Time
and Date
of when I'll be passing through.
df = pd.read_csv(pyodide.open_url('https://raw.githubusercontent.com/dynamicwebpaige/IRL-ticket-to-ride/main/data/train-stations.csv'))
stops = pd.read_csv(pyodide.open_url('https://raw.githubusercontent.com/dynamicwebpaige/IRL-ticket-to-ride/main/data/trip-stops.csv'))
# Segment out the Portland stops.
Portland = df.iloc[0:8]
Portland[['Time','Date','Location']]
Time | Date | Location | |
---|---|---|---|
0 | 7:22 | December 12, 2021 | Seattle, WA |
1 | 7:34 | December 12, 2021 | Tukwila, WA |
2 | 8:05 | December 12, 2021 | Tacoma, WA |
3 | 8:38 | December 12, 2021 | Olympia-Lacey, WA |
4 | 8:58 | December 12, 2021 | Centralia, WA |
5 | 9:38 | December 12, 2021 | Kelso-Longview, WA |
6 | 10:19 | December 12, 2021 | Vancouver, WA |
7 | 10:47 | December 12, 2021 | Portland, OR |
Beautiful!
The train that I'll be riding through these cities is called the Amtrak Cascades. Add some more details about the train, and about its history. If it has had any appearances in films or literature, list them here.
m = folium.Map(tiles="Stamen Terrain")
for i in range(0, 8, 1):
folium.Marker(
location=[df['Longitude'][i], df['Latitude'][i]],
popup="<b>" + df['Location'][i] + "</b>" + "<br><br>" + df['Date'][i] + "<br><br>" + df['Time'][i], icon=folium.Icon(color='orange', icon='train', prefix='fa')).add_to(m)
# Show the map again
m.fit_bounds(m.get_bounds())
m
City | Picture | Description |
---|---|---|
Seattle, WA | The train left bright and early on Sunday morning, from Seattle's very own King Street Station. I took the light rail to the Pioneer Street Station stop, and spent a few hours waiting for the train and reading up on the station's history. The tower that you see in the image to the left is 242ft (74m) tall, and -- at the time of construction -- was the tallest building in Seattle. It was modeled after a tower in Venice, Italy called St. Mark's Campanile, which had recently collapsed. |
|
Tukwila, WA | Beautiful station, with a piece of public art called Imaginary Landscape by Sheila Klein immediately outside it. The piece consists of planted red-twig dogwood shrubs, painted steel panels, and a steel "crown" atop the building. The station also has bike lockers! I wonder if there are any interesting trails nearby, or if people bike down from Seattle? |
|
Tacoma, WA | The Tacoma Dome is the largest wood-domed arena in the world, contructed with 1.6 million board feet (and it sure is distinctive when viewed from the train). Tacoma's Union Station was designed by Reed & Stern, the same architects who designed Grand Central Terminal in New York City. Tacoma also features an urban park that is a whopping 700 acres: the second largest in the US, after Central Park. |
|
Olympia-Lacey, WA | Capital city of Washington, and actually quite lovely. This was also the birthplace of Nirvana; and is the hometown of one of my favorite musicians, Kimya Dawson. For some reason, I was expecting this place to feel more populated? | |
Centralia, WA) | According to the internet, "one of the worst places for Millennials to live in Washington". So, given that ringing endorsement... The station was built in the early 1900s, responding to a 400% popultion boom in the area. Now, Centralia feels very sleepy, and its major economic growth center (Northern Pacific Railway) has declined. |
|
Kelso-Longview, WA | Into the Wild was filmed in Longview; and Longview also has one of the few (few ?!) bridges dedicated to squirrels. This bridge was constructed from a retired fire hose and suspension cables made from wire, and has secured Longview's place as one of my most favorite cities in Washington. Given Kelso's proximity to volcanic eruptions, several of the town's businesses and homes have been built on volcanic ash dredged from the mudflow that went into Cowlitz River. I wonder if that explains some of the roadcuts that looked a but like columnar pillars? The visitor's center in Kelso's Amtrak Station also has an exhibit dedicated to the eruption. |
|
Vancouver, WA) | Another sleepy (but very industrial) city, just across the Columbia River from Portland. The conductor for the train gave us a 10-15min warning, and mentioned that there might be some jostling as we changed tracks. The highlight of the Vancouver Station was really the Columbia River suspension bridge: as you cross it, you transition from Washington State to Oregon, and see lovely views of both cities. |
|
Portland, OR | And finally, we've arrived! The renovations on the interior of Portland's Union Station are lovely -- and we continue the volcano theme: Portland has an extinct volcano within its city limits, Mt. Tabor. |
The views from the train as we traveled from Seattle to Portland were lovely: lush forests, several small waterfalls, raging rivers, pumpkin patches, and several small farms with goats and herds of cattle. Most of the geology from Seattle to Centralia is relatively new (Quaternary) unconsolidated or semiconsolidated till, clay, sand, and gravel; but roundabout the time you hit Longview, things get more interesting: higher elevation, accompanied by Tertiary volcanic features which include volcanic breccia, volcanic sandstone, welded tuff, and basaltic andesite flows.
I even learned that Portland, OR, is home to Mount Tabor), an extinct volcanic vent, and part of the delightfully named Boring Lava Field! The next time I visit, a trip to Mount Tabor Park is in order.
Seattle
to Portland
¶Bundling it all together: let's take a look at the elevation change, if you're doing a straight shot from Seattle to Portland. You can see a significant peak around 100km, which makes sense (Mt. Rainier and Mt. Saint Helens are proximal). I'll be very curious to see how this compares to other legs of the trip!
Temperatures were definitely brisk in Portland upon arrival, and rainy throughout both days -- which meant that outdoor parks (other than the Lan Su Chinese Garden downtown) were challenging to tackle. The next time I pass through Portland, though, it will certainly feature a visit to Cathedral Park, as well as Pittock Mansion.
Check out the following sections, towards the end of this notebook, for a collection of pictures of all of the above!
stops[stops['City'] == 'Portland']
City | Stop | Latitude | Longitude | Type | |
---|---|---|---|---|---|
0 | Portland | The Hoxton Hotel | 45.523400 | -122.674700 | Hotel |
1 | Portland | Powell's Books | 45.523100 | -122.681200 | Books |
2 | Portland | Microsoft Office | 45.531255 | -122.685935 | Work |
3 | Portland | Lan Su Chinese Garden | 45.525300 | -122.673300 | Park |
4 | Portland | Portland Amtrak Station | 45.530512 | -122.678222 | Train Station |
5 | Portland | Transcendence Sculpture | 45.517850 | -122.682290 | Art |
6 | Portland | Starlight Patio & Lounge at the Star Theater | 45.523554 | -122.676602 | Music |
7 | Portland | Three Kings | 45.522124 | -122.677144 | Art |
8 | Portland | United States National Bank | 45.521545 | -122.678314 | Art |
m = folium.Map(tiles="Stamen Terrain")
for index, row in stops.iterrows():
if row['Type'] == 'Hotel':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b>", icon=folium.Icon(color='lightblue', icon='hotel', prefix='fa')).add_to(m)
elif row['Type'] == 'Work':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='cadetblue', icon='briefcase', prefix='fa')).add_to(m)
elif row['Type'] == 'Train Station':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='red', icon='train', prefix='fa')).add_to(m)
elif row['Type'] == 'Park':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='lightgreen', icon='tree', prefix='fa')).add_to(m)
elif row['Type'] == 'Books':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='pink', icon='book', prefix='fa')).add_to(m)
elif row['Type'] == 'Art':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='pink', icon='paint-brush', prefix='fa')).add_to(m)
elif row['Type'] == 'Music':
folium.Marker(location=[stops['Latitude'][index], stops['Longitude'][index]], popup="<b>" + stops['Stop'][index] + "</b", icon=folium.Icon(color='pink', icon='music', prefix='fa')).add_to(m)
# Show the map again
m.fit_bounds(m.get_bounds())
m
Seattle, WA
)¶503
: the Amtrak Cascades¶So much leg room, and a plugin for every seat! Clean, warm, and a delightful experience for the price ($29 one way); the seats were about as much space as you would have in first class on a domestic airplane.
Image | Description |
---|---|
The Bank of California) building, constructed in the Italianate style. The exterior is terracotta with model trim, and features a beautiful bronze portico flanked with two bronze lamps. | |
Just across the street from the Three Kings building above, is the U.S. National Bank Building. From the description on Wikipedia: "The building features a four-story Corinthian colonnade at its eastern end (originally the principal façade) and makes extensive use of glazed terracotta. The interior is also decorated extensively with highly textured materials." The bronze bas relief panels on this door were designed by Avard Fairbanks, who also designed the sculptures and busts of Abraham Lincoln that are on display in the Supreme Court building. In case we already weren't feeling like slackers, Fairbanks attended art school at age 13 (?!), then put himself through medical school and earned a doctorate in anatomical studies to "better represent the human body in his art". "[The panels] depict noble concepts of American life, such as 'Knowledge and Service', 'Domestic Welfare', 'Progress through Direction', and so on." |
|
"The southern façade, along Stark Street, is 200 ft (61 m) long and features a line of 14 Corinthian pilasters. The 12 window bays on this side have frames made of cast iron. Above the pilasters and fourth-floor windows are a cornice and balustrade with a design similar to that used at the eastern end." This building is reputed to be modeled after the Knickerbocker Trust Company in New York City; I'll have to visit it while I'm there, to compare and contrast. |
Very much enjoyed walking around the Lan Su Chinese Garden, which covers an entire city block. The park was built by 65 artisans from Suzhou, China, of imported materials (though all plants were grown locally).
I loved the proximity to music venues, and to Powell's Books; but next time, I think I'll choose a different neighborhood to visit. Old Town is still very much in the process of urban renewal; and walking around at night did not quite feel safe.
No trip to Portland is complete without a stop at Powell's Books, the world's largest independent book store (and home of a Princess Bride-themed coffee shop). They also stock everything from Casey Michel's excellent book on financial corruption, American Kleptocracy to hard sci-fi / speculative fiction and physics textbooks.
I chose to stay at the Hoxton Hotel, a 10 minute walk from Union Station and into Portland's historic Old Town. The Hoxton was clean, bustling, and very well-decorated, with a delightful coffeeshop and restaurant on-site. They also proudly purvey the best latte I've had all year: an almond butter almond milk concoction, made with actual almond butter. Which makes it healthy, right?
| | | | --- | --- |
Immediately before heading out, I decided to spend the day working in the Microsoft office in downtown Portland. The office is quite close to the Portland Amtrak station, as well as several coffee shops; and was very lightly populated on Monday morning. The receptionist mentioned that a Beaverton office (perhaps this one?) was in the process of being remodeled... Will make sure to visit the next time I'm in town.
Isn't that view of the Fremont Bridge over the Willamette lovely? (And apologies for the rain splotches on the last photo!)
...and now, onward to San Francisco.