From b50ce25d4ad44e44cc8d765c6ee98a91ee5bc86b Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Mon, 11 Aug 2025 22:36:23 -0700 Subject: Clean junk "scratchpad" files and outdated CSVs --- Clustering.ipynb | 810 --- Clustering2.0.ipynb | 313 -- List A.csv | 63 - List B.csv | 37 - List C.csv | 34 - List D.csv | 39 - ZestySalesman.ipynb | 5287 -------------------- ZestySalesman.py | 368 -- dashboard_website/.gitignore | 1 + .../__pycache__/datastructs.cpython-311.pyc | Bin 7356 -> 0 bytes .../__pycache__/datastructs.cpython-312.pyc | Bin 9061 -> 0 bytes dashboard_website/__pycache__/db.cpython-311.pyc | Bin 12642 -> 0 bytes dashboard_website/__pycache__/db.cpython-312.pyc | Bin 13994 -> 0 bytes .../__pycache__/router.cpython-311.pyc | Bin 18700 -> 0 bytes .../__pycache__/router.cpython-312.pyc | Bin 22563 -> 0 bytes dashboard_website/all_clues.csv | 1 - dashboard_website/clean.csv | 153 - dashboard_website/dirt.csv | 43 - dashboard_website/example_savefile_2024.csv | 159 + dashboard_website/savefile.csv | 1 - 20 files changed, 160 insertions(+), 7149 deletions(-) delete mode 100644 Clustering.ipynb delete mode 100644 Clustering2.0.ipynb delete mode 100644 List A.csv delete mode 100644 List B.csv delete mode 100644 List C.csv delete mode 100644 List D.csv delete mode 100644 ZestySalesman.ipynb delete mode 100644 ZestySalesman.py create mode 100644 dashboard_website/.gitignore delete mode 100644 dashboard_website/__pycache__/datastructs.cpython-311.pyc delete mode 100644 dashboard_website/__pycache__/datastructs.cpython-312.pyc delete mode 100644 dashboard_website/__pycache__/db.cpython-311.pyc delete mode 100644 dashboard_website/__pycache__/db.cpython-312.pyc delete mode 100644 dashboard_website/__pycache__/router.cpython-311.pyc delete mode 100644 dashboard_website/__pycache__/router.cpython-312.pyc delete mode 100644 dashboard_website/all_clues.csv delete mode 100644 dashboard_website/clean.csv delete mode 100644 dashboard_website/dirt.csv create mode 100644 dashboard_website/example_savefile_2024.csv delete mode 100644 dashboard_website/savefile.csv diff --git a/Clustering.ipynb b/Clustering.ipynb deleted file mode 100644 index a84f8e7..0000000 --- a/Clustering.ipynb +++ /dev/null @@ -1,810 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "initial_id", - "metadata": { - "collapsed": true, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.429577Z", - "start_time": "2023-11-06T17:13:46.508767Z" - } - }, - "outputs": [], - "source": [ - "import folium\n", - "import pandas as pd\n", - "from sklearn.cluster import KMeans\n", - "import utils" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "outputs": [], - "source": [ - "# Load the data\n", - "ListA = pd.read_csv('List A.csv')\n", - "ListB = pd.read_csv('List B.csv')\n", - "ListC = pd.read_csv('List C.csv')\n", - "ListD = pd.read_csv('List D.csv')" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.436966Z", - "start_time": "2023-11-06T17:13:47.428637Z" - } - }, - "id": "bb6f57eef695cf76" - }, - { - "cell_type": "code", - "execution_count": 3, - "outputs": [], - "source": [ - "# Create two centroids, one in the North End and one in the Financial District\n", - "centroids = [[42.364506, -71.054733], [42.358894, -71.056742]]\n", - "\n", - "northeastern_coordinate = \"-71.09033,42.33976;\"" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.446315Z", - "start_time": "2023-11-06T17:13:47.437257Z" - } - }, - "id": "fe8a5b9bc06cf2e0" - }, - { - "cell_type": "code", - "execution_count": 4, - "outputs": [ - { - "data": { - "text/plain": " name gps \\\n0 521 Commercial Street #525 42.3688272,-71.0553792 \n1 Acorn St 42.3576234,-71.0688746 \n2 Arlington's Great Meadows 42.4299758,-71.2038948 \n3 Arthur Fiedler Statue 42.3565057,-71.0754527 \n4 BU Beach 42.3511927,-71.1060828 \n.. ... ... \n28 The Clam Box 42.2763168,-71.0092883 \n29 The Partisans 42.3478375,-71.0404428 \n30 Union Oyster House 42.361288,-71.056908 \n31 Victoria's Diner 42.3270498,-71.0667744 \n32 Wollaston Beach 42.2806539,-71.0119933 \n\n googleUrl \\\n0 https://maps.google.com/maps?q=+%4042.3688272,... \n1 https://maps.google.com/maps?q=+%4042.3576234,... \n2 https://maps.google.com/maps?q=+%4042.4299758,... \n3 https://maps.google.com/maps?q=+%4042.3565057,... \n4 https://maps.google.com/maps?q=+%4042.3511927,... \n.. ... \n28 https://maps.google.com/maps?q=+%4042.2763168,... \n29 https://maps.google.com/maps?q=+%4042.3478375,... \n30 https://maps.google.com/maps?q=+%4042.361288,-... \n31 https://maps.google.com/maps?q=+%4042.3270498,... \n32 https://maps.google.com/maps?q=+%4042.2806539,... \n\n originalUrl info types \\\n0 https://www.google.com/maps/place/521+Commerci... NaN NaN \n1 https://www.google.com/maps/place/Acorn+St/dat... NaN NaN \n2 https://www.google.com/maps/place/Arlington's+... NaN NaN \n3 https://www.google.com/maps/place/Arthur+Fiedl... NaN NaN \n4 https://www.google.com/maps/place/BU+Beach/dat... NaN NaN \n.. ... ... ... \n28 https://www.google.com/maps/place/The+Clam+Box... NaN NaN \n29 https://www.google.com/maps/place/The+Partisan... NaN NaN \n30 https://www.google.com/maps/place/Union+Oyster... NaN NaN \n31 https://www.google.com/maps/place/Victoria's+D... NaN NaN \n32 https://www.google.com/maps/place/Wollaston+Be... NaN NaN \n\n address \\\n0 NaN \n1 NaN \n2 Minuteman Commuter Bikeway, Lexington, MA 0242... \n3 Charles River Esplanades, Boston, MA 02114, Un... \n4 270 Bay State Rd, Boston, MA 02215, United States \n.. ... \n28 789 Quincy Shore Dr, Quincy, MA 02170, United ... \n29 Boston, MA 02210, United States \n30 41 Union St, Boston, MA 02108, United States \n31 1024 Massachusetts Ave, Boston, MA 02118, Unit... \n32 Quincy, MA, United States \n\n description type \\\n0 NaN NaN \n1 NaN NaN \n2 183-acres of wet meadows & uplands with trails... Nature preserve \n3 NaN Sculpture \n4 A sloping, grassy plaza on the university grou... Park \n.. ... ... \n28 Classic beachfront joint with a rustic vibe di... Seafood restaurant \n29 NaN Sculpture \n30 Historic eatery serving chowder & other New En... Seafood restaurant \n31 Long-standing classic diner for breakfast & sa... Diner \n32 Historic 2.3-mi.-long beach with a paved prome... Beach \n\n phone website \\\n0 NaN NaN \n1 NaN NaN \n2 +1 781-863-5385 http://www.foagm.org/ \n3 +1 617-332-2433 http://helmicksculpture.com/portfolio/arthur-f... \n4 NaN https://www.bu.edu/today/2009/icons-among-us-t... \n.. ... ... \n28 +1 617-302-3474 http://www.clamboxquincy.com/ \n29 NaN https://www.bostonseaport.xyz/venue/the-partis... \n30 +1 617-227-2750 http://www.unionoysterhouse.com/?y_source=1_Mj... \n31 +1 617-442-5965 http://www.victoriasdiner.com/ \n32 NaN NaN \n\n ratingsAverage ratingsTotal plusCode list \n0 NaN NaN NaN A \n1 NaN NaN NaN A \n2 4.6 171.0 CQHW+XC Lexington, Massachusetts, USA A \n3 4.6 14.0 9W4F+JR Boston, Massachusetts, USA A \n4 4.5 133.0 9V2V+FH Boston, Massachusetts, USA A \n.. ... ... ... ... \n28 4.3 2145.0 7XGR+G7 Quincy, Massachusetts, USA C \n29 4.8 6.0 8XX5+4R Boston, Massachusetts, USA C \n30 4.3 8497.0 9W6V+G6 Boston, Massachusetts, USA C \n31 4.1 1797.0 8WGM+R7 Boston, Massachusetts, USA C \n32 4.4 171.0 NaN C \n\n[131 rows x 15 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namegpsgoogleUrloriginalUrlinfotypesaddressdescriptiontypephonewebsiteratingsAverageratingsTotalplusCodelist
0521 Commercial Street #52542.3688272,-71.0553792https://maps.google.com/maps?q=+%4042.3688272,...https://www.google.com/maps/place/521+Commerci...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNA
1Acorn St42.3576234,-71.0688746https://maps.google.com/maps?q=+%4042.3576234,...https://www.google.com/maps/place/Acorn+St/dat...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNA
2Arlington's Great Meadows42.4299758,-71.2038948https://maps.google.com/maps?q=+%4042.4299758,...https://www.google.com/maps/place/Arlington's+...NaNNaNMinuteman Commuter Bikeway, Lexington, MA 0242...183-acres of wet meadows & uplands with trails...Nature preserve+1 781-863-5385http://www.foagm.org/4.6171.0CQHW+XC Lexington, Massachusetts, USAA
3Arthur Fiedler Statue42.3565057,-71.0754527https://maps.google.com/maps?q=+%4042.3565057,...https://www.google.com/maps/place/Arthur+Fiedl...NaNNaNCharles River Esplanades, Boston, MA 02114, Un...NaNSculpture+1 617-332-2433http://helmicksculpture.com/portfolio/arthur-f...4.614.09W4F+JR Boston, Massachusetts, USAA
4BU Beach42.3511927,-71.1060828https://maps.google.com/maps?q=+%4042.3511927,...https://www.google.com/maps/place/BU+Beach/dat...NaNNaN270 Bay State Rd, Boston, MA 02215, United StatesA sloping, grassy plaza on the university grou...ParkNaNhttps://www.bu.edu/today/2009/icons-among-us-t...4.5133.09V2V+FH Boston, Massachusetts, USAA
................................................
28The Clam Box42.2763168,-71.0092883https://maps.google.com/maps?q=+%4042.2763168,...https://www.google.com/maps/place/The+Clam+Box...NaNNaN789 Quincy Shore Dr, Quincy, MA 02170, United ...Classic beachfront joint with a rustic vibe di...Seafood restaurant+1 617-302-3474http://www.clamboxquincy.com/4.32145.07XGR+G7 Quincy, Massachusetts, USAC
29The Partisans42.3478375,-71.0404428https://maps.google.com/maps?q=+%4042.3478375,...https://www.google.com/maps/place/The+Partisan...NaNNaNBoston, MA 02210, United StatesNaNSculptureNaNhttps://www.bostonseaport.xyz/venue/the-partis...4.86.08XX5+4R Boston, Massachusetts, USAC
30Union Oyster House42.361288,-71.056908https://maps.google.com/maps?q=+%4042.361288,-...https://www.google.com/maps/place/Union+Oyster...NaNNaN41 Union St, Boston, MA 02108, United StatesHistoric eatery serving chowder & other New En...Seafood restaurant+1 617-227-2750http://www.unionoysterhouse.com/?y_source=1_Mj...4.38497.09W6V+G6 Boston, Massachusetts, USAC
31Victoria's Diner42.3270498,-71.0667744https://maps.google.com/maps?q=+%4042.3270498,...https://www.google.com/maps/place/Victoria's+D...NaNNaN1024 Massachusetts Ave, Boston, MA 02118, Unit...Long-standing classic diner for breakfast & sa...Diner+1 617-442-5965http://www.victoriasdiner.com/4.11797.08WGM+R7 Boston, Massachusetts, USAC
32Wollaston Beach42.2806539,-71.0119933https://maps.google.com/maps?q=+%4042.2806539,...https://www.google.com/maps/place/Wollaston+Be...NaNNaNQuincy, MA, United StatesHistoric 2.3-mi.-long beach with a paved prome...BeachNaNNaN4.4171.0NaNC
\n

131 rows × 15 columns

\n
" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Combine the two lists and add a column to indicate the list\n", - "ListA['list'] = 'A'\n", - "ListB['list'] = 'B'\n", - "ListC['list'] = 'C'\n", - "ListD['list'] = 'D'\n", - "\n", - "TotalList = pd.concat([ListA, ListB, ListC])\n", - "display(TotalList)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.449096Z", - "start_time": "2023-11-06T17:13:47.439983Z" - } - }, - "id": "dc434958d5e4a3a8" - }, - { - "cell_type": "code", - "execution_count": 5, - "outputs": [], - "source": [ - "# Remove all columns but name and gps\n", - "TotalList = TotalList[['name', 'gps', 'list']]" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.455551Z", - "start_time": "2023-11-06T17:13:47.449946Z" - } - }, - "id": "2873c16423fe3119" - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [], - "source": [ - "# Convert the gps column to a list of lists for k-means\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: x.strip('[]').split(','))\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: [float(i) for i in x])" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.455655Z", - "start_time": "2023-11-06T17:13:47.452798Z" - } - }, - "id": "29f9155ef8d75fda" - }, - { - "cell_type": "code", - "execution_count": 7, - "outputs": [], - "source": [ - "# Create a new column with normalized gps coordinates and centroids\n", - "TotalList['normalized_gps'], norm_centroids = utils.normalize_gps(TotalList['gps'].values.tolist(), centroids)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.472084Z", - "start_time": "2023-11-06T17:13:47.454865Z" - } - }, - "id": "5b985f1a6df84a6c" - }, - { - "cell_type": "code", - "execution_count": 8, - "outputs": [ - { - "data": { - "text/plain": " name gps list \\\n0 521 Commercial Street #525 [42.3688272, -71.0553792] A \n1 Acorn St [42.3576234, -71.0688746] A \n2 Arlington's Great Meadows [42.4299758, -71.2038948] A \n3 Arthur Fiedler Statue [42.3565057, -71.0754527] A \n4 BU Beach [42.3511927, -71.1060828] A \n.. ... ... ... \n28 The Clam Box [42.2763168, -71.0092883] C \n29 The Partisans [42.3478375, -71.0404428] C \n30 Union Oyster House [42.361288, -71.056908] C \n31 Victoria's Diner [42.3270498, -71.0667744] C \n32 Wollaston Beach [42.2806539, -71.0119933] C \n\n normalized_gps \n0 [0.7251058917247415, 0.8141430878559053] \n1 [0.6747391031099019, 0.778052752104061] \n2 [1.0, 0.41697235794883575] \n3 [0.6697144722136962, 0.7604611403245493] \n4 [0.6458298305822171, 0.6785480000609988] \n.. ... \n28 [0.30922451563130937, 0.9374025730216268] \n29 [0.6307464973238023, 0.8540870458656248] \n30 [0.6912133469876947, 0.8100546647415456] \n31 [0.5372951958288665, 0.7836692527743693] \n32 [0.32872198960456106, 0.9301686741961767] \n\n[131 rows x 4 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namegpslistnormalized_gps
0521 Commercial Street #525[42.3688272, -71.0553792]A[0.7251058917247415, 0.8141430878559053]
1Acorn St[42.3576234, -71.0688746]A[0.6747391031099019, 0.778052752104061]
2Arlington's Great Meadows[42.4299758, -71.2038948]A[1.0, 0.41697235794883575]
3Arthur Fiedler Statue[42.3565057, -71.0754527]A[0.6697144722136962, 0.7604611403245493]
4BU Beach[42.3511927, -71.1060828]A[0.6458298305822171, 0.6785480000609988]
...............
28The Clam Box[42.2763168, -71.0092883]C[0.30922451563130937, 0.9374025730216268]
29The Partisans[42.3478375, -71.0404428]C[0.6307464973238023, 0.8540870458656248]
30Union Oyster House[42.361288, -71.056908]C[0.6912133469876947, 0.8100546647415456]
31Victoria's Diner[42.3270498, -71.0667744]C[0.5372951958288665, 0.7836692527743693]
32Wollaston Beach[42.2806539, -71.0119933]C[0.32872198960456106, 0.9301686741961767]
\n

131 rows × 4 columns

\n
" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(TotalList)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.531619Z", - "start_time": "2023-11-06T17:13:47.459977Z" - } - }, - "id": "a03a7c5dacebddd0" - }, - { - "cell_type": "markdown", - "source": [ - "# K-means" - ], - "metadata": { - "collapsed": false - }, - "id": "bc97c258908ac38a" - }, - { - "cell_type": "code", - "execution_count": 9, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - } - ], - "source": [ - "kmeans = KMeans(n_clusters=2, init=norm_centroids).fit(TotalList['normalized_gps'].values.tolist())" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.552787Z", - "start_time": "2023-11-06T17:13:47.462389Z" - } - }, - "id": "db1ef4b14a1da5f5" - }, - { - "cell_type": "code", - "execution_count": 10, - "outputs": [], - "source": [ - "# Add the cluster labels to the dataframe\n", - "TotalList['cluster'] = kmeans.labels_" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.654801Z", - "start_time": "2023-11-06T17:13:47.534432Z" - } - }, - "id": "99891fae96a2fff7" - }, - { - "cell_type": "code", - "execution_count": 11, - "outputs": [ - { - "data": { - "text/plain": " name gps list \\\n0 521 Commercial Street #525 [42.3688272, -71.0553792] A \n1 Acorn St [42.3576234, -71.0688746] A \n2 Arlington's Great Meadows [42.4299758, -71.2038948] A \n3 Arthur Fiedler Statue [42.3565057, -71.0754527] A \n4 BU Beach [42.3511927, -71.1060828] A \n.. ... ... ... \n28 The Clam Box [42.2763168, -71.0092883] C \n29 The Partisans [42.3478375, -71.0404428] C \n30 Union Oyster House [42.361288, -71.056908] C \n31 Victoria's Diner [42.3270498, -71.0667744] C \n32 Wollaston Beach [42.2806539, -71.0119933] C \n\n normalized_gps cluster \n0 [0.7251058917247415, 0.8141430878559053] 1 \n1 [0.6747391031099019, 0.778052752104061] 1 \n2 [1.0, 0.41697235794883575] 0 \n3 [0.6697144722136962, 0.7604611403245493] 1 \n4 [0.6458298305822171, 0.6785480000609988] 0 \n.. ... ... \n28 [0.30922451563130937, 0.9374025730216268] 1 \n29 [0.6307464973238023, 0.8540870458656248] 1 \n30 [0.6912133469876947, 0.8100546647415456] 1 \n31 [0.5372951958288665, 0.7836692527743693] 1 \n32 [0.32872198960456106, 0.9301686741961767] 1 \n\n[131 rows x 5 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namegpslistnormalized_gpscluster
0521 Commercial Street #525[42.3688272, -71.0553792]A[0.7251058917247415, 0.8141430878559053]1
1Acorn St[42.3576234, -71.0688746]A[0.6747391031099019, 0.778052752104061]1
2Arlington's Great Meadows[42.4299758, -71.2038948]A[1.0, 0.41697235794883575]0
3Arthur Fiedler Statue[42.3565057, -71.0754527]A[0.6697144722136962, 0.7604611403245493]1
4BU Beach[42.3511927, -71.1060828]A[0.6458298305822171, 0.6785480000609988]0
..................
28The Clam Box[42.2763168, -71.0092883]C[0.30922451563130937, 0.9374025730216268]1
29The Partisans[42.3478375, -71.0404428]C[0.6307464973238023, 0.8540870458656248]1
30Union Oyster House[42.361288, -71.056908]C[0.6912133469876947, 0.8100546647415456]1
31Victoria's Diner[42.3270498, -71.0667744]C[0.5372951958288665, 0.7836692527743693]1
32Wollaston Beach[42.2806539, -71.0119933]C[0.32872198960456106, 0.9301686741961767]1
\n

131 rows × 5 columns

\n
" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Display the dataframe\n", - "display(TotalList)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.690379Z", - "start_time": "2023-11-06T17:13:47.562147Z" - } - }, - "id": "49fc751352022ad1" - }, - { - "cell_type": "markdown", - "source": [ - "# Map" - ], - "metadata": { - "collapsed": false - }, - "id": "8c46f8ae30caa721" - }, - { - "cell_type": "code", - "execution_count": 12, - "outputs": [], - "source": [ - "# Create a map in Boston\n", - "m = folium.Map(location=[42.3601, -71.0589], zoom_start=12)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.690503Z", - "start_time": "2023-11-06T17:13:47.606732Z" - } - }, - "id": "48d76bd40c44cc61" - }, - { - "cell_type": "code", - "execution_count": 13, - "outputs": [], - "source": [ - "# Plot the centroids on the map\n", - "for i in range(len(centroids)):\n", - " folium.Marker(centroids[i], popup='Centroid ' + str(i), icon=folium.Icon(color='black')).add_to(m)\n", - "\n", - "# Add the points to the map with different colors for each cluster\n", - "for i, row in TotalList.iterrows():\n", - " if row['cluster'] == 0:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='red')).add_to(m)\n", - " elif row['cluster'] == 1:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='blue')).add_to(m)\n", - " elif row['cluster'] == 2:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='green')).add_to(m)\n", - " elif row['cluster'] == 3:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='purple')).add_to(m)\n", - " elif row['cluster'] == 4:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='orange')).add_to(m)\n", - " elif row['cluster'] == 5:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkred')).add_to(m)\n", - " elif row['cluster'] == 6:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightred')).add_to(m)\n", - " elif row['cluster'] == 7:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='beige')).add_to(m)\n", - " elif row['cluster'] == 8:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkblue')).add_to(m)\n", - " elif row['cluster'] == 9:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightblue')).add_to(m)\n", - " elif row['cluster'] == 10:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='cadet')).add_to(m)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.690797Z", - "start_time": "2023-11-06T17:13:47.629116Z" - } - }, - "id": "3c8a7d2b34d4f22d" - }, - { - "cell_type": "code", - "execution_count": 14, - "outputs": [ - { - "data": { - "text/plain": "", - "text/html": "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Display the map\n", - "m" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.812439Z", - "start_time": "2023-11-06T17:13:47.668506Z" - } - }, - "id": "d6941d1f0a203ee7" - }, - { - "cell_type": "code", - "execution_count": 15, - "outputs": [ - { - "data": { - "text/plain": "1 83\n0 48\nName: cluster, dtype: int64" - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Display the number of locations in each cluster\n", - "TotalList['cluster'].value_counts()" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.814584Z", - "start_time": "2023-11-06T17:13:47.761699Z" - } - }, - "id": "479ba8f36cdafbf8" - }, - { - "cell_type": "code", - "execution_count": 16, - "outputs": [], - "source": [ - "# Return the list of locations in each cluster\n", - "route_1 = TotalList[TotalList['cluster'] == 0]\n", - "route_1_stops = len(route_1['gps'].values.tolist())\n", - "route_1_str = utils.list_to_string(route_1['gps'].values.tolist())" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.814649Z", - "start_time": "2023-11-06T17:13:47.767185Z" - } - }, - "id": "89297f77828e8ed8" - }, - { - "cell_type": "code", - "execution_count": 17, - "outputs": [], - "source": [ - "route_2 = TotalList[TotalList['cluster'] == 1]\n", - "route_2_stops = len(route_2['gps'].values.tolist())\n", - "route_2_str = utils.list_to_string(route_2['gps'].values.tolist())" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:47.815014Z", - "start_time": "2023-11-06T17:13:47.770253Z" - } - }, - "id": "6ff82e29a0366d9e" - }, - { - "cell_type": "code", - "execution_count": 18, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 9.129166666666666 hours\n", - "The trip will take 11.833055555555555 hours\n" - ] - } - ], - "source": [ - "# Get the time for each route\n", - "trip_hrs_1 = utils.get_trip_time(northeastern_coordinate + route_1_str, route_1_stops)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_1))\n", - "trip_hrs_2 = utils.get_trip_time(northeastern_coordinate + route_2_str, route_2_stops)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_2))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:49.614158Z", - "start_time": "2023-11-06T17:13:47.772345Z" - } - }, - "id": "7949bddd34b6731" - }, - { - "cell_type": "code", - "execution_count": 19, - "outputs": [], - "source": [ - "# Move a coordinate from one cluster to the other and see how the trip time changes\n", - "# Find the closest coordinate between the two clusters\n", - "\n", - "closest_coordinate = utils.move_coordinate(route_2['gps'].values.tolist(), route_1['gps'].values.tolist())" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:49.620559Z", - "start_time": "2023-11-06T17:13:49.614687Z" - } - }, - "id": "47ee7033f93c4d2b" - }, - { - "cell_type": "code", - "execution_count": 20, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The closest coordinate is [42.3446263, -71.0969274]\n" - ] - } - ], - "source": [ - "print(\"The closest coordinate is {}\".format(closest_coordinate))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:49.620803Z", - "start_time": "2023-11-06T17:13:49.617173Z" - } - }, - "id": "f77340f4382a886f" - }, - { - "cell_type": "code", - "execution_count": 21, - "outputs": [], - "source": [ - "# Change the cluster of the closest coordinate array\n", - "TotalList.loc[TotalList['gps'].astype(str) == str(closest_coordinate), 'cluster'] = 0" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:49.623360Z", - "start_time": "2023-11-06T17:13:49.621229Z" - } - }, - "id": "7d9f2216c1c0e80f" - }, - { - "cell_type": "code", - "execution_count": 22, - "outputs": [ - { - "data": { - "text/plain": "1 82\n0 49\nName: cluster, dtype: int64" - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Display the number of locations in each cluster\n", - "TotalList['cluster'].value_counts()" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:49.632625Z", - "start_time": "2023-11-06T17:13:49.624757Z" - } - }, - "id": "175937590bf5d19" - }, - { - "cell_type": "code", - "execution_count": 23, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 9.216666666666667 hours\n", - "The trip will take 11.710277777777778 hours\n" - ] - } - ], - "source": [ - "# Calculate the new trip time\n", - "new_route_1 = TotalList[TotalList['cluster'] == 0]\n", - "new_route_2 = TotalList[TotalList['cluster'] == 1]\n", - "new_route_1_stops = len(new_route_1['gps'].values.tolist())\n", - "new_route_1_str = utils.list_to_string(new_route_1['gps'].values.tolist())\n", - "new_route_2_stops = len(new_route_2['gps'].values.tolist())\n", - "new_route_2_str = utils.list_to_string(new_route_2['gps'].values.tolist())\n", - "\n", - "new_trip_hrs_1 = utils.get_trip_time(northeastern_coordinate + new_route_1_str, new_route_1_stops)\n", - "print(\"The trip will take {} hours\".format(new_trip_hrs_1))\n", - "new_trip_hrs_2 = utils.get_trip_time(northeastern_coordinate + new_route_2_str, new_route_2_stops)\n", - "print(\"The trip will take {} hours\".format(new_trip_hrs_2))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:51.356749Z", - "start_time": "2023-11-06T17:13:49.629464Z" - } - }, - "id": "1eddc12b846d259" - }, - { - "cell_type": "code", - "execution_count": 24, - "outputs": [ - { - "data": { - "text/plain": "", - "text/html": "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a new map with the new coordinates\n", - "m = folium.Map(location=[42.3601, -71.0589], zoom_start=12)\n", - "\n", - "# Plot the centroids on the map\n", - "for i in range(len(centroids)):\n", - " folium.Marker(centroids[i], popup='Centroid ' + str(i), icon=folium.Icon(color='black')).add_to(m)\n", - "\n", - "# Add the points to the map with different colors for each cluster\n", - "for i, row in TotalList.iterrows():\n", - " if row['cluster'] == 0:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='red')).add_to(m)\n", - " elif row['cluster'] == 1:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='blue')).add_to(m)\n", - " elif row['cluster'] == 2:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='green')).add_to(m)\n", - " elif row['cluster'] == 3:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='purple')).add_to(m)\n", - " elif row['cluster'] == 4:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='orange')).add_to(m)\n", - " elif row['cluster'] == 5:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkred')).add_to(m)\n", - " elif row['cluster'] == 6:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightred')).add_to(m)\n", - " elif row['cluster'] == 7:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='beige')).add_to(m)\n", - " elif row['cluster'] == 8:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkblue')).add_to(m)\n", - " elif row['cluster'] == 9:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightblue')).add_to(m)\n", - " elif row['cluster'] == 10:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='cadet')).add_to(m)\n", - "\n", - "# Display the map\n", - "m" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:13:51.474500Z", - "start_time": "2023-11-06T17:13:51.364744Z" - } - }, - "id": "e02dfb4cc414066a" - }, - { - "cell_type": "code", - "execution_count": 25, - "outputs": [], - "source": [ - "# Attempt to minimize the trip time by moving a coordinate from one cluster to the other\n", - "new_route_2_coordinates, new_route_1_coordinates = utils.minimize_route_time_diff(route_2['gps'].values.tolist(), route_1['gps'].values.tolist(), northeastern_coordinate, 0.5)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:15.930771Z", - "start_time": "2023-11-06T17:13:51.471954Z" - } - }, - "id": "fa09560bd996ad9c" - }, - { - "cell_type": "code", - "execution_count": 26, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 10.150555555555556 hours\n", - "The trip will take 10.488888888888889 hours\n" - ] - } - ], - "source": [ - "# Calculate the new trip time\n", - "new_route_1_stops = len(new_route_1_coordinates)\n", - "new_route_1_str = utils.list_to_string(new_route_1_coordinates)\n", - "new_route_2_stops = len(new_route_2_coordinates)\n", - "new_route_2_str = utils.list_to_string(new_route_2_coordinates)\n", - "\n", - "new_trip_hrs_1 = utils.get_trip_time(northeastern_coordinate + new_route_1_str, new_route_1_stops)\n", - "print(\"The trip will take {} hours\".format(new_trip_hrs_1))\n", - "new_trip_hrs_2 = utils.get_trip_time(northeastern_coordinate + new_route_2_str, new_route_2_stops)\n", - "print(\"The trip will take {} hours\".format(new_trip_hrs_2))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:17.697174Z", - "start_time": "2023-11-06T17:14:15.937708Z" - } - }, - "id": "cb4c9f02d769c5b2" - }, - { - "cell_type": "code", - "execution_count": 27, - "outputs": [], - "source": [ - "# Edit the dataframe to reflect the new coordinate clusters\n", - "TotalList.loc[TotalList['gps'].astype(str).isin(map(str, new_route_1_coordinates)), 'cluster'] = 0\n", - "TotalList.loc[TotalList['gps'].astype(str).isin(map(str, new_route_2_coordinates)), 'cluster'] = 1" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:17.713355Z", - "start_time": "2023-11-06T17:14:17.702484Z" - } - }, - "id": "ccda123bae5a7fe2" - }, - { - "cell_type": "code", - "execution_count": 28, - "outputs": [ - { - "data": { - "text/plain": "1 70\n0 61\nName: cluster, dtype: int64" - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Display the number of locations in each cluster\n", - "TotalList['cluster'].value_counts()" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:17.725481Z", - "start_time": "2023-11-06T17:14:17.710476Z" - } - }, - "id": "c871a41d003d72ee" - }, - { - "cell_type": "code", - "execution_count": 29, - "outputs": [ - { - "data": { - "text/plain": "", - "text/html": "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a new map with the new coordinates\n", - "m = folium.Map(location=[42.3601, -71.0589], zoom_start=12)\n", - "\n", - "# Plot the centroids on the map\n", - "for i in range(len(centroids)):\n", - " folium.Marker(centroids[i], popup='Centroid ' + str(i), icon=folium.Icon(color='black')).add_to(m)\n", - "\n", - "# Add the points to the map with different colors for each cluster\n", - "for i, row in TotalList.iterrows():\n", - " if row['cluster'] == 0:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='red')).add_to(m)\n", - " elif row['cluster'] == 1:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='blue')).add_to(m)\n", - " elif row['cluster'] == 2:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='green')).add_to(m)\n", - " elif row['cluster'] == 3:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='purple')).add_to(m)\n", - " elif row['cluster'] == 4:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='orange')).add_to(m)\n", - " elif row['cluster'] == 5:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkred')).add_to(m)\n", - " elif row['cluster'] == 6:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightred')).add_to(m)\n", - " elif row['cluster'] == 7:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='beige')).add_to(m)\n", - " elif row['cluster'] == 8:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkblue')).add_to(m)\n", - " elif row['cluster'] == 9:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightblue')).add_to(m)\n", - " elif row['cluster'] == 10:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='cadet')).add_to(m)\n", - "\n", - "# Display the map\n", - "m" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:17.803413Z", - "start_time": "2023-11-06T17:14:17.723348Z" - } - }, - "id": "76538bc325ff80b0" - }, - { - "cell_type": "code", - "execution_count": 29, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T17:14:17.803513Z", - "start_time": "2023-11-06T17:14:17.800565Z" - } - }, - "id": "438c323e29e25031" - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Clustering2.0.ipynb b/Clustering2.0.ipynb deleted file mode 100644 index e312a2b..0000000 --- a/Clustering2.0.ipynb +++ /dev/null @@ -1,313 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "initial_id", - "metadata": { - "collapsed": true, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:01.990393Z", - "start_time": "2023-11-06T23:41:01.040992Z" - } - }, - "outputs": [], - "source": [ - "import folium\n", - "import pandas as pd\n", - "import utils" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "outputs": [], - "source": [ - "# Load the data\n", - "ListA = pd.read_csv('List A.csv')\n", - "ListB = pd.read_csv('List B.csv')\n", - "ListC = pd.read_csv('List C.csv')\n", - "ListD = pd.read_csv('List D.csv')" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.000278Z", - "start_time": "2023-11-06T23:41:01.991024Z" - } - }, - "id": "bb6f57eef695cf76" - }, - { - "cell_type": "code", - "execution_count": 3, - "outputs": [], - "source": [ - "# Create two centroids, one in the North End and one in the Financial District\n", - "centroids = [[42.364506, -71.054733], [42.358894, -71.056742]]\n", - "\n", - "northeastern_coordinate = \"-71.09033,42.33976\"" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.003984Z", - "start_time": "2023-11-06T23:41:02.000633Z" - } - }, - "id": "fe8a5b9bc06cf2e0" - }, - { - "cell_type": "code", - "execution_count": 4, - "outputs": [ - { - "data": { - "text/plain": " name gps \\\n0 521 Commercial Street #525 42.3688272,-71.0553792 \n1 Acorn St 42.3576234,-71.0688746 \n2 Arlington's Great Meadows 42.4299758,-71.2038948 \n3 Arthur Fiedler Statue 42.3565057,-71.0754527 \n4 BU Beach 42.3511927,-71.1060828 \n.. ... ... \n28 The Clam Box 42.2763168,-71.0092883 \n29 The Partisans 42.3478375,-71.0404428 \n30 Union Oyster House 42.361288,-71.056908 \n31 Victoria's Diner 42.3270498,-71.0667744 \n32 Wollaston Beach 42.2806539,-71.0119933 \n\n googleUrl \\\n0 https://maps.google.com/maps?q=+%4042.3688272,... \n1 https://maps.google.com/maps?q=+%4042.3576234,... \n2 https://maps.google.com/maps?q=+%4042.4299758,... \n3 https://maps.google.com/maps?q=+%4042.3565057,... \n4 https://maps.google.com/maps?q=+%4042.3511927,... \n.. ... \n28 https://maps.google.com/maps?q=+%4042.2763168,... \n29 https://maps.google.com/maps?q=+%4042.3478375,... \n30 https://maps.google.com/maps?q=+%4042.361288,-... \n31 https://maps.google.com/maps?q=+%4042.3270498,... \n32 https://maps.google.com/maps?q=+%4042.2806539,... \n\n originalUrl info types \\\n0 https://www.google.com/maps/place/521+Commerci... NaN NaN \n1 https://www.google.com/maps/place/Acorn+St/dat... NaN NaN \n2 https://www.google.com/maps/place/Arlington's+... NaN NaN \n3 https://www.google.com/maps/place/Arthur+Fiedl... NaN NaN \n4 https://www.google.com/maps/place/BU+Beach/dat... NaN NaN \n.. ... ... ... \n28 https://www.google.com/maps/place/The+Clam+Box... NaN NaN \n29 https://www.google.com/maps/place/The+Partisan... NaN NaN \n30 https://www.google.com/maps/place/Union+Oyster... NaN NaN \n31 https://www.google.com/maps/place/Victoria's+D... NaN NaN \n32 https://www.google.com/maps/place/Wollaston+Be... NaN NaN \n\n address \\\n0 NaN \n1 NaN \n2 Minuteman Commuter Bikeway, Lexington, MA 0242... \n3 Charles River Esplanades, Boston, MA 02114, Un... \n4 270 Bay State Rd, Boston, MA 02215, United States \n.. ... \n28 789 Quincy Shore Dr, Quincy, MA 02170, United ... \n29 Boston, MA 02210, United States \n30 41 Union St, Boston, MA 02108, United States \n31 1024 Massachusetts Ave, Boston, MA 02118, Unit... \n32 Quincy, MA, United States \n\n description type \\\n0 NaN NaN \n1 NaN NaN \n2 183-acres of wet meadows & uplands with trails... Nature preserve \n3 NaN Sculpture \n4 A sloping, grassy plaza on the university grou... Park \n.. ... ... \n28 Classic beachfront joint with a rustic vibe di... Seafood restaurant \n29 NaN Sculpture \n30 Historic eatery serving chowder & other New En... Seafood restaurant \n31 Long-standing classic diner for breakfast & sa... Diner \n32 Historic 2.3-mi.-long beach with a paved prome... Beach \n\n phone website \\\n0 NaN NaN \n1 NaN NaN \n2 +1 781-863-5385 http://www.foagm.org/ \n3 +1 617-332-2433 http://helmicksculpture.com/portfolio/arthur-f... \n4 NaN https://www.bu.edu/today/2009/icons-among-us-t... \n.. ... ... \n28 +1 617-302-3474 http://www.clamboxquincy.com/ \n29 NaN https://www.bostonseaport.xyz/venue/the-partis... \n30 +1 617-227-2750 http://www.unionoysterhouse.com/?y_source=1_Mj... \n31 +1 617-442-5965 http://www.victoriasdiner.com/ \n32 NaN NaN \n\n ratingsAverage ratingsTotal plusCode list \n0 NaN NaN NaN A \n1 NaN NaN NaN A \n2 4.6 171.0 CQHW+XC Lexington, Massachusetts, USA A \n3 4.6 14.0 9W4F+JR Boston, Massachusetts, USA A \n4 4.5 133.0 9V2V+FH Boston, Massachusetts, USA A \n.. ... ... ... ... \n28 4.3 2145.0 7XGR+G7 Quincy, Massachusetts, USA C \n29 4.8 6.0 8XX5+4R Boston, Massachusetts, USA C \n30 4.3 8497.0 9W6V+G6 Boston, Massachusetts, USA C \n31 4.1 1797.0 8WGM+R7 Boston, Massachusetts, USA C \n32 4.4 171.0 NaN C \n\n[131 rows x 15 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namegpsgoogleUrloriginalUrlinfotypesaddressdescriptiontypephonewebsiteratingsAverageratingsTotalplusCodelist
0521 Commercial Street #52542.3688272,-71.0553792https://maps.google.com/maps?q=+%4042.3688272,...https://www.google.com/maps/place/521+Commerci...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNA
1Acorn St42.3576234,-71.0688746https://maps.google.com/maps?q=+%4042.3576234,...https://www.google.com/maps/place/Acorn+St/dat...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNA
2Arlington's Great Meadows42.4299758,-71.2038948https://maps.google.com/maps?q=+%4042.4299758,...https://www.google.com/maps/place/Arlington's+...NaNNaNMinuteman Commuter Bikeway, Lexington, MA 0242...183-acres of wet meadows & uplands with trails...Nature preserve+1 781-863-5385http://www.foagm.org/4.6171.0CQHW+XC Lexington, Massachusetts, USAA
3Arthur Fiedler Statue42.3565057,-71.0754527https://maps.google.com/maps?q=+%4042.3565057,...https://www.google.com/maps/place/Arthur+Fiedl...NaNNaNCharles River Esplanades, Boston, MA 02114, Un...NaNSculpture+1 617-332-2433http://helmicksculpture.com/portfolio/arthur-f...4.614.09W4F+JR Boston, Massachusetts, USAA
4BU Beach42.3511927,-71.1060828https://maps.google.com/maps?q=+%4042.3511927,...https://www.google.com/maps/place/BU+Beach/dat...NaNNaN270 Bay State Rd, Boston, MA 02215, United StatesA sloping, grassy plaza on the university grou...ParkNaNhttps://www.bu.edu/today/2009/icons-among-us-t...4.5133.09V2V+FH Boston, Massachusetts, USAA
................................................
28The Clam Box42.2763168,-71.0092883https://maps.google.com/maps?q=+%4042.2763168,...https://www.google.com/maps/place/The+Clam+Box...NaNNaN789 Quincy Shore Dr, Quincy, MA 02170, United ...Classic beachfront joint with a rustic vibe di...Seafood restaurant+1 617-302-3474http://www.clamboxquincy.com/4.32145.07XGR+G7 Quincy, Massachusetts, USAC
29The Partisans42.3478375,-71.0404428https://maps.google.com/maps?q=+%4042.3478375,...https://www.google.com/maps/place/The+Partisan...NaNNaNBoston, MA 02210, United StatesNaNSculptureNaNhttps://www.bostonseaport.xyz/venue/the-partis...4.86.08XX5+4R Boston, Massachusetts, USAC
30Union Oyster House42.361288,-71.056908https://maps.google.com/maps?q=+%4042.361288,-...https://www.google.com/maps/place/Union+Oyster...NaNNaN41 Union St, Boston, MA 02108, United StatesHistoric eatery serving chowder & other New En...Seafood restaurant+1 617-227-2750http://www.unionoysterhouse.com/?y_source=1_Mj...4.38497.09W6V+G6 Boston, Massachusetts, USAC
31Victoria's Diner42.3270498,-71.0667744https://maps.google.com/maps?q=+%4042.3270498,...https://www.google.com/maps/place/Victoria's+D...NaNNaN1024 Massachusetts Ave, Boston, MA 02118, Unit...Long-standing classic diner for breakfast & sa...Diner+1 617-442-5965http://www.victoriasdiner.com/4.11797.08WGM+R7 Boston, Massachusetts, USAC
32Wollaston Beach42.2806539,-71.0119933https://maps.google.com/maps?q=+%4042.2806539,...https://www.google.com/maps/place/Wollaston+Be...NaNNaNQuincy, MA, United StatesHistoric 2.3-mi.-long beach with a paved prome...BeachNaNNaN4.4171.0NaNC
\n

131 rows × 15 columns

\n
" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Combine the two lists and add a column to indicate the list\n", - "ListA['list'] = 'A'\n", - "ListB['list'] = 'B'\n", - "ListC['list'] = 'C'\n", - "ListD['list'] = 'D'\n", - "\n", - "TotalList = pd.concat([ListA, ListB, ListC])\n", - "display(TotalList)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.012929Z", - "start_time": "2023-11-06T23:41:02.005863Z" - } - }, - "id": "dc434958d5e4a3a8" - }, - { - "cell_type": "code", - "execution_count": 5, - "outputs": [], - "source": [ - "# Remove all columns but name and gps\n", - "TotalList = TotalList[['name', 'gps', 'list']]" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.016943Z", - "start_time": "2023-11-06T23:41:02.013583Z" - } - }, - "id": "2873c16423fe3119" - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [], - "source": [ - "# Convert the gps column to a list of lists for k-means\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: x.strip('[]').split(','))\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: [float(i) for i in x])" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.021308Z", - "start_time": "2023-11-06T23:41:02.016226Z" - } - }, - "id": "29f9155ef8d75fda" - }, - { - "cell_type": "code", - "execution_count": 7, - "outputs": [], - "source": [ - "# Create a new column with normalized gps coordinates and centroids\n", - "TotalList['normalized_gps'], norm_centroids = utils.normalize_gps(TotalList['gps'].values.tolist(), centroids)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.021459Z", - "start_time": "2023-11-06T23:41:02.018449Z" - } - }, - "id": "5b985f1a6df84a6c" - }, - { - "cell_type": "code", - "execution_count": 8, - "outputs": [ - { - "data": { - "text/plain": " name gps list \\\n0 521 Commercial Street #525 [42.3688272, -71.0553792] A \n1 Acorn St [42.3576234, -71.0688746] A \n2 Arlington's Great Meadows [42.4299758, -71.2038948] A \n3 Arthur Fiedler Statue [42.3565057, -71.0754527] A \n4 BU Beach [42.3511927, -71.1060828] A \n.. ... ... ... \n28 The Clam Box [42.2763168, -71.0092883] C \n29 The Partisans [42.3478375, -71.0404428] C \n30 Union Oyster House [42.361288, -71.056908] C \n31 Victoria's Diner [42.3270498, -71.0667744] C \n32 Wollaston Beach [42.2806539, -71.0119933] C \n\n normalized_gps \n0 [0.7251058917247415, 0.8141430878559053] \n1 [0.6747391031099019, 0.778052752104061] \n2 [1.0, 0.41697235794883575] \n3 [0.6697144722136962, 0.7604611403245493] \n4 [0.6458298305822171, 0.6785480000609988] \n.. ... \n28 [0.30922451563130937, 0.9374025730216268] \n29 [0.6307464973238023, 0.8540870458656248] \n30 [0.6912133469876947, 0.8100546647415456] \n31 [0.5372951958288665, 0.7836692527743693] \n32 [0.32872198960456106, 0.9301686741961767] \n\n[131 rows x 4 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namegpslistnormalized_gps
0521 Commercial Street #525[42.3688272, -71.0553792]A[0.7251058917247415, 0.8141430878559053]
1Acorn St[42.3576234, -71.0688746]A[0.6747391031099019, 0.778052752104061]
2Arlington's Great Meadows[42.4299758, -71.2038948]A[1.0, 0.41697235794883575]
3Arthur Fiedler Statue[42.3565057, -71.0754527]A[0.6697144722136962, 0.7604611403245493]
4BU Beach[42.3511927, -71.1060828]A[0.6458298305822171, 0.6785480000609988]
...............
28The Clam Box[42.2763168, -71.0092883]C[0.30922451563130937, 0.9374025730216268]
29The Partisans[42.3478375, -71.0404428]C[0.6307464973238023, 0.8540870458656248]
30Union Oyster House[42.361288, -71.056908]C[0.6912133469876947, 0.8100546647415456]
31Victoria's Diner[42.3270498, -71.0667744]C[0.5372951958288665, 0.7836692527743693]
32Wollaston Beach[42.2806539, -71.0119933]C[0.32872198960456106, 0.9301686741961767]
\n

131 rows × 4 columns

\n
" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(TotalList)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:02.028731Z", - "start_time": "2023-11-06T23:41:02.023494Z" - } - }, - "id": "a03a7c5dacebddd0" - }, - { - "cell_type": "markdown", - "source": [ - "# Cluster and Minimize" - ], - "metadata": { - "collapsed": false - }, - "id": "ee3ab1c81ea71b0" - }, - { - "cell_type": "code", - "execution_count": 9, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - } - ], - "source": [ - "# Cluster and minimize the data\n", - "df, route_1_coordinates, route_2_coordinates = utils.cluster_and_minimize(TotalList, centroids, norm_centroids,\n", - " northeastern_coordinate, 0.5)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:28.583623Z", - "start_time": "2023-11-06T23:41:02.026243Z" - } - }, - "id": "a1a3e446594e8c20" - }, - { - "cell_type": "markdown", - "source": [ - "# Map" - ], - "metadata": { - "collapsed": false - }, - "id": "dc35d41885a19079" - }, - { - "cell_type": "code", - "execution_count": 11, - "outputs": [ - { - "data": { - "text/plain": "", - "text/html": "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a new map with the new coordinates\n", - "m = folium.Map(location=[42.3601, -71.0589], zoom_start=12)\n", - "\n", - "# Plot the centroids on the map\n", - "for i in range(len(centroids)):\n", - " folium.Marker(centroids[i], popup='Centroid ' + str(i), icon=folium.Icon(color='black')).add_to(m)\n", - "\n", - "# Add the points to the map with different colors for each cluster\n", - "for i, row in df.iterrows():\n", - " if row['cluster'] == 0:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='red')).add_to(m)\n", - " elif row['cluster'] == 1:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='blue')).add_to(m)\n", - " elif row['cluster'] == 2:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='green')).add_to(m)\n", - " elif row['cluster'] == 3:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='purple')).add_to(m)\n", - " elif row['cluster'] == 4:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='orange')).add_to(m)\n", - " elif row['cluster'] == 5:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkred')).add_to(m)\n", - " elif row['cluster'] == 6:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightred')).add_to(m)\n", - " elif row['cluster'] == 7:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='beige')).add_to(m)\n", - " elif row['cluster'] == 8:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='darkblue')).add_to(m)\n", - " elif row['cluster'] == 9:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='lightblue')).add_to(m)\n", - " elif row['cluster'] == 10:\n", - " folium.Marker([row['gps'][0], row['gps'][1]], popup=row['name'], icon=folium.Icon(color='cadet')).add_to(m)\n", - "\n", - "# Display the map\n", - "m" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:34.488607Z", - "start_time": "2023-11-06T23:41:34.368207Z" - } - }, - "id": "de9c2f7b892b1bee" - }, - { - "cell_type": "code", - "execution_count": 10, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-06T23:41:28.671570Z", - "start_time": "2023-11-06T23:41:28.667750Z" - } - }, - "id": "b50ee3d4d6e09be9" - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/List A.csv b/List A.csv deleted file mode 100644 index 4dd2740..0000000 --- a/List A.csv +++ /dev/null @@ -1,63 +0,0 @@ -"name","gps","googleUrl","originalUrl","info","types","address","description","type","phone","website","ratingsAverage","ratingsTotal","plusCode" -"521 Commercial Street #525","42.3688272,-71.0553792","https://maps.google.com/maps?q=+%4042.3688272,-71.0553792","https://www.google.com/maps/place/521+Commercial+Street+%23525/data=!4m2!3m1!1s0x89e3708b7c0cc279:0x830a6b01bee7c342","","",,,,,,,, -"Acorn St","42.3576234,-71.0688746","https://maps.google.com/maps?q=+%4042.3576234,-71.0688746","https://www.google.com/maps/place/Acorn+St/data=!4m2!3m1!1s0x89e3709e95846785:0x761f3c71d935f788","","",,,,,,,, -"Arlington's Great Meadows","42.4299758,-71.2038948","https://maps.google.com/maps?q=+%4042.4299758,-71.2038948","https://www.google.com/maps/place/Arlington's+Great+Meadows/data=!4m2!3m1!1s0x89e39d8d8094a345:0x1e425bc22244080","","","Minuteman Commuter Bikeway, Lexington, MA 02420, United States","183-acres of wet meadows & uplands with trails for viewing an array of plants & wildlife.","Nature preserve","+1 781-863-5385","http://www.foagm.org/",4.6,171,"CQHW+XC Lexington, Massachusetts, USA" -"Arthur Fiedler Statue","42.3565057,-71.0754527","https://maps.google.com/maps?q=+%4042.3565057,-71.0754527","https://www.google.com/maps/place/Arthur+Fiedler+Statue/data=!4m2!3m1!1s0x89e37192ce32ad1d:0xf4baa5bff5f6c2b7","","","Charles River Esplanades, Boston, MA 02114, United States",,"Sculpture","+1 617-332-2433","http://helmicksculpture.com/portfolio/arthur-fiedler-memorial/",4.6,14,"9W4F+JR Boston, Massachusetts, USA" -"BU Beach","42.3511927,-71.1060828","https://maps.google.com/maps?q=+%4042.3511927,-71.1060828","https://www.google.com/maps/place/BU+Beach/data=!4m2!3m1!1s0x89e379f0807dd4f1:0x7cba04ed5ba6288d","","","270 Bay State Rd, Boston, MA 02215, United States","A sloping, grassy plaza on the university grounds, featuring trees, a sculpture & paved pathways.","Park",,"https://www.bu.edu/today/2009/icons-among-us-the-bu-beach/",4.5,133,"9V2V+FH Boston, Massachusetts, USA" -"Blaze Pizza","42.3446263,-71.0969274","https://maps.google.com/maps?q=+%4042.3446263,-71.0969274","https://www.google.com/maps/place/Blaze+Pizza/data=!4m2!3m1!1s0x89e37a1e014633ab:0x29c2a8d0efe0c0e2","","","1282 Boylston St #122, Boston, MA 02215, United States","Hip counter-serve pizzeria dishing up crispy, thin-crust pies made with creative toppings & sauces.","Pizza restaurant","+1 617-297-9585","https://locations.blazepizza.com/ma/boston/1282-boylston-st.?utm_source=gmb&utm_medium=yext",4.5,1535,"8WV3+V6 Boston, Massachusetts, USA" -"Bonchon Allston","42.35304,-71.130887","https://maps.google.com/maps?q=+%4042.35304,-71.130887","https://www.google.com/maps/place/Bonchon+Allston/data=!4m2!3m1!1s0x89e379c509b15c13:0x331fab1ee153854f","","","123 Brighton Ave, Boston, MA 02134, United States","Casual chain serving cooked-to-order Korean fried chicken, plus other traditional eats.","Asian fusion restaurant","+1 617-254-8888","http://allstonma.bonchon.com/",4.3,1490,"9V39+6J Boston, Massachusetts, USA" -"Boston Athenaeum","42.3579151,-71.0620802","https://maps.google.com/maps?q=+%4042.3579151,-71.0620802","https://www.google.com/maps/place/Boston+Athenaeum/data=!4m2!3m1!1s0x89e3709b541ff13b:0x1586d285058646c9","","","10-1/2 Beacon St, Boston, MA 02108, United States","Stately 1807 library & museum featuring art galleries, guided tours, readings & more.","Library","+1 617-227-0270","https://www.bostonathenaeum.org/",4.4,101,"9W5Q+55 Boston, Massachusetts, USA" -"Boston Green Academy","42.3501823,-71.1459593","https://maps.google.com/maps?q=+%4042.3501823,-71.1459593","https://www.google.com/maps/place/Boston+Green+Academy/data=!4m2!3m1!1s0x405c5c8f3b2a0803:0xef2bad50fa4c93f5","","","20 Warren St, Brighton, MA 02135, United States",,"High school","+1 617-635-9860","http://www.bostongreenacademy.org/",3.9,15,"9V23+3J Brighton, Boston, MA, USA" -"Boston Irish Famine Memorial","42.357357,-71.0586014","https://maps.google.com/maps?q=+%4042.357357,-71.0586014","https://www.google.com/maps/place/Boston+Irish+Famine+Memorial/data=!4m2!3m1!1s0x89e370847e3048af:0x14beebdf83ded4cd","","","Boston, MA 02108, United States","Snug park along the Freedom Trail commemorating the 1845 Irish potato famine with statues & plaques.","Tourist attraction",,"https://irishfaminememorials.com/2014/01/16/boston-massachusetts-1998/",4.5,296,"9W4R+WH Boston, Massachusetts, USA" -"Boston Massacre Site","42.3587627,-71.0572023","https://maps.google.com/maps?q=+%4042.3587627,-71.0572023","https://www.google.com/maps/place/Boston+Massacre+Site/data=!4m2!3m1!1s0x89e370843637780d:0x9a57b8839473736b","","","Corner of State and, Congress St, Boston, MA 02109, United States","Cobblestone ring marking the site of the 1770 civilian massacre & Revolutionary War precursor.","Historical landmark","+1 617-357-8300","http://www.bostonmassacre.net/",4.6,1364,"9W5V+G4 Boston, Massachusetts, USA" -"Bova's Bakery","42.36521,-71.0556268","https://maps.google.com/maps?q=+%4042.36521,-71.0556268","https://www.google.com/maps/place/Bova's+Bakery/data=!4m2!3m1!1s0x89e370894b870f49:0xb5b16033eb824803","","","134 Salem St, Boston, MA 02113, United States","Family-owned bakeshop, opened in 1932, offering up breads, cookies & sandwiches 24 hours a day.","Bakery","+1 617-523-5601","http://bovabakeryboston.net/",4.7,3216,"9W8V+3P Boston, Massachusetts, USA" -"Brighton High School","42.3495825,-71.1460435","https://maps.google.com/maps?q=+%4042.3495825,-71.1460435","https://www.google.com/maps/place/Brighton+High+School/data=!4m2!3m1!1s0x89e3783548f7355d:0xcde15ed9a845e60a","","","25 Warren St, Brighton, MA 02135, United States",,"High school","+1 617-635-9873","https://www.brightonhighschool.org/",4.1,13,"8VX3+RH Brighton, Boston, MA, USA" -"Brookline Booksmith","42.3426377,-71.1217152","https://maps.google.com/maps?q=+%4042.3426377,-71.1217152","https://www.google.com/maps/place/Brookline+Booksmith/data=!4m2!3m1!1s0x89e379bfdb681bc1:0x279c60f655491995","","","279 Harvard St, Brookline, MA 02446, United States","Established independent bookshop offering new & used titles, plus gifts, over 2 floors.","Book store","+1 617-566-6660","http://www.brooklinebooksmith.com/",4.8,698,"8VVH+38 Brookline, Massachusetts, USA" -"Citrus & Salt Boston","42.3489004,-71.0720926","https://maps.google.com/maps?q=+%4042.3489004,-71.0720926","https://www.google.com/maps/place/Citrus+%26+Salt+Boston/data=!4m2!3m1!1s0x89e37a733f730323:0x15aa8305203333fa","","","142 Berkeley St, Boston, MA 02116, United States","Creative Baja Coast-inspired Mexican eats & cocktails in beach-y dining room with edgy rear lounge.","Mexican restaurant","+1 617-424-6711","https://www.citrusandsaltboston.com/",4.3,1311,"8WXH+H5 Boston, Massachusetts, USA" -"Cocoanut Grove Memorial Plaque","42.3500079,-71.067859","https://maps.google.com/maps?q=+%4042.3500079,-71.067859","https://www.google.com/maps/place/Cocoanut+Grove+Memorial+Plaque/data=!4m2!3m1!1s0x89e37b5eeae83b79:0xc4a2bfd90109941f","","","1-13 Piedmont St, Boston, MA 02116, United States",,"Cultural landmark",,"http://www.cocoanutgrove.org/",5,1,"9W2J+2V Boston, Massachusetts, USA" -"Commodore John Barry Memorial","42.3556154,-71.0632036","https://maps.google.com/maps?q=+%4042.3556154,-71.0632036","https://www.google.com/maps/place/Commodore+John+Barry+Memorial/data=!4m2!3m1!1s0x89e371ffbf29d28b:0xf9261ca5dc08d043","","","Station, Boston, MA 02108, United States",,"Historical landmark",,"https://www.boston.gov/parks/boston-common",,,"9W4P+6P Boston, Massachusetts, USA" -"Cypress Street Playground","42.331864,-71.1258765","https://maps.google.com/maps?q=+%4042.331864,-71.1258765","https://www.google.com/maps/place/Cypress+Street+Playground/data=!4m2!3m1!1s0x89e379a4744ada5d:0x4eb92303782a841c","","","224-298 Davis Ave, Brookline, MA 02445, United States",,"Park","+1 617-730-2069","https://www.brooklinerec.com/Facilities/Facility/Details/Cypress-Street-Playground-33",4.2,72,"8VJF+PJ Brookline, Massachusetts, USA" -"Dana-Farber Cancer Institute","42.3364675,-71.1095021","https://maps.google.com/maps?q=+%4042.3364675,-71.1095021","https://www.google.com/maps/place/Dana-Farber+Cancer+Institute/data=!4m2!3m1!1s0x89e3798de681fccd:0x28872ef16d5e4f18","","","450 Brookline Ave, Boston, MA 02215, United States",,"Cancer treatment center","+1 617-632-3000","https://www.dana-farber.org/?utm_source=google&utm_medium=organic&utm_content=mainprofile&utm_campaign=googlemybusiness",4,203,"8VPR+H5 Boston, Massachusetts, USA" -"Danehy Park","42.3890049,-71.133103","https://maps.google.com/maps?q=+%4042.3890049,-71.133103","https://www.google.com/maps/place/Danehy+Park/data=!4m2!3m1!1s0x89e3770c0d0fe659:0x3d5badfad5bd6e3f","","","99 Sherman St, Cambridge, MA 02138, United States","50-acre green space with activities such as softball & soccer, plus paths for jogging & a dog park.","Park",,"http://www.cambridgema.gov/",4.7,1103,"9VQ8+JQ Cambridge, Massachusetts, USA" -"Dave's Hot Chicken","42.3248471,-71.0620134","https://maps.google.com/maps?q=+%4042.3248471,-71.0620134","https://www.google.com/maps/place/Dave's+Hot+Chicken/data=!4m2!3m1!1s0x89e37b5223b23a59:0x27bc1f6b7cf38959","","","10 District Ave C10, Boston, MA 02210, United States",,"Chicken restaurant","+1 857-871-4810","https://www.daveshotchicken.com/location/boston-ma-district-ave-opening-soon/",4.7,235,"8WFQ+W5 Boston, Massachusetts, USA" -"Domingo F. Sarmiento Statue","42.3500031,-71.0851891","https://maps.google.com/maps?q=+%4042.3500031,-71.0851891","https://www.google.com/maps/place/Domingo+F.+Sarmiento+Statue/data=!4m2!3m1!1s0x89e37bb7991fe6bd:0x682e8beb27c268a3","","","Boston, MA 02115, United States",,"Historical landmark",,"https://friendsofthepublicgarden.org/our-parks/the-mall/",5,1,"9W27+2W Boston, Massachusetts, USA" -"Dutch House","42.3360385,-71.1123834","https://maps.google.com/maps?q=+%4042.3360385,-71.1123834","https://www.google.com/maps/place/Dutch+House/data=!4m2!3m1!1s0x89e37991087a3c07:0x91d0ecb3ead2f5f4","","","20 Netherlands Rd, Brookline, MA 02445, United States",,"Historical landmark",,,5,3,"8VPQ+C2 Brookline, Massachusetts, USA" -"Earl of Sandwich","42.354296,-71.066414","https://maps.google.com/maps?q=+%4042.354296,-71.066414","https://www.google.com/maps/place/Earl+of+Sandwich/data=!4m2!3m1!1s0x89e3709e5eea01cd:0xc7afc8d371e394af","","","Boston Common, 1B Charles St S, Boston, MA 02114, United States","Chain outpost offering a variety of hot sandwiches, wraps, salads & an array of desserts.","Sandwich shop","+1 617-426-1395","https://locations.earlofsandwichusa.com/us/ma/boston/1b-charles-street?utm_source=yext&utm_medium=organic&y_source=1_OTMzNzQxOS03MTUtbG9jYXRpb24ud2Vic2l0ZQ%3D%3D",4.2,182,"9W3M+PC Boston, Massachusetts, USA" -"Echo Bridge","42.3145041,-71.2273649","https://maps.google.com/maps?q=+%4042.3145041,-71.2273649","https://www.google.com/maps/place/Echo+Bridge/data=!4m2!3m1!1s0x89e3823ab501db77:0x3cf2969ea45f926f","","","Newton, MA 02464, United States","Grand, landmark brick & granite aqueduct bridge with giant arches, constructed in 1876.","Bridge",,,4.8,135,"8Q7F+R3 Newton, Massachusetts, USA" -"Farmers Horse Coffee","42.341987,-71.0834061","https://maps.google.com/maps?q=+%4042.341987,-71.0834061","https://www.google.com/maps/place/Farmers+Horse+Coffee/data=!4m2!3m1!1s0x89e37a17311cda13:0x292f421690b03464","","","374 Massachusetts Ave, Boston, MA 02115, United States","Ethiopian coffee & rich pastries fortify laptop warriors at this brick-walled, art-filled cafe.","Coffee shop","+1 617-866-7771","https://farmershorsecoffee.com/",4.6,405,"8WR8+QJ Boston, Massachusetts, USA" -"Fenway High School","42.3306454,-71.0992038","https://maps.google.com/maps?q=+%4042.3306454,-71.0992038","https://www.google.com/maps/place/Fenway+High+School/data=!4m2!3m1!1s0x89e37a1cec244e11:0xf82abbec69b234c3","","","67 Alleghany St, Boston, MA 02120, United States",,"High school","+1 617-635-9911","http://www.fenwayhs.org/",4.2,12,"8WJ2+78 Boston, Massachusetts, USA" -"Isabella Stewart Gardner Museum","42.3381442,-71.0990577","https://maps.google.com/maps?q=+%4042.3381442,-71.0990577","https://www.google.com/maps/place/Isabella+Stewart+Gardner+Museum/data=!4m2!3m1!1s0x89e3798a92d68549:0xdac5a0cd0f233abd","","","25 Evans Way, Boston, MA 02115, United States","Evocative of a 15th-century Venetian palace, this museum houses a world-class art collection.","Art museum","+1 617-566-1401","https://www.gardnermuseum.org/",4.7,7877,"8WQ2+79 Boston, Massachusetts, USA" -"James Michael Curley Statues","42.3604952,-71.0569649","https://maps.google.com/maps?q=+%4042.3604952,-71.0569649","https://www.google.com/maps/place/James+Michael+Curley+Statues/data=!4m2!3m1!1s0x89e37176168f3987:0xb338a323bb38332e","","","Congress St @, North St, Boston, MA 02108, United States",,"Statuary",,,5,1,"9W6V+56 Boston, Massachusetts, USA" -"James P. Kelleher Rose Garden","42.3419564,-71.0949218","https://maps.google.com/maps?q=+%4042.3419564,-71.0949218","https://www.google.com/maps/place/James+P.+Kelleher+Rose+Garden/data=!4m2!3m1!1s0x89e37a1facd5dbab:0xf1a96278c3168914","","","73 Park Dr, Boston, MA 02215, United States","Small, charming garden with a variety of rose bushes, plus statues, a fountain & arched trellises.","Garden","+1 617-522-2700","https://www.boston.gov/departments/parks-and-recreation/improvements-james-p-kelleher-rose-garden",4.5,311,"8WR4+Q2 Boston, Massachusetts, USA" -"Japanese Bell","42.3413301,-71.0942861","https://maps.google.com/maps?q=+%4042.3413301,-71.0942861","https://www.google.com/maps/place/Japanese+Bell/data=!4m2!3m1!1s0x89e37b10ecc82803:0x8297662e5fdd7cbb","","","Boston, MA 02215, United States",,"Historical landmark",,,4.5,4,"8WR4+G7 Boston, Massachusetts, USA" -"Joe Moakley Park","42.3256817,-71.0498714","https://maps.google.com/maps?q=+%4042.3256817,-71.0498714","https://www.google.com/maps/place/Joe+Moakley+Park/data=!4m2!3m1!1s0x89e37af61fc7c3f3:0xc532af20cba8c575","","","1005 Columbia Rd, Boston, MA 02127, United States","This urban park features baseball & soccer fields, a spray area & a jogging track.","Park","+1 617-635-4505","https://www.boston.gov/departments/parks-and-recreation",4.4,1154,"8XG2+73 Boston, Massachusetts, USA" -"John Eliot Square","42.329969,-71.0908104","https://maps.google.com/maps?q=+%4042.329969,-71.0908104","https://www.google.com/maps/place/John+Eliot+Square/data=!4m2!3m1!1s0x89e37a25fb367ac5:0x184ccce8f0d897b9","","","45 John Eliot Sq, Boston, MA 02119, United States",,"City park","+1 617-635-4505","https://www.boston.gov/departments/parks-and-recreation",4.2,39,"8WH5+XM Boston, Massachusetts, USA" -"Lafayette City Center","42.3537983,-71.0616035","https://maps.google.com/maps?q=+%4042.3537983,-71.0616035","https://www.google.com/maps/place/Lafayette+City+Center/data=!4m2!3m1!1s0x89e37082ca3dfde3:0xbd1347bb41704cd4","","","2 Ave de Lafayette, Boston, MA 02111, United States",,"Business center","+1 617-316-6524","http://lafayetteccboston.com/",4.5,130,"9W3Q+G9 Boston, Massachusetts, USA" -"Leader Bank Pavilion","42.3485465,-71.0359433","https://maps.google.com/maps?q=+%4042.3485465,-71.0359433","https://www.google.com/maps/place/Leader+Bank+Pavilion/data=!4m2!3m1!1s0x89e37a9d50431061:0x290bf47b5ed059d4","","","290 Northern Ave, Boston, MA 02210, United States","5,000-capacity amphitheater on Boston Harbor hosting big-name concerts throughout the summer.","Live music venue","+1 617-728-1600","https://www.livenation.com/venue/KovZpZAEAdEA/leader-bank-pavilion-events?utm_source=GMBlisting&utm_medium=organic",4.5,3011,"8XX7+CJ Boston, Massachusetts, USA" -"Leif Erikson Statue","42.3490205,-71.0913583","https://maps.google.com/maps?q=+%4042.3490205,-71.0913583","https://www.google.com/maps/place/Leif+Erikson+Statue/data=!4m2!3m1!1s0x89e37a0357fd54cf:0x97c8b2eda2a2dbe9","","","Commonwealth Ave, Charlesgate E at, Boston, MA 02215, United States",,"Sculpture","+1 249-478-9863",,4.8,10,"8WX5+JF Boston, Massachusetts, USA" -"Lilly's Gourmet Pasta Express","42.3323776,-71.1000217","https://maps.google.com/maps?q=+%4042.3323776,-71.1000217","https://www.google.com/maps/place/Lilly's+Gourmet+Pasta+Express/data=!4m2!3m1!1s0x89e379885938ec7b:0xc4620dad63b0bda3","","","1528 Tremont St, Boston, MA 02120, United States","Snug corner storefront serving handmade pastas & raviolis (with a variety of fillings) to go.","Restaurant","+1 617-427-8080","https://lillysgourmetpasta.com/",4.5,369,"8VJX+XX Boston, Massachusetts, USA" -"LimeRed Teahouse (Boston)","42.3518397,-71.1241295","https://maps.google.com/maps?q=+%4042.3518397,-71.1241295","https://www.google.com/maps/place/LimeRed+Teahouse+(Boston)/data=!4m2!3m1!1s0x89e379c301927595:0x6dfd6db4e5c11452","","","1092 Commonwealth Ave, Boston, MA 02215, United States",,"Bubble tea store","+1 617-249-0020","http://www.limeredteahouse.com/",4.5,248,"9V2G+P8 Boston, Massachusetts, USA" -"Longyear Museum","42.3245965,-71.1618052","https://maps.google.com/maps?q=+%4042.3245965,-71.1618052","https://www.google.com/maps/place/Longyear+Museum/data=!4m2!3m1!1s0x89e378f1a264532f:0x53acea414b677529","","","1125 Boylston St, Chestnut Hill, MA 02467, United States",,"History museum","+1 617-278-9000","http://www.longyear.org/",4.9,35,"8RFQ+R7 Chestnut Hill, Newton, MA, USA" -"Massachusetts State House","42.3587772,-71.0638101","https://maps.google.com/maps?q=+%4042.3587772,-71.0638101","https://www.google.com/maps/place/Massachusetts+State+House/data=!4m2!3m1!1s0x89e3709c8355a541:0x64fc806713207cb0","","","24 Beacon St, Boston, MA 02133, United States","Grand, circa-1795 building where the state legislature meets, with monuments, free tours & more.","State government office","+1 617-722-2000","https://malegislature.gov/StateHouse/Visit",4.4,392,"9W5P+GF Boston, Massachusetts, USA" -"McMullen Museum of Art, Boston College","42.340795,-71.1625829","https://maps.google.com/maps?q=+%4042.340795,-71.1625829","https://www.google.com/maps/place/McMullen+Museum+of+Art,+Boston+College/data=!4m2!3m1!1s0x89e3785da725d4c9:0x9e8ea594d0c5e7fe","","","2101 Commonwealth Ave, Boston, MA 02135, United States","Spacious museum at Boston College featuring tapestries, paintings, modern artworks & more.","Art museum","+1 617-552-8587","https://mcmullenmuseum.bc.edu/",4.5,67,"8RRP+8X Boston, Massachusetts, USA" -"Menotomy Rocks Park","42.4107892,-71.167854","https://maps.google.com/maps?q=+%4042.4107892,-71.167854","https://www.google.com/maps/place/Menotomy+Rocks+Park/data=!4m2!3m1!1s0x89e3764a8c16b9c9:0xe567e0e6f9a3a488","","","129 Jason St, Arlington, MA 02476, United States","Spread among the grounds are wooded trails, ball fields, a 3-acre fishing pond & a playground.","Park","+1 781-316-3880",,4.7,328,"CR6J+8V Arlington, Massachusetts, USA" -"Metropolitan Waterworks Museum","42.3317473,-71.155555","https://maps.google.com/maps?q=+%4042.3317473,-71.155555","https://www.google.com/maps/place/Metropolitan+Waterworks+Museum/data=!4m2!3m1!1s0x89e37857c1c3f2c5:0xe97e49e909989bac","","","2450 Beacon St, Chestnut Hill, MA 02467, United States","Exhibits on the engineering behind U.S.'s 1st metro water system, with walking & bus tours.","Museum","+1 617-277-0065","http://waterworksmuseum.org/",4.7,396,"8RJV+MQ Chestnut Hill, Newton, MA, USA" -"Mr. Crêpe","42.3965778,-71.1227278","https://maps.google.com/maps?q=+%4042.3965778,-71.1227278","https://www.google.com/maps/place/Mr.+Cr%C3%AApe/data=!4m2!3m1!1s0x89e3771f4a90abed:0xda38c6673bef881e","","","51 Davis Square, Somerville, MA 02144, United States","Unpretentious, quick-serve crêperie providing sweet & savory options plus tea & coffee.","Creperie","+1 617-623-0661","http://www.mrcrepe.com/",4.4,1104,"9VWG+JW Somerville, Massachusetts, USA" -"Muffin House Cafe","42.3140229,-71.3598149","https://maps.google.com/maps?q=+%4042.3140229,-71.3598149","https://www.google.com/maps/place/Muffin+House+Cafe/data=!4m2!3m1!1s0x89e38768213b86c7:0x2c10fd4409bc416b","","","325 N Main St, Natick, MA 01760, United States",,"Coffee shop","+1 508-647-0500","http://www.muffinhousecafe.com/",4.6,135,"8J7R+J3 Natick, Massachusetts, USA" -"Petsi Pies","42.3836229,-71.1126695","https://maps.google.com/maps?q=+%4042.3836229,-71.1126695","https://www.google.com/maps/place/Petsi+Pies/data=!4m2!3m1!1s0x89e37739058d23e1:0x9dc1c5588a09c517","","","285 Beacon St, Somerville, MA 02143, United States","Sweet & savory pies, pastries, cookies & cupcakes round out the menu at this comfortable bakery.","Bakery","+1 617-661-7437","http://petsipies.com/",4.6,305,"9VMP+CW Somerville, Massachusetts, USA" -"Polcari’s Coffee","42.3640137,-71.0555003","https://maps.google.com/maps?q=+%4042.3640137,-71.0555003","https://www.google.com/maps/place/Polcari%E2%80%99s+Coffee/data=!4m2!3m1!1s0x89e370892cf52c53:0x20c300a36a123827","","","105 Salem St, Boston, MA 02113, United States","Circa-1932 storied shop purveying dozens of varieties of coffee beans, nuts & Italian delicacies.","Coffee store","+1 617-227-0786","http://www.polcariscoffee.com/",4.9,263,"9W7V+JQ Boston, Massachusetts, USA" -"Porter","42.3884,-71.119149","https://maps.google.com/maps?q=+%4042.3884,-71.119149","https://www.google.com/maps/place/Porter/data=!4m2!3m1!1s0x89e3773da539d88f:0x2821f993055fa2de","","","1899 Massachusetts Ave, Cambridge, MA 02140, United States",,"Transit station","+1 617-222-3200","http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=13912&lat=42.388353&lng=-71.119159",4,78,"9VQJ+98 Cambridge, Massachusetts, USA" -"Puerto Rican Veterans Memorial","42.3407613,-71.0712561","https://maps.google.com/maps?q=+%4042.3407613,-71.0712561","https://www.google.com/maps/place/Puerto+Rican+Veterans+Memorial/data=!4m2!3m1!1s0x89e37a6c8670de6b:0x596a54ac8f26f15a","","","1440 Washington St, Boston, MA 02118, United States",,"Memorial park","+1 617-970-7824",,4.9,8,"8WRH+8F Boston, Massachusetts, USA" -"Skinny House (Spite House) Boston, MA","42.3668968,-71.0561781","https://maps.google.com/maps?q=+%4042.3668968,-71.0561781","https://www.google.com/maps/place/Skinny+House+(Spite+House)+Boston,+MA/data=!4m2!3m1!1s0x89e3716bd692b5fd:0x6e7a0a25e91dff1","","","44 Hull St, Boston, MA 02113, United States",,"Historical landmark",,,5,24,"9W8V+QG Boston, Massachusetts, USA" -"Soldiers and Sailors Monument","42.3554589,-71.0664019","https://maps.google.com/maps?q=+%4042.3554589,-71.0664019","https://www.google.com/maps/place/Soldiers+and+Sailors+Monument/data=!4m2!3m1!1s0x89e3709dc61c1a5d:0x24b024b975025449","","","139 Tremont St, Boston, MA 02109, United States",,"Monument","+1 617-635-4505","https://www.boston.gov/parks/boston-common",4.5,112,"9W4M+5C Boston, Massachusetts, USA" -"Starbucks","42.359349,-71.059228","https://maps.google.com/maps?q=+%4042.359349,-71.059228","https://www.google.com/maps/place/Starbucks/data=!4m2!3m1!1s0x89e37084fcdafd9d:0xb5e997fb5c83b04c","","","63-65 Court St, Boston, MA 02108, United States","Seattle-based coffeehouse chain known for its signature roasts, light bites and WiFi availability.","Coffee shop","+1 617-227-2284","https://www.starbucks.com/store-locator/store/18393/",3.8,273,"9W5R+P8 Boston, Massachusetts, USA" -"Steinert Hall","42.3524116,-71.0668408","https://maps.google.com/maps?q=+%4042.3524116,-71.0668408","https://www.google.com/maps/place/Steinert+Hall/data=!4m2!3m1!1s0x89e37a766d088e55:0x68e4811e47599d05","","","162 Boylston St, Boston, MA 02116, United States",,"Business center",,,4.8,5,"9W2M+X7 Boston, Massachusetts, USA" -"Sugar and Spice Ice Cream Cafe","42.2961434,-71.0872846","https://maps.google.com/maps?q=+%4042.2961434,-71.0872846","https://www.google.com/maps/place/Sugar+and+Spice+Ice+Cream+Cafe/data=!4m2!3m1!1s0x89e37b2f9e9b5939:0xe45f78c80d05267d","","","834 Blue Hill Ave, Boston, MA 02124, United States",,"Ice cream shop","+1 617-506-7559","https://sugar-and-spice-ice-cream-cafe.ueniweb.com/?utm_campaign=gmb",4.5,2,"7WW7+F3 Boston, Massachusetts, USA" -"TD Garden","42.366198,-71.062146","https://maps.google.com/maps?q=+%4042.366198,-71.062146","https://www.google.com/maps/place/TD+Garden/data=!4m2!3m1!1s0x89e3708e162d05cb:0x32d335fe5ed797a8","","","100 Legends Way, Boston, MA 02114, United States","Modern, comfortable arena, home to the Celtics & Bruins as well as large-scale concerts & ice shows.","Arena","+1 617-624-1000","http://www.tdgarden.com/?utm_source=google&utm_medium=organic&utm_campaign=gmb",4.6,18954,"9W8Q+F4 Boston, Massachusetts, USA" -"Tasca Restaurant","42.3433772,-71.1427371","https://maps.google.com/maps?q=+%4042.3433772,-71.1427371","https://www.google.com/maps/place/Tasca+Restaurant/data=!4m2!3m1!1s0x89e379b49b038a49:0xe2264ffabf4625ce","","","1612 Commonwealth Ave, Brighton, MA 02135, United States","Romantic & charming spot for tapas, traditional Spanish entrees, sangria & flamenco shows.","Spanish restaurant","+1 617-730-8002","http://www.tascatapasrestaurant.com/",4.5,631,"8VV4+9W Brighton, Boston, MA, USA" -"The Bagel Table","42.3569102,-71.1438455","https://maps.google.com/maps?q=+%4042.3569102,-71.1438455","https://www.google.com/maps/place/The+Bagel+Table/data=!4m2!3m1!1s0x89e37998326c0ee1:0xf7511ac7147206e4","","","86 Guest St, Boston, MA 02135, United States",,"Bagel shop","+1 617-208-8232","http://mybageltable.com/",3.9,36,"9V44+QF Boston, Massachusetts, USA" -"The Great Elm","42.3553972,-71.0651214","https://maps.google.com/maps?q=+%4042.3553972,-71.0651214","https://www.google.com/maps/place/The+Great+Elm/data=!4m2!3m1!1s0x89e3709daeee0791:0x8f79a06777d2e66a","","","Boston, MA 02108, United States",,"Historical landmark",,,4.4,15,"9W4M+5X Boston, Massachusetts, USA" -"Tiananmen Memorial","42.3509517,-71.0596124","https://maps.google.com/maps?q=+%4042.3509517,-71.0596124","https://www.google.com/maps/place/Tiananmen+Memorial/data=!4m2!3m1!1s0x89e37a7846afeedb:0xddd27450dbdf3d1d","","","John F Fitzgerald Surface Rd &, Beach St, Boston, MA 02111, United States",,"Memorial park",,"https://www.rosekennedygreenway.org/",4.5,15,"9W2R+95 Boston, Massachusetts, USA" -"Yankee Lobster","42.3478381,-71.0359354","https://maps.google.com/maps?q=+%4042.3478381,-71.0359354","https://www.google.com/maps/place/Yankee+Lobster/data=!4m2!3m1!1s0x89e37a9d6f4a416d:0x94d4209f737b02e4","","","300 Northern Ave, Boston, MA 02210, United States","Bare-bones, counter-serve spot for fresh seafood & live lobsters; patio seats offer seaport views.","Seafood restaurant","+1 617-345-9799","http://www.yankeelobstercompany.com/",4.5,3647,"8XX7+4J Boston, Massachusetts, USA" -"Yas Chicken - Allston","42.3525708,-71.1313443","https://maps.google.com/maps?q=+%4042.3525708,-71.1313443","https://www.google.com/maps/place/Yas+Chicken+-+Allston/data=!4m2!3m1!1s0x89e379ae7d4224fb:0x9f6ed82c2294f3","","","128 Brighton Ave, Allston, MA 02134, United States",,,"+1 617-202-5713",,3.9,84,"9V39+2F Allston, Boston, MA, USA" -"swissbakers","42.3631904,-71.1284677","https://maps.google.com/maps?q=+%4042.3631904,-71.1284677","https://www.google.com/maps/place/swissbakers/data=!4m2!3m1!1s0x89e379d8bfdd3113:0xe26d4741a3a52c0f","","","168 Western Ave, Boston, MA 02134, United States","European-style bakery showcasing homemade breads, pretzels & pastries in a bright & airy location.","Bakery","+1 617-903-3113","http://www.swissbakers.com/",4.5,414,"9V7C+7J Boston, Massachusetts, USA" \ No newline at end of file diff --git a/List B.csv b/List B.csv deleted file mode 100644 index 444d670..0000000 --- a/List B.csv +++ /dev/null @@ -1,37 +0,0 @@ -"name","gps","address","type","website","ratingsAverage","ratingsTotal","plusCode","googleUrl","originalUrl","info","types","description","phone" -"""The Charlestown Bells"" by Paul Matisse","42.3691906,-71.061757","Boston, MA 02129, United States","Sculpture","http://www.paulmatisse.com/charlestown-bell/",4.6,16,"9W9Q+M7 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3691906,-71.061757","https://www.google.com/maps/place/%22The+Charlestown+Bells%22+by+Paul+Matisse/data=!4m2!3m1!1s0x89e3709278c08493:0xb779a0ad70ec05b7","","",, -"42°23'18.8""N 71°07'09.5""W","42.388547,-71.119301",,,,,,,"https://maps.google.com/maps?q=+%4042.388547,-71.119301","https://www.google.com/maps/search/42.388547,-71.119301","","",, -"Bow Market","42.381008,-71.097883","1 Bow Mkt Wy, Somerville, MA 02143, United States","Market","http://bowmarketsomerville.com/",4.6,817,"9WJ2+CR Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.381008,-71.097883","https://www.google.com/maps/place/Bow+Market/data=!4m2!3m1!1s0x89e37734d74d2c3f:0x208a25b72d87b75d","","","Former storage building featuring local boutiques, cafes & art shops around a central courtyard.", -"Cambridge Public Library","42.3741209,-71.1107166","449 Broadway, Cambridge, MA 02138, United States","Public library","http://www.cambridgepubliclibrary.org/",4.7,321,"9VFQ+JP Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3741209,-71.1107166","https://www.google.com/maps/place/Cambridge+Public+Library/data=!4m2!3m1!1s0x89e37745a7478907:0xca426e8b350c9f57","","",,"+1 617-349-4040" -"Charlestown High School","42.3803747,-71.0609962","240 Medford St, Charlestown, MA 02129, United States","High school","http://www.charlestownhs.org/",4.6,15,"9WJQ+4J Charlestown, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3803747,-71.0609962","https://www.google.com/maps/place/Charlestown+High+School/data=!4m2!3m1!1s0x89e370f01a030e2b:0xcb29b13f4cec27c9","","",,"+1 617-635-9914" -"Christopher Columbus Waterfront Park","42.3609921,-71.0516339","100 Atlantic Ave, Boston, MA 02110, United States","Park","http://www.foccp.org/",4.7,3554,"9W6X+98 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3609921,-71.0516339","https://www.google.com/maps/place/Christopher+Columbus+Waterfront+Park/data=!4m2!3m1!1s0x89e3708871f0fc8f:0x3218180677ad009c","","","This popular city park featuring a play area, gardens & views of the water hosts many events.","+1 617-635-7275" -"Dawes Island","42.3754427,-71.1194344","Massachusetts Ave & Garden St, Cambridge, MA 02138, United States","Park",,4.3,3,"9VGJ+56 Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3754427,-71.1194344","https://www.google.com/maps/place/Dawes+Island/data=!4m2!3m1!1s0x89e377425b0e85cd:0xfffdb49327515349","","",, -"Desfina Restaurant","42.3675275,-71.0809932","202 Third St, Cambridge, MA 02141, United States","Greek restaurant","http://www.desfina.com/",4.4,629,"9W99+2J Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3675275,-71.0809932","https://www.google.com/maps/place/Desfina+Restaurant/data=!4m2!3m1!1s0x89e370bb0d445a69:0x1e7255414a1c857d","","","Convivial, casual Greek taverna serving grilled seafood & meats & other traditional specialties.","+1 617-868-9098" -"Dino Safari Boston: A Walk-Thru Adventure","42.3597994,-71.0545357","Faneuil Hall Marketplace, 4 S Market St, Boston, MA 02109, United States","Exhibit",,4.3,214,"9W5W+W5 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3597994,-71.0545357","https://www.google.com/maps/place/Dino+Safari+Boston:+A+Walk-Thru+Adventure/data=!4m2!3m1!1s0x89e371a4e43be949:0xf28f02a7abf984e2","","",, -"F. A. Kennedy Steam Bakery","42.3627462,-71.1013044","129 Franklin St, Cambridge, MA 02139, United States","Apartment building",,,,"9V7X+3F Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3627462,-71.1013044","https://www.google.com/maps/place/F.+A.+Kennedy+Steam+Bakery/data=!4m2!3m1!1s0x89e3775445b8690f:0xb24a393bc2876575","","",, -"Forge Baking Co & Ice Cream Bar","42.3838224,-71.1108423","626 Somerville Ave, Somerville, MA 02143, United States","Bakery","http://www.forgebakingco.com/",4.5,666,"9VMQ+GM Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3838224,-71.1108423","https://www.google.com/maps/place/Forge+Baking+Co+%26+Ice+Cream+Bar/data=!4m2!3m1!1s0x89e37739bfce6ead:0x348628ea829c627","","","Artisanal breads, pastries & sandwiches are served at this bakery/cafe set in a former warehouse.","+1 617-764-5365" -"Greentown Labs","42.3820702,-71.1026937","444 Somerville Ave, Somerville, MA 02143, United States","Laboratory","http://greentownlabs.com/",4.7,77,"9VJW+RW Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3820702,-71.1026937","https://www.google.com/maps/place/Greentown+Labs/data=!4m2!3m1!1s0x89e37a80423c9c9d:0x916ce7207a296e65","","",,"+1 888-954-6836" -"Harvard Square","42.373465,-71.1189467","Brattle St, Cambridge, MA 02138, United States","Tourist attraction","http://www.harvardsquare.com/",4.5,8985,"9VFJ+9C Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.373465,-71.1189467","https://www.google.com/maps/place/Harvard+Square/data=!4m2!3m1!1s0x89e37742bc65ca79:0x59ca183286a63b76","","","Home to America's oldest university, this iconic area offers shops, eateries & theaters.","+1 617-491-3434" -"Igor Fokin memorial","42.3732344,-71.1208817","Brattle Square, Cambridge, MA 02138, United States","Cultural landmark","http://igorfokin.com/memorial.html",5,2,"9VFH+7J Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3732344,-71.1208817","https://www.google.com/maps/place/Igor+Fokin+memorial/data=!4m2!3m1!1s0x89e37798b0d1cd8f:0xb6e1c4b745e9a1b7","","",, -"John F. Kennedy Presidential Library and Museum","42.316274,-71.0342146","Columbia Point, Boston, MA 02125, United States","Library","https://www.jfklibrary.org/",4.7,740,"8X88+G8 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.316274,-71.0342146","https://www.google.com/maps/place/John+F.+Kennedy+Presidential+Library+and+Museum/data=!4m2!3m1!1s0x89e37ae468290749:0x911b0e0aaf975e24","","","President Kennedy exhibits, videos & research collections in a striking I.M. Pei–designed building.","+1 617-514-1600" -"Lechmere Canal Park","42.3695046,-71.0756902","6 Canal Park, Cambridge, MA 02141, United States","Park","http://www.cambridgema.gov/CDD/zoninganddevelopment/advcomms/lechmerecanalpark",4.6,351,"9W9F+RP Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3695046,-71.0756902","https://www.google.com/maps/place/Lechmere+Canal+Park/data=!4m2!3m1!1s0x89e370bdd8ecfeb1:0xf0b2c8f4ca6df789","","","A tranquil, landscaped park with a focal fountain & tree-shaded areas for relaxing.","+1 617-349-4600" -"Lynch Family Skatepark","42.3701829,-71.0678704","Education St, Cambridge, MA 02141, United States","Skateboard park","https://www.stantec.com/en/projects/united-states-projects/l/lynch-family-skate-park",4.8,358,"9WCJ+3V Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3701829,-71.0678704","https://www.google.com/maps/place/Lynch+Family+Skatepark/data=!4m2!3m1!1s0x89e3709465c89cfd:0xb8db1544f3a42cd3","","",,"+1 617-608-1410" -"Machu Chicken","42.3799095,-71.0968274","25 Union Square, Somerville, MA 02143, United States","Peruvian restaurant",,4.5,422,"9WH3+X7 Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3799095,-71.0968274","https://www.google.com/maps/place/Machu+Chicken/data=!4m2!3m1!1s0x89e370cae108bd17:0x373fb45697bd208a","","","Pan flutes playing in the background set the scene for Peruvian fare, served alongside pisco sours.", -"Millers River Potato Monument","42.3718401,-71.0656594","Millers River Littoral Way, Boston, MA 02114, United States","Historical landmark",,4.5,95,"9WCM+PP Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3718401,-71.0656594","https://www.google.com/maps/place/Millers+River+Potato+Monument/data=!4m2!3m1!1s0x89e370933bca6229:0xc6598f35dfe3e8f1","","",, -"Museum of Fine Arts, Boston","42.339381,-71.094048","465 Huntington Ave, Boston, MA 02115, United States","Art museum","https://www.mfa.org/",4.8,15647,"8WQ4+Q9 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.339381,-71.094048","https://www.google.com/maps/place/Museum+of+Fine+Arts,+Boston/data=!4m2!3m1!1s0x89e37a0de7e77a4b:0x2f033fd6c495d564","","","Neoclassical & modern wings house a vast collection from ancient Egyptian to contemporary American.","+1 617-267-9300" -"P & E Microcomputer Systems Inc","42.3621177,-71.1854722","98 Galen St 2nd floor, Watertown, MA 02472, United States","Electronics manufacturer","http://www.pemicro.com/",5,1,"9R67+RR Watertown, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3621177,-71.1854722","https://www.google.com/maps/place/P+%26+E+Microcomputer+Systems+Inc/data=!4m2!3m1!1s0x89e3780ed817e93f:0x1890fb70fb08d055","","",,"+1 617-923-0053" -"Peabody Museum of Archaeology and Ethnology","42.3782386,-71.1146697","11 Divinity Ave, Cambridge, MA 02138, United States","Museum","http://www.peabody.harvard.edu/",4.6,576,"9VHP+74 Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3782386,-71.1146697","https://www.google.com/maps/place/Peabody+Museum+of+Archaeology+and+Ethnology/data=!4m2!3m1!1s0x89e37746d15ee397:0x120a9da97291d878","","","Harvard museum with ancient cultures' artifacts & archeology, plus access to Natural History Museum.","+1 617-496-1027" -"Prospect Hill Monument","42.3817274,-71.0935443",,"Monument",,,,,"https://maps.google.com/maps?q=+%4042.3817274,-71.0935443","https://www.google.com/maps/place/Prospect+Hill+Monument/data=!4m2!3m1!1s0x89e370cb8f14d9bb:0xabf5f27c24d01c53","","",, -"Spirit Halloween","42.3551807,-71.0611749","467 Washington St, Boston, MA 02108, United States","Costume store","https://stores.spirithalloween.com/",2.5,6,"9W4Q+3G Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3551807,-71.0611749","https://www.google.com/maps/place/Spirit+Halloween/data=!4m2!3m1!1s0x89e3713395158c15:0xca3897572626f10c","","","Seasonal chain with Halloween & fancy dress costumes for all ages, plus accessories & decor.","+1 855-704-2669" -"Stata Center","42.3616095,-71.0906355",,"Building",,,,,"https://maps.google.com/maps?q=+%4042.3616095,-71.0906355","https://www.google.com/maps/place/Stata+Center/data=!4m2!3m1!1s0x89e370a95d3025a9:0xb1de557289ff6bbe","","",, -"The Collection of Historical Scientific Instruments at the Putnam Gallery","42.3766442,-71.1161887","1 Oxford St, Cambridge, MA 02138, United States","Science museum","https://chsi.harvard.edu/",4.7,104,"9VGM+MG Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3766442,-71.1161887","https://www.google.com/maps/place/The+Collection+of+Historical+Scientific+Instruments+at+the+Putnam+Gallery/data=!4m2!3m1!1s0x89e3774157d08287:0xe1392204489e893b","","",,"+1 617-495-2779" -"The Engine","42.3627993,-71.0962734","750 Main St, Cambridge, MA 02139, United States","Coworking space","https://engine.xyz/locations/750-main",4.8,12,"9W73+4F Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3627993,-71.0962734","https://www.google.com/maps/place/The+Engine/data=!4m2!3m1!1s0x89e371669346b499:0x8cb71ba4c8cd231f","","",, -"The Harvard Museum of Natural History","42.3784629,-71.1155576","26 Oxford St, Cambridge, MA 02138, United States","Natural history museum","http://www.hmnh.harvard.edu/",4.7,4040,"9VHM+9Q Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3784629,-71.1155576","https://www.google.com/maps/place/The+Harvard+Museum+of+Natural+History/data=!4m2!3m1!1s0x89e377412f2ed67b:0x613d8c4648bcba7b","","","Extensive natural-science collections, including animals, minerals & the famous Glass Flowers.","+1 617-495-3045" -"The Mµseum (tiny museum)","42.3797674,-71.0949101","71 Union Square #3032, Somerville, MA 02143, United States",,,3.3,7,"9WH4+W2 Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3797674,-71.0949101","https://www.google.com/maps/place/The+M%C2%B5seum+(tiny+museum)/data=!4m2!3m1!1s0x89e370cafcd02b17:0xe21ebbda83f7d2ef","","",, -"The Nu Do' Society","42.3640287,-71.1087411","125 River St, Cambridge, MA 02139, United States",,,4.7,202,"9V7R+JG Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3640287,-71.1087411","https://www.google.com/maps/place/The+Nu+Do'+Society/data=!4m2!3m1!1s0x89e37701ff4a17c9:0x214afd3b8e30491b","","",,"+1 857-829-3939" -"USS Constitution Museum","42.3739796,-71.0554239","Building 22, Charlestown Navy Yard, Charlestown, MA 02129, United States","History museum","https://ussconstitutionmuseum.org/",4.7,6897,"9WFV+HR Charlestown, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3739796,-71.0554239","https://www.google.com/maps/place/USS+Constitution+Museum/data=!4m2!3m1!1s0x89e370f4778a4f39:0xa5c2057045470ca5","","","Interactive museum near the 1797 wooden frigate made famous as ""Old Ironsides"" in the War of 1812.","+1 617-426-1812" -"Union Square","42.37736,-71.09476","Somerville, MA 02143, United States","Light rail station",,3.8,18,"9WG4+W3 Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.37736,-71.09476","https://www.google.com/maps/place/Union+Square/data=!4m2!3m1!1s0x89e370b57c24c687:0x13b5e2ca1f835296","","",, -"University Park Commons","42.3614115,-71.1014951","65 Sidney St, Cambridge, MA 02139, United States","Park","http://www.universityparkliving.com/",4.5,77,"9V6X+HC Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3614115,-71.1014951","https://www.google.com/maps/place/University+Park+Commons/data=!4m2!3m1!1s0x89e37755b9d8c56f:0x50132e1156dc8272","","","The Massachusetts Institute of Technology's grassy park area showcases many sculptures & art pieces.", -"Veggie Crust - Somerville","42.3822934,-71.1024769","445 Somerville Ave, Somerville, MA 02143, United States","Vegetarian restaurant","http://vegcrust.com/",4.5,735,"9VJX+W2 Somerville, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3822934,-71.1024769","https://www.google.com/maps/place/Veggie+Crust+-+Somerville/data=!4m2!3m1!1s0x89e3773422ba2b95:0x34df8b11890a5533","","","Casual, contemporary eatery specializing in creative vegetarian pizza, pasta & paninis.","+1 617-764-4605" -"Veggie Galaxy","42.3636597,-71.1011111","450 Massachusetts Ave, Cambridge, MA 02139, United States","Vegetarian restaurant","http://www.veggiegalaxy.com/",4.6,3656,"9V7X+FH Cambridge, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3636597,-71.1011111","https://www.google.com/maps/place/Veggie+Galaxy/data=!4m2!3m1!1s0x89e37754654e9227:0xabd328d66f8dad77","","","Imaginative twist on an old-school diner specializing in from-scratch vegan & vegetarian options.","+1 617-497-1513" -"Warren Tavern","42.3741694,-71.0631664","2 Pleasant St, Charlestown, MA 02129, United States","American restaurant","http://www.warrentavern.com/",4.6,1902,"9WFP+MP Charlestown, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3741694,-71.0631664","https://www.google.com/maps/place/Warren+Tavern/data=!4m2!3m1!1s0x89e370ed7348f66f:0x884dacf410968c9e","","","Legendary circa-1780 tavern draws locals & tourists for beer, varied pub food & Colonial charm.","+1 617-241-8142" \ No newline at end of file diff --git a/List C.csv b/List C.csv deleted file mode 100644 index dbfa002..0000000 --- a/List C.csv +++ /dev/null @@ -1,34 +0,0 @@ -"name","gps","googleUrl","originalUrl","info","types","address","type","phone","website","ratingsAverage","ratingsTotal","plusCode","description" -"42°21'41.5""N 71°03'24.6""W","42.361531,-71.056823","https://maps.google.com/maps?q=+%4042.361531,-71.056823","https://www.google.com/maps/search/42.361531,-71.056823","","",,,,,,,, -"All Saints Church","42.2857047,-71.0632852","https://maps.google.com/maps?q=+%4042.2857047,-71.0632852","https://www.google.com/maps/place/All+Saints+Church/data=!4m2!3m1!1s0x89e37b8fc37d3635:0x465ff35cb902fe3c","","","209 Ashmont St, Boston, MA 02124, United States","Episcopal church","+1 617-436-6370","http://www.allsaints.net/",4.7,14,"7WPP+7M Boston, Massachusetts, USA", -"Ashmont","42.2845163,-71.0637877","https://maps.google.com/maps?q=+%4042.2845163,-71.0637877","https://www.google.com/maps/place/Ashmont/data=!4m2!3m1!1s0x89e37b8fab0e0d17:0xc9ac474b3fb9102a","","","Dorchester Ave &, Ashmont St, Boston, MA 02124, United States","Transit station","+1 617-222-3200","https://www.mbta.com/stops/place-asmnl",4,121,"7WMP+RF Boston, Massachusetts, USA", -"Boston Children's Museum","42.3519736,-71.0496839","https://maps.google.com/maps?q=+%4042.3519736,-71.0496839","https://www.google.com/maps/place/Boston+Children's+Museum/data=!4m2!3m1!1s0x89e37080065a07df:0xf7e753ec01cb4dc3","","","308 Congress St, Boston, MA 02210, United States","Children's museum","+1 617-426-6500","https://bostonchildrensmuseum.org/",4.7,5423,"9X22+Q4 Boston, Massachusetts, USA","Fun, hands-on educational exhibits aimed at kids 11 & under, plus a play space for toddlers." -"Boston College High School","42.3162356,-71.0454645","https://maps.google.com/maps?q=+%4042.3162356,-71.0454645","https://www.google.com/maps/place/Boston+College+High+School/data=!4m2!3m1!1s0x89e37afebcbaf589:0x780a3b22f0552951","","","150 Morrissey Blvd, Boston, MA 02125, United States","High school","+1 617-436-3900","http://www.bchigh.edu/",4.6,33,"8X83+FR Boston, Massachusetts, USA", -"Boston Design Center","42.3441918,-71.0336324","https://maps.google.com/maps?q=+%4042.3441918,-71.0336324","https://www.google.com/maps/place/Boston+Design+Center/data=!4m2!3m1!1s0x89e37a9c7a5bc021:0x5914c5143b3dccf7","","","1 Design Center Pl, Boston, MA 02210, United States","Business center","+1 617-449-5514","http://www.bostondesign.com/",4.5,425,"8XV8+MG Boston, Massachusetts, USA", -"Boston Fire Museum","42.3508756,-71.0487437","https://maps.google.com/maps?q=+%4042.3508756,-71.0487437","https://www.google.com/maps/place/Boston+Fire+Museum/data=!4m2!3m1!1s0x89e3707ff62ce797:0xc7579525550a4e1f","","","344 Congress St, Boston, MA 02210, United States","Museum","+1 617-338-9700","http://www.bostonfiremuseum.com/",4.8,184,"9X22+9G Boston, Massachusetts, USA","Small museum in an old firehouse featuring exhibits pertaining to Boston's firefighting history." -"Boston Tea Party Ships & Museum","42.3521821,-71.0512911","https://maps.google.com/maps?q=+%4042.3521821,-71.0512911","https://www.google.com/maps/place/Boston+Tea+Party+Ships+%26+Museum/data=!4m2!3m1!1s0x89e370803c04bce1:0xd1ee7b7f9a93b4b3","","","306 Congress St, Boston, MA 02210, United States","Museum","+1 617-338-1773","https://www.bostonteapartyship.com/",4.6,6514,"9W2X+VF Boston, Massachusetts, USA","Floating history museum with live reenactments, multimedia exhibits & a tearoom." -"Braintree","42.2075316,-71.0013637","https://maps.google.com/maps?q=+%4042.2075316,-71.0013637","https://www.google.com/maps/place/Braintree/data=!4m2!3m1!1s0x89e362b53bfe7401:0x103c28b87fa9eb64","","","Braintree, MA 02184, United States","Transit station","+1 617-222-3200","https://www.mbta.com/stops/place-brntn",3.5,66,"6X5X+2F Braintree, Massachusetts, USA", -"Bunker Hill Monument","42.3763541,-71.0607764","https://maps.google.com/maps?q=+%4042.3763541,-71.0607764","https://www.google.com/maps/place/Bunker+Hill+Monument/data=!4m2!3m1!1s0x89e370f20b0797ff:0xacaf173272ec0298","","","Monument Sq, Charlestown, MA 02129, United States","Monument","+1 617-242-5641","http://www.nps.gov/bost/historyculture/bhm.htm",4.6,5938,"9WGQ+GM Charlestown, Boston, MA, USA","Marking the Battle of Bunker Hill, this 221-ft. granite obelisk features 294 steps & scenic views." -"Calf Pasture Pumping Station","42.316031,-71.0374911","https://maps.google.com/maps?q=+%4042.316031,-71.0374911","https://www.google.com/maps/place/Calf+Pasture+Pumping+Station/data=!4m2!3m1!1s0x89e37b9c6db32fc3:0x682683b88d60e309","","","240 William T Morrissey Blvd, Boston, MA 02125, United States","Historical landmark",,"https://blogs.umb.edu/pumpingstation/",5,1,"8X87+C2 Boston, Massachusetts, USA", -"Castle Island","42.3378699,-71.0125206","https://maps.google.com/maps?q=+%4042.3378699,-71.0125206","https://www.google.com/maps/place/Castle+Island/data=!4m2!3m1!1s0x89e37aafac89e1ef:0x5700933eefbf7922","","","2010 William J Day Blvd, Boston, MA 02127, United States","State park","+1 617-727-5290","https://www.mass.gov/locations/castle-island-pleasure-bay-m-street-beach-and-carson-beach",4.7,5425,"8XQP+4X Boston, Massachusetts, USA","Site of Fort Independence (open in the summer), with beach, picnic & jogging areas." -"Edgar Allan Poe Statue","42.3523158,-71.0672898","https://maps.google.com/maps?q=+%4042.3523158,-71.0672898","https://www.google.com/maps/place/Edgar+Allan+Poe+Statue/data=!4m2!3m1!1s0x89e37a76743987ff:0x57d9115a6228d26e","","","Boylston St & Charles St, Boston, MA 02116, United States","Sculpture","+1 617-635-4505","https://www.boston.gov/",4.7,131,"9W2M+W3 Boston, Massachusetts, USA", -"Forbes Hill Standpipe","42.2576602,-71.02832","https://maps.google.com/maps?q=+%4042.2576602,-71.02832","https://www.google.com/maps/place/Forbes+Hill+Standpipe/data=!4m2!3m1!1s0x89e37c966595bd4b:0x63a61353e4bfebf7","","","20 Reservoir Rd, Quincy, MA 02170, United States","Historical place",,,5,1,"7X5C+3M Quincy, Massachusetts, USA", -"Glenn’s Kreme&Kone at the Hood Milk Bottle","42.3516479,-71.0502126","https://maps.google.com/maps?q=+%4042.3516479,-71.0502126","https://www.google.com/maps/place/Glenn%E2%80%99s+Kreme%26Kone+at+the+Hood+Milk+Bottle/data=!4m2!3m1!1s0x89e370800f6aac83:0x9584aa165c51cfba","","","306 Congress St, Boston, MA 02210, United States","Ice cream shop",,"http://hood.com/",4.3,57,"9W2X+MW Boston, Massachusetts, USA","40-ft.-tall wooden milk bottle, a local landmark since 1977 & housing a small restaurant." -"ICA Watershed","42.3639107,-71.0331956","https://maps.google.com/maps?q=+%4042.3639107,-71.0331956","https://www.google.com/maps/place/ICA+Watershed/data=!4m2!3m1!1s0x89e3717c1e311df1:0x458251c579149d62","","","256 Marginal St, Boston, MA 02128, United States","Art gallery","+1 617-478-3100","https://www.icaboston.org/ica-watershed",4.5,190,"9X78+HP Boston, Massachusetts, USA","Big warehouse-turned-gallery featuring video installations & other unique art exhibits, plus events." -"Institute of Contemporary Art","42.3528151,-71.0432778","https://maps.google.com/maps?q=+%4042.3528151,-71.0432778","https://www.google.com/maps/place/Institute+of+Contemporary+Art/data=!4m2!3m1!1s0x89e370793a8430c5:0x7ab1059322edd33a","","","25 Harbor Shore Dr, Boston, MA 02210, United States","Art museum","+1 617-478-3100","https://www.icaboston.org/",4.4,3693,"9X34+4M Boston, Massachusetts, USA","Striking contemporary art & performance space with glass-filled walls overlooking the Harbor." -"John Adams Birthplace - Adams National Historical Park","42.2392354,-71.0035279","https://maps.google.com/maps?q=+%4042.2392354,-71.0035279","https://www.google.com/maps/place/John+Adams+Birthplace+-+Adams+National+Historical+Park/data=!4m2!3m1!1s0x89e37ccd43d39839:0xc30376ecd57e40d6","","","141 Franklin St, Quincy, MA 02169, United States","Historical landmark","+1 617-770-1175","https://www.nps.gov/adam/planyourvisit/index.htm",4.7,312,"6XQW+MH Quincy, Massachusetts, USA", -"John Joseph Moakley United States Courthouse","42.3537343,-71.0470633","https://maps.google.com/maps?q=+%4042.3537343,-71.0470633","https://www.google.com/maps/place/John+Joseph+Moakley+United+States+Courthouse/data=!4m2!3m1!1s0x89e3707c20950b2b:0x1254d29050090bc0","","","1 Courthouse Way, Boston, MA 02210, United States","City courthouse","+1 617-261-2440","https://www.gsa.gov/about-us/regions/welcome-to-the-new-england-region-1/buildings-and-facilities/massachusetts/john-joseph-moakley-us-courthouse",3.9,23,"9X33+F5 Boston, Massachusetts, USA", -"L Street Bathhouse","42.3291218,-71.0352443","https://maps.google.com/maps?q=+%4042.3291218,-71.0352443","https://www.google.com/maps/place/L+Street+Bathhouse/data=!4m2!3m1!1s0x89e37bb79deddcb1:0xb675080411244540","","","1663 Columbia Rd, Boston, MA 02127, United States","Historical landmark",,,5,3,"8XH7+JW Boston, Massachusetts, USA", -"Massachusetts Historical Society","42.3463992,-71.0898829","https://maps.google.com/maps?q=+%4042.3463992,-71.0898829","https://www.google.com/maps/place/Massachusetts+Historical+Society/data=!4m2!3m1!1s0x89e37a1b6d4890d7:0x6ffab44ab8343536","","","1154 Boylston St, Boston, MA 02215, United States","Historical society","+1 617-536-1608","http://www.masshist.org/",5,12,"8WW6+H2 Boston, Massachusetts, USA","Early presidential papers & Revolution-era documents at this public library with craft exhibits." -"O B's Cafe","42.2743442,-71.0240951","https://maps.google.com/maps?q=+%4042.2743442,-71.0240951","https://www.google.com/maps/place/O+B's+Cafe/data=!4m2!3m1!1s0x89e37b5e6ea0cbed:0x39ef401b432e2fac","","","74 Billings Rd, Quincy, MA 02171, United States","American restaurant","+1 617-472-2777","http://o-bs-cafe.keeq.io/",4.5,374,"7XFG+P9 Quincy, Massachusetts, USA","Laid-back diner known for its generous servings of down-home breakfast classics." -"Pleasure Bay","42.3358743,-71.0234949","https://maps.google.com/maps?q=+%4042.3358743,-71.0234949","https://www.google.com/maps/place/Pleasure+Bay/data=!4m2!3m1!1s0x89e37b54c10c2f53:0x8b87653b8f52403d","","","William J Day Blvd, Boston, MA 02127, United States","Public beach",,"https://www.boston.gov/departments/parks-and-recreation",4.6,331,"8XPG+8J Boston, Massachusetts, USA", -"Revere Beach","42.420226,-70.985881","https://maps.google.com/maps?q=+%4042.420226,-70.985881","https://www.google.com/maps/place/Revere+Beach/data=!4m2!3m1!1s0x89e36dfcd362f837:0x5802dedc68b5bbcd","","","350 Revere Beach Blvd, Revere, MA 02151, United States","Public beach","+1 978-807-0167","http://www.reverebeach.com/",4.4,7721,"C2C7+3J Revere, Massachusetts, USA","America's first public beach, this landmark boasts a scenic coastline & close proximity to the T." -"Schoolhouse Pizza","42.2454086,-71.0005483","https://maps.google.com/maps?q=+%4042.2454086,-71.0005483","https://www.google.com/maps/place/Schoolhouse+Pizza/data=!4m2!3m1!1s0x89e3633519a4d7d3:0x529508048d4c0674","","","3 School St, Quincy, MA 02169, United States","Pizza restaurant","+1 617-770-3141","https://www.schoolhousepizzeria.com/",4,230,"6XWX+5Q Quincy, Massachusetts, USA","Quaint brick-walled pizzeria with a chalkboard menu creating casual fare with local ingredients." -"South Boston Korean War Memorial, Castle Island, South Boston, - Massachusetts, USA","42.3367603,-71.0096371","https://maps.google.com/maps?q=+%4042.3367603,-71.0096371","https://www.google.com/maps/place/South+Boston+Korean+War+Memorial,+Castle+Island,+South+Boston,+%0AMassachusetts,+USA/data=!4m2!3m1!1s0x89e37bd89e99002b:0xe20a866dcbc3f019","","","Boston, MA 02127, United States","War memorial",,,4.8,14,"8XPR+P4 Boston, Massachusetts, USA", -"Taiyaki NYC - Boston","42.3509709,-71.0447796","https://maps.google.com/maps?q=+%4042.3509709,-71.0447796","https://www.google.com/maps/place/Taiyaki+NYC+-+Boston/data=!4m2!3m1!1s0x89e37170160b9991:0xa8343f991b8e9e05","","","119 Seaport Blvd Suite B, Boston, MA 02210, United States","Ice cream shop","+1 617-531-3514","http://taiyakinyc.com/",4.4,1090,"9X24+93 Boston, Massachusetts, USA", -"Tavern of Tales: Café & Bar","42.3319001,-71.0983169","https://maps.google.com/maps?q=+%4042.3319001,-71.0983169","https://www.google.com/maps/place/Tavern+of+Tales:+Caf%C3%A9+%26+Bar/data=!4m2!3m1!1s0x89e3797f3e73fd45:0xe5cb134d86437cff","","","1478 Tremont St, Boston, MA 02120, United States","Cafe","+1 617-708-0172","https://www.tavernoftales.com/",4.6,210,"8WJ2+QM Boston, Massachusetts, USA","Polished joint offering classic sandwiches & cocktails, plus a large selection of board games." -"The Clam Box","42.2763168,-71.0092883","https://maps.google.com/maps?q=+%4042.2763168,-71.0092883","https://www.google.com/maps/place/The+Clam+Box/data=!4m2!3m1!1s0x89e37b51ec82f005:0xdd4a8d676f05797d","","","789 Quincy Shore Dr, Quincy, MA 02170, United States","Seafood restaurant","+1 617-302-3474","http://www.clamboxquincy.com/",4.3,2145,"7XGR+G7 Quincy, Massachusetts, USA","Classic beachfront joint with a rustic vibe dishes up clams & other seafood specials in a cozy room." -"The Partisans","42.3478375,-71.0404428","https://maps.google.com/maps?q=+%4042.3478375,-71.0404428","https://www.google.com/maps/place/The+Partisans/data=!4m2!3m1!1s0x89e3708506353877:0x73a1a526b2e474a1","","","Boston, MA 02210, United States","Sculpture",,"https://www.bostonseaport.xyz/venue/the-partisans/",4.8,6,"8XX5+4R Boston, Massachusetts, USA", -"Union Oyster House","42.361288,-71.056908","https://maps.google.com/maps?q=+%4042.361288,-71.056908","https://www.google.com/maps/place/Union+Oyster+House/data=!4m2!3m1!1s0x89e37085f3085631:0x57b1c27214abd128","","","41 Union St, Boston, MA 02108, United States","Seafood restaurant","+1 617-227-2750","http://www.unionoysterhouse.com/?y_source=1_MjY4Nzk0MjktNzE1LWxvY2F0aW9uLndlYnNpdGU%3D",4.3,8497,"9W6V+G6 Boston, Massachusetts, USA","Historic eatery serving chowder & other New England seafood standards since 1826." -"Victoria's Diner","42.3270498,-71.0667744","https://maps.google.com/maps?q=+%4042.3270498,-71.0667744","https://www.google.com/maps/place/Victoria's+Diner/data=!4m2!3m1!1s0x89e37a45cff11089:0xa136000575015fde","","","1024 Massachusetts Ave, Boston, MA 02118, United States","Diner","+1 617-442-5965","http://www.victoriasdiner.com/",4.1,1797,"8WGM+R7 Boston, Massachusetts, USA","Long-standing classic diner for breakfast & sandwich standards with round-the-clock weekend hours." -"Wollaston Beach","42.2806539,-71.0119933","https://maps.google.com/maps?q=+%4042.2806539,-71.0119933","https://www.google.com/maps/place/Wollaston+Beach/data=!4m2!3m1!1s0x89e37b4f0f0c87bd:0xf748852b94b67c04","","","Quincy, MA, United States","Beach",,,4.4,171,,"Historic 2.3-mi.-long beach with a paved promenade, plus lifeguards, boat piers & sunset views." \ No newline at end of file diff --git a/List D.csv b/List D.csv deleted file mode 100644 index 9a19b62..0000000 --- a/List D.csv +++ /dev/null @@ -1,39 +0,0 @@ -"name","gps","address","description","type","phone","website","ratingsAverage","ratingsTotal","plusCode","googleUrl","originalUrl","info","types" -"Abbondanza","42.4074484,-71.0618764","195 Main St, Everett, MA 02149, United States","Comfy, modest eatery prepping generous plates of Italian-style pasta, seafood & grill specialties.","Italian restaurant","+1 617-387-8422","http://www.abbondanzaristorante.com/",4.4,186,"CW4Q+X6 Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4074484,-71.0618764","https://www.google.com/maps/place/Abbondanza/data=!4m2!3m1!1s0x89e37112871853f9:0xaa2990b5e8c0d76f","","" -"Aeronaut Cannery & Taproom","42.3986053,-71.0612182","199 Ashland St, Everett, MA 02149, United States",,"Brewery","+1 617-370-5904","https://www.aeronautbrewing.com/visit/the-cannery/",4.7,46,"9WXQ+CG Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3986053,-71.0612182","https://www.google.com/maps/place/Aeronaut+Cannery+%26+Taproom/data=!4m2!3m1!1s0x89e371f3ac2cc9a1:0xd32d8135448788b","","" -"Andrew McArdle Bridge","42.3855456,-71.0392667","Andrew McArdle Bridge, Boston, MA 02128, United States",,"Bridge",,,4.2,17,"9XP6+67 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3855456,-71.0392667","https://www.google.com/maps/place/Andrew+McArdle+Bridge/data=!4m2!3m1!1s0x89e37052bf6c5cab:0x4b99bc0af1e2e29","","" -"BearMoose Brewing Company","42.4025721,-71.0515875","1934 Revere Beach Pkwy, Everett, MA 02149, United States",,"Brewery","+1 617-294-1211","https://www.bearmoosebrewing.com/",4.8,122,"CW3X+29 Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4025721,-71.0515875","https://www.google.com/maps/place/BearMoose+Brewing+Company/data=!4m2!3m1!1s0x89e3710b1fa44e87:0xf6987ec441c5b27b","","" -"Belle Isle Observation Tower","42.3917606,-70.9903023","Unnamed Road, 1399 Bennington St, Boston, MA 02128, United States",,"Scenic spot","+1 617-727-5350","https://www.mass.gov/locations/belle-isle-marsh-reservation",4.9,10,"92R5+PV Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3917606,-70.9903023","https://www.google.com/maps/place/Belle+Isle+Observation+Tower/data=!4m2!3m1!1s0x89e36f61a259031f:0x154a184925abda73","","" -"Brasil On Ferry","42.4206339,-71.055873","448 Ferry St, Malden, MA 02148, United States",,"Brazilian restaurant","+1 781-397-8808",,4.6,183,"CWCV+7M Malden, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4206339,-71.055873","https://www.google.com/maps/place/Brasil+On+Ferry/data=!4m2!3m1!1s0x89e3717a2b964caf:0xbf30aa30852c2f16","","" -"Broadway Dairy Maid","42.4222989,-71.0433886","960 Broadway, Everett, MA 02149, United States","Seasonal dessert parlor serving ice cream cones, sundaes & other frozen treats from March-October.","Ice cream shop","+1 617-389-3433","https://www.facebook.com/BroadwayDairyMaid/",4.6,537,"CXC4+WJ Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4222989,-71.0433886","https://www.google.com/maps/place/Broadway+Dairy+Maid/data=!4m2!3m1!1s0x89e37186c9aff893:0x78b79810849fc8eb","","" -"Colonel William Prescott Statue","42.3761612,-71.06088","Freedom Trail, Boston, MA 02129, United States",,"Historical landmark",,"https://www.boston.gov/departments/parks-and-recreation",5,6,"9WGQ+FJ Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3761612,-71.06088","https://www.google.com/maps/place/Colonel+William+Prescott+Statue/data=!4m2!3m1!1s0x89e3719f9281d7c1:0x58baca450113ca4","","" -"Consulado de Honduras en Boston","42.3936888,-71.0412802","90 Everett Ave 3rd floor, Chelsea, MA 02150, United States",,"Foreign consulate","+1 617-819-4885",,3.4,283,"9XV5+FF Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3936888,-71.0412802","https://www.google.com/maps/place/Consulado+de+Honduras+en+Boston/data=!4m2!3m1!1s0x89e3717ea2c367e7:0xb7629e23506a625b","","" -"Costco Wholesale","42.3968978,-71.0714924","2 Mystic View Rd, Everett, MA 02149, United States","Members-only warehouse selling a huge variety of items including bulk groceries, electronics & more.","Warehouse store","+1 617-544-4806","http://www.costco.com/warehouse-locations/everett-MA-333.html?utm_term=KW&utm_campaign=Homepage&utm_medium=GMB&utm_source=Google&utm_content=Link",4.6,3795,"9WWH+QC Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3968978,-71.0714924","https://www.google.com/maps/place/Costco+Wholesale/data=!4m2!3m1!1s0x89e37119d8a6a045:0x2e2cc0b376fb3abd","","" -"East Boston Branch of the Boston Public Library","42.3778389,-71.0282154","365 Bremen St, Boston, MA 02128, United States",,"Public library","+1 617-569-0271","https://www.bpl.org/locations/east-boston/",4.5,74,"9XHC+4P Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3778389,-71.0282154","https://www.google.com/maps/place/East+Boston+Branch+of+the+Boston+Public+Library/data=!4m2!3m1!1s0x89e3705abf04eaf3:0xeef9f9ca2786c77b","","" -"East Boston High School","42.3809511,-71.0350852","86 White St, East Boston, MA 02128, United States",,"High school","+1 617-635-9896","http://www.ebhsjets.net/",3.7,27,"9XJ7+9X East Boston, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3809511,-71.0350852","https://www.google.com/maps/place/East+Boston+High+School/data=!4m2!3m1!1s0x89e3704e6747675f:0xff57babcfd705985","","" -"East Boston YMCA","42.3734483,-71.0331398","215 Bremen St, Boston, MA 02128, United States",,"Youth organization","+1 617-569-9622","http://www.ymcaboston.org/eastboston",4.2,67,"9XF8+9P Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3734483,-71.0331398","https://www.google.com/maps/place/East+Boston+YMCA/data=!4m2!3m1!1s0x89e3704465c2d409:0x69dae831ae3b3a9d","","" -"Fort Heath Park","42.3895122,-70.9693867","Winthrop, MA 02152, United States",,"State park",,"http://winthropmemorials.org/wars-forts/pages/fort-heath.html",4.7,61,"92QJ+R6 Winthrop, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3895122,-70.9693867","https://www.google.com/maps/place/Fort+Heath+Park/data=!4m2!3m1!1s0x89e36e437f0448bf:0x81c43dd818b95692","","" -"Fort Hill Tower","42.3253252,-71.0945712","22-98 Fort Ave, Boston, MA 02119, United States",,"Observation deck",,"https://www.nps.gov/places/fort-hill.htm",4.8,91,"8WG4+45 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3253252,-71.0945712","https://www.google.com/maps/place/Fort+Hill+Tower/data=!4m2!3m1!1s0x89e37a29808d36e1:0x31a83cd40d528b8c","","" -"Governor Bellingham-Cary House","42.398422,-71.0280157","34 Parker St, Chelsea, MA 02150, United States",,"Historical place","+1 617-884-4090","https://bellinghamcary.org/",4.7,21,"9XXC+9Q Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.398422,-71.0280157","https://www.google.com/maps/place/Governor+Bellingham-Cary+House/data=!4m2!3m1!1s0x89e371b8c2570f6d:0xae7e178439cd70c","","" -"Harry Della Russo Stadium","42.4114215,-71.0155516","75 Park Ave, Revere, MA 02151, United States",,"Stadium",,,4.5,224,"CX6M+HQ Revere, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4114215,-71.0155516","https://www.google.com/maps/place/Harry+Della+Russo+Stadium/data=!4m2!3m1!1s0x89e371eff118845f:0x61fe5737f59b02c5","","" -"Hook & Reel Cajun Seafood & Bar","42.4110462,-70.993656","151 Veterans Of Foreign Wars Pkwy #10, Revere, MA 02151, United States",,"Seafood restaurant","+1 781-629-1919","https://hookreel.com/location/revere/",4.2,1055,"C264+CG Revere, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4110462,-70.993656","https://www.google.com/maps/place/Hook+%26+Reel+Cajun+Seafood+%26+Bar/data=!4m2!3m1!1s0x89e36f24c6a27939:0xb20d3fe2535ea236","","" -"Judie Dyer Park","42.3976519,-71.0355621","252 Spruce St, Chelsea, MA 02150, United States",,"Playground",,,4,3,"9XX7+3Q Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3976519,-71.0355621","https://www.google.com/maps/place/Judie+Dyer+Park/data=!4m2!3m1!1s0x89e371b7a1c91021:0x33221c4dab45b3bc","","" -"Madonna Queen of the Universe Shrine","42.390191,-71.0056995","120-150 Orient Ave, Boston, MA 02128, United States",,"Catholic church","+1 617-569-8792",,4.8,389,"9XRV+3P Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.390191,-71.0056995","https://www.google.com/maps/place/Madonna+Queen+of+the+Universe+Shrine/data=!4m2!3m1!1s0x89e371d779eae3e7:0x27eb703d89915400","","" -"Marao Burgers Everett","42.403759,-71.0589219","3407 318, 318 Broadway, Everett, MA 02149, United States",,"Hamburger restaurant","+1 857-363-7139","http://linktr.ee/maraoburgers",4.3,620,"CW3R+GC Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.403759,-71.0589219","https://www.google.com/maps/place/Marao+Burgers+Everett/data=!4m2!3m1!1s0x89e3710e66a274e9:0x219ce91269f3dff8","","" -"Maverick House Tavern","42.3698284,-71.037937","154 Maverick St, Boston, MA 02128, United States","Neighborhood pub offering live music, craft beers & local spirits, plus breakfast & sandwiches.",,"+1 617-455-6223","http://www.maverickhousetavern.com/",4.1,242,"9X96+WR Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3698284,-71.037937","https://www.google.com/maps/place/Maverick+House+Tavern/data=!4m2!3m1!1s0x89e3705d2ca90ed9:0xc972e2054e0fe47d","","" -"My Guatemala Bakery 2","42.3903823,-71.0386285","224 Broadway, Chelsea, MA 02150, United States",,"Bakery","+1 617-887-3452",,4.4,35,"9XR6+5G Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3903823,-71.0386285","https://www.google.com/maps/place/My+Guatemala+Bakery+2/data=!4m2!3m1!1s0x89e371ad8d78d219:0x9c6f682a5960e072","","" -"Newbridge Cafe","42.4122481,-71.0316196","650 Washington Ave, Chelsea, MA 02150, United States","Longtime eatery doling out steak tips & other meat-focused American plates amid old-school decor.","American restaurant","+1 617-884-0134","http://www.newbridgecafe.com/",4.4,1479,"CX69+V9 Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4122481,-71.0316196","https://www.google.com/maps/place/Newbridge+Cafe/data=!4m2!3m1!1s0x89e371922f9b2079:0xc6760b94730725a6","","" -"PORT Park","42.3861321,-71.0328839","99 Marginal St, Chelsea, MA 02150, United States",,"Park","+1 617-466-4090","https://www.facebook.com/pages/PORT-Park/1655796778032455",4.5,85,"9XP8+FR Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3861321,-71.0328839","https://www.google.com/maps/place/PORT+Park/data=!4m2!3m1!1s0x89e3704cccb5d2f5:0xece0019104201e4f","","" -"Paws & Play Dog Park","42.4213082,-71.0270609","Webner Park, 68 Sargent St, Revere, MA 02151, United States",,"Dog park",,,4.1,157,"CXCF+G5 Revere, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4213082,-71.0270609","https://www.google.com/maps/place/Paws+%26+Play+Dog+Park/data=!4m2!3m1!1s0x89e3718ac488d581:0x143e8fcc1c72df52","","" -"Peach's & Cream","42.391236,-71.0366491","307 Broadway, Chelsea, MA 02150, United States","Sweets shop offering cakes, pastries & other baked goods, in addition to take-out breakfast items.","Bakery","+1 617-889-1900","https://www.peachsandcreambakery.com/",4.5,105,"9XR7+F8 Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.391236,-71.0366491","https://www.google.com/maps/place/Peach's+%26+Cream/data=!4m2!3m1!1s0x89e371b21e2de9df:0xebe2ea1d14b19ba7","","" -"Piers Park","42.3649623,-71.0361399","95 Marginal St, Boston, MA 02128, United States",,"Park",,"https://www.boston.gov/departments/parks-and-recreation",4.8,498,"9X77+XG Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3649623,-71.0361399","https://www.google.com/maps/place/Piers+Park/data=!4m2!3m1!1s0x89e37161f18ea6e5:0xf6e835f13094694","","" -"Porrazzo Skating Rink","42.3827415,-71.0116946","199 Coleridge St, East Boston, MA 02128, United States",,"Arena","+1 617-567-9571","http://fmcicesports.com/rink/east-boston-porrazzo-skating-arena/",4.8,35,"9XMQ+38 East Boston, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3827415,-71.0116946","https://www.google.com/maps/place/Porrazzo+Skating+Rink/data=!4m2!3m1!1s0x89e3702d38b64861:0xbf51b0bd578631ea","","" -"Revere Karate Academy","42.4183123,-70.9973058","351 Revere St, Revere, MA 02151, United States",,"Martial arts school","+1 781-289-9535",,3.8,19,"C293+83 Revere, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4183123,-70.9973058","https://www.google.com/maps/place/Revere+Karate+Academy/data=!4m2!3m1!1s0x89e371e8c0e59351:0x12403ea6724e2dfa","","" -"Sphere Luxury Apartments","42.4008442,-71.1122037","640 Boston Ave, Medford, MA 02155, United States",,"Apartment building","+1 781-226-2393","http://www.sphereluxuryapartments.com/",3.7,6,"CV2Q+84 Medford, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.4008442,-71.1122037","https://www.google.com/maps/place/Sphere+Luxury+Apartments/data=!4m2!3m1!1s0x89e376d8f1325193:0xe3c776b648a7833a","","" -"Suffolk Downs","42.390501,-70.997123","Walley St, Boston, MA 02128, United States",,"MRT/LRT Station",,"http://www.mbta.com/schedules_and_maps/subway/lines/stations/?stopId=13698",4.7,13,"92R3+65 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.390501,-70.997123","https://www.google.com/maps/place/Suffolk+Downs/data=!4m2!3m1!1s0x89e36e2612b807ad:0xcd2607e6fb960a15","","" -"Super Burritos Mexican Grill","42.41826,-71.0506461","453 Ferry St, Everett, MA 02149, United States","Unfussy spot for Salvadoran & Mexican staples, including pupusas & tamales, plus breakfast.","Mexican restaurant","+1 617-387-0405","https://www.superburritos.boston/",4.4,322,"CW9X+8P Everett, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.41826,-71.0506461","https://www.google.com/maps/place/Super+Burritos+Mexican+Grill/data=!4m2!3m1!1s0x89e371781015152b:0x3b94659b55b58c36","","" -"The Quiet Few","42.3670906,-71.0359889","331 Sumner St, East Boston, MA 02128, United States",,"Bar","+1 617-561-1061","https://www.thequietfew.com/",4.7,257,"9X87+RJ East Boston, Boston, MA, USA","https://maps.google.com/maps?q=+%4042.3670906,-71.0359889","https://www.google.com/maps/place/The+Quiet+Few/data=!4m2!3m1!1s0x89e371f718c43bf3:0x278e4de737dc510c","","" -"The Tall Ship Boston","42.3649544,-71.0414523","1 E Pier Dr, Boston, MA 02128, United States","Laid-back waterside tall ship with tables doling out seafood, global bites & creative cocktails.","Lounge","+1 617-307-7714","https://www.tallshipboston.com/",4.2,549,"9X75+XC Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3649544,-71.0414523","https://www.google.com/maps/place/The+Tall+Ship+Boston/data=!4m2!3m1!1s0x89e37153af271ec3:0xe9a3938dd5e76126","","" -"Toasted Flats","42.3711266,-71.0371343","53 Chelsea St, Boston, MA 02128, United States","Snug eatery whipping up health-conscious flatbread sandwiches, plus coffee, smoothies & juices.","Sandwich shop","+1 857-264-8531","https://toastedflats.com/",4.7,372,"9XC7+F4 Boston, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3711266,-71.0371343","https://www.google.com/maps/place/Toasted+Flats/data=!4m2!3m1!1s0x89e3704339d4dbaf:0x7a24b797018182bd","","" -"Vega Market","42.3891835,-71.033703","29 Maverick St, Chelsea, MA 02150, United States",,"Grocery store",,,4.8,5,"9XQ8+MG Chelsea, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3891835,-71.033703","https://www.google.com/maps/place/Vega+Market/data=!4m2!3m1!1s0x89e371b3bce5fc25:0xd04d905fd639609f","","" -"Winthrop High School","42.3803348,-70.9799864","400 Main St, Winthrop, MA 02152, United States",,"High school","+1 617-846-5505","https://www.winthrop.k12.ma.us/Domain/99",,,"92JC+42 Winthrop, Massachusetts, USA","https://maps.google.com/maps?q=+%4042.3803348,-70.9799864","https://www.google.com/maps/place/Winthrop+High+School/data=!4m2!3m1!1s0x89e36f2617e687a5:0xeea31e70759d4700","","" \ No newline at end of file diff --git a/ZestySalesman.ipynb b/ZestySalesman.ipynb deleted file mode 100644 index 8e4372c..0000000 --- a/ZestySalesman.ipynb +++ /dev/null @@ -1,5287 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "id": "initial_id", - "metadata": { - "collapsed": true, - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.219877Z", - "start_time": "2024-07-02T22:37:50.303317Z" - } - }, - "source": [ - "import pandas as pd\n", - "import folium\n", - "import utils" - ], - "outputs": [], - "execution_count": 1 - }, - { - "cell_type": "code", - "id": "73b780e762c9de37", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.229897Z", - "start_time": "2024-07-02T22:37:51.220757Z" - } - }, - "source": [ - "# Load the data\n", - "ListA = pd.read_csv('List A.csv')\n", - "ListB = pd.read_csv('List B.csv')\n", - "ListC = pd.read_csv('List C.csv')\n", - "ListD = pd.read_csv('List D.csv')" - ], - "outputs": [], - "execution_count": 2 - }, - { - "cell_type": "code", - "id": "be4c8c1d77842ef7", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.231873Z", - "start_time": "2024-07-02T22:37:51.230471Z" - } - }, - "source": [ - "# Create two centroids, one in the North End and one in the Seaport District\n", - "centroids = [[42.365, -71.054], [42.351, -71.045]]\n", - "\n", - "northeastern_coordinate = \"-71.09033,42.33976\"" - ], - "outputs": [], - "execution_count": 3 - }, - { - "cell_type": "code", - "id": "ffe4025e97a6c6b9", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.235758Z", - "start_time": "2024-07-02T22:37:51.232888Z" - } - }, - "source": [ - "# Combine the two lists and add a column to indicate the list\n", - "ListA['list'] = 'A'\n", - "ListB['list'] = 'B'\n", - "ListC['list'] = 'C'\n", - "ListD['list'] = 'D'\n", - "\n", - "#TotalList = pd.concat([ListA, ListB, ListC, ListD])\n", - "TotalList = pd.concat([ListA, ListB])" - ], - "outputs": [], - "execution_count": 4 - }, - { - "cell_type": "code", - "id": "72657779b4484aae", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.238164Z", - "start_time": "2024-07-02T22:37:51.236334Z" - } - }, - "source": [ - "# Remove all columns but name and gps\n", - "TotalList = TotalList[['name', 'gps', 'list']]" - ], - "outputs": [], - "execution_count": 5 - }, - { - "cell_type": "code", - "id": "a157ffaec020a29a", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:51.356176Z", - "start_time": "2024-07-02T22:37:51.353712Z" - } - }, - "source": [ - "# Convert the gps column to a list of lists for k-means\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: x.strip('[]').split(','))\n", - "TotalList['gps'] = TotalList['gps'].apply(lambda x: [float(i) for i in x])" - ], - "outputs": [], - "execution_count": 6 - }, - { - "cell_type": "code", - "id": "a03ebde91b87fa3b", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:37:52.039978Z", - "start_time": "2024-07-02T22:37:52.032015Z" - } - }, - "source": [ - "display(TotalList)" - ], - "outputs": [ - { - "data": { - "text/plain": [ - " name gps list\n", - "0 521 Commercial Street #525 [42.3688272, -71.0553792] A\n", - "1 Acorn St [42.3576234, -71.0688746] A\n", - "2 Arlington's Great Meadows [42.4299758, -71.2038948] A\n", - "3 Arthur Fiedler Statue [42.3565057, -71.0754527] A\n", - "4 BU Beach [42.3511927, -71.1060828] A\n", - ".. ... ... ...\n", - "31 Union Square [42.37736, -71.09476] B\n", - "32 University Park Commons [42.3614115, -71.1014951] B\n", - "33 Veggie Crust - Somerville [42.3822934, -71.1024769] B\n", - "34 Veggie Galaxy [42.3636597, -71.1011111] B\n", - "35 Warren Tavern [42.3741694, -71.0631664] B\n", - "\n", - "[98 rows x 3 columns]" - ], - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namegpslist
0521 Commercial Street #525[42.3688272, -71.0553792]A
1Acorn St[42.3576234, -71.0688746]A
2Arlington's Great Meadows[42.4299758, -71.2038948]A
3Arthur Fiedler Statue[42.3565057, -71.0754527]A
4BU Beach[42.3511927, -71.1060828]A
............
31Union Square[42.37736, -71.09476]B
32University Park Commons[42.3614115, -71.1014951]B
33Veggie Crust - Somerville[42.3822934, -71.1024769]B
34Veggie Galaxy[42.3636597, -71.1011111]B
35Warren Tavern[42.3741694, -71.0631664]B
\n", - "

98 rows × 3 columns

\n", - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "execution_count": 7 - }, - { - "cell_type": "markdown", - "id": "4bd41be9aca5094b", - "metadata": {}, - "source": [ - "# 2 Routes" - ] - }, - { - "cell_type": "markdown", - "id": "90d1d2f1a931597f", - "metadata": {}, - "source": [ - "## Cluster and Minimize" - ] - }, - { - "cell_type": "code", - "id": "ee9b3c1ecb360976", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:38:01.527682Z", - "start_time": "2024-07-02T22:37:53.433734Z" - } - }, - "source": [ - "# Cluster and minimize the data\n", - "_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate,\n", - " time_diff=0.25, max_time=24, host='http://router.project-osrm.org')\n", - "\n", - "route_1_coordinates = routes[0]\n", - "route_2_coordinates = routes[1]" - ], - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'code': 'Ok', 'trips': [{'geometry': '{kqaG|utpLwFzHtDL|DgI`ClC_DzKtAyEaAdOsK|FdAxN`AoG{KeS`D{FSoJkFlMF{DnDrRoVnRqEoHdO~GyCpAg^md@|EsBuK{AiDlJ}KeAkGdYpJfC`A}DdYdNvF_F~GvCuE`MlCxBxHaDoEuQcf@an@_aAw{@{Zeo@jYrn@b~Ab}AlQx`@TbRwExHaEkApG_TtdA{rA~X{B|Z|o@dj@rN~BmXvHqNkd@ky@f@mQzKqZqLgQqBmBtBrXoIjXc@`VoIpOwJ}GeIxQqM{ByT|HnEHzA|QsB_E~DjOdKd@kBdFy@{KmQnAiHMrDsFpD`JlGaBcArNrFdFeHdOVlGfDaC~I|RkGs\\\\P{InNdO|B|AjHpCs@uN{Fy@sA`JnYtIBdKkGLF{M~FfAcAj]~F\\\\hFfMjExAuLaP^_L|@aG_YzGyL|Gt@hJfBfF`O{FrWzyAwEoBbCaE~Enm@gQ]i\\\\keBkCkJiR{EGmKjKiDaGlEDnKmOmI_Dbt@xFzAvInn@yJ~EqAbMnJvUqXfi@bDqGdIzIO~GqFkGrCiCwEeF|AsSm@yf@kT_FdByf@uKiHrAgSiT}CjDcJtBqKcr@n`ByYrG{RrOrHaGbHvJjCcC{AhGrKQK`E\\\\_FrKpCwGsEwBd[cG}AnCgDrBdGyOp[J|@jIzI`IgBjLz{@}HtB|HuBAvKsIK_YpAeEcVkRnVa@xPqHt@y@Sb\\\\gt@cw@`{@eMqDqGtRxK`Z_DrDdKjQQ|K`[Aa[@wBxn@yU~E_TheAuUdk@m]jxAcRiPjDyKkDxKjGzHqRzg@{d@fRsVz@qG|gAmLbl@~@tOcIxMQgJPfJxl@zLvJuBhOyVfEt@O`J_DHc@kM`K}z@jbA_xExToi@xSmbAlDqHzPsBjc@vRfc@mmAnm@yjAqDoGfKof@fLbLoIh`@mPlBfDCnJYjArIkExDjCbHnLkLtq@bm@wCy|@tRaDkRwv@oDZtBbk@jj@wD~V}[`UrAbI}]l]yIfZs_@lHoU{Ke_@', 'legs': [{'steps': [], 'summary': '', 'weight': 66.5, 'duration': 56.2, 'distance': 331.9}, {'steps': [], 'summary': '', 'weight': 109.4, 'duration': 109.4, 'distance': 620.6}, {'steps': [], 'summary': '', 'weight': 151.9, 'duration': 129.4, 'distance': 786.4}, {'steps': [], 'summary': '', 'weight': 141.4, 'duration': 118.9, 'distance': 665.7}, {'steps': [], 'summary': '', 'weight': 76.8, 'duration': 76.8, 'distance': 524.2}, {'steps': [], 'summary': '', 'weight': 210, 'duration': 210, 'distance': 1394.8}, {'steps': [], 'summary': '', 'weight': 3433.2, 'duration': 158.4, 'distance': 1083.1}, {'steps': [], 'summary': '', 'weight': 135.2, 'duration': 135.2, 'distance': 1101.4}, {'steps': [], 'summary': '', 'weight': 104.9, 'duration': 104.9, 'distance': 852}, {'steps': [], 'summary': '', 'weight': 73.1, 'duration': 73.1, 'distance': 674.7}, {'steps': [], 'summary': '', 'weight': 396.8, 'duration': 396.8, 'distance': 7456.3}, {'steps': [], 'summary': '', 'weight': 196.7, 'duration': 196.7, 'distance': 3629.5}, {'steps': [], 'summary': '', 'weight': 341.5, 'duration': 341.5, 'distance': 3566.8}, {'steps': [], 'summary': '', 'weight': 11.5, 'duration': 11.5, 'distance': 79.5}, {'steps': [], 'summary': '', 'weight': 285.4, 'duration': 285.4, 'distance': 2644.5}, {'steps': [], 'summary': '', 'weight': 96.1, 'duration': 96.1, 'distance': 641.6}, {'steps': [], 'summary': '', 'weight': 40.1, 'duration': 40.1, 'distance': 302.1}, {'steps': [], 'summary': '', 'weight': 48.6, 'duration': 48.6, 'distance': 387.9}, {'steps': [], 'summary': '', 'weight': 87.9, 'duration': 87.9, 'distance': 548.4}, {'steps': [], 'summary': '', 'weight': 123.4, 'duration': 123.4, 'distance': 893.9}, {'steps': [], 'summary': '', 'weight': 138.5, 'duration': 123, 'distance': 811.6}, {'steps': [], 'summary': '', 'weight': 78.5, 'duration': 63, 'distance': 401.9}, {'steps': [], 'summary': '', 'weight': 52.8, 'duration': 52.8, 'distance': 419.3}, {'steps': [], 'summary': '', 'weight': 68.2, 'duration': 68.2, 'distance': 501.5}, {'steps': [], 'summary': '', 'weight': 10.9, 'duration': 10.9, 'distance': 80}, {'steps': [], 'summary': '', 'weight': 67.6, 'duration': 67.6, 'distance': 439.4}, {'steps': [], 'summary': '', 'weight': 26.1, 'duration': 26.1, 'distance': 196}, {'steps': [], 'summary': '', 'weight': 149.8, 'duration': 146.7, 'distance': 1075.5}, {'steps': [], 'summary': '', 'weight': 174.8, 'duration': 171.7, 'distance': 1284.1}, {'steps': [], 'summary': '', 'weight': 99, 'duration': 99, 'distance': 707.9}, {'steps': [], 'summary': '', 'weight': 103.3, 'duration': 88.5, 'distance': 612.7}, {'steps': [], 'summary': '', 'weight': 338.7, 'duration': 304.2, 'distance': 2310.6}, {'steps': [], 'summary': '', 'weight': 273.1, 'duration': 247.7, 'distance': 2558.6}, {'steps': [], 'summary': '', 'weight': 97.8, 'duration': 97.8, 'distance': 924.5}, {'steps': [], 'summary': '', 'weight': 430.6, 'duration': 408.3, 'distance': 2982.5}, {'steps': [], 'summary': '', 'weight': 269.4, 'duration': 269.4, 'distance': 1207.2}, {'steps': [], 'summary': '', 'weight': 46.8, 'duration': 46.8, 'distance': 376.5}, {'steps': [], 'summary': '', 'weight': 44, 'duration': 44, 'distance': 344.5}, {'steps': [], 'summary': '', 'weight': 117.7, 'duration': 117.7, 'distance': 578.5}, {'steps': [], 'summary': '', 'weight': 239.7, 'duration': 239.7, 'distance': 1794.7}, {'steps': [], 'summary': '', 'weight': 139, 'duration': 125.6, 'distance': 950}, {'steps': [], 'summary': '', 'weight': 303.3, 'duration': 292.7, 'distance': 3157.8}, {'steps': [], 'summary': '', 'weight': 89.8, 'duration': 89.8, 'distance': 568.6}, {'steps': [], 'summary': '', 'weight': 80.8, 'duration': 80.8, 'distance': 472.3}, {'steps': [], 'summary': '', 'weight': 131.9, 'duration': 128.1, 'distance': 809.9}, {'steps': [], 'summary': '', 'weight': 27.5, 'duration': 27.5, 'distance': 135.9}, {'steps': [], 'summary': '', 'weight': 128, 'duration': 128, 'distance': 795.1}, {'steps': [], 'summary': '', 'weight': 17, 'duration': 13.2, 'distance': 38.8}, {'steps': [], 'summary': '', 'weight': 210, 'duration': 206.2, 'distance': 1516.1}, {'steps': [], 'summary': '', 'weight': 54.4, 'duration': 54.4, 'distance': 391.2}, {'steps': [], 'summary': '', 'weight': 54.7, 'duration': 40.7, 'distance': 234.9}, {'steps': [], 'summary': '', 'weight': 157.9, 'duration': 143.9, 'distance': 927.8}, {'steps': [], 'summary': '', 'weight': 127.2, 'duration': 127.2, 'distance': 905.6}, {'steps': [], 'summary': '', 'weight': 13.1, 'duration': 13.1, 'distance': 50.7}, {'steps': [], 'summary': '', 'weight': 153.7, 'duration': 142.8, 'distance': 938.5}, {'steps': [], 'summary': '', 'weight': 282.6, 'duration': 271.7, 'distance': 1981.5}, {'steps': [], 'summary': '', 'weight': 245.8, 'duration': 234.8, 'distance': 1581.2}, {'steps': [], 'summary': '', 'weight': 439.5, 'duration': 428.5, 'distance': 5189}, {'steps': [], 'summary': '', 'weight': 402.8, 'duration': 402.8, 'distance': 4550.8}, {'steps': [], 'summary': '', 'weight': 934.7, 'duration': 934.7, 'distance': 12430.2}, {'steps': [], 'summary': '', 'weight': 133.7, 'duration': 133.7, 'distance': 845.7}, {'steps': [], 'summary': '', 'weight': 50.8, 'duration': 50.8, 'distance': 454.3}, {'steps': [], 'summary': '', 'weight': 55.2, 'duration': 55.2, 'distance': 368.3}, {'steps': [], 'summary': '', 'weight': 263.5, 'duration': 263.5, 'distance': 1808.2}, {'steps': [], 'summary': '', 'weight': 230.9, 'duration': 230.9, 'distance': 2009.7}, {'steps': [], 'summary': '', 'weight': 443, 'duration': 443, 'distance': 4945.3}], 'weight_name': 'routability', 'weight': 14128.5, 'duration': 10557, 'distance': 95850.199999999}], 'waypoints': [{'waypoint_index': 0, 'trips_index': 0, 'hint': '9ZZdgPuWXYAQAAAAOQAAAAQAAAAAAAAALfXwQNqLykHq2No_AAAAAAgAAAAdAAAAAgAAAAAAAABYYwAAr83D-xBwhgJQzcP7SHCGAgEArw07mOnR', 'distance': 9.995831753, 'name': 'North Bennet Place', 'location': [-71.053905, 42.364944]}, {'waypoint_index': 5, 'trips_index': 0, 'hint': 'XsR5hpFy74kDAAAAEAAAAAAAAACPAAAAlkVDQMMSZEEAAAAActEAQwMAAAAQAAAAAAAAAI8AAABYYwAAzMbD-8d8hgLtx8P7O3-GAgAAzwY7mOnR', 'distance': 73.70776153, 'name': 'Commercial Street', 'location': [-71.055668, 42.368199]}, {'waypoint_index': 34, 'trips_index': 0, 'hint': '-lVdgP___38BAAAAJgAAADEAAAAGAAAAuPe1P_VeA0IVEDJCxQGrQAEAAAAmAAAAMQAAAAYAAABYYwAAnJHD-wRThgI1k8P7d1OGAgIA_wk7mOnR', 'distance': 36.027035397, 'name': 'West Cedar Street', 'location': [-71.069284, 42.357508]}, {'waypoint_index': 59, 'trips_index': 0, 'hint': 'nc1Yg3J_vIMAAAAAGAAAAAAAAAA5AQAAAAAAAHNB2EAAAAAA43GtQgAAAAAYAAAAAAAAADkBAABYYwAA-H7B-xdrhwLJg8H7GG6HAgAAfxE7mOnR', 'distance': 132.640565965, 'name': '', 'location': [-71.205128, 42.429207]}, {'waypoint_index': 33, 'trips_index': 0, 'hint': '5_pdgP___38RAAAAagAAAEgAAABBAAAAhJuYQQoOvUIPa5tCBkeKQhEAAABqAAAASAAAAEEAAABYYwAAJXvD-8dLhgKDecP7Gk-GAgUAbwQ7mOnR', 'distance': 100.603650179, 'name': 'Storrow Drive', 'location': [-71.075035, 42.355655]}, {'waypoint_index': 23, 'trips_index': 0, 'hint': 'hVVdgP___38nAAAAOAAAABEAAAAAAAAAc_AMQgDdaEGtqnRBAAAAACcAAAA4AAAAEQAAAAAAAABYYwAAUa3D-05VhgLArcP7m1SGAgEAHwQ7mOnR', 'distance': 21.884493732, 'name': 'Beacon Street', 'location': [-71.062191, 42.358094]}, {'waypoint_index': 18, 'trips_index': 0, 'hint': 'z1VdgP___38dAAAAKAAAAAUAAAAeAAAA-6HQQbBSGUH8c5ZACtMMQR0AAAAoAAAABQAAAB4AAABYYwAA3LvD-yZShgJXu8P7bVKGAgEAPwI7mOnR', 'distance': 13.497972145, 'name': 'Washington Street', 'location': [-71.058468, 42.357286]}, {'waypoint_index': 17, 'trips_index': 0, 'hint': 'W6ZdgP___38QAAAAFwAAABUAAAAdAAAA7Y5tQfNntkAFIZdBZcvMQRAAAAAXAAAAFQAAAB0AAABYYwAAE8HD-65XhgLOwMP761eGAgQAXw47mOnR', 'distance': 8.843623967, 'name': 'Devonshire Street', 'location': [-71.057133, 42.358702]}, {'waypoint_index': 1, 'trips_index': 0, 'hint': 'wthdgP___38gAAAAJQAAAAAAAAAFAAAApPnoQU1zcUAAAAAAvJGYQCAAAAAlAAAAAAAAAAUAAABYYwAANcfD-1ZxhgL1xsP7GnGGAgAADwg7mOnR', 'distance': 8.4973874, 'name': 'Prince Street', 'location': [-71.055563, 42.36527]}, {'waypoint_index': 29, 'trips_index': 0, 'hint': 'uDVegP___38NAAAAIQAAAAsAAAAAAAAAjNRCQRA0ikEcDR1BAAAAAA0AAAAhAAAACwAAAAAAAABYYwAAL4bD-7QxhgKjhsP7ZDGGAgEA_w07mOnR', 'distance': 13.053440062, 'name': 'Stanhope Street', 'location': [-71.072209, 42.34898]}, {'waypoint_index': 30, 'trips_index': 0, 'hint': 'u4tdgP___38GAAAAMgAAAAAAAAAAAAAAOFW-QDE5G0IAAAAAAAAAAAYAAAAyAAAAAAAAAAAAAABYYwAAMpfD-6k1hgItl8P7uDWGAgAAvwQ7mOnR', 'distance': 1.716409362, 'name': 'Piedmont Street', 'location': [-71.067854, 42.349993]}, {'waypoint_index': 24, 'trips_index': 0, 'hint': 'W1ZdgP___38WAAAAFwAAAAAAAAAyAAAAmfygQewAMT8AAAAA6hA0QhYAAAAXAAAAAAAAADIAAABYYwAAA6rD-z9LhgJcqcP7n0uGAgAAnw07mOnR', 'distance': 17.404100972, 'name': 'Tremont Street', 'location': [-71.063037, 42.355519]}, {'waypoint_index': 57, 'trips_index': 0, 'hint': '_j9dgOJiZYo0AAAAgwAAAOIAAABBAAAAEyEwQTgj2EHezjtCooBZQRoAAABBAAAAcQAAACEAAABYYwAAPZnC-xXOhgJRmML7Dc6GAgMAXxY7mOnR', 'distance': 19.457862614, 'name': '', 'location': [-71.132867, 42.389013]}, {'waypoint_index': 32, 'trips_index': 0, 'hint': '0FtdgP___38UAAAAPwAAAEgAAAAhAAAAW6uQQQeRGkKS7IFCJdQwQRQAAAA_AAAASAAAACEAAABYYwAA0FPD-wY1hgJ7U8P7szWGAgMAbwQ7mOnR', 'distance': 20.4541791, 'name': 'Commonwealth Avenue', 'location': [-71.085104, 42.34983]}, {'waypoint_index': 31, 'trips_index': 0, 'hint': 'T3RdgP___3-iAAAA9QAAAIcAAADgAAAAA1kHQtaniUH5EuFBU9w6QlEAAAB7AAAARAAAAHAAAABYYwAAsZbD-6xEhgLSnMP7eEaGAgEALxU7mOnR', 'distance': 138.962162697, 'name': '', 'location': [-71.067983, 42.353836]}, {'waypoint_index': 19, 'trips_index': 0, 'hint': 'sAzJi____38GAAAAHQAAAA4AAAAnAAAASMi7QCgnn0ExlUdBBrQOQgYAAAAdAAAADgAAACcAAABYYwAAVsLD-9VehgK7wcP7r16GAgEAXxU7mOnR', 'distance': 13.445931288, 'name': 'Union Street', 'location': [-71.05681, 42.360533]}, {'waypoint_index': 26, 'trips_index': 0, 'hint': 'Ny5egPEyXoAnAAAAKwAAAAoAAAAAAAAAMBgOQgJrGEKX2RVBAAAAACcAAAArAAAACgAAAAAAAABYYwAAIa_D-_RDhgKcr8P7hkSGAgEAnwc7mOnR', 'distance': 19.121839672, 'name': 'Avenue De Lafayette', 'location': [-71.061727, 42.353652]}, {'waypoint_index': 14, 'trips_index': 0, 'hint': 'C-ldgPWgFIoVAAAAIQAAAEMBAAAAAAAA9xN0QZP9skHYkGBDAAAAABUAAAAhAAAAQwEAAAAAAABYYwAAMBbE-w4vhgLZE8T7AzCGAhAAHw07mOnR', 'distance': 56.377729675, 'name': '', 'location': [-71.035344, 42.348302]}, {'waypoint_index': 21, 'trips_index': 0, 'hint': '11VdgLxEXoB7AAAAEwAAAB4BAAAiAQAA4IywQZv0UUDWlExCS9BOQj0AAAAKAAAAjwAAAJAAAABYYwAAR6fD--lWhgL-psP7-VeGAgQALxA7mOnR', 'distance': 30.806337221, 'name': 'Mount Vernon Street', 'location': [-71.063737, 42.358505]}, {'waypoint_index': 58, 'trips_index': 0, 'hint': 'CnJfgEx6X4AWAAAAAAAAAAAAAAAAAAAA_-1vQQAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAABYYwAAWArC-yUnhwKSEML7JSOHAgAAHwc7mOnR', 'distance': 173.629294993, 'name': 'Ottawa Road', 'location': [-71.169448, 42.411813]}, {'waypoint_index': 56, 'trips_index': 0, 'hint': 'ry2MgP___38HAAAACgAAAA0AAAAkAAAAKImmQKvEzz_R3hZBG9cwQQcAAAAKAAAADQAAACQAAABYYwAALsHC-8LrhgLYwML7ouuGAgEAnwk7mOnR', 'distance': 7.925051729, 'name': 'Holland Street', 'location': [-71.122642, 42.39661]}, {'waypoint_index': 52, 'trips_index': 0, 'hint': 'nABdgIkDyoMPAAAAFAAAAA4AAAAAAAAAS1IyQXbvYEGggCBBAAAAAA8AAAAUAAAADgAAAAAAAABYYwAAwujC-8e4hgIi6ML7B7mGAgMAzwE7mOnR', 'distance': 14.973308394, 'name': 'Sacramento Street', 'location': [-71.11251, 42.383559]}, {'waypoint_index': 2, 'trips_index': 0, 'hint': 'nCtegP___38KAAAAFQAAAAsAAAAAAAAAxw4QQUJuG0FMSyJBAAAAAAoAAAAVAAAACwAAAAAAAABYYwAAEcfD-4lshgJ0x8P7bmyGAgIATwE7mOnR', 'distance': 8.687980263, 'name': 'Salem Street', 'location': [-71.055599, 42.364041]}, {'waypoint_index': 53, 'trips_index': 0, 'hint': 'IXZ5g____38WAAAANAAAAAQAAAAmAAAARVSBQTt9qEFhlj1AuQhXQRYAAAA0AAAABAAAACYAAABYYwAA383C-4jLhgLTzsL7sMuGAgEAvxU7mOnR', 'distance': 20.581786514, 'name': 'Massachusetts Avenue', 'location': [-71.119393, 42.38836]}, {'waypoint_index': 4, 'trips_index': 0, 'hint': 'zFNdgP___38HAAAADAAAAB0AAABqAAAAP_baQMtHbED_VNBBRvi9QgcAAAAMAAAAHQAAAGoAAABYYwAA9sTD--t3hgLOxMP7sXeGAgQATwc7mOnR', 'distance': 7.236143841, 'name': 'Hull Street', 'location': [-71.056138, 42.366955]}, {'waypoint_index': 22, 'trips_index': 0, 'hint': 'm1ddgKMFdYYeAAAAEgAAAFAAAAAAAAAANbbbQXvOcEFkb45CAAAAAB4AAAASAAAAUAAAAAAAAABYYwAAzJrD-wpQhgLenMP7A0uGAgIA3w87mOnR', 'distance': 149.476653857, 'name': 'Beacon Street', 'location': [-71.066932, 42.356746]}, {'waypoint_index': 20, 'trips_index': 0, 'hint': 'x5C_g____38BAAAAAQAAAAAAAAAKAAAAd7QKQAAAAAAAAAAAM1dyQQEAAAABAAAAAAAAAAoAAABYYwAAmrjD-7dZhgLkuMP7NVqGAgAAbxI7mOnR', 'distance': 15.265621401, 'name': 'Cambridge Street', 'location': [-71.059302, 42.359223]}, {'waypoint_index': 28, 'trips_index': 0, 'hint': 'ZqJdgG6iXYAQAAAAFAAAAMgBAAApAAAARGJcQP3tf0C74r1ClRQHQQgAAAAKAAAA5QAAABQAAABYYwAAxJrD-xw_hgInm8P7HD-GAgUADwA7mOnR', 'distance': 8.153891583, 'name': 'Carver Street', 'location': [-71.06694, 42.352412]}, {'waypoint_index': 3, 'trips_index': 0, 'hint': 'PZBFii0kR4pdAQAAMgAAAFEBAAA3AgAAi-R5QkfjDUH0B75CFwrLQq8AAAAZAAAAHgEAABwBAABYYwAAFq7D-1h0hgJ-rcP79nSGAgcArw47mOnR', 'distance': 21.558203788, 'name': '', 'location': [-71.061994, 42.36604]}, {'waypoint_index': 25, 'trips_index': 0, 'hint': 'kFhdgP___38WAAAAJwAAABAAAABCAAAADT-gQWTZZ0HFZWRBZy9tQhYAAAAnAAAAEAAAAEIAAABYYwAAJqjD-85IhgLfocP7xUqGAgEAvww7mOnR', 'distance': 143.666703104, 'name': 'Tremont Street', 'location': [-71.063514, 42.354894]}, {'waypoint_index': 12, 'trips_index': 0, 'hint': 'O6KYg____38IAAAApAAAAOMAAAAAAAAAQlAjQZlNQkOjqo1DAAAAAAgAAACkAAAA4wAAAAAAAABYYwAAjbfD-2I5hgJkt8P7aDmGAgwA_ws7mOnR', 'distance': 3.44200696, 'name': '', 'location': [-71.059571, 42.350946]}, {'waypoint_index': 13, 'trips_index': 0, 'hint': '96AUiuOJ_4wLAAAAAgAAAD0AAAAQAAAAIJL9QKujjz_ayilCOWQvQQsAAAACAAAAPQAAABAAAABYYwAAERTE-9YshgLhE8T7Pi2GAgQAvw87mOnR', 'distance': 12.211032431, 'name': '', 'location': [-71.035887, 42.347734]}, {'waypoint_index': 64, 'trips_index': 0, 'hint': 'm1NdgOAEBYYRAAAAMAAAAAkAAAAAAAAAull0QfHfK0JXnP5AAAAAABEAAAAwAAAACQAAAAAAAABYYwAAWKrC-69phgJsqsL7NmmGAgEAPwU7mOnR', 'distance': 13.541313452, 'name': 'Western Avenue', 'location': [-71.128488, 42.363311]}, {'waypoint_index': 6, 'trips_index': 0, 'hint': 'EHLag4AE7YMLAAAAAAAAAN0AAACjAAAA0-E_QAAAAAB2D3dCWJQ1QgsAAAAAAAAA3QAAAKMAAABYYwAAqa7D-waChgIDr8P7p4CGAgwALwY7mOnR', 'distance': 39.68766862, 'name': '', 'location': [-71.061847, 42.369542]}, {'waypoint_index': 54, 'trips_index': 0, 'hint': 'wYzog____38LAAAADgAAAAoAAAAdAAAAYO0KQZNLvj8jzfBAkYqmQQsAAAAOAAAACgAAAB0AAABYYwAAR87C-6rMhgI7zsL7Q8yGAgIA_wU7mOnR', 'distance': 11.48390849, 'name': 'Somerville Avenue', 'location': [-71.119289, 42.38865]}, {'waypoint_index': 45, 'trips_index': 0, 'hint': 'tOjjg7bo44M_AAAAAAAAABgAAAAAAAAAtarQQQAAAACjwx5BAAAAAD8AAAAAAAAAGAAAAAAAAABYYwAAVyPD--uthgLlIcP70K6GAgIAzwE7mOnR', 'distance': 39.695555426, 'name': '', 'location': [-71.097513, 42.380779]}, {'waypoint_index': 60, 'trips_index': 0, 'hint': 'yO-Ng6TnlYMJAAAAAAAAAIIAAAAvAAAAGSN0QAAAAACZcVhCs76cQQkAAAAAAAAAggAAAC8AAABYYwAAY-3C-06ThgLD78L76ZOGAgYAPwU7mOnR', 'distance': 52.953661405, 'name': '', 'location': [-71.111325, 42.373966]}, {'waypoint_index': 8, 'trips_index': 0, 'hint': 'L2VdgDRlXYAxAAAANAAAAAcAAAAAAAAArd4xQmoyN0LCB75AAAAAADEAAAA0AAAABwAAAAAAAABYYwAAWLLD-86shgL8scP7V6yGAgEAvxI7mOnR', 'distance': 15.236382659, 'name': 'Medford Street', 'location': [-71.060904, 42.380494]}, {'waypoint_index': 15, 'trips_index': 0, 'hint': 'OHtdgP___38GAAAABgAAAI8AAABOAAAAZ8O2QAAAAAAF7dxCCVpRQgYAAAAGAAAAjwAAAE4AAABYYwAAmtPD-wVfhgKO1sP7oGCGAhMATxQ7mOnR', 'distance': 77.209863594, 'name': 'Atlantic Avenue', 'location': [-71.05239, 42.360581]}, {'waypoint_index': 62, 'trips_index': 0, 'hint': 'NTxdgP___38PAAAAPAAAACUAAAAfAAAAFg0tQV4AAEJx19BBCYL9QA8AAAA8AAAAJQAAAB8AAABYYwAAQs7C-zeZhgK2zcL7E5mGAgEADwo7mOnR', 'distance': 12.204488282, 'name': 'Massachusetts Avenue', 'location': [-71.119294, 42.375479]}, {'waypoint_index': 40, 'trips_index': 0, 'hint': '-khdgMQ2hYgCAAAAGwAAAA4AAAAAAAAA0-G_P3NsmEERLBtBAAAAAAIAAAAbAAAADgAAAAAAAABYYwAA_GPD-6h6hgLfY8P7KHqGAgEAPwY7mOnR', 'distance': 14.417538735, 'name': 'Charles Street', 'location': [-71.080964, 42.367656]}, {'waypoint_index': 16, 'trips_index': 0, 'hint': 'WU_0if___38PAAAAGgAAAAAAAAAAAAAAa_tZQft-F0EAAAAAAAAAAA8AAAAaAAAAAAAAAAAAAABYYwAAUcvD-2hbhgI4y8P791uGAgAALwU7mOnR', 'distance': 16.017420792, 'name': 'Chatham Street', 'location': [-71.054511, 42.359656]}, {'waypoint_index': 38, 'trips_index': 0, 'hint': 'yFebgz9cPIkEAAAAAAAAAEwAAAA_AAAAF7HtPwAAAADSBvxB1pjOQQQAAAAAAAAATAAAAD8AAABYYwAA9BPD-_1mhgKIFMP7emeGAgUArwc7mOnR', 'distance': 18.476550585, 'name': '', 'location': [-71.101452, 42.362621]}, {'waypoint_index': 55, 'trips_index': 0, 'hint': 'zURzh9BEc4d6AAAAAAAAAAAAAAAAAAAAeXbLQQAAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAAAAAABYYwAAje_C-3S6hgJG78L7zrmGAgAA3xE7mOnR', 'distance': 19.344420591, 'name': '', 'location': [-71.110771, 42.383988]}, {'waypoint_index': 48, 'trips_index': 0, 'hint': 'lF7hg6Ve4YOUAQAAFAAAAAAAAAA4AAAAAlKoQoE7hEAAAAAA2AI6QcoAAAAKAAAAAAAAABwAAABYYwAAcw7D-yGzhgIaD8P79rKGAgAAPwE7mOnR', 'distance': 14.560292055, 'name': '', 'location': [-71.102861, 42.382113]}, {'waypoint_index': 61, 'trips_index': 0, 'hint': 'V02ph____38DAAAAAwAAACkAAACWAAAALesZQAAAAAB49ehBGTS8QgMAAAADAAAAKQAAAJYAAABYYwAAWtDC-5qRhgKdz8L7WZGGAhAAvxQ7mOnR', 'distance': 17.159498176, 'name': 'Massachusetts Avenue', 'location': [-71.118758, 42.37353]}, {'waypoint_index': 63, 'trips_index': 0, 'hint': 'GcP6h____38AAAAAAgAAABAAAACAAAAA1ZUYP6ySbz-wyENBIF-4QgAAAAACAAAAEAAAAIAAAABYYwAAJsjC-5CQhgIOyML7cpCGAgUAzxI7mOnR', 'distance': 3.874577479, 'name': 'Brattle Street', 'location': [-71.120858, 42.373264]}, {'waypoint_index': 41, 'trips_index': 0, 'hint': 'HixujCAsbowAAAAACgAAAAAAAAAAAAAAAAAAANLZA0AAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAABYYwAAs3rD-wCDhgKWeMP74YGGAgAADxU7mOnRHCxujB0sbowJAAAAAAAAADIAAAAAAAAAJzz6PwAAAADDjiFBAAAAAAUAAAAAAAAAGQAAAAAAAABYYwAAs3rD-wCDhgKWeMP74YGGAgUA3xM7mOnR', 'distance': 54.788408156, 'name': '', 'location': [-71.075149, 42.369792]}, {'waypoint_index': 11, 'trips_index': 0, 'hint': 'JPtdgP___38CAAAABAAAAA8AAAB9AAAAOlEBQbYzMkCMzBJCyWybQwIAAAAEAAAADwAAAH0AAABYYwAA1pbD-waEhgIil8P7h4SGAgMAXxI7mOnR', 'distance': 15.636928294, 'name': '', 'location': [-71.067946, 42.370054]}, {'waypoint_index': 46, 'trips_index': 0, 'hint': 'iMfjg____38BAAAABgAAACkAAABKAAAA3B5tP_ydh0AE5xJCR09EQgEAAAAGAAAAKQAAAEoAAABYYwAAoibD-xerhgIFJsP7hqqGAgMADwg7mOnR', 'distance': 20.655117869, 'name': 'Union Square', 'location': [-71.09667, 42.380055]}, {'waypoint_index': 10, 'trips_index': 0, 'hint': 'wMddgP___38NAAAADgAAABQAAABPAQAAE-eKQQAAAABtZMlBEpHSQw0AAAAOAAAAFAAAAE8BAABYYwAAK6DD-9iKhgLFn8P7AIuGAgEADw07mOnR', 'distance': 9.503614084, 'name': '', 'location': [-71.065557, 42.3718]}, {'waypoint_index': 49, 'trips_index': 0, 'hint': 'Fz9dgJ75QYdeAAAAHQAAAAAAAACRAAAA0wSDQuC7nkEAAAAANB7JQl4AAAAdAAAAAAAAAJEAAABYYwAAUuHC-zSkhgJS4ML7_6OGAgAATwo7mOnR', 'distance': 21.891303915, 'name': 'Divinity Avenue', 'location': [-71.114414, 42.378292]}, {'waypoint_index': 42, 'trips_index': 0, 'hint': 'MflcgDT5XIAFAAAACQAAAE0AAAAAAAAAcj9sQFx7xUCbz11CAAAAAAUAAAAJAAAATQAAAAAAAABYYwAAhzPD-xuyhgLYMsP7n7GGAgIAjwg7mOnR', 'distance': 19.93665493, 'name': 'Munroe Street', 'location': [-71.093369, 42.381851]}, {'waypoint_index': 27, 'trips_index': 0, 'hint': 'j1hdgP___38WAAAArQAAAAAAAAAOAAAAIxajQY_nBUMAAAAAbudDQRYAAACtAAAAAAAAAA4AAABYYwAARbDD-9pIhgJJscP77UmGAgAADxM7mOnR', 'distance': 37.305486961, 'name': 'Temple Place', 'location': [-71.061435, 42.354906]}, {'waypoint_index': 35, 'trips_index': 0, 'hint': 'R0xnhuD5RowKAAAATgAAACYAAACMAAAA_FU4QN2FrEF_jyhBGEccQgoAAABOAAAAJgAAAIwAAABYYwAAbj7D-7lihgI0PsP7CmOGAgEA7wM7mOnR', 'distance': 10.187024527, 'name': '', 'location': [-71.090578, 42.361529]}, {'waypoint_index': 50, 'trips_index': 0, 'hint': 'pj1dgN3NXo0xAAAACAAAAA8AAADuAAAAAdsOQtscpkAo0ydBmu8qQzEAAAAIAAAADwAAAO4AAABYYwAAsNvC-weehgJj2sL7xJ2GAgEAjxU7mOnR', 'distance': 28.418560893, 'name': 'Oxford Street', 'location': [-71.115856, 42.376711]}, {'waypoint_index': 39, 'trips_index': 0, 'hint': 'VzxdgMZKXYAMAAAAsQAAAFMAAAAPAAAA1EapQLKdkkI1dApC_1fOQAwAAACxAAAAUwAAAA8AAABYYwAACCjD-35mhgIvKMP7r2eGAgIA_wU7mOnR', 'distance': 34.031505606, 'name': 'State Street', 'location': [-71.096312, 42.362494]}, {'waypoint_index': 51, 'trips_index': 0, 'hint': '2s1ejdzNXo0KAAAAAAAAAEMAAAAuAAAA0tkDQAAAAAAOQFxBIaobQQUAAAAAAAAAIQAAABgAAABYYwAA69vC-6ykhgLa3ML736SGAgQAzwk7mOnR', 'distance': 20.483622791, 'name': '', 'location': [-71.115797, 42.378412]}, {'waypoint_index': 43, 'trips_index': 0, 'hint': 'xgFdgA0HXYAcAAAAAAAAAAAAAAAAAAAA8P-ZQQAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAABYYwAAdy3D-3-phgKCLcP796mGAgAATxE7mOnR', 'distance': 13.360421987, 'name': 'Washington Street', 'location': [-71.094921, 42.379647]}, {'waypoint_index': 65, 'trips_index': 0, 'hint': 'BUNdgEJHXYALAAAAgQAAAA0AAAAKAAAAyLMCQT_Zt0LVwBJBdR_aQAsAAACBAAAADQAAAAoAAABYYwAA_PbC-3JshgJ798L7fWyGAgIAHxY7mOnR', 'distance': 10.531168033, 'name': 'Kinnaird Street', 'location': [-71.108868, 42.364018]}, {'waypoint_index': 7, 'trips_index': 0, 'hint': 'gdFdgEjuXYA4AAAACQAAAA4AAAAAAAAAHi0eQocIvUB0Ix1BAAAAADgAAAAJAAAADgAAAAAAAABYYwAAucbD-zyUhgLAx8P7XJOGAgEAXw47mOnR', 'distance': 32.989851701, 'name': 'First Avenue', 'location': [-71.055687, 42.374204]}, {'waypoint_index': 44, 'trips_index': 0, 'hint': 'oR8EjaQfBI0JAAAAAwAAAJUAAAAAAAAAEI19QFaajT_aVXhCAAAAAAkAAAADAAAAlQAAAAAAAABYYwAA-i7D-wihhgIYLsP7kKCGAgkATxQ7mOnR', 'distance': 22.894510528, 'name': '', 'location': [-71.094534, 42.37748]}, {'waypoint_index': 37, 'trips_index': 0, 'hint': 'ETtdgCXmnYMEAAAAFAAAAEEAAAAqAAAAUqOuQGrdp0HrjZFCXeI6QgQAAAAUAAAAQQAAACoAAABYYwAAVhTD-_BhhgLJE8P7RGKGAgMArw07mOnR', 'distance': 14.89723958, 'name': 'Sidney Street', 'location': [-71.101354, 42.361328]}, {'waypoint_index': 47, 'trips_index': 0, 'hint': 'pl7hg6Z_S40gAAAAGAAAAAAAAAAAAAAAq1m4QdDnhUEAAAAAAAAAACAAAAAYAAAAAAAAAAAAAABYYwAAqg_D-1ezhgLzD8P71bOGAgAAHwc7mOnR', 'distance': 15.232925171, 'name': 'Somerville Avenue', 'location': [-71.10255, 42.382167]}, {'waypoint_index': 36, 'trips_index': 0, 'hint': 'gEpdgEHIkoYVAAAAIQAAAB4AAAAAAAAA9NR2QYq_tkG6YNxAAAAAABUAAAAhAAAAHgAAAAAAAABYYwAAzhXD-4ZrhgJJFcP7DGuGAgIADwg7mOnR', 'distance': 17.425469217, 'name': 'Massachusetts Avenue', 'location': [-71.100978, 42.363782]}, {'waypoint_index': 9, 'trips_index': 0, 'hint': 'nmddgP___38uAAAAOgAAAAcAAAAKAAAAb3MjQg4_K0GsdLpAGH8MQS4AAAA6AAAABwAAAAoAAABYYwAA7KnD--uThgKCqcP7GZSGAgEALw07mOnR', 'distance': 10.115804216, 'name': 'Pleasant Street', 'location': [-71.06306, 42.374123]}, {'waypoint_index': 66, 'trips_index': 0, 'hint': '7jwOiP___38OAAAAVwAAAA4AAACAAQAAWvlLQWhkgULc2ExBHDOZQw4AAABXAAAADgAAAIABAABYYwAAkD_D-3gNhgJmP8P7sA2GAgEAzwM7mOnR', 'distance': 7.118941193, 'name': 'Huntington Avenue', 'location': [-71.090288, 42.339704]}]}\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", - "Cell \u001B[0;32mIn[8], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;66;03m# Cluster and minimize the data\u001B[39;00m\n\u001B[0;32m----> 2\u001B[0m _, routes \u001B[38;5;241m=\u001B[39m utils\u001B[38;5;241m.\u001B[39mcluster_and_optimize(TotalList, centroids, northeastern_coordinate,\n\u001B[1;32m 3\u001B[0m time_diff\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m0.25\u001B[39m, max_time\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m24\u001B[39m, host\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mhttp://router.project-osrm.org\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[1;32m 5\u001B[0m route_1_coordinates \u001B[38;5;241m=\u001B[39m routes[\u001B[38;5;241m0\u001B[39m]\n\u001B[1;32m 6\u001B[0m route_2_coordinates \u001B[38;5;241m=\u001B[39m routes[\u001B[38;5;241m1\u001B[39m]\n", - "File \u001B[0;32m~/DataspellProjects/hh/utils.py:35\u001B[0m, in \u001B[0;36mcluster_and_optimize\u001B[0;34m(df, centroids, end, time_diff, max_time, n, host)\u001B[0m\n\u001B[1;32m 32\u001B[0m routes\u001B[38;5;241m.\u001B[39mappend(df[df[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mcluster\u001B[39m\u001B[38;5;124m\"\u001B[39m] \u001B[38;5;241m==\u001B[39m i][\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mgps\u001B[39m\u001B[38;5;124m\"\u001B[39m]\u001B[38;5;241m.\u001B[39mvalues\u001B[38;5;241m.\u001B[39mtolist())\n\u001B[1;32m 33\u001B[0m starts\u001B[38;5;241m.\u001B[39mappend(list_to_string([centroids[i]]))\n\u001B[0;32m---> 35\u001B[0m routes \u001B[38;5;241m=\u001B[39m __minimize_route_time_diff(routes, starts, end, time_diff, n, host\u001B[38;5;241m=\u001B[39mhost)\n\u001B[1;32m 37\u001B[0m \u001B[38;5;66;03m# Remove waypoints from the longest route until the trip time is less than the max time\u001B[39;00m\n\u001B[1;32m 38\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m i \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mrange\u001B[39m(\u001B[38;5;28mlen\u001B[39m(routes)):\n", - "File \u001B[0;32m~/DataspellProjects/hh/utils.py:135\u001B[0m, in \u001B[0;36m__minimize_route_time_diff\u001B[0;34m(routes, starts, end, time_diff, n, host)\u001B[0m\n\u001B[1;32m 132\u001B[0m times \u001B[38;5;241m=\u001B[39m []\n\u001B[1;32m 134\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m i, route \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28menumerate\u001B[39m(routes):\n\u001B[0;32m--> 135\u001B[0m times\u001B[38;5;241m.\u001B[39mappend(get_trip_time(list_to_string(route), \u001B[38;5;28mlen\u001B[39m(route), starts[i], end, host\u001B[38;5;241m=\u001B[39mhost))\n\u001B[1;32m 137\u001B[0m \u001B[38;5;66;03m# Find the average trip time\u001B[39;00m\n\u001B[1;32m 138\u001B[0m average_time \u001B[38;5;241m=\u001B[39m np\u001B[38;5;241m.\u001B[39mmean(times)\n", - "File \u001B[0;32m~/DataspellProjects/hh/utils.py:103\u001B[0m, in \u001B[0;36mget_trip_time\u001B[0;34m(coordinate_string, num_waypoints, start, end, time_per_waypoint, host)\u001B[0m\n\u001B[1;32m 92\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mget_trip_time\u001B[39m(coordinate_string, num_waypoints, start, end, time_per_waypoint\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m90\u001B[39m, host\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mhttp://acetyl.net:5000\u001B[39m\u001B[38;5;124m\"\u001B[39m):\n\u001B[1;32m 93\u001B[0m \u001B[38;5;250m \u001B[39m\u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 94\u001B[0m \u001B[38;5;124;03m Takes a string of coordinates and returns the trip time in hours\u001B[39;00m\n\u001B[1;32m 95\u001B[0m \u001B[38;5;124;03m :param coordinate_string: a string of coordinates\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 101\u001B[0m \u001B[38;5;124;03m :return: the trip time in hours\u001B[39;00m\n\u001B[1;32m 102\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[0;32m--> 103\u001B[0m coordinates \u001B[38;5;241m=\u001B[39m requests\u001B[38;5;241m.\u001B[39mget(\n\u001B[1;32m 104\u001B[0m host\n\u001B[1;32m 105\u001B[0m \u001B[38;5;241m+\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m/trip/v1/bike/\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 106\u001B[0m \u001B[38;5;241m+\u001B[39m start\n\u001B[1;32m 107\u001B[0m \u001B[38;5;241m+\u001B[39m coordinate_string\n\u001B[1;32m 108\u001B[0m \u001B[38;5;241m+\u001B[39m end\n\u001B[1;32m 109\u001B[0m \u001B[38;5;241m+\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m?roundtrip=false&source=first&destination=last\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 110\u001B[0m )\n\u001B[1;32m 111\u001B[0m coordinates \u001B[38;5;241m=\u001B[39m coordinates\u001B[38;5;241m.\u001B[39mjson()\n\u001B[1;32m 112\u001B[0m \u001B[38;5;28mprint\u001B[39m(coordinates)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/requests/api.py:73\u001B[0m, in \u001B[0;36mget\u001B[0;34m(url, params, **kwargs)\u001B[0m\n\u001B[1;32m 62\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mget\u001B[39m(url, params\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mNone\u001B[39;00m, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[1;32m 63\u001B[0m \u001B[38;5;250m \u001B[39m\u001B[38;5;124mr\u001B[39m\u001B[38;5;124;03m\"\"\"Sends a GET request.\u001B[39;00m\n\u001B[1;32m 64\u001B[0m \n\u001B[1;32m 65\u001B[0m \u001B[38;5;124;03m :param url: URL for the new :class:`Request` object.\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 70\u001B[0m \u001B[38;5;124;03m :rtype: requests.Response\u001B[39;00m\n\u001B[1;32m 71\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[0;32m---> 73\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m request(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mget\u001B[39m\u001B[38;5;124m\"\u001B[39m, url, params\u001B[38;5;241m=\u001B[39mparams, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/requests/api.py:59\u001B[0m, in \u001B[0;36mrequest\u001B[0;34m(method, url, **kwargs)\u001B[0m\n\u001B[1;32m 55\u001B[0m \u001B[38;5;66;03m# By using the 'with' statement we are sure the session is closed, thus we\u001B[39;00m\n\u001B[1;32m 56\u001B[0m \u001B[38;5;66;03m# avoid leaving sockets open which can trigger a ResourceWarning in some\u001B[39;00m\n\u001B[1;32m 57\u001B[0m \u001B[38;5;66;03m# cases, and look like a memory leak in others.\u001B[39;00m\n\u001B[1;32m 58\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m sessions\u001B[38;5;241m.\u001B[39mSession() \u001B[38;5;28;01mas\u001B[39;00m session:\n\u001B[0;32m---> 59\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m session\u001B[38;5;241m.\u001B[39mrequest(method\u001B[38;5;241m=\u001B[39mmethod, url\u001B[38;5;241m=\u001B[39murl, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/requests/sessions.py:589\u001B[0m, in \u001B[0;36mSession.request\u001B[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001B[0m\n\u001B[1;32m 584\u001B[0m send_kwargs \u001B[38;5;241m=\u001B[39m {\n\u001B[1;32m 585\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mtimeout\u001B[39m\u001B[38;5;124m\"\u001B[39m: timeout,\n\u001B[1;32m 586\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mallow_redirects\u001B[39m\u001B[38;5;124m\"\u001B[39m: allow_redirects,\n\u001B[1;32m 587\u001B[0m }\n\u001B[1;32m 588\u001B[0m send_kwargs\u001B[38;5;241m.\u001B[39mupdate(settings)\n\u001B[0;32m--> 589\u001B[0m resp \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39msend(prep, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39msend_kwargs)\n\u001B[1;32m 591\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m resp\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/requests/sessions.py:703\u001B[0m, in \u001B[0;36mSession.send\u001B[0;34m(self, request, **kwargs)\u001B[0m\n\u001B[1;32m 700\u001B[0m start \u001B[38;5;241m=\u001B[39m preferred_clock()\n\u001B[1;32m 702\u001B[0m \u001B[38;5;66;03m# Send the request\u001B[39;00m\n\u001B[0;32m--> 703\u001B[0m r \u001B[38;5;241m=\u001B[39m adapter\u001B[38;5;241m.\u001B[39msend(request, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n\u001B[1;32m 705\u001B[0m \u001B[38;5;66;03m# Total elapsed time of the request (approximately)\u001B[39;00m\n\u001B[1;32m 706\u001B[0m elapsed \u001B[38;5;241m=\u001B[39m preferred_clock() \u001B[38;5;241m-\u001B[39m start\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/requests/adapters.py:486\u001B[0m, in \u001B[0;36mHTTPAdapter.send\u001B[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001B[0m\n\u001B[1;32m 483\u001B[0m timeout \u001B[38;5;241m=\u001B[39m TimeoutSauce(connect\u001B[38;5;241m=\u001B[39mtimeout, read\u001B[38;5;241m=\u001B[39mtimeout)\n\u001B[1;32m 485\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 486\u001B[0m resp \u001B[38;5;241m=\u001B[39m conn\u001B[38;5;241m.\u001B[39murlopen(\n\u001B[1;32m 487\u001B[0m method\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mmethod,\n\u001B[1;32m 488\u001B[0m url\u001B[38;5;241m=\u001B[39murl,\n\u001B[1;32m 489\u001B[0m body\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mbody,\n\u001B[1;32m 490\u001B[0m headers\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mheaders,\n\u001B[1;32m 491\u001B[0m redirect\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[1;32m 492\u001B[0m assert_same_host\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[1;32m 493\u001B[0m preload_content\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[1;32m 494\u001B[0m decode_content\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[1;32m 495\u001B[0m retries\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mmax_retries,\n\u001B[1;32m 496\u001B[0m timeout\u001B[38;5;241m=\u001B[39mtimeout,\n\u001B[1;32m 497\u001B[0m chunked\u001B[38;5;241m=\u001B[39mchunked,\n\u001B[1;32m 498\u001B[0m )\n\u001B[1;32m 500\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m (ProtocolError, \u001B[38;5;167;01mOSError\u001B[39;00m) \u001B[38;5;28;01mas\u001B[39;00m err:\n\u001B[1;32m 501\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m(err, request\u001B[38;5;241m=\u001B[39mrequest)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/urllib3/connectionpool.py:715\u001B[0m, in \u001B[0;36mHTTPConnectionPool.urlopen\u001B[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001B[0m\n\u001B[1;32m 712\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_prepare_proxy(conn)\n\u001B[1;32m 714\u001B[0m \u001B[38;5;66;03m# Make the request on the httplib connection object.\u001B[39;00m\n\u001B[0;32m--> 715\u001B[0m httplib_response \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_make_request(\n\u001B[1;32m 716\u001B[0m conn,\n\u001B[1;32m 717\u001B[0m method,\n\u001B[1;32m 718\u001B[0m url,\n\u001B[1;32m 719\u001B[0m timeout\u001B[38;5;241m=\u001B[39mtimeout_obj,\n\u001B[1;32m 720\u001B[0m body\u001B[38;5;241m=\u001B[39mbody,\n\u001B[1;32m 721\u001B[0m headers\u001B[38;5;241m=\u001B[39mheaders,\n\u001B[1;32m 722\u001B[0m chunked\u001B[38;5;241m=\u001B[39mchunked,\n\u001B[1;32m 723\u001B[0m )\n\u001B[1;32m 725\u001B[0m \u001B[38;5;66;03m# If we're going to release the connection in ``finally:``, then\u001B[39;00m\n\u001B[1;32m 726\u001B[0m \u001B[38;5;66;03m# the response doesn't need to know about the connection. Otherwise\u001B[39;00m\n\u001B[1;32m 727\u001B[0m \u001B[38;5;66;03m# it will also try to release it and we'll have a double-release\u001B[39;00m\n\u001B[1;32m 728\u001B[0m \u001B[38;5;66;03m# mess.\u001B[39;00m\n\u001B[1;32m 729\u001B[0m response_conn \u001B[38;5;241m=\u001B[39m conn \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m release_conn \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/urllib3/connectionpool.py:467\u001B[0m, in \u001B[0;36mHTTPConnectionPool._make_request\u001B[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001B[0m\n\u001B[1;32m 462\u001B[0m httplib_response \u001B[38;5;241m=\u001B[39m conn\u001B[38;5;241m.\u001B[39mgetresponse()\n\u001B[1;32m 463\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mBaseException\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[1;32m 464\u001B[0m \u001B[38;5;66;03m# Remove the TypeError from the exception chain in\u001B[39;00m\n\u001B[1;32m 465\u001B[0m \u001B[38;5;66;03m# Python 3 (including for exceptions like SystemExit).\u001B[39;00m\n\u001B[1;32m 466\u001B[0m \u001B[38;5;66;03m# Otherwise it looks like a bug in the code.\u001B[39;00m\n\u001B[0;32m--> 467\u001B[0m six\u001B[38;5;241m.\u001B[39mraise_from(e, \u001B[38;5;28;01mNone\u001B[39;00m)\n\u001B[1;32m 468\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m (SocketTimeout, BaseSSLError, SocketError) \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[1;32m 469\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_raise_timeout(err\u001B[38;5;241m=\u001B[39me, url\u001B[38;5;241m=\u001B[39murl, timeout_value\u001B[38;5;241m=\u001B[39mread_timeout)\n", - "File \u001B[0;32m:3\u001B[0m, in \u001B[0;36mraise_from\u001B[0;34m(value, from_value)\u001B[0m\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/site-packages/urllib3/connectionpool.py:462\u001B[0m, in \u001B[0;36mHTTPConnectionPool._make_request\u001B[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001B[0m\n\u001B[1;32m 459\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mTypeError\u001B[39;00m:\n\u001B[1;32m 460\u001B[0m \u001B[38;5;66;03m# Python 3\u001B[39;00m\n\u001B[1;32m 461\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 462\u001B[0m httplib_response \u001B[38;5;241m=\u001B[39m conn\u001B[38;5;241m.\u001B[39mgetresponse()\n\u001B[1;32m 463\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mBaseException\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[1;32m 464\u001B[0m \u001B[38;5;66;03m# Remove the TypeError from the exception chain in\u001B[39;00m\n\u001B[1;32m 465\u001B[0m \u001B[38;5;66;03m# Python 3 (including for exceptions like SystemExit).\u001B[39;00m\n\u001B[1;32m 466\u001B[0m \u001B[38;5;66;03m# Otherwise it looks like a bug in the code.\u001B[39;00m\n\u001B[1;32m 467\u001B[0m six\u001B[38;5;241m.\u001B[39mraise_from(e, \u001B[38;5;28;01mNone\u001B[39;00m)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/http/client.py:1378\u001B[0m, in \u001B[0;36mHTTPConnection.getresponse\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 1376\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 1377\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m-> 1378\u001B[0m response\u001B[38;5;241m.\u001B[39mbegin()\n\u001B[1;32m 1379\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m:\n\u001B[1;32m 1380\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mclose()\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/http/client.py:318\u001B[0m, in \u001B[0;36mHTTPResponse.begin\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 316\u001B[0m \u001B[38;5;66;03m# read until we get a non-100 response\u001B[39;00m\n\u001B[1;32m 317\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[0;32m--> 318\u001B[0m version, status, reason \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_read_status()\n\u001B[1;32m 319\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m status \u001B[38;5;241m!=\u001B[39m CONTINUE:\n\u001B[1;32m 320\u001B[0m \u001B[38;5;28;01mbreak\u001B[39;00m\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/http/client.py:279\u001B[0m, in \u001B[0;36mHTTPResponse._read_status\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 278\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21m_read_status\u001B[39m(\u001B[38;5;28mself\u001B[39m):\n\u001B[0;32m--> 279\u001B[0m line \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mstr\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mfp\u001B[38;5;241m.\u001B[39mreadline(_MAXLINE \u001B[38;5;241m+\u001B[39m \u001B[38;5;241m1\u001B[39m), \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124miso-8859-1\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 280\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(line) \u001B[38;5;241m>\u001B[39m _MAXLINE:\n\u001B[1;32m 281\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m LineTooLong(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mstatus line\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", - "File \u001B[0;32m~/anaconda3/lib/python3.11/socket.py:706\u001B[0m, in \u001B[0;36mSocketIO.readinto\u001B[0;34m(self, b)\u001B[0m\n\u001B[1;32m 704\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[1;32m 705\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 706\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_sock\u001B[38;5;241m.\u001B[39mrecv_into(b)\n\u001B[1;32m 707\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m timeout:\n\u001B[1;32m 708\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_timeout_occurred \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mTrue\u001B[39;00m\n", - "\u001B[0;31mKeyboardInterrupt\u001B[0m: " - ] - } - ], - "execution_count": 8 - }, - { - "cell_type": "markdown", - "id": "c85b8ef869e35006", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T17:33:02.697755Z", - "start_time": "2023-11-07T17:33:02.687460Z" - } - }, - "source": [ - "## Create JSON" - ] - }, - { - "cell_type": "code", - "id": "aa618161182b5b07", - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-02T22:05:44.716570Z", - "start_time": "2024-07-02T22:05:44.707277Z" - } - }, - "source": [ - "# Create a JSON request for the API\n", - "# This is the data we want to get from the API\n", - "route_1 = utils.list_to_string(route_1_coordinates)\n", - "route_2 = utils.list_to_string(route_2_coordinates)" - ], - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'route_1_coordinates' is not defined", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mNameError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[0;32mIn[9], line 3\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;66;03m# Create a JSON request for the API\u001B[39;00m\n\u001B[1;32m 2\u001B[0m \u001B[38;5;66;03m# This is the data we want to get from the API\u001B[39;00m\n\u001B[0;32m----> 3\u001B[0m route_1 \u001B[38;5;241m=\u001B[39m utils\u001B[38;5;241m.\u001B[39mlist_to_string(route_1_coordinates)\n\u001B[1;32m 4\u001B[0m route_2 \u001B[38;5;241m=\u001B[39m utils\u001B[38;5;241m.\u001B[39mlist_to_string(route_2_coordinates)\n", - "\u001B[0;31mNameError\u001B[0m: name 'route_1_coordinates' is not defined" - ] - } - ], - "execution_count": 9 - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "32c485788eedd94", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:07.185941Z", - "start_time": "2023-11-07T23:06:04.976840Z" - } - }, - "outputs": [], - "source": [ - "# Create a dataframe from the JSON\n", - "df1 = utils.create_json_df(route_1, utils.list_to_string([centroids[0]]), northeastern_coordinate, host='https://router.project-osrm.org')\n", - "df2 = utils.create_json_df(route_2, utils.list_to_string([centroids[1]]), northeastern_coordinate, host='https://router.project-osrm.org')" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "49dba1f17ca8337e", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:07.206851Z", - "start_time": "2023-11-07T23:06:07.193514Z" - } - }, - "outputs": [], - "source": [ - "# Add columns for the route number\n", - "df1['route'] = 1\n", - "df2['route'] = 2\n", - "\n", - "# Concatenate the two dataframes\n", - "df = pd.concat([df1, df2], ignore_index=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "f231d9a35358988c", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:07.219423Z", - "start_time": "2023-11-07T23:06:07.214064Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
waypoint_indextrips_indexhintdistancenamelocationlatlonroute
0001IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN...8.262982[-71.053931, 42.365054]-71.05393142.3650541
110G4gsgDiILICSAwAA5gAAAOkAAAAAAAAAQljLQnyXy0Fhy8...2.602121[-71.056164, 42.366918]-71.05616442.3669181
220gIosgLaKLIDOAAAArgAAAFwBAAAAAAAAp3O3QafxmUEQiR...15.458439[-71.055561, 42.368861]-71.05556142.3688611
330HpwsgCKcLIAAAAAAEgAAAAAAAAAAAAAAAAAAACg870AAAA...39.201677[-71.062507, 42.365968]-71.06250742.3659681
440qn8sgKt_LIAfAAAAAAAAAAAAAAAAAAAA2ElcQAAAAAAAAA...39.331841[-71.064277, 42.358851]-71.06427742.3588511
..............................
1686107hAigPYQIoA2AgAAYwEAAAAAAAAAAAAAnsd7Qq9XHUIAAA...7.478611[-71.096959, 42.344689]-71.09695942.3446892
169620bwwigH0MIoAFAAAAEAAAAFUAAAArAAAAag0xP3921D-BFx...8.340476[-71.095003, 42.342001]-71.09500342.3420012
170630MQwigFwMIoAoAAAANQAAABwAAAB-AAAAoidqQSAYl0GvUh...11.504463[-71.094327, 42.341231]-71.09432742.3412312
171640k4chgBiIIYAKAAAAFwAAAPQDAAB_AgAAHn2aP-biHUBi6e...36.240351[-71.093834, 42.339096]-71.09383442.3390962
172650DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA...0.236958Northeastern (Inbound)[-71.090331, 42.339762]-71.09033142.3397622
\n", - "

173 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " waypoint_index trips_index \\\n", - "0 0 0 \n", - "1 1 0 \n", - "2 2 0 \n", - "3 3 0 \n", - "4 4 0 \n", - ".. ... ... \n", - "168 61 0 \n", - "169 62 0 \n", - "170 63 0 \n", - "171 64 0 \n", - "172 65 0 \n", - "\n", - " hint distance \\\n", - "0 1IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN... 8.262982 \n", - "1 G4gsgDiILICSAwAA5gAAAOkAAAAAAAAAQljLQnyXy0Fhy8... 2.602121 \n", - "2 gIosgLaKLIDOAAAArgAAAFwBAAAAAAAAp3O3QafxmUEQiR... 15.458439 \n", - "3 HpwsgCKcLIAAAAAAEgAAAAAAAAAAAAAAAAAAACg870AAAA... 39.201677 \n", - "4 qn8sgKt_LIAfAAAAAAAAAAAAAAAAAAAA2ElcQAAAAAAAAA... 39.331841 \n", - ".. ... ... \n", - "168 7hAigPYQIoA2AgAAYwEAAAAAAAAAAAAAnsd7Qq9XHUIAAA... 7.478611 \n", - "169 bwwigH0MIoAFAAAAEAAAAFUAAAArAAAAag0xP3921D-BFx... 8.340476 \n", - "170 MQwigFwMIoAoAAAANQAAABwAAAB-AAAAoidqQSAYl0GvUh... 11.504463 \n", - "171 k4chgBiIIYAKAAAAFwAAAPQDAAB_AgAAHn2aP-biHUBi6e... 36.240351 \n", - "172 DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA... 0.236958 \n", - "\n", - " name location lat lon \\\n", - "0 [-71.053931, 42.365054] -71.053931 42.365054 \n", - "1 [-71.056164, 42.366918] -71.056164 42.366918 \n", - "2 [-71.055561, 42.368861] -71.055561 42.368861 \n", - "3 [-71.062507, 42.365968] -71.062507 42.365968 \n", - "4 [-71.064277, 42.358851] -71.064277 42.358851 \n", - ".. ... ... ... ... \n", - "168 [-71.096959, 42.344689] -71.096959 42.344689 \n", - "169 [-71.095003, 42.342001] -71.095003 42.342001 \n", - "170 [-71.094327, 42.341231] -71.094327 42.341231 \n", - "171 [-71.093834, 42.339096] -71.093834 42.339096 \n", - "172 Northeastern (Inbound) [-71.090331, 42.339762] -71.090331 42.339762 \n", - "\n", - " route \n", - "0 1 \n", - "1 1 \n", - "2 1 \n", - "3 1 \n", - "4 1 \n", - ".. ... \n", - "168 2 \n", - "169 2 \n", - "170 2 \n", - "171 2 \n", - "172 2 \n", - "\n", - "[173 rows x 9 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "markdown", - "id": "75be92e34a36147f", - "metadata": {}, - "source": [ - "## Map" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "80fd847da2833913", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:07.316817Z", - "start_time": "2023-11-07T23:06:07.221200Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a map\n", - "m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11)\n", - "\n", - "# Add the points and lines for the two routes with different colors\n", - "colors = ['red', 'blue']\n", - "\n", - "for route in df['route'].unique():\n", - " df_route = df[df['route'] == route]\n", - " folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m)\n", - " for i in range(len(df_route)):\n", - " folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to(\n", - " m)\n", - "\n", - "# Display the map\n", - "m" - ] - }, - { - "cell_type": "markdown", - "id": "a7b562f75f7e0813", - "metadata": {}, - "source": [ - "## Results" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "f53c97acec1c2fc4", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:07.318988Z", - "start_time": "2023-11-07T23:06:07.297230Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Route 1 has 105 waypoints\n", - "Route 2 has 64 waypoints\n" - ] - } - ], - "source": [ - "# Get the number of waypoints for each route\n", - "route_1_waypoints = len(route_1_coordinates)\n", - "route_2_waypoints = len(route_2_coordinates)\n", - "print(\"Route 1 has {} waypoints\".format(route_1_waypoints))\n", - "print(\"Route 2 has {} waypoints\".format(route_2_waypoints))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "a3ec09dfb5cbb5b3", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:06:09.735945Z", - "start_time": "2023-11-07T23:06:07.299647Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 13.1925 hours\n", - "The trip will take 13.017777777777777 hours\n" - ] - } - ], - "source": [ - "trip_hrs_1 = utils.get_trip_time(route_1, route_1_waypoints, utils.list_to_string([centroids[0]]),\n", - " northeastern_coordinate)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_1))\n", - "trip_hrs_2 = utils.get_trip_time(route_2, route_2_waypoints, utils.list_to_string([centroids[1]]),\n", - " northeastern_coordinate)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_2))" - ] - }, - { - "cell_type": "markdown", - "id": "de7b5856172d213c", - "metadata": {}, - "source": [ - "# 3 Routes" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "bb6e00857e8175c0", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:36.195528Z", - "start_time": "2023-11-07T23:06:09.732162Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - } - ], - "source": [ - "# Cluster and minimize the data\n", - "# Add a third centroid in the Financial District\n", - "centroids.append([42.356, -71.055])\n", - "_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate, time_diff=0.3, max_time=24)\n", - "\n", - "route_1_coordinates = routes[0]\n", - "route_2_coordinates = routes[1]\n", - "route_3_coordinates = routes[2]" - ] - }, - { - "cell_type": "markdown", - "id": "19afb4f687b37383", - "metadata": {}, - "source": [ - "## Create JSON" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "e886e061f86a2118", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:36.198703Z", - "start_time": "2023-11-07T23:07:36.194798Z" - } - }, - "outputs": [], - "source": [ - "# Create a JSON request for the API\n", - "# This is the data we want to get from the API\n", - "route_1 = utils.list_to_string(route_1_coordinates)\n", - "route_2 = utils.list_to_string(route_2_coordinates)\n", - "route_3 = utils.list_to_string(route_3_coordinates)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "23e4682fe9e30631", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:38.315154Z", - "start_time": "2023-11-07T23:07:36.199174Z" - } - }, - "outputs": [], - "source": [ - "# Create a dataframe from the JSON\n", - "df1 = utils.create_json_df(route_1, utils.list_to_string([centroids[0]]), northeastern_coordinate)\n", - "df2 = utils.create_json_df(route_2, utils.list_to_string([centroids[1]]), northeastern_coordinate)\n", - "df3 = utils.create_json_df(route_3, utils.list_to_string([centroids[2]]), northeastern_coordinate)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "c3a5c5d6f3ac46c0", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:38.325567Z", - "start_time": "2023-11-07T23:07:38.320173Z" - } - }, - "outputs": [], - "source": [ - "# Add columns for the route number\n", - "df1['route'] = 1\n", - "df2['route'] = 2\n", - "df3['route'] = 3\n", - "\n", - "# Concatenate the three dataframes\n", - "df = pd.concat([df1, df2, df3], ignore_index=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "17a8cc8fed5450a6", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:38.333653Z", - "start_time": "2023-11-07T23:07:38.322616Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
waypoint_indextrips_indexhintdistancenamelocationlatlonroute
0001IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN...8.262982[-71.053931, 42.365054]-71.05393142.3650541
110G4gsgDiILICSAwAA5gAAAOkAAAAAAAAAQljLQnyXy0Fhy8...2.602121[-71.056164, 42.366918]-71.05616442.3669181
220gIosgLaKLIDOAAAArgAAAFwBAAAAAAAAp3O3QafxmUEQiR...15.458439[-71.055561, 42.368861]-71.05556142.3688611
330HpwsgCKcLIAAAAAAEgAAAAAAAAAAAAAAAAAAACg870AAAA...39.201677[-71.062507, 42.365968]-71.06250742.3659681
440LRUugHAVLoA1AAAA7wEAAKAAAADqAAAAYZa9QBEBXEIOWo...1.865658[-71.061735, 42.369195]-71.06173542.3691951
..............................
1704907hAigPYQIoA2AgAAYwEAAAAAAAAAAAAAnsd7Qq9XHUIAAA...7.478611[-71.096959, 42.344689]-71.09695942.3446893
171500bwwigH0MIoAFAAAAEAAAAFUAAAArAAAAag0xP3921D-BFx...8.340476[-71.095003, 42.342001]-71.09500342.3420013
172510MQwigFwMIoAoAAAANQAAABwAAAB-AAAAoidqQSAYl0GvUh...11.504463[-71.094327, 42.341231]-71.09432742.3412313
173520k4chgBiIIYAKAAAAFwAAAPQDAAB_AgAAHn2aP-biHUBi6e...36.240351[-71.093834, 42.339096]-71.09383442.3390963
174530DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA...0.236958Northeastern (Inbound)[-71.090331, 42.339762]-71.09033142.3397623
\n", - "

175 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " waypoint_index trips_index \\\n", - "0 0 0 \n", - "1 1 0 \n", - "2 2 0 \n", - "3 3 0 \n", - "4 4 0 \n", - ".. ... ... \n", - "170 49 0 \n", - "171 50 0 \n", - "172 51 0 \n", - "173 52 0 \n", - "174 53 0 \n", - "\n", - " hint distance \\\n", - "0 1IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN... 8.262982 \n", - "1 G4gsgDiILICSAwAA5gAAAOkAAAAAAAAAQljLQnyXy0Fhy8... 2.602121 \n", - "2 gIosgLaKLIDOAAAArgAAAFwBAAAAAAAAp3O3QafxmUEQiR... 15.458439 \n", - "3 HpwsgCKcLIAAAAAAEgAAAAAAAAAAAAAAAAAAACg870AAAA... 39.201677 \n", - "4 LRUugHAVLoA1AAAA7wEAAKAAAADqAAAAYZa9QBEBXEIOWo... 1.865658 \n", - ".. ... ... \n", - "170 7hAigPYQIoA2AgAAYwEAAAAAAAAAAAAAnsd7Qq9XHUIAAA... 7.478611 \n", - "171 bwwigH0MIoAFAAAAEAAAAFUAAAArAAAAag0xP3921D-BFx... 8.340476 \n", - "172 MQwigFwMIoAoAAAANQAAABwAAAB-AAAAoidqQSAYl0GvUh... 11.504463 \n", - "173 k4chgBiIIYAKAAAAFwAAAPQDAAB_AgAAHn2aP-biHUBi6e... 36.240351 \n", - "174 DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA... 0.236958 \n", - "\n", - " name location lat lon \\\n", - "0 [-71.053931, 42.365054] -71.053931 42.365054 \n", - "1 [-71.056164, 42.366918] -71.056164 42.366918 \n", - "2 [-71.055561, 42.368861] -71.055561 42.368861 \n", - "3 [-71.062507, 42.365968] -71.062507 42.365968 \n", - "4 [-71.061735, 42.369195] -71.061735 42.369195 \n", - ".. ... ... ... ... \n", - "170 [-71.096959, 42.344689] -71.096959 42.344689 \n", - "171 [-71.095003, 42.342001] -71.095003 42.342001 \n", - "172 [-71.094327, 42.341231] -71.094327 42.341231 \n", - "173 [-71.093834, 42.339096] -71.093834 42.339096 \n", - "174 Northeastern (Inbound) [-71.090331, 42.339762] -71.090331 42.339762 \n", - "\n", - " route \n", - "0 1 \n", - "1 1 \n", - "2 1 \n", - "3 1 \n", - "4 1 \n", - ".. ... \n", - "170 3 \n", - "171 3 \n", - "172 3 \n", - "173 3 \n", - "174 3 \n", - "\n", - "[175 rows x 9 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "markdown", - "id": "b20a57aa09792c39", - "metadata": {}, - "source": [ - "## Map" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "702adaec008a6ec8", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:38.444061Z", - "start_time": "2023-11-07T23:07:38.336503Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a map\n", - "m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11)\n", - "\n", - "# Add the points and lines for the three routes with different colors\n", - "colors = ['red', 'blue', 'green']\n", - "\n", - "for route in df['route'].unique():\n", - " df_route = df[df['route'] == route]\n", - " folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m)\n", - " for i in range(len(df_route)):\n", - " folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to(\n", - " m)\n", - "\n", - "# Display the map\n", - "m" - ] - }, - { - "cell_type": "markdown", - "id": "a947e49e27c734e9", - "metadata": {}, - "source": [ - "## Results" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "4106acf2adad01d7", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:38.445284Z", - "start_time": "2023-11-07T23:07:38.401884Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Route 1 has 61 waypoints\n", - "Route 2 has 56 waypoints\n", - "Route 3 has 52 waypoints\n" - ] - } - ], - "source": [ - "# Get the number of waypoints for each route\n", - "route_1_waypoints = len(route_1_coordinates)\n", - "route_2_waypoints = len(route_2_coordinates)\n", - "route_3_waypoints = len(route_3_coordinates)\n", - "print(\"Route 1 has {} waypoints\".format(route_1_waypoints))\n", - "print(\"Route 2 has {} waypoints\".format(route_2_waypoints))\n", - "print(\"Route 3 has {} waypoints\".format(route_3_waypoints))" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "c58106faf0fc7f4e", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:07:40.521741Z", - "start_time": "2023-11-07T23:07:38.405889Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 9.394444444444444 hours\n", - "The trip will take 8.852777777777778 hours\n", - "The trip will take 9.325555555555555 hours\n" - ] - } - ], - "source": [ - "# Get the trip time for each route\n", - "trip_hrs_1 = utils.get_trip_time(route_1, route_1_waypoints, utils.list_to_string([centroids[0]]),\n", - " northeastern_coordinate)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_1))\n", - "trip_hrs_2 = utils.get_trip_time(route_2, route_2_waypoints, utils.list_to_string([centroids[1]]),\n", - " northeastern_coordinate)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_2))\n", - "trip_hrs_3 = utils.get_trip_time(route_3, route_3_waypoints, utils.list_to_string([centroids[2]]),\n", - " northeastern_coordinate)\n", - "print(\"The trip will take {} hours\".format(trip_hrs_3))" - ] - }, - { - "cell_type": "markdown", - "id": "4068a0b6460f19ab", - "metadata": {}, - "source": [ - "# 10 ROUTES (because I can)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "5995d6556f940e67", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:09:18.376367Z", - "start_time": "2023-11-07T23:07:40.529888Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/Users/garrinshieh/anaconda3/lib/python3.11/site-packages/sklearn/cluster/_kmeans.py:1412: RuntimeWarning: Explicit initial center position passed: performing only one init in KMeans instead of n_init=10.\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - } - ], - "source": [ - "# Cluster and minimize the data\n", - "# Add seven more centroids around Boston with different latitudes and longitudes\n", - "for i in range(7):\n", - " centroids.append([42.365 + i * 0.01, -71.054 + i * 0.01])\n", - "\n", - "_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate, time_diff=0.5, max_time=24)" - ] - }, - { - "cell_type": "markdown", - "id": "8c6f5aeb5e6c2832", - "metadata": {}, - "source": [ - "## Create JSON" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "375b090921cab03e", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:09:18.395941Z", - "start_time": "2023-11-07T23:09:18.378652Z" - } - }, - "outputs": [], - "source": [ - "# Create a JSON request for the API\n", - "# This is the data we want to get from the API\n", - "route_strings = []\n", - "for route in routes:\n", - " route_strings.append(utils.list_to_string(route))" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "74f619c6df3bd6c4", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:09:21.149586Z", - "start_time": "2023-11-07T23:09:18.384347Z" - } - }, - "outputs": [], - "source": [ - "# Create a dataframe from the JSON\n", - "dfs = []\n", - "for i in range(len(routes)):\n", - " dfs.append(utils.create_json_df(route_strings[i], utils.list_to_string([centroids[i]]), northeastern_coordinate))\n", - " \n", - "# Concatenate the dataframes\n", - "df = pd.concat(dfs, ignore_index=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "488924ebe78c61aa", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:10:17.312994Z", - "start_time": "2023-11-07T23:10:17.307208Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/8b/9mzlkxlx3zx9nmpy8prjpmm80000gn/T/ipykernel_42497/2886398449.py:3: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['route'].iloc[i * len(routes[i]):(i + 1) * len(routes[i])] = i + 1\n" - ] - } - ], - "source": [ - "# Add columns for the route number\n", - "for i in range(len(routes)):\n", - " df['route'].iloc[i * len(routes[i]):(i + 1) * len(routes[i])] = i + 1" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "8e436ba5d3949420", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:10:19.393773Z", - "start_time": "2023-11-07T23:10:19.390813Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
waypoint_indextrips_indexhintdistancenamelocationlatlonroute
0001IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN...8.262982[-71.053931, 42.365054]-71.05393142.3650541
110LRUugHAVLoA1AAAA7wEAAKAAAADqAAAAYZa9QBEBXEIOWo...1.865658[-71.061735, 42.369195]-71.06173542.3691951
220lM4AgM3LAIAEAAAAHAAAAJEAAAC_AgAAyLv6PxJ7NEGyPn...2.242639Miller's River Littoral Way[-71.065634, 42.371832]-71.06563442.3718321
330ZQ0fgPINH4AgAAAAEQAAAFEAAAAqAAAArYRYQRHu20BfWQ...48.627645[-71.06828, 42.369868]-71.06828042.3698684
440HR8ugIJiBICVAQAARwAAAAAAAACLAAAAQ1M0Qu3l-EAAAA...0.645763[-71.094764, 42.377355]-71.09476442.3773551
..............................
184110-2EugABiLoCcAQAAigAAAAAAAAAAAAAAMQI3QqZ0dUEAAA...7.363621[-71.102659, 42.382131]-71.10265942.38213110
185120VSIfgAYjH4AUAAAAAAAAACUBAADDAAAAaIcPQAAAAADYBw...18.888832[-71.110851, 42.374259]-71.11085142.3742596
1861300OEhgPvhIYADAAAABgAAAA8AAAA0AAAA2lq-PipQFD-Y-N...2.009578[-71.085166, 42.349997]-71.08516642.3499976
187140C-AhgGbgIYBZAAAAMQAAAAAAAABqAAAAj5QfQS1zq0AAAA...4.887502[-71.091358, 42.348977]-71.09135842.3489776
188150DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA...0.236958Northeastern (Inbound)[-71.090331, 42.339762]-71.09033142.3397626
\n", - "

189 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " waypoint_index trips_index \\\n", - "0 0 0 \n", - "1 1 0 \n", - "2 2 0 \n", - "3 3 0 \n", - "4 4 0 \n", - ".. ... ... \n", - "184 11 0 \n", - "185 12 0 \n", - "186 13 0 \n", - "187 14 0 \n", - "188 15 0 \n", - "\n", - " hint distance \\\n", - "0 1IwsgDuNLIBFAAAAWgEAAA8AAAAAAAAAFQP1QGa9GUI7qN... 8.262982 \n", - "1 LRUugHAVLoA1AAAA7wEAAKAAAADqAAAAYZa9QBEBXEIOWo... 1.865658 \n", - "2 lM4AgM3LAIAEAAAAHAAAAJEAAAC_AgAAyLv6PxJ7NEGyPn... 2.242639 \n", - "3 ZQ0fgPINH4AgAAAAEQAAAFEAAAAqAAAArYRYQRHu20BfWQ... 48.627645 \n", - "4 HR8ugIJiBICVAQAARwAAAAAAAACLAAAAQ1M0Qu3l-EAAAA... 0.645763 \n", - ".. ... ... \n", - "184 -2EugABiLoCcAQAAigAAAAAAAAAAAAAAMQI3QqZ0dUEAAA... 7.363621 \n", - "185 VSIfgAYjH4AUAAAAAAAAACUBAADDAAAAaIcPQAAAAADYBw... 18.888832 \n", - "186 0OEhgPvhIYADAAAABgAAAA8AAAA0AAAA2lq-PipQFD-Y-N... 2.009578 \n", - "187 C-AhgGbgIYBZAAAAMQAAAAAAAABqAAAAj5QfQS1zq0AAAA... 4.887502 \n", - "188 DoUhgBeFIYCcAAAAJgAAAAAAAAARAAAAm0CKQdkZiEAAAA... 0.236958 \n", - "\n", - " name location lat \\\n", - "0 [-71.053931, 42.365054] -71.053931 \n", - "1 [-71.061735, 42.369195] -71.061735 \n", - "2 Miller's River Littoral Way [-71.065634, 42.371832] -71.065634 \n", - "3 [-71.06828, 42.369868] -71.068280 \n", - "4 [-71.094764, 42.377355] -71.094764 \n", - ".. ... ... ... \n", - "184 [-71.102659, 42.382131] -71.102659 \n", - "185 [-71.110851, 42.374259] -71.110851 \n", - "186 [-71.085166, 42.349997] -71.085166 \n", - "187 [-71.091358, 42.348977] -71.091358 \n", - "188 Northeastern (Inbound) [-71.090331, 42.339762] -71.090331 \n", - "\n", - " lon route \n", - "0 42.365054 1 \n", - "1 42.369195 1 \n", - "2 42.371832 1 \n", - "3 42.369868 4 \n", - "4 42.377355 1 \n", - ".. ... ... \n", - "184 42.382131 10 \n", - "185 42.374259 6 \n", - "186 42.349997 6 \n", - "187 42.348977 6 \n", - "188 42.339762 6 \n", - "\n", - "[189 rows x 9 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Display the dataframe\n", - "display(df)" - ] - }, - { - "cell_type": "markdown", - "id": "1552586cb84a48c5", - "metadata": {}, - "source": [ - "## Map" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "4305c6981e48e87f", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:13:22.619199Z", - "start_time": "2023-11-07T23:13:22.527566Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a map\n", - "m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11)\n", - "\n", - "# Add the points and lines for the three routes with different colors\n", - "colors = ['red', 'blue', 'green', 'orange', 'purple', 'pink', 'black', 'gray', 'brown', 'yellow']\n", - "\n", - "for route in df['route'].unique():\n", - " df_route = df[df['route'] == route]\n", - " folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m)\n", - " for i in range(len(df_route)):\n", - " folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to(\n", - " m)\n", - " \n", - "# Display the map\n", - "m" - ] - }, - { - "cell_type": "markdown", - "id": "4723f2f26efe49d3", - "metadata": {}, - "source": [ - "## Results" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "5887f93dd890bc77", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:12:32.990935Z", - "start_time": "2023-11-07T23:12:32.987254Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Route 1 has 20 waypoints\n", - "Route 2 has 10 waypoints\n", - "Route 3 has 28 waypoints\n", - "Route 4 has 1 waypoints\n", - "Route 5 has 15 waypoints\n", - "Route 6 has 37 waypoints\n", - "Route 7 has 18 waypoints\n", - "Route 8 has 16 waypoints\n", - "Route 9 has 10 waypoints\n", - "Route 10 has 14 waypoints\n" - ] - } - ], - "source": [ - "# Get the number of waypoints for each route\n", - "route_waypoints = []\n", - "for route in routes:\n", - " route_waypoints.append(len(route))\n", - "for i in range(len(route_waypoints)):\n", - " print(\"Route {} has {} waypoints\".format(i + 1, route_waypoints[i]))" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "3a4b529fc3f2b336", - "metadata": { - "ExecuteTime": { - "end_time": "2023-11-07T23:11:11.477373Z", - "start_time": "2023-11-07T23:11:08.172393Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The trip will take 3.1816666666666666 hours\n", - "The trip will take 3.8113888888888887 hours\n", - "The trip will take 3.9852777777777777 hours\n", - "The trip will take 3.8975 hours\n", - "The trip will take 4.088611111111111 hours\n", - "The trip will take 4.039444444444444 hours\n", - "The trip will take 3.17 hours\n", - "The trip will take 3.209722222222222 hours\n", - "The trip will take 4.1275 hours\n", - "The trip will take 3.2069444444444444 hours\n" - ] - } - ], - "source": [ - "# Get the trip time for each route\n", - "trip_hrs = []\n", - "for i in range(len(routes)):\n", - " trip_hrs.append(utils.get_trip_time(route_strings[i], route_waypoints[i], utils.list_to_string([centroids[i]]),\n", - " northeastern_coordinate))\n", - "for i in range(len(trip_hrs)):\n", - " print(\"The trip will take {} hours\".format(trip_hrs[i]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a4cf5509f890423a", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/ZestySalesman.py b/ZestySalesman.py deleted file mode 100644 index de07449..0000000 --- a/ZestySalesman.py +++ /dev/null @@ -1,368 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# In[1]: - - -import folium -import pandas as pd - -import utils - -# In[2]: - - -# Load the data -ListA = pd.read_csv('List A.csv') -ListB = pd.read_csv('List B.csv') -ListC = pd.read_csv('List C.csv') -ListD = pd.read_csv('List D.csv') - - -# In[3]: - - -# Create two centroids, one in the North End and one in the Seaport District -centroids = [[42.365, -71.054], [42.351, -71.045]] - -northeastern_coordinate = "-71.09033,42.33976" - - -# In[4]: - - -# Combine the two lists and add a column to indicate the list -ListA['list'] = 'A' -ListB['list'] = 'B' -ListC['list'] = 'C' -ListD['list'] = 'D' - -TotalList = pd.concat([ListA, ListB, ListC, ListD]) - - -# In[5]: - - -# Remove all columns but name and gps -TotalList = TotalList[['name', 'gps', 'list']] - - -# In[6]: - - -# Convert the gps column to a list of lists for k-means -TotalList['gps'] = TotalList['gps'].apply(lambda x: x.strip('[]').split(',')) -TotalList['gps'] = TotalList['gps'].apply(lambda x: [float(i) for i in x]) - - -# In[7]: - - -display(TotalList) - - -# # 2 Routes - -# ## Cluster and Minimize - -# In[8]: - - -# Cluster and minimize the data -_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate, - time_diff=0.25, max_time=24) - -route_1_coordinates = routes[0] -route_2_coordinates = routes[1] - - -# ## Create JSON - -# In[9]: - - -# Create a JSON request for the API -# This is the data we want to get from the API -route_1 = utils.list_to_string(route_1_coordinates) -route_2 = utils.list_to_string(route_2_coordinates) - - -# In[10]: - - -# Create a dataframe from the JSON -df1 = utils.create_json_df(route_1, utils.list_to_string([centroids[0]]), northeastern_coordinate) -df2 = utils.create_json_df(route_2, utils.list_to_string([centroids[1]]), northeastern_coordinate) - - -# In[11]: - - -# Add columns for the route number -df1['route'] = 1 -df2['route'] = 2 - -# Concatenate the two dataframes -df = pd.concat([df1, df2], ignore_index=True) - - -# In[12]: - - -display(df) - - -# ## Map - -# In[13]: - - -# Create a map -m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11) - -# Add the points and lines for the two routes with different colors -colors = ['red', 'blue'] - -for route in df['route'].unique(): - df_route = df[df['route'] == route] - folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m) - for i in range(len(df_route)): - folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to( - m) - -# Display the map -m - - -# ## Results - -# In[14]: - - -# Get the number of waypoints for each route -route_1_waypoints = len(route_1_coordinates) -route_2_waypoints = len(route_2_coordinates) -print("Route 1 has {} waypoints".format(route_1_waypoints)) -print("Route 2 has {} waypoints".format(route_2_waypoints)) - - -# In[15]: - - -trip_hrs_1 = utils.get_trip_time(route_1, route_1_waypoints, utils.list_to_string([centroids[0]]), - northeastern_coordinate) -print("The trip will take {} hours".format(trip_hrs_1)) -trip_hrs_2 = utils.get_trip_time(route_2, route_2_waypoints, utils.list_to_string([centroids[1]]), - northeastern_coordinate) -print("The trip will take {} hours".format(trip_hrs_2)) - - -# # 3 Routes - -# In[16]: - - -# Cluster and minimize the data -# Add a third centroid in the Financial District -centroids.append([42.356, -71.055]) -_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate, time_diff=0.3, max_time=24) - -route_1_coordinates = routes[0] -route_2_coordinates = routes[1] -route_3_coordinates = routes[2] - - -# ## Create JSON - -# In[17]: - - -# Create a JSON request for the API -# This is the data we want to get from the API -route_1 = utils.list_to_string(route_1_coordinates) -route_2 = utils.list_to_string(route_2_coordinates) -route_3 = utils.list_to_string(route_3_coordinates) - - -# In[18]: - - -# Create a dataframe from the JSON -df1 = utils.create_json_df(route_1, utils.list_to_string([centroids[0]]), northeastern_coordinate) -df2 = utils.create_json_df(route_2, utils.list_to_string([centroids[1]]), northeastern_coordinate) -df3 = utils.create_json_df(route_3, utils.list_to_string([centroids[2]]), northeastern_coordinate) - - -# In[19]: - - -# Add columns for the route number -df1['route'] = 1 -df2['route'] = 2 -df3['route'] = 3 - -# Concatenate the three dataframes -df = pd.concat([df1, df2, df3], ignore_index=True) - - -# In[20]: - - -display(df) - - -# ## Map - -# In[21]: - - -# Create a map -m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11) - -# Add the points and lines for the three routes with different colors -colors = ['red', 'blue', 'green'] - -for route in df['route'].unique(): - df_route = df[df['route'] == route] - folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m) - for i in range(len(df_route)): - folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to( - m) - -# Display the map -m - - -# ## Results - -# In[22]: - - -# Get the number of waypoints for each route -route_1_waypoints = len(route_1_coordinates) -route_2_waypoints = len(route_2_coordinates) -route_3_waypoints = len(route_3_coordinates) -print("Route 1 has {} waypoints".format(route_1_waypoints)) -print("Route 2 has {} waypoints".format(route_2_waypoints)) -print("Route 3 has {} waypoints".format(route_3_waypoints)) - - -# In[23]: - - -# Get the trip time for each route -trip_hrs_1 = utils.get_trip_time(route_1, route_1_waypoints, utils.list_to_string([centroids[0]]), - northeastern_coordinate) -print("The trip will take {} hours".format(trip_hrs_1)) -trip_hrs_2 = utils.get_trip_time(route_2, route_2_waypoints, utils.list_to_string([centroids[1]]), - northeastern_coordinate) -print("The trip will take {} hours".format(trip_hrs_2)) -trip_hrs_3 = utils.get_trip_time(route_3, route_3_waypoints, utils.list_to_string([centroids[2]]), - northeastern_coordinate) -print("The trip will take {} hours".format(trip_hrs_3)) - - -# # 10 ROUTES (because I can) - -# In[24]: - - -# Cluster and minimize the data -# Add seven more centroids around Boston with different latitudes and longitudes -for i in range(7): - centroids.append([42.365 + i * 0.01, -71.054 + i * 0.01]) - -_, routes = utils.cluster_and_optimize(TotalList, centroids, northeastern_coordinate, time_diff=0.5, max_time=24) - - -# ## Create JSON - -# In[25]: - - -# Create a JSON request for the API -# This is the data we want to get from the API -route_strings = [] -for route in routes: - route_strings.append(utils.list_to_string(route)) - - -# In[26]: - - -# Create a dataframe from the JSON -dfs = [] -for i in range(len(routes)): - dfs.append(utils.create_json_df(route_strings[i], utils.list_to_string([centroids[i]]), northeastern_coordinate)) - -# Concatenate the dataframes -df = pd.concat(dfs, ignore_index=True) - - -# In[30]: - - -# Add columns for the route number -for i in range(len(routes)): - df['route'].iloc[i * len(routes[i]):(i + 1) * len(routes[i])] = i + 1 - - -# In[31]: - - -# Display the dataframe -display(df) - - -# ## Map - -# In[37]: - - -# Create a map -m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=11) - -# Add the points and lines for the three routes with different colors -colors = ['red', 'blue', 'green', 'orange', 'purple', 'pink', 'black', 'gray', 'brown', 'yellow'] - -for route in df['route'].unique(): - df_route = df[df['route'] == route] - folium.PolyLine(df_route[['lon', 'lat']].values.tolist(), color=colors[route - 1]).add_to(m) - for i in range(len(df_route)): - folium.CircleMarker(df_route[['lon', 'lat']].iloc[i].values.tolist(), radius=3, color=colors[route - 1]).add_to( - m) - -# Display the map -m - - -# ## Results - -# In[36]: - - -# Get the number of waypoints for each route -route_waypoints = [] -for route in routes: - route_waypoints.append(len(route)) -for i in range(len(route_waypoints)): - print("Route {} has {} waypoints".format(i + 1, route_waypoints[i])) - - -# In[34]: - - -# Get the trip time for each route -trip_hrs = [] -for i in range(len(routes)): - trip_hrs.append(utils.get_trip_time(route_strings[i], route_waypoints[i], utils.list_to_string([centroids[i]]), - northeastern_coordinate)) -for i in range(len(trip_hrs)): - print("The trip will take {} hours".format(trip_hrs[i])) - - -# In[ ]: - - - - diff --git a/dashboard_website/.gitignore b/dashboard_website/.gitignore new file mode 100644 index 0000000..dd51f4e --- /dev/null +++ b/dashboard_website/.gitignore @@ -0,0 +1 @@ +/__pycache__/** diff --git a/dashboard_website/__pycache__/datastructs.cpython-311.pyc b/dashboard_website/__pycache__/datastructs.cpython-311.pyc deleted file mode 100644 index 95d05af..0000000 Binary files a/dashboard_website/__pycache__/datastructs.cpython-311.pyc and /dev/null differ diff --git a/dashboard_website/__pycache__/datastructs.cpython-312.pyc b/dashboard_website/__pycache__/datastructs.cpython-312.pyc deleted file mode 100644 index 4d2a713..0000000 Binary files a/dashboard_website/__pycache__/datastructs.cpython-312.pyc and /dev/null differ diff --git a/dashboard_website/__pycache__/db.cpython-311.pyc b/dashboard_website/__pycache__/db.cpython-311.pyc deleted file mode 100644 index 2312bc2..0000000 Binary files a/dashboard_website/__pycache__/db.cpython-311.pyc and /dev/null differ diff --git a/dashboard_website/__pycache__/db.cpython-312.pyc b/dashboard_website/__pycache__/db.cpython-312.pyc deleted file mode 100644 index 50e9ac1..0000000 Binary files a/dashboard_website/__pycache__/db.cpython-312.pyc and /dev/null differ diff --git a/dashboard_website/__pycache__/router.cpython-311.pyc b/dashboard_website/__pycache__/router.cpython-311.pyc deleted file mode 100644 index f94a179..0000000 Binary files a/dashboard_website/__pycache__/router.cpython-311.pyc and /dev/null differ diff --git a/dashboard_website/__pycache__/router.cpython-312.pyc b/dashboard_website/__pycache__/router.cpython-312.pyc deleted file mode 100644 index 47e0edf..0000000 Binary files a/dashboard_website/__pycache__/router.cpython-312.pyc and /dev/null differ diff --git a/dashboard_website/all_clues.csv b/dashboard_website/all_clues.csv deleted file mode 100644 index 84b6c30..0000000 --- a/dashboard_website/all_clues.csv +++ /dev/null @@ -1 +0,0 @@ -name,latitude,longitude,info,status diff --git a/dashboard_website/clean.csv b/dashboard_website/clean.csv deleted file mode 100644 index 67740e4..0000000 --- a/dashboard_website/clean.csv +++ /dev/null @@ -1,153 +0,0 @@ -name,latitude,longitude,info,status,required -Z1,42.3490337587194,-71.0885534426824,Mass Ave & Commonwealth Street Signs,VISITED,True -Z2,42.3442576331042,-71.0771999369331,Holyoke & Columbus Street Signs,VISITED,True -Z3,42.3518783570178,-71.0782256821,Commonwealth & Dartmouth Street Signs,VISITED,True -Z4,42.3492167599952,-71.0769378607228,Huntington & Darthmouth Street Signs,VISITED,True -Z5,42.3458285850531,-71.0752559933239,Dartmouth & Columbus Street Signs,VISITED,True -Z6,42.3501111774704,-71.0699706947878,Columbus & Stuart Street Signs,VISITED,True -Z7,42.3510884439964,-71.0649368718862,Stuart & Tremont Street Signs,VISITED,True -Z8,42.3579928441425,-71.0604632130701,Tremont & Beacon Street Signs,VISITED,True -Z9,42.3562236109795,-71.0692851535473,Charles & Beacon Street Signs,VISITED,True -Z10,42.359467040988,-71.0707038572224,Charles & Revere Street Signs,VISITED,True -Y1,42.3420990735122,-71.0860535713766,El Jefe's symphony,VISITED,True -Y2,42.3523353054508,-71.0649890301246,El jefe's boston common,VISITED,True -Y3,42.3517577231357,-71.119186447953,El Jefe's BU,VISITED,True -Y4,42.3732590992036,-71.1200804867238,El Jefe's Harvard,VISITED,True -Y5,42.3610457052344,-71.0670310341877,anna's taqueria beacon hill,VISITED,True -Y6,42.346201178872,-71.1281671662589,anna's taqueria jfk corner,VISITED,True -Y7,42.3884108396429,-71.1186275838162,anna's taqueria porter,VISITED,True -Y8,42.3949445657535,-71.1217722169406,anna's taqueria davis square,VISITED,True -Y9,42.32162076044,-71.2072262219593,anna's taqueria newton highlands,VISITED,True -Y10,42.3473611584311,-71.0816681126164,anna's taqueria prudential,VISITED,True -Y11,42.33908135997,-71.1077552133326,anna's taqueria longwood,VISITED,True -Y12,42.3415506479752,-71.0876050613647,amelias huntington,VISITED,True -Y13,42.3362840534119,-71.1499735312776,amelia's beacon st,VISITED,True -Y14,42.3470601032068,-71.0880280660347,amelia's boylston,VISITED,True -A1,42.3516484100978,-71.0502519831223,Big Milk in Seaport,UNVISITED,False -A2,42.3520419242066,-71.049845025894,Boston Children's Museum,UNVISITED,False -A3,42.3536537919241,-71.0487334497937,The Barking Crab,UNVISITED,False -A4,42.3523217459454,-71.0673045171718,Poe Statue,UNVISITED,False -A5,42.3376126502488,-71.0110287056158,Castle Island,VISITED,False -A6,42.349761691446,-71.0786270716553,Boston Marathon Finish Line ,UNVISITED,False -A7,42.3369191552988,-71.0761440244297,Mike's City Diner,VISITED,False -A8,42.3511608848167,-71.0441426847922,Rainbow deer,UNVISITED,False -A9,42.3534524348227,-71.0724498522888,Alexander Hamilton Statue,UNVISITED,False -A10,42.3488587894749,-71.0824239022112,boylston apple store,UNVISITED,False -A11,42.3441257842049,-71.0453356387658,The Lawn on D,UNVISITED,False -A12,42.3508130265764,-71.078519602788,google store,UNVISITED,False -A13,42.3256232678311,-71.068928609528,Bully Boy Distillery,VISITED,False -A14,42.343401575839,-71.0723400958892,Metropolis,UNVISITED,False -A15,42.3418000978675,-71.0805717059923,5 horse tavern,UNVISITED,False -A16,42.3495454003321,-71.0703298469279,The Saunders Castle & The Tower,VISITED,True -A17,42.3498154264322,-71.0447968583138,Puttshack Seaport,UNVISITED,False -A18,42.3350555628812,-71.0461489151427,Fat Baby,UNVISITED,False -A19,42.3353404011519,-71.0455656038347,broadway's best pizza,UNVISITED,False -A20,42.3959093644735,-71.1031316114842,ink about it,UNVISITED,False -A21,42.3377645943712,-71.0489645460263,Lithuanian Citizens Association,UNVISITED,False -A22,42.3507106261158,-71.0384159866313,Yankee Specialty foods,UNVISITED,False -A23,42.3420007997466,-71.0663661528146,More Amore European Nails,UNVISITED,False -A24,42.3517847704231,-71.0768065613648,jonquils,UNVISITED,False -B1,42.3681833607447,-71.076103006054,Cambridgeside Galleria Mall 2nd floor,UNVISITED,False -B2,42.3342450467797,-71.0909292538721,Boston police headquarters? Round parking area behind,VISITED,False -B3,42.3948750559622,-71.0794721759675,LEGO Discovery Center Boston,UNVISITED,False -B4,42.374617100935,-71.0569263281522,USS Constitution,UNVISITED,False -B5,42.381968142694,-71.1061582141367,Aeronaut Brewing Company,UNVISITED,False -B6,42.3636777796198,-71.1011089143789,Veggie Galaxy,VISITED,True -B7,42.3642802446099,-71.102038014116,Mad Monkfish,VISITED,True -B8,42.3643585829425,-71.1021413175719,Cheapo Records,VISITED,True -B10,42.3736274283766,-71.1212756539664,brattle theatre,VISITED,True -B12,42.3641965035389,-71.1018725414809,Phoenix Landing,VISITED,True -B13,42.3650174381071,-71.1033846846931,red fox escapes,VISITED,True -B14,42.3865808004341,-71.1404746131931,Fresh Pond Gas,UNVISITED,False -B15,42.3722095024899,-71.0547871330341,USS cassin young,UNVISITED,False -B17,42.3730589804536,-71.0803944601453,Superior Nut company,UNVISITED,False -B18,42.3644681998165,-71.0587021442571,City Winery Boston,UNVISITED,False -B20,42.3637660066222,-71.1010212025169,Center Theater,VISITED,True -B21,42.3817546861417,-71.1287781135344,Smithsonian Observatory,UNVISITED,False -B22,42.3766790598666,-71.1159313915141,Collection of historical instruments,VISITED,True -B23,42.365957179951,-71.0928226158877,Boston Costume / Garment District,UNVISITED,False -B24,42.3716318827363,-71.1173839622793,Harvard lampoon,VISITED,True -B25,42.3658023722683,-71.1046902874609,Lucky's tattoo and piercing,VISITED,True -B26,42.3843561498965,-71.0713079200757,Schrafft's,UNVISITED,False -B27,42.3807881192531,-71.0720109460841,Hood Park,UNVISITED,False -B28,42.3957690885951,-71.1208025328836,Five Horses Tavern (somerville),UNVISITED,False -B29,42.3729857359835,-71.1196838684538,Life Alive Cafe,VISITED,True -B30,42.3669212608548,-71.0561635890674,Skinny House,UNVISITED,False -B31,42.3806341524021,-71.1318759797313,cash for your warhol (tiny plaque),UNVISITED,False -B32,42.3998858835635,-71.1180203620587,Museum of the modern Renaissance,UNVISITED,False -B34,42.4156095196701,-71.1525724817951,Whittemore Park Monument,UNVISITED,False -B35,42.3761394712641,-71.0357991964928,Kelley Square Pub,UNVISITED,False -B36,42.379795,-71.096687,"Gracie's Ice Cream (Union Square, Somerville)",UNVISITED,False -B37,42.365546468726,-71.1028787671886,Blick art materials,VISITED,True -B39,42.3736,-71.098656,Bom Dough (Inman Square),UNVISITED,False -B40,42.3737727605007,-71.1003867877316,1369 Coffee House,UNVISITED,False -C1,42.4426536693996,-71.1100573382376,Middlesex Fells,UNVISITED,False -C4,42.4273470699518,-71.0706681081083,Mystic Station,UNVISITED,False -C5,42.4279680946426,-71.0658972428504,Malden public library,UNVISITED,False -C7,42.365138297167,-71.0412305874281,The tall ship,UNVISITED,False -C8,42.4277652327725,-71.0855515884164,Fellsmere pond (?),UNVISITED,False -C9,42.3663351958101,-71.0542995679606,"Old North Church, North End",UNVISITED,False -C10,42.4274437633128,-71.0528461842981,Malden Skatepark,UNVISITED,False -C11,42.4248548596502,-71.0648033929181,Crying Thaiger,UNVISITED,False -C12,42.4281901327512,-71.0699241899831,Santa Fe Grill,UNVISITED,False -C13,42.4269092863518,-71.0687432256049,Cornucopia foods,UNVISITED,False -C14,42.3580617404625,-71.0616403211653,Boston Athenaeum,VISITED,True -C16,42.4256047837433,-71.0707611187927,New England Coffee,UNVISITED,False -C17,42.3691105437005,-71.0395457507192,Maverick ,UNVISITED,False -C18,42.427327,-71.076179,Mystic Opera House,UNVISITED,False -C19,42.4101764902834,-71.1052520555878,Great American Beer Hall,UNVISITED,False -C20,42.352843,-71.042857,"The ICA, Seaport",UNVISITED,False -C21,42.3592940463256,-71.0233989465438,Skyline Monument,UNVISITED,False -C23,42.3709402356462,-71.0389012350886,East Boston District Court,UNVISITED,False -C24,42.3703081182886,-71.0433452973584,LoPresti Park,UNVISITED,False -C25,42.4042707533117,-70.9910798395771,VIVIs tapa bar,UNVISITED,False -C26,42.3827445834174,-71.0120255027858,Porazzo Rink,UNVISITED,False -X1,42.4113612201938,-70.9945465747411,Get Air Trampoline Park,UNVISITED,True -X2,42.3602422183426,-71.1385784089462,Jump On In ,UNVISITED,True -X3,42.4075713149875,-71.0692812576439,Sky Zone Trampoline Park,UNVISITED,True -X4,42.2238605735387,-71.023558840833,Space Zero,DISABLED,True -X5,42.3650978635908,-71.0588325736553,Central rock gym Downtown,UNVISITED,True -X6,42.33723905046,-71.0563997258694,Rock Spot Climbing: South Boston,UNVISITED,True -X7,42.3818194310464,-71.1056084094838,bouldering project,UNVISITED,True -X8,42.4266798098292,-71.0733795155297,rock spot malden,UNVISITED,True -X9,42.3502121686776,-71.1146511723878,Rock Spot Climbing: Brookline,UNVISITED,True -X10,42.4076371093627,-71.0670926181766,MetroRock Norman,UNVISITED,True -D5,42.329135747360965,-71.11111178919461,Boston Makers,UNVISITED,False -D8,42.34730411584556,-71.09511491798811,Landsdowne Pub,UNVISITED,False -D9,42.347327731139806,-71.09446350236804,Loretta's,UNVISITED,False -D11,42.35679714796919,-71.14388839608756,Roadrunner,UNVISITED,False -D13,42.3266901439028,-71.16465458485551,Chestnut Hill T stop ,UNVISITED,False -D14,42.34697075483844,-71.12330153553441,JFK Birthplace,UNVISITED,False -D15,42.33552497849329,-71.16844085881354,Boston College,UNVISITED,False -D16,42.34548968593034,-71.12700671859692,Far Out Ice Cream,UNVISITED,False -D19,42.343250742213044,-71.12312400362305,Buffalo exchange,UNVISITED,False -D21,42.33971777947173,-71.12079274033022,Grainne O'Malley's Tavern,UNVISITED,False -D25,42.36613329973362,-71.12607949726255,Harvard Stadium,UNVISITED,False -D26,42.34666985760735,-71.09723181937274,Fenway Park ,UNVISITED,False -D32,42.350079,-71.130615,Taco Bell ,UNVISITED,False -D33,42.350674,-71.114418,Taco Bell ,UNVISITED,False -D34,42.342426,-71.121941,Taco Bell ,UNVISITED,False -E1,42.32340094012743,-71.05831176609769,Musuem of Bad Art,VISITED,False -E3,42.278903603599105,-71.0124526696037,Wollaston Yacht Club,DISABLED,False -E6,42.315960135500966,-71.0341983240849,JFK library,VISITED,False -E7,42.32617608833312,-71.06246710393016,Olive garden,VISITED,False -E8,42.285769641847764,-71.09177101694695,Regal Pizza,DISABLED,False -E9,42.30519198377954,-71.08979096074911,Franklin Park Zoo,DISABLED,False -E12,42.26219471539877,-71.07900761472824,Turners pond,DISABLED,False -E15,42.354538863219986,-71.06136225732862,WNDR Museum Boston,UNVISITED,False -E17,42.30833419615502,-71.04742505500825,Malibu Beach,VISITED,False -E18,42.301488343415244,-71.04463325975391,The Rainbow Swash,VISITED,False -E19,42.31907536698348,-71.0565884029934,Banshee Bar,VISITED,False -MUSEUM OF SCIENCE,42.36768237903817,-71.07094013972312,FOUND ITEMS HERE,UNVISITED,False -W1,42.348763333732194,-71.07721404488531,starbucks in westin (or across the street if you can't see it),UNVISITED,False -W2,42.35664539453845,-71.05042338974346,starbucks near wharf,UNVISITED,False -W3,42.356457629009036,-71.1406130288329,starbucks in stop n shop,UNVISITED,False -W4,42.35262255397962,-71.12319663532463,Starbucks in star market,UNVISITED,False -W5,42.388912209130616,-71.14240477853112,starbucks,UNVISITED,False -W6,42.34254963337381,-71.12158056251475,starbucks coolidge corner,UNVISITED,False -W7,42.35631695558657,-71.06932963604014,Starbucks,UNVISITED,False -W8,42.35349585871414,-71.04667911496975,starbucks,UNVISITED,False -W9,42.40219310605186,-71.0249219966748,Starbucks coming soon,UNVISITED,False -W10,42.400643425704146,-71.00049616687356,starbucks,UNVISITED,False -W11,42.32890227335283,-71.06299497840368,Starbucks,UNVISITED,False -W12,42.34925811004878,-71.08090582163899,starbucks,UNVISITED,False diff --git a/dashboard_website/dirt.csv b/dashboard_website/dirt.csv deleted file mode 100644 index 6a7797f..0000000 --- a/dashboard_website/dirt.csv +++ /dev/null @@ -1,43 +0,0 @@ -Clue ID,Clue,Name of place,"Coords (lat, long) (right click near place on google maps, then click the coordinates to copy)",Google Maps Link -B1,Location of mars in the meseum of science community solar system,Cambridgeside Galleria Mall 2nd floor,"42.368183360744695, -71.07610300605397",https://maps.app.goo.gl/eVmprWs233mp5ubt5 -B2,A nice round place to park a police car,Boston police headquarters? Round parking area behind,"42.33424504677968, -71.09092925387209", -B3,Where you can see a view of boston from space made of lego,LEGO Discovery Center Boston,"42.394875055962245, -71.07947217596747",https://maps.app.goo.gl/b4pGaQkKXkgQBmcL6 -B4,Boston frigate with freedom of speech,USS Constitution,"42.374617100935005, -71.05692632815223",https://maps.app.goo.gl/jnbdiM4eXDnkpPkj7 -B5,A brewing company fit for spacefarers,Aeronaut Brewing Company,"42.38196814269399, -71.10615821413666", -B6,Milky way restaurant minus the milk,Veggie Galaxy,"42.363677779619806, -71.10110891437893",https://maps.app.goo.gl/cSfk3PEupBGYChvT6 -B7,I guess being turned into sushi doesn't make a happy fish,Mad Monkfish,"42.36428024460987, -71.10203801411599", -B8,A GOOD PLACE TO SHOP FOR VINYLS IF YOU ARE PINCHING PENNINES [sic],Cheapo Records,"42.364358582942515, -71.10214131757188", -B9,Stop in this store for a place to sleep before hiking mount greylock,,, -B10,You can't brattle on and on while the show is happening,brattle theatre,"42.373627428376636, -71.12127565396639", -B11,This structure sure knows how to hold a grudge!,,, -B12,Sports bar where you'll be reborn,Phoenix Landing,"42.36419650353893, -71.10187254148086", -B13,Who let the fox out??,red fox escapes,"42.365017438107074, -71.10338468469307", -B14,I GUESS GASOLINE IS FRESH BUT I WOULD BE CONCERNED IF THERE WAS A WHOLE POND OF IT,Fresh Pond Gas,"42.38658080043406, -71.1404746131931",https://maps.app.goo.gl/42UZvghSZwGjznkM8 -B15,The world war 2 era neighbor of old ironsides,USS cassin young,"42.372209502489895, -71.05478713303407", -B16,This roller skating performer and self proclaimed police officer was anything but a square ,,, -B17,deez company aren't inferior,Superior Nut company,"42.373058980453585, -71.08039446014534", -B18,The best place to eat food while listening to marshall crenshaw,City Winery Boston,"42.364468199816535, -71.05870214425711", -B19,What a ten-billionare makes,,, -B20,Plays and musicals that go right in the middle,Center Theater,"42.363766006622186, -71.10102120251692",https://maps.app.goo.gl/P9MDiKjVN8MdCquy8 -B21,THIS OBSERVATORY OFTEN GETS CONFUSED FOR A MUSEUM,Smithsonian Observatory,"42.38175468614174, -71.12877811353438", -B22,"WHERE HARVARD KEEPS THEIR -HANDSOME GREGORIAN REFLECTING -TELESCOPE",Collection of historical instruments,"42.376679059866596, -71.11593139151414", -B23,NEED A COSTUME? I KNOW A DISTRICT,Boston Costume / Garment District,"42.36595717995103, -71.09282261588774", -B24,HARVARD'S ONLY CASTLE,Harvard lampoon,"42.37163188273628, -71.11738396227928", -B25,YOULL GET INKED HERE IF THE STARS ALIGN IN YOUR FAVOR,Lucky's tattoo and piercing,"42.365802372268284, -71.10469028746091", -B26,CANDY FACTORY TURNED OFFICE BUILDING,Schrafft's,"42.38435614989647, -71.07130792007565", -B27,"WHERE THE HOOD, WHERE THE HOOD, WHERE THE HOOD AT? APPARENTLY THIS PARK",Hood Park,"42.38078811925308, -71.0720109460841", -B28,NOT ONE HORSE NOT TWO HORSES NOT THREE HORSES NOT FOUR HORSES BUT,Five Horses Tavern (somerville),"42.395769088595095, -71.1208025328836", -B29,HOPEFULLY THIS CAFE IS KEEPING HARVARD STUDENTS ALIVE OTHERWISE ITS NAME SURE IS MISLEADING,Life Alive Cafe,"42.37298573598354, -71.11968386845383", -B30,THE HOUSE THAT SPITE BUILT - ATLAS OBSCURA,Skinny House,"42.36692126085477, -71.05616358906735", -B31,SIX ONE SEVEN FIVE FIVE THREE ONE ONE ZERO THREE,cash for your warhol (tiny plaque),"42.3806341524021, -71.13187597973126", -B32,LE MUSEE DE LA REBIRTH MODERNE,Museum of the modern Renaissance,"42.39988588356347, -71.11802036205874", -B33,I WANT YOU TO IMMORTALIZE ME IN STONE,George Washington Statue in Boston Public Garden,, -B34,"HE WAS SHOT, BAYONETED, BEATEN AND LEFT FOR DEAD BUT RECOVERED AND LIVED TO BE 98 YEARS OF AGE",Whittemore Park Monument,"42.41560951967007, -71.15257248179509", -B35,DASH DOT DASH SPACE DOT SPACE DOT DASH DOT DOT SPACE DOT DASH DOT DOT SPACE DOT SPACE DASH DOT DASH DASH (Kelley),Kelley Square Pub,"42.37613947126408, -71.03579919649276", -B36,800 HEARTS OF FURY ITS OK TO CRY IN THIS PLACE WITH A NICE COLD LOCALLY MADE PINT,"Gracie's Ice Cream (Union Square, Somerville)","42.379795, -71.096687", -B37,Feeling crafty near central,Blick art materials,"42.36554646872598, -71.10287876718864",https://maps.app.goo.gl/rN8cXkFMbpvMFLS68 -B38,A club for yankees fish to get that bread,,, -B39,DREAMING OF PAO DE QUEJO COFFEE AND COZY CAMBRIDGE CAFES,Bom Dough (Inman Square),"42.373600, -71.098656", -B40,A year before timur named samarkand capital of the empire - grab a hot honey latte and watch it go down,1369 Coffee House,"42.37377276050066, -71.10038678773157", \ No newline at end of file diff --git a/dashboard_website/example_savefile_2024.csv b/dashboard_website/example_savefile_2024.csv new file mode 100644 index 0000000..82b3d5d --- /dev/null +++ b/dashboard_website/example_savefile_2024.csv @@ -0,0 +1,159 @@ +name,latitude,longitude,info,status,required +Z1,42.3490337587194,-71.0885534426824,Mass Ave & Commonwealth Street Signs,VISITED,True +Z2,42.3442576331042,-71.0771999369331,Holyoke & Columbus Street Signs,VISITED,True +Z3,42.3518783570178,-71.0782256821,Commonwealth & Dartmouth Street Signs,VISITED,True +Z4,42.3492167599952,-71.0769378607228,Huntington & Darthmouth Street Signs,VISITED,True +Z5,42.3458285850531,-71.0752559933239,Dartmouth & Columbus Street Signs,VISITED,True +Z6,42.3501111774704,-71.0699706947878,Columbus & Stuart Street Signs,VISITED,True +Z7,42.3510884439964,-71.0649368718862,Stuart & Tremont Street Signs,VISITED,True +Z8,42.3579928441425,-71.0604632130701,Tremont & Beacon Street Signs,VISITED,True +Z9,42.3562236109795,-71.0692851535473,Charles & Beacon Street Signs,VISITED,True +Z10,42.359467040988,-71.0707038572224,Charles & Revere Street Signs,VISITED,True +Y1,42.3420990735122,-71.0860535713766,El Jefe's symphony,VISITED,True +Y2,42.3523353054508,-71.0649890301246,El jefe's boston common,VISITED,True +Y3,42.3517577231357,-71.119186447953,El Jefe's BU,VISITED,True +Y4,42.3732590992036,-71.1200804867238,El Jefe's Harvard,VISITED,True +Y5,42.3610457052344,-71.0670310341877,anna's taqueria beacon hill,VISITED,True +Y6,42.346201178872,-71.1281671662589,anna's taqueria jfk corner,VISITED,True +Y7,42.3884108396429,-71.1186275838162,anna's taqueria porter,VISITED,True +Y8,42.3949445657535,-71.1217722169406,anna's taqueria davis square,VISITED,True +Y9,42.32162076044,-71.2072262219593,anna's taqueria newton highlands,VISITED,True +Y10,42.3473611584311,-71.0816681126164,anna's taqueria prudential,VISITED,True +Y11,42.33908135997,-71.1077552133326,anna's taqueria longwood,VISITED,True +Y12,42.3415506479752,-71.0876050613647,amelias huntington,VISITED,True +Y13,42.3362840534119,-71.1499735312776,amelia's beacon st,VISITED,True +Y14,42.3470601032068,-71.0880280660347,amelia's boylston,VISITED,True +A1,42.3516484100978,-71.0502519831223,Big Milk in Seaport,UNVISITED,False +A2,42.3520419242066,-71.049845025894,Boston Children's Museum,VISITED,False +A3,42.3536537919241,-71.0487334497937,The Barking Crab,VISITED,False +A4,42.3523217459454,-71.0673045171718,Poe Statue,VISITED,False +A5,42.3376126502488,-71.0110287056158,Castle Island,VISITED,False +A6,42.349761691446,-71.0786270716553,Boston Marathon Finish Line ,VISITED,False +A7,42.3369191552988,-71.0761440244297,Mike's City Diner,VISITED,False +A8,42.3511608848167,-71.0441426847922,Rainbow deer,VISITED,False +A9,42.3534524348227,-71.0724498522888,Alexander Hamilton Statue,VISITED,False +A10,42.3488587894749,-71.0824239022112,boylston apple store,VISITED,False +A11,42.3441257842049,-71.0453356387658,The Lawn on D,UNVISITED,False +A12,42.3508130265764,-71.078519602788,google store,VISITED,False +A13,42.3256232678311,-71.068928609528,Bully Boy Distillery,VISITED,False +A14,42.343401575839,-71.0723400958892,Metropolis,VISITED,False +A15,42.3418000978675,-71.0805717059923,5 horse tavern,VISITED,False +A16,42.3495454003321,-71.0703298469279,The Saunders Castle & The Tower,VISITED,True +A17,42.3498154264322,-71.0447968583138,Puttshack Seaport,VISITED,False +A18,42.3350555628812,-71.0461489151427,Fat Baby,VISITED,False +A19,42.3353404011519,-71.0455656038347,broadway's best pizza,VISITED,False +A20,42.3959093644735,-71.1031316114842,ink about it,VISITED,False +A21,42.3377645943712,-71.0489645460263,Lithuanian Citizens Association,VISITED,False +A22,42.3507106261158,-71.0384159866313,Yankee Specialty foods,VISITED,False +A23,42.3420007997466,-71.0663661528146,More Amore European Nails,VISITED,False +A24,42.3517847704231,-71.0768065613648,jonquils,VISITED,False +B1,42.3681833607447,-71.076103006054,Cambridgeside Galleria Mall 2nd floor,VISITED,False +B2,42.3342450467797,-71.0909292538721,Boston police headquarters? Round parking area behind,VISITED,False +B3,42.3948750559622,-71.0794721759675,LEGO Discovery Center Boston,VISITED,False +B4,42.374617100935,-71.0569263281522,USS Constitution,VISITED,False +B5,42.381968142694,-71.1061582141367,Aeronaut Brewing Company,VISITED,False +B6,42.3636777796198,-71.1011089143789,Veggie Galaxy,VISITED,True +B7,42.3642802446099,-71.102038014116,Mad Monkfish,VISITED,True +B8,42.3643585829425,-71.1021413175719,Cheapo Records,VISITED,True +B10,42.3736274283766,-71.1212756539664,brattle theatre,VISITED,True +B12,42.3641965035389,-71.1018725414809,Phoenix Landing,VISITED,True +B13,42.3650174381071,-71.1033846846931,red fox escapes,VISITED,True +B14,42.3865808004341,-71.1404746131931,Fresh Pond Gas,VISITED,False +B15,42.3722095024899,-71.0547871330341,USS cassin young,VISITED,False +B17,42.3730589804536,-71.0803944601453,Superior Nut company,VISITED,False +B18,42.3644681998165,-71.0587021442571,City Winery Boston,VISITED,False +B20,42.3637660066222,-71.1010212025169,Center Theater,VISITED,True +B21,42.3817546861417,-71.1287781135344,Smithsonian Observatory,VISITED,False +B22,42.3766790598666,-71.1159313915141,Collection of historical instruments,VISITED,True +B23,42.365957179951,-71.0928226158877,Boston Costume / Garment District,UNVISITED,False +B24,42.3716318827363,-71.1173839622793,Harvard lampoon,VISITED,True +B25,42.3658023722683,-71.1046902874609,Lucky's tattoo and piercing,VISITED,True +B26,42.3843561498965,-71.0713079200757,Schrafft's,VISITED,False +B27,42.3807881192531,-71.0720109460841,Hood Park,VISITED,False +B28,42.3957690885951,-71.1208025328836,Five Horses Tavern (somerville),VISITED,False +B29,42.3729857359835,-71.1196838684538,Life Alive Cafe,VISITED,True +B30,42.3669212608548,-71.0561635890674,Skinny House,VISITED,False +B31,42.3806341524021,-71.1318759797313,cash for your warhol (tiny plaque),VISITED,False +B32,42.3998858835635,-71.1180203620587,Museum of the modern Renaissance,VISITED,False +B34,42.4156095196701,-71.1525724817951,Whittemore Park Monument,DISABLED,False +B35,42.3761394712641,-71.0357991964928,Kelley Square Pub,VISITED,False +B36,42.379795,-71.096687,"Gracie's Ice Cream (Union Square, Somerville)",UNVISITED,False +B37,42.365546468726,-71.1028787671886,Blick art materials,VISITED,True +B39,42.3736,-71.098656,Bom Dough (Inman Square),UNVISITED,False +B40,42.3737727605007,-71.1003867877316,1369 Coffee House,UNVISITED,False +C1,42.4426536693996,-71.1100573382376,Middlesex Fells,DISABLED,False +C4,42.4273470699518,-71.0706681081083,Mystic Station,VISITED,False +C5,42.4279680946426,-71.0658972428504,Malden public library,VISITED,False +C7,42.365138297167,-71.0412305874281,The tall ship,UNVISITED,False +C8,42.4277652327725,-71.0855515884164,Fellsmere pond (?),UNVISITED,False +C9,42.3663351958101,-71.0542995679606,"Old North Church, North End",VISITED,False +C10,42.4274437633128,-71.0528461842981,Malden Skatepark,UNVISITED,False +C11,42.4248548596502,-71.0648033929181,Crying Thaiger,VISITED,False +C12,42.4281901327512,-71.0699241899831,Santa Fe Grill,UNVISITED,False +C13,42.4269092863518,-71.0687432256049,Cornucopia foods,VISITED,False +C14,42.3580617404625,-71.0616403211653,Boston Athenaeum,VISITED,True +C16,42.4256047837433,-71.0707611187927,New England Coffee,VISITED,False +C17,42.3691105437005,-71.0395457507192,Maverick ,UNVISITED,False +C18,42.427327,-71.076179,Mystic Opera House,VISITED,False +C19,42.4101764902834,-71.1052520555878,Great American Beer Hall,UNVISITED,False +C20,42.352843,-71.042857,"The ICA, Seaport",VISITED,False +C21,42.3592940463256,-71.0233989465438,Skyline Monument,UNVISITED,False +C23,42.3709402356462,-71.0389012350886,East Boston District Court,UNVISITED,False +C24,42.3703081182886,-71.0433452973584,LoPresti Park,UNVISITED,False +C25,42.4042707533117,-70.9910798395771,VIVIs tapa bar,VISITED,False +C26,42.3827445834174,-71.0120255027858,Porazzo Rink,UNVISITED,False +X1,42.4113612201938,-70.9945465747411,Get Air Trampoline Park,VISITED,True +X2,42.3602422183426,-71.1385784089462,Jump On In ,VISITED,True +X3,42.4075713149875,-71.0692812576439,Sky Zone Trampoline Park,VISITED,True +X4,42.2238605735387,-71.023558840833,Space Zero,VISITED,True +X5,42.3650978635908,-71.0588325736553,Central rock gym Downtown,VISITED,True +X6,42.33723905046,-71.0563997258694,Rock Spot Climbing: South Boston,VISITED,True +X7,42.3818194310464,-71.1056084094838,bouldering project,VISITED,True +X8,42.4266798098292,-71.0733795155297,rock spot malden,VISITED,True +X9,42.3502121686776,-71.1146511723878,Rock Spot Climbing: Brookline,VISITED,True +X10,42.4076371093627,-71.0670926181766,MetroRock Norman,VISITED,True +D5,42.329135747361,-71.1111117891946,Boston Makers,VISITED,False +D8,42.3473041158456,-71.0951149179881,Landsdowne Pub,VISITED,False +D9,42.3473277311398,-71.094463502368,Loretta's,VISITED,False +D11,42.3567971479692,-71.1438883960876,Roadrunner,VISITED,False +D13,42.3266901439028,-71.1646545848555,Chestnut Hill T stop ,DISABLED,False +D14,42.3469707548384,-71.1233015355344,JFK Birthplace,UNVISITED,False +D15,42.3355249784933,-71.1684408588135,Boston College,DISABLED,False +D16,42.3454896859303,-71.1270067185969,Far Out Ice Cream,UNVISITED,False +D19,42.343250742213,-71.1231240036231,Buffalo exchange,UNVISITED,False +D21,42.3397177794717,-71.1207927403302,Grainne O'Malley's Tavern,UNVISITED,False +D25,42.3661332997336,-71.1260794972626,Harvard Stadium,VISITED,False +D26,42.3466698576074,-71.0972318193727,Fenway Park ,VISITED,False +D32,42.350079,-71.130615,Taco Bell ,UNVISITED,False +D33,42.350674,-71.114418,Taco Bell ,VISITED,False +D34,42.342426,-71.121941,Taco Bell ,VISITED,False +E1,42.3234009401274,-71.0583117660977,Musuem of Bad Art,VISITED,False +E3,42.2789036035991,-71.0124526696037,Wollaston Yacht Club,DISABLED,False +E6,42.315960135501,-71.0341983240849,JFK library,VISITED,False +E7,42.3261760883331,-71.0624671039302,Olive garden,VISITED,False +E8,42.2857696418478,-71.091771016947,Regal Pizza,VISITED,True +E9,42.3051919837795,-71.0897909607491,Franklin Park Zoo,VISITED,True +E12,42.2621947153988,-71.0790076147282,Turners pond,VISITED,True +E15,42.35453886322,-71.0613622573286,WNDR Museum Boston,VISITED,False +E17,42.308334196155,-71.0474250550083,Malibu Beach,VISITED,False +E18,42.3014883434152,-71.0446332597539,The Rainbow Swash,VISITED,False +E19,42.3190753669835,-71.0565884029934,Banshee Bar,VISITED,False +W1,42.3487633337322,-71.0772140448853,starbucks in westin (or across the street if you can't see it),VISITED,True +W2,42.3566453945385,-71.0504233897435,starbucks near wharf,VISITED,True +W3,42.356457629009,-71.1406130288329,starbucks in stop n shop,VISITED,True +W4,42.3526225539796,-71.1231966353246,Starbucks in star market,VISITED,True +W5,42.3889122091306,-71.1424047785311,starbucks,VISITED,True +W6,42.3425496333738,-71.1215805625148,starbucks coolidge corner,VISITED,True +W7,42.3563169555866,-71.0693296360401,Starbucks,VISITED,True +W8,42.3534958587141,-71.0466791149698,starbucks,VISITED,True +W9,42.4021931060519,-71.0249219966748,Starbucks coming soon,VISITED,True +W10,42.4006434257041,-71.0004961668736,starbucks,VISITED,True +W11,42.3289022733528,-71.0629949784037,Starbucks,VISITED,True +W12,42.3492581100488,-71.080905821639,starbucks,VISITED,True +MUSEUMOFSCIENCE,42.3676823790382,-71.0709401397231,FOUND ITEMS HERE,VISITED,True +H19,42.34247014375901,-71.09043758262035,smith hall,VISITED,False +H20,42.34113226698264,-71.09006239684935,steast,VISITED,False +H21,42.340874502160446,-71.09040659523359,outtakes,VISITED,False +H23,42.33818876839976,-71.09125672232014,willis hall,VISITED,False +H38,42.33709075140448,-71.09678836290597,rodgers hall,VISITED,False +H39,42.33719319802545,-71.09656939262507,edwards hall,VISITED,False diff --git a/dashboard_website/savefile.csv b/dashboard_website/savefile.csv deleted file mode 100644 index 22fa699..0000000 --- a/dashboard_website/savefile.csv +++ /dev/null @@ -1 +0,0 @@ -name,latitude,longitude,info,status,required -- cgit v1.2.3