Bike update

This commit is contained in:
Peter Norvig 2022-09-18 11:29:21 -07:00 committed by GitHub
parent 9e081a7ea2
commit 850d297630
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 929 additions and 614 deletions

File diff suppressed because one or more lines are too long

View File

@ -6,14 +6,14 @@
"source": [
"<div align=\"right\" style=\"text-align: right\"><i>Peter Norvig, Oct 2017<br>pandas Aug 2020<br>Data updated monthly</i></div>\n",
"\n",
"# Bike Code\n",
"# Bike Stats Code\n",
"\n",
"Code to support the analysis in the notebook [Bike Speed versus Grade.ipynb](Bike%20Speed%20versus%20Grade.ipynb)."
"Code to support the analysis in the notebook [Bike-Stats.ipynb](Bike-Stats.ipynb)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
@ -31,7 +31,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Reading Data: `rides`\n",
"# Reading Data: `rides` and `yearly`\n",
"\n",
"I saved a bunch of my recorded [Strava](https://www.strava.com/athletes/575579) rides, most of them longer than 25 miles, as [`bikerides.tsv`](bikerides.tsv). The columns are: the date; the year; a title; the elapsed time of the ride; the length of the ride in miles; and the total climbing in feet, e.g.: \n",
"\n",
@ -42,14 +42,14 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"def parse_rides(lines):\n",
" \"\"\"Parse a bikerides.tsv file.\"\"\"\n",
" return add_columns(pd.read_table(lines, comment='#',\n",
" converters=dict(hours=parse_hours, feet=parse_int)))\n",
" return drop_index(add_columns(pd.read_table(lines, comment='#',\n",
" converters=dict(hours=parse_hours, feet=parse_int))))\n",
"\n",
"def parse_hours(time: str) -> float: \n",
" \"\"\"Parse '4:30:00' => 4.5 hours.\"\"\"\n",
@ -67,19 +67,22 @@
" vam=round(ft / hr / 3.28084),\n",
" fpm=round(ft / mi),\n",
" pct=round(ft / mi * 100 / 5280, 2),\n",
" kms=round(mi * 1.609, 2))"
" kms=round(mi * 1.609, 2))\n",
"\n",
"def drop_index(frame) -> pd.DataFrame:\n",
" \"\"\"Drop the index column.\"\"\"\n",
" frame.index = [''] * len(frame)\n",
" return frame"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"rides = parse_rides(open('bikerides.tsv'))\n",
"yearly = parse_rides(open('bikeyears.tsv')).drop(columns=['date', 'title'])\n",
"yearly['miles'] = list(map(round, yearly['miles']))\n",
"yearly.index = [''] * len(yearly)"
"yearly = parse_rides(open('bikeyears.tsv')).drop(columns=['date', 'title'])"
]
},
{
@ -97,7 +100,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
@ -114,7 +117,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@ -125,46 +128,83 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Reading Data: `places`\n",
"# Reading Data: `places` and `tiles`\n",
"\n",
"Monthly, I will take my [summary data from wandrer.earth](https://wandrer.earth/athletes/3534/santa-clara-county-california) and enter it in the file [bikeplaceupdates.txt](bikeplaceupdates.txt), in a format where\n",
"Monthly, I will take my [summary data from wandrer.earth](https://wandrer.earth/athletes/3534/santa-clara-county-california) and enter it in the file [bikeplaces.csv](bikeplaces.csv), in a format where\n",
"\n",
" por | 48.2 | Portola Valley | \n",
" --------------------------------------------------------------------------------\n",
" 2022-03 por 99.5 sky 99.24\n",
" \n",
"means that \"por\" is the abbreviation for Portola Valley, which has 48.2 miles of roads, and in March 2022, I had ridden 99.5% of the roads in Portola Valley, as well as 99.24% of the roads in Sky Londa, etc. (I wanted both the place declarations and the monthly udates to be in one file, in case I decide to global replace some abbreviation.)"
" San Carlos,99.0,SMC,22.2,26.0,32.9,,37.2,39.0,40.5,,41.4,,,41.7,,,,,,59.5,78.7\n",
"means that San Carlos has 99.0 miles of roads, is in San Mateo County (SMC), and in the first month that I had ridden 22.2% of the roads in the first month that I kept track, and 78.7% in the most recent month. In months with no entry, there was no change."
]
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"Place = namedtuple('Place', 'name, miles, special, months, pcts')\n",
"\n",
"def parse_places(filename='bikeplaces.txt', sep='-'*80) -> Dict:\n",
" \"\"\"Parse file into a dict:\n",
" places = {'por': Place('Portola Valley', 48.2, '', [month, ...], [pct, ...])}\"\"\"\n",
" places = {}\n",
" declarations, updates = open(filename).read().split(sep)\n",
" for abbrev, miles, name, special in tokenize(declarations, sep='|'):\n",
" places[abbrev] = Place(name, float(miles), special, [], [])\n",
" for month, tokens in enumerate(tokenize(updates)):\n",
" for i in range(1, len(tokens), 2): \n",
" abbrev, pct = tokens[i], float(tokens[i+1])\n",
" places[abbrev].months.append(month)\n",
" places[abbrev].pcts.append(pct)\n",
" return places\n",
"\n",
"def tokenize(text, sep=None): \n",
" \"\"\"Split text into lines split by sep; strip each token; ignore blanks and comments.\"\"\"\n",
" lines = text.splitlines()\n",
" return [[token.strip() for token in line.split(sep)]\n",
" for line in lines if line.strip() and not line.startswith('#')]\n",
"\n",
"places = parse_places()"
"places = pd.read_csv('bikeplaces.csv', comment='#')\n",
"months = [m for m in places.columns if '/' in m]\n",
"places['maxpct'] = [max(p for p in place[4:] if not pd.isna(p))\n",
" for place in places.itertuples()]"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>tiles</th>\n",
" <th>square</th>\n",
" <th>cluster</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th></th>\n",
" <td>Sep 2022</td>\n",
" <td>2481</td>\n",
" <td>11x11</td>\n",
" <td>295</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date tiles square cluster\n",
" Sep 2022 2481 11x11 295"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tiles = drop_index(pd.DataFrame(columns='date tiles square cluster'.split(),\n",
" data=[('Sep 2022', 2481, '11x11', 295)]))"
]
},
{
@ -176,11 +216,11 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"plt.rcParams[\"figure.figsize\"] = (10, 6)\n",
"plt.rcParams[\"figure.figsize\"] = (12, 6)\n",
"\n",
"def show(X, Y, data, title='', degrees=(2, 3)): \n",
" \"\"\"Plot X versus Y and a best fit curve to it, with some bells and whistles.\"\"\"\n",
@ -221,46 +261,35 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"special_groups = dict(sf='San Francisco Neighborhoods', sj='San Jose Neighborhoods', \n",
" far='Far Away Places', county='Bay Area Counties', big='California, USA and Earth')\n",
"special_areas = dict(sf='San Francisco Neighborhoods', sj='San Jose Neighborhoods', \n",
" far='Far Away Places', county='Bay Area Counties', big='California, USA and Earth')\n",
"\n",
"def wandering(places, pcts=(100, 99, 90, 50, 33.3, 25, 0), specials=special_groups):\n",
"def wandering(places, pcts=(100, 99, 90, 50, 33.3, 25, 0), special_areas=special_areas):\n",
" \"Plot charts within the various percent ranges, and special groups.\"\n",
" for i in range(len(pcts) - 1):\n",
" hi, lo = pcts[i], pcts[i + 1]\n",
" abbrevs = [a for a in places \n",
" if not places[a].special \n",
" and lo <= max_pct(a) < hi]\n",
" wandrer_plot(f'Places with {lo}% to {hi}% roads traveled', places, abbrevs)\n",
" for s in specials:\n",
" abbrevs = [a for a in places if places[a].special == s]\n",
" wandrer_plot(specials[s], places, abbrevs)\n",
" inrange = places[(places.maxpct > lo) & (places.maxpct <= hi) & ~places.area.isin(special_areas)]\n",
" wandrer_plot(f'Places with {lo}% to {hi}% roads traveled', inrange)\n",
" for area in special_areas:\n",
" wandrer_plot(special_areas[area], places[places.area == area])\n",
" \n",
"def max_pct(abbrev) -> float: \n",
" \"\"\"The maximum percent of roads achieved for this place abbreviation.\"\"\"\n",
" if not places[abbrev].pcts: print('Warning: No pcts for', abbrev)\n",
" return max(places[abbrev].pcts, default=0)\n",
" \n",
"def wandrer_plot(title, places, abbrevs):\n",
"def wandrer_plot(title, places):\n",
" \"\"\"Plot Wandrer.earth data for the places with given abbrevs.\"\"\"\n",
" if not abbrevs:\n",
" if len(places) == 0:\n",
" return # Don't make an empty plot\n",
" abbrevs = sorted(abbrevs, key=max_pct, reverse=True)\n",
" places = places.sort_values(by='maxpct', ascending=False)\n",
" fig, ax = plt.figure(), plt.subplot(111); \n",
" plt.plot()\n",
" for abbrev, marker in zip(abbrevs, markers):\n",
" name, miles, special, months, pcts = places[abbrev]\n",
" dates = [month_name(i) for i in range(max(months))]\n",
" name, miles, *_ = places[abbrev]\n",
" ax.plot(months, pcts, ':', marker=marker, label=label(pcts, name, miles))\n",
" for (_, name, miles, area, *pcts, maxpct), marker in zip(places.itertuples(), markers):\n",
" pcts = replace_nans(pcts)\n",
" ax.plot(pcts, ':', marker=marker, label=label(pcts, name, miles))\n",
" ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), shadow=True,\n",
" prop=matplotlib.font_manager.FontProperties(family='monospace'))\n",
" months = places['usa'].months\n",
" plt.xticks(months, labels=[month_name(i) for i in months], rotation=90)\n",
" plt.xticks(range(len(pcts)), labels=months, rotation=90, fontfamily='monospace')\n",
" plt.ylabel('Percent of Roads Ridden')\n",
" plt.title(title); plt.tight_layout(); grid(axis='y'); plt.show()\n",
" \n",
@ -274,12 +303,18 @@
" bonus = next((f' {rounded((p - pcts[-1]) / 100 * miles):>3} to {p}%' \n",
" for p in bonuses if p >= pcts[-1]), '')\n",
" return f'{pct}% ({rounded(done / 100):>3}/{rounded(miles):<3} mi){bonus} {name}'\n",
"\n",
"def month_name(i, start=2020 * 12 + 6) -> str:\n",
" \"\"\"Maps 0 -> '2020-7' and 13 to '2021-8', etc.\"\"\"\n",
" year = (start + i) // 12\n",
" month = (start + i) % 12 + 1\n",
" return f'{year}-{month:02}'\n",
" \n",
"def replace_nans(numbers) -> list:\n",
" \"\"\"Replace NaN (not a number) values with the previous actual number.\"\"\"\n",
" result = []\n",
" prev = 0\n",
" for x in numbers:\n",
" if x == x:\n",
" prev = x\n",
" else: # Not a Number \n",
" x = prev\n",
" result.append(x)\n",
" return result \n",
"\n",
"def rounded(x: float) -> str: \n",
" \"\"\"Round x to 3 spaces wide (if possible).\"\"\"\n",
@ -290,35 +325,35 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pareto Front Across Two Counties"
"# Pareto Front "
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"def make_leaders(data):\n",
" \"\"\"Make a dataframe of leaders in two counties.\"\"\"\n",
" leaders = pd.DataFrame(data, columns=['Name', 'SMC %', 'SCC %', 'Front?'])\n",
" leaders['SMC miles'] = [round(29.51 * d[1]) for d in data]\n",
" leaders['SCC miles'] = [round(75.64 * d[2]) for d in data]\n",
" leaders = pd.DataFrame(data, columns=['Name', 'Initials', 'SMC %', 'SCC %', 'Front?'])\n",
" leaders['SMC miles'] = [round(29.51 * d[2]) for d in data]\n",
" leaders['SCC miles'] = [round(75.64 * d[3]) for d in data]\n",
" leaders['Total miles'] = leaders['SMC miles'] + leaders['SCC miles']\n",
" return leaders\n",
" leaders['Total %'] = leaders['SMC %'] + leaders['SCC %']\n",
" return drop_index(leaders.sort_values('Total %', ascending=False))\n",
"\n",
"leaders = make_leaders([\n",
" ('Barry Mann', 73.37, 29.35, 1), ('Jason Molenda', 7.13, 54.65, 1), \n",
" ('Peter Norvig', 50.06, 30.31, 1), ('Brian Feinberg', 29.72, 35.59, 1),\n",
" ('Jim Brooks', 4.23, 43.39, 0), ('Megan Gardner', 89.43, 8.69, 1),\n",
" ('Matthew Ring', 72.67, 1.48, 0), ('Elliot Huff', 50.43, 8.14, 0)])\n",
"leaders = make_leaders([ # Data as of Sept 8, 2022\n",
" ('Barry Mann', 'BM', 75.34, 29.32, 1), ('Jason Molenda', 'JM', 7.13, 54.59, 1), \n",
" ('Peter Norvig', 'PN', 55.26, 30.31, 1), ('Brian Feinberg', 'BF', 29.72, 35.93, 1),\n",
" ('Jim Brooks', 'JB', 4.23, 43.53, 0), ('Megan Gardner', 'MG', 92.51, 8.69, 1),\n",
" ('Matthew Ring', 'MR', 75.53, 1.48, 0), ('Elliot Huff', 'EF', 51.78, 8.14, 0)])\n",
" \n",
"def pareto_front(leaders):\n",
" ax = leaders.plot('SMC %', 'SCC %', grid=True, kind='scatter')\n",
" front = sorted((x, y) for i, (_, x, y, f, *_) in leaders.iterrows() if f)\n",
" front = sorted((x, y) for i, (_, _, x, y, f, *_) in leaders.iterrows() if f)\n",
" ax.plot(*zip(*front), ':'); ax.axis('square'); grid()\n",
" for i, (name, x, y, *_) in leaders.iterrows():\n",
" initials = ''.join(w[0] for w in name.split())\n",
" for i, (name, initials, x, y, *_) in leaders.iterrows():\n",
" ax.text(x - 2, y + 2, initials)\n",
" return leaders.drop(columns=['Front?'])"
]
@ -332,7 +367,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
@ -354,14 +389,14 @@
" E_mi + d, Ed_gap(rides.miles, E_mi + d))\n",
" for d in range(N)]\n",
" df = pd.DataFrame(data, columns=['kms', 'kms gap', 'miles', 'miles gap'])\n",
" return df\n",
" return drop_index(df)\n",
"\n",
"def Ed_progress(rides, years=reversed(range(2013, 2022 + 1))) -> pd.DataFrame:\n",
" \"\"\"A table of Eddington numbers by year, and a plot.\"\"\"\n",
" def Ed(year, unit): return Ed_number(rides[rides['year'] <= year], unit)\n",
" data = [(y, Ed(y, 'kms'), Ed(y, 'miles')) for y in years]\n",
" df = pd.DataFrame(data, columns=['year', 'Ed_km', 'Ed_mi'])\n",
" return df"
" return drop_index(df)"
]
},
{
@ -373,30 +408,30 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"per_month_climbing = [35.491, 31.765, 39.186, 33.641, 32.782, 14.809, 46.731]\n",
"per_month_climbing = [35.491, 31.765, 39.186, 33.641, 32.782, 14.809, 46.731, 38.556]\n",
"\n",
"space = {'100 kms': 328.204, '10 Everests': 290.320, '50 miles': 50 * 5.280}\n",
"\n",
"def climbing(per_month=per_month_climbing, space=space):\n",
" \"\"\"Plot progress in climbing\"\"\"\n",
" total = np.cumsum(per_month_climbing)#[sum(per_month[:i+1]) for i in range(len(per_month))]\n",
" total = np.cumsum(per_month)\n",
" for label in space:\n",
" plt.plot(range(12), [space[label]] * 12, ':', label=label)\n",
" plt.plot(range(len(total)), total, 'o-', label='my total')\n",
" plt.plot(range(len(total)), per_month, 's-.', label='per month')\n",
" plt.legend(loc=(1.04, .64), fontsize='large'); grid()\n",
" plt.xlabel('Month of 2022'); plt.ylabel('Total climbing (Kft)')\n",
" plt.xticks(range(13), 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split())"
" plt.xticks(range(12), 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -410,7 +445,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
"version": "3.9.12"
}
},
"nbformat": 4,

157
ipynb/bikeplaces.csv Normal file
View File

@ -0,0 +1,157 @@
name,miles,area,Jul/20,Aug/20,Sep/20,Oct/20,Nov/20,Dec/20,Jan/21,Feb/21,Mar/21,Apr/21,May/21,Jun/21,Jul/21,Aug/21,Sep/21,Oct/21,Nov/21,Dec/21,Jan/22,Feb/22,Mar/22,Apr/22,May/22,Jun/22,Jul/22,Aug/22
#
# Sam Mateo County
#
Atherton,56.3,SMC,,,,,91.2,94.0,95.2,,,94.9,96.2,,98.7,99.5,,99.3,,,99.6,,,,,,,
Belmont,98.1,SMC,15.5,17.3,18.6,,20.6,,27.4,,27.5,,,27.4,,,,27.5,,,,,,27.6,,,37.1,51.5
Brisbane,40.9,SMC,,,,,,,,,,,,,,,,,,,,,,45.3,,,,
Broadmoor,8.8,SMC,,,,,,,,,,,,,,,,,,,,,,,,,38.2,
Burlingame Hills,6.0,SMC,,,,,,,0.8,34.5,,,35.5,,,,,,,,,,,,,,,
Burlingame,88.4,SMC,9.4,,,,,,,31.5,,,35.5,,,,,,,,,,,,,,,54.3
Coal Creek Preserve,3.9,SMC,,,,,,,,,,,,,,,,,,,,,,,,36.7,,
Colma,13.7,SMC,,,,,,,,,,,,,,,,,,,,,,,,,24.8,38.3
Daly City,148.1,SMC,,,,,,,,,,,,,,,,,,,,,,,,,12.3,25.8
East Palo Alto,48.3,SMC,74.4,91.2,91.9,,92.2,93.3,93.4,,,,92.5,,,,95.0,99.2,,,99.7,,,,,,,
El Granada,49.2,SMC,,,,,,,,,,,,,,,,,,,,,,,,,35.2,
Emerald Lake Hills,24.6,SMC,,94.3,,,,51.0,80.0,85.8,91.3,,,,,,92.2,,,,93.4,96.1,,,,98.1,,98.9
Foster City,150.0,SMC,9.1,,,,,,,27.4,37.2,,38.7,,,,,,,,,,,,,51.8,,
Half Moon Bay,68.0,SMC,,,,,,,8.9,,,,,,,,,,,,,,,,,,30.5,
Half Moon Bay State Beach,4.4,SMC,,,,,,,,,,,,,,,,,,,,,,,,,50.7,
Hillsborough,85.3,SMC,3.3,,,,,,3.6,24.5,25.3,,,,,,25.5,,,,,,,,,,,52.5
Kensington Square,0.6,SMC,86.9,100.0,,,,,,,,,,,,,99.99,,,,,,,,,,,
Ladera,8.1,SMC,,,,,30.5,,,,47.6,,,,50.6,,,82.1,92.0,,99.7,,,,,,,
Los Trancos Woods,5.3,SMC,,,,,71.4,,,,,,74.9,75.0,,,,,,,95.8,,,,,99.9,,
Menlo Oaks,3.5,SMC,,,,,98.4,99.7,,,,,100.0,,,,,,,,,,,,,,,
Menlo Park,139.5,SMC,67.7,76.8,87.7,90.7,91.2,,92.5,,,91.6,,,91.8,,93.5,94.7,,,94.8,,95.7,,,95.1,,95.1
Millbrae,65.0,SMC,,,,,,,,18.4,31.6,,32.8,,,,,,,,,,,,,31.9,,40.9
Montara,27.8,SMC,,,,,,,,,,,,,,,,,,,,,,,,,26.8,
Moss Beach,19.7,SMC,,,,,,,,,,,,,,,,,,,,,,,,,38.5,
North Fair Oaks,26.7,SMC,78.1,90.4,93.1,93.8,94.8,96.1,96.9,,99.1,,,,,,99.17,,,,,,,,,,,
Pacifica,150.9,SMC,,,,,,,,,,,,,,,,,,,,,,,,,27.5,
Palomar Park,4.0,SMC,,,,,,,91.1,,94.9,,,,,,98.1,,,,100.0,,,,,,,
Portola Valley,48.2,SMC,,,,,57.3,59.8,,,61.0,,66.2,66.4,67.4,70.3,72.0,,,,90.7,94.0,99.5,,,,,
Purisima Creek Preserve,16.5,SMC,,,,,,,,,,,,,,,,,,,,,,,,,35.7,
Redwood City,240.5,SMC,34.0,39.1,46.0,51.6,56.9,60.8,62.9,,65.1,,66.3,66.7,67.0,,75.0,77.9,,,83.1,,90.2,,,90.3,,90.8
Russian Ridge Preserve,12.2,SMC,,,,,,,,,,,,,,,,,,,,,,,21.8,,,
San Bruno,114.0,SMC,,,,,,,,,,25.4,,,,,25.5,,,,,,,27.1,,,,
San Carlos,99.0,SMC,22.2,26.0,32.9,,37.2,39.0,40.5,,41.4,,,41.7,,,,,,,,,,,,,59.5,78.7
San Mateo,256.0,SMC,11.1,,,,,,11.3,25.5,27.8,,,,,,,,,,,,,,,46.5,,50.6
San Mateo Highlands,18.0,SMC,,,,,,,18.0,29.2,,,,,,,,,,,,,,,,76.7,,
Sequoia Tract,11.0,SMC,,,,,72.8,82.3,92.5,,,,96.4,,97.5,98.2,99.4,,,,,,,,,,,
Sky Londa,11.8,SMC,,,,,72.1,,73.2,,,,75.4,75.5,,,,83.4,,,87.0,,99.2,,,,,
Skyline Ridge OSP,0.8,SMC,,,,,,,,,,,,,,,,91.5,,,,,93.5,,,,,
South San Francisco,185.3,SMC,,,,,,,,,,,,,,,,,,,,,,26.1,,26.4,,
West Menlo Park,11.2,SMC,,,,,97.5,98.1,,,,99.3,99.7,,100.0,,,,,,,,,,,,,
Windy Hill Preserve,4.1,SMC,,,,,,,,,,,,,,,,,,,,,,,99.1,,,
Woodside,75.2,SMC,51.9,,52.3,,,54.0,56.1,,,,62.2,65.8,81.8,84.3,85.5,,,,91.1,,94.1,96.6,,,,99.3
#
# Santa Clara County
#
Branham,44.0,SCC,,,,,,,,,,,,,26.5,27.9,,32.1,,,,,,,,,,
Campbell,119.0,SCC,8.9,10.1,12.4,,,,,25.2,26.5,,,,26.8,28.3,,,,,,,,,,,,
Communications Hill,27.8,SCC,,,,,,,,,,,,,34.1,,,37.2,,,,,,,,,,
Cupertino,172.0,SCC,22.1,23.9,26.2,,,26.3,26.4,,,,26.5,,,,29.5,29.7,,,,,,,,,,
Edenvale,30.0,SCC,,,,,,,,,,,,,47.35,,,47.0,,,,,,,,,,
Foothills Preserve,1.1,SCC,,,,,,,,,,,,,,,,,,,,,,,,80.7,,
Gardner,23.4,SCC,,,,,,,,,,,,,22.6,40.5,,43.9,,,,,,,,,,
Gilroy,188.9,SCC,7.9,,,,,,,,,,,,,,,,,,,,,,,,,
Henry Coe State Park,265.9,SCC,,,,,,,,,,,,,,,,,,,,,,,,0.2,,
Los Altos,138.2,SCC,40.2,43.7,72.4,77.2,84.5,90.8,91.0,,91.1,,91.2,,,,90.63,90.9,,,91.3,91.4,91.5,,,,,
Los Altos Hills,91.3,SCC,48.4,,49.0,55.1,,55.4,55.8,,,,,,56.4,59.0,,62.1,62.5,,65.9,71.0,76.3,91.0,,,,91.1
Los Gatos,148.0,SCC,7.5,8.6,8.8,,,,,26.1,,,28.2,,,,,28.6,,,,,,29.1,,,,
Loyola,18.3,SCC,,,,,60.8,62.1,,,,,91.5,,91.3,,,,,,,,,92.1,98.7,,,99.5
Milpitas,224.0,SCC,2.2,,,,4.4,,,,,26.6,27.2,,,,,29.5,,,,,,,,,,
Monte Sereno,20.4,SCC,20.5,,,,,,,39.8,,,44.1,,,,,,,,,,,,,,,
Mountain View,208.1,SCC,53.0,59.9,63.0,63.6,72.9,77.1,91.1,,,,92.3,,,,,93.5,,,93.7,,,,92.9,,,
Palo Alto,297.2,SCC,63.0,73.6,85.4,85.7,87.1,87.6,88.1,,90.3,90.4,90.5,90.6,,90.7,,91.3,91.5,,93.0,,,,92.8,,,93.0
Parkview,42.5,SCC,,,,,,,,,,,,,30.32,,,32.1,,,,,,,,,,
San Jose,2618.7,SCC,1.3,1.36,5.3,,,,5.4,,,6.7,11.9,13.1,18.2,19.8,23.1,25.6,,,,,,,26.9,,,
Santa Clara,348.0,SCC,6.4,,9.6,,,,,,,26.6,,,,,28.8,29.4,,,,,,,,33.9,,
San Martin,35.3,SCC,15.7,,,,,,,,,,,,,,,,,,,,,,,,,
Saratoga,180.0,SCC,14.5,15.7,17.4,,,,,26.9,,,27.2,,,,,,,,,,,,,,,
Seven Trees,40.9,SCC,,,,,,,,,,,,,27.96,28.0,,,,,,,,,,,,
Spartan Keyes,64.3,SCC,,,,,,,22.1,,,,,,38.9,39.0,,35.8,,,,,,,,,,
Sunnyvale,357.0,SCC,19.4,19.9,22.2,,,,25.1,,,25.8,25.9,,,,,31.0,,,31.3,,,,,,46.6,
Willow Glen,81.6,SCC,,,,,,,13.9,,,,,,29.67,32.6,,34.9,,,,,,,,,,
Willow Glen South,63.3,SCC,,,,,,,,,,,,,22.3,30.6,,30.2,,,,,,,,,,
#
# Alameda County
#
Cherryland,20.9,AlC,,,,,,,,,,,,,,,,,26.8,,,,,,,,,
Fremont,780.2,AlC,9.0,,,10.0,,,11.7,,27.5,28.1,,,,,,,28.8,,,,,,,,,
Hayward,444.5,AlC,,,,,,,4.6,,,,5.1,,,,,,26.3,,,,,,,,,
Newark,147.0,AlC,15.0,,,17.0,,,18.7,26.8,30.8,,,,,,,,42.5,,,,,,,,,
San Leandro,230.6,AlC,,,,,,,,,,,,,,,,,,,,,,25.9,,,,
San Lorenzo,55.5,AlC,,,,,,,,,,,,,,,,,34.56,,,,,34.7,,,,
Union City,208.8,AlC,7.0,,,8.0,,,8.8,,25.7,,26.7,,,,,,,,,,,,,,,
#
# SF Neighborhoods
#
Presidio Terrace,2.8,sf,,,,,,,37.0,,,,,,,,43.7,,,,,,,,,,,
South Beach,4.8,sf,,,,,,,28.2,,,,39.6,,,,,,,,,,,,,,,
Golden Gate Park,40.8,sf,,,,,,,25.6,,,,,,,,37.8,,,,,,,,,,,
Lake Street,3.9,sf,,,,,,,,,,,,,,,36.8,,,,,,,,,,,
Lincoln Park,4.5,sf,,,,,,,43.0,,,,,,,,,,,,,,,,,,,
Seacliff,4.1,sf,,,,,,,23.1,,,,,,,,30.7,,,,,,,,,,,
Presidio National Park,43.5,sf,,,,,,,21.1,,,,24.4,,,,27.7,,,,,,,,,,,
Cole Valley,1.7,sf,,,,,,,19.6,,,,,,,,,,,,,,,,,,,
Polk Gulch,4.0,sf,,,,,,,18.2,,,,,,,,,,,,,,,,,,,
Balboa Terrace,3.4,sf,,,,,,,18.2,,,,,,,,,,,,,,,,,,,
Northern Waterfront,5.6,sf,,,,,,,,,,,16.4,,,,,,,,,,,,,,,
Forest Hill,6.1,sf,,,,,,,15.7,,,,,,,,,,,,,,,,,,,
Little Hollywood,3.7,sf,,,,,,,,,,,15.4,,,,,,,,,,,,,,,
Presidio Heights,6.5,sf,,,,,,,15.1,,,,,,,,,,,,,,,,,,,
Aquatic Park Fort Mason,6.4,sf,,,,,,,,,,,14.9,,,,,,,,,,,,,,,
Clarendon Heights,6.0,sf,,,,,,,14.3,,,,,,,,,,,,,,,,,,,
Fisherman's Wharf,6.2,sf,,,,,,,,,,,14.2,,,,,,,,,,,,,,,
Sutro Heights,7.1,sf,,,,,,,,,,,14.0,,,,,,,,,,,,,,,
Ashbury Heights,3.7,sf,,,,,,,12.9,,,,,,,,,,,,,,,,,,,
Dogpatch,5.1,sf,,,,,,,,,,,12.4,,,,,,,,,,,,,,,
Cow Hollow,12.0,sf,,,,,,,5.0,,,,12.0,,,,,,,,,,,,,,,
Pacific Heights,18.0,sf,,,,,,,10.8,,,,,,,,,,,,,,,,,,,
Golden Gate Heights,17.8,sf,,,,,,,10.7,,,,,,,,,,,,,,,,,,,
Financial District,9.4,sf,,,,,,,5.8,,,,9.7,,,,,,,,,,,,,,,
Mission Bay,13.8,sf,,,,,,,,,,,9.3,,,,,,,,,,,,,,,
Central Waterfront,10.2,sf,,,,,,,,,,,6.7,,,,,,,,,,,,,,,
#
# Far Away Places
#
Barangaroo; NSW,1.7,far,49.9,,,,,,,,,,,,,,,,,,,,,,,,,
Millers Point; NSW,3.2,far,38.2,,,,,,,,,,,,,,,,,,,,,,,,,
Cambridge; MA,180.8,far,6.4,,,,,,,,,,,,,,,,,,,,,,,,,
MIT; MA,9.6,far,37.2,,,,,,,,,,,,,,,,,,,,,,,,,
Muir Beach; Marin,4.6,far,35.8,,,,,,,,,,,,,,,,,,,,,,37.2,,,
Marin Headlands GGNRA,65.7,far,,,,,,,,,,,,,,,,,,,,,,,30.8,,,
Mt Tamalpais State Park,31.7,far,,,,,,,,,,,,,,,,,,,,,,,40.3,,,
Dawes Point; NSW,1.8,far,29.2,,,,,,,,,,,,,,,,,,,,,,,,,
Mokelumne Hill; Calaveras,14.7,far,28.9,,,,,,,,,,,,,,,,,,,,,,,,,
Guerneville; Sonoma,22.7,far,23.4,,,,,,,,,,,,,,,,,,,,,,,,,
Healdsburg; Sonoma,53.7,far,18.5,,,,,,,,,,,,,,,,,,,,,,,,,
Bodega Bay; Sonoma,28.9,far,18.0,,,,,,,,,,,,,,,,,,,,,,,,,
Sausalito; Marin,32.7,far,,,,,,,,,,,13.1,,,,,,,,,,,,,,,
Corte Madera; Marin,51.0,far,,,,,,,,,,,13.0,,,,,,,,,,,,,,,
Stinson Beach; Marin,11.2,far,9.2,,,,,,,,,,,,,,,,,,,,,,37.4,,,
Mill Valley; Marin,92.2,far,,,,,,,,,,,5.1,,,,,,,,,,,,,,,
San Rafael; Marin,260.0,far,,,,,,,,,,,3.7,,,,,,,,,,,,,,,
Emeryville,28.1,far,,,,,,,5.5,,,,7.0,,,,,,,,,,,,,,,
Berkeley,260.3,far,5.0,,,7.0,,,,,,,,,,,,,,,,,,,,,,
Albany,42.7,far,,,,,,,,,,,6.6,,,,,,,,,,,,,,,
Rosie Riveter Park,5.5,far,,,,,,,,,,,29.3,,,,,,,,,,,,,,,
#
# Counties
#
San Mateo,2951.0,county,20.1,21.2,22.9,23.4,24.57,25.53,26.43,30.0,31.27,32.24,32.54,32.98,33.48,33.56,34.51,34.7,35.05,36.08,36.41,37.3,38.06,40.33,47.2,48.1,50.06,53.96
Santa Clara,7564.0,county,12.7,13.6,15.4,15.6,16.04,16.29,16.78,17.73,18.15,20.0,21.1,22.53,24.45,25.05,25.96,27.76,28.03,28.24,28.39,28.5,28.56,29.04,,,30.31,30.34
Alameda,5704.0,county,3.3,,,3.94,,,4.73,,7.06,7.14,7.34,,,,,,9.86,9.87,,,,10.96,,,,
Marin,2322.0,county,6.7,,,,,,,,,,7.98,,,,,,,,,,,,,,,
San Francisco,1197.0,county,4.5,,,,,,,,,,5.47,,,,6.4,6.51,,,,,,,,,,
Napa,1524.0,county,5.1,,,,,,,,,,,,,,,,,,,,,,,,,
Sonoma,4556.0,county,5.1,,,,,,,,,,,,,,,,,,,,,,,,,
Santa Cruz,2767.0,county,2.3,,,,,,,,,,,,,,,,,,,,,,,,,
Contra Costa,6034.0,county,1.0,,,,,,,,,1.41,,,,,,,,1.42,,,,,,,,
#
# Big Places
#
California,375216.0,big,0.712,0.811,0.846,0.867,0.8875,,0.9054,0.9624,1.0289,1.0758,1.1278,1.1386,1.1812,1.1939,1.2007,1.2524,1.2987,,1.3048,1.3106,1.3136,1.3565,1.3877,1.4023,1.4656,1.4968
USA,6406754.0,big,0.048,0.052,0.055,0.05589,0.0571,0.05749,0.05853,0.06183,0.06553,0.06824,0.07138,0.072,0.07446,0.0752,0.07665,0.07904,0.08173,0.08199,0.08252,0.083,0.08314,0.08565,0.087,0.089,0.09215,0.09399
Earth,40818989.0,big,0.008,0.0089,0.0091,0.00936,0.009535,0.009536,0.009597,0.010136,0.010561,0.010997,0.011349,0.011448,0.011839,0.011955,0.012024,0.0124113,0.012835,0.012886,0.013799,0.013855,0.013895,0.01429,0.01479,0.01482,0.014891,0.015172
1 name,miles,area,Jul/20,Aug/20,Sep/20,Oct/20,Nov/20,Dec/20,Jan/21,Feb/21,Mar/21,Apr/21,May/21,Jun/21,Jul/21,Aug/21,Sep/21,Oct/21,Nov/21,Dec/21,Jan/22,Feb/22,Mar/22,Apr/22,May/22,Jun/22,Jul/22,Aug/22
2 #
3 # Sam Mateo County
4 #
5 Atherton,56.3,SMC,,,,,91.2,94.0,95.2,,,94.9,96.2,,98.7,99.5,,99.3,,,99.6,,,,,,,
6 Belmont,98.1,SMC,15.5,17.3,18.6,,20.6,,27.4,,27.5,,,27.4,,,,27.5,,,,,,27.6,,,37.1,51.5
7 Brisbane,40.9,SMC,,,,,,,,,,,,,,,,,,,,,,45.3,,,,
8 Broadmoor,8.8,SMC,,,,,,,,,,,,,,,,,,,,,,,,,38.2,
9 Burlingame Hills,6.0,SMC,,,,,,,0.8,34.5,,,35.5,,,,,,,,,,,,,,,
10 Burlingame,88.4,SMC,9.4,,,,,,,31.5,,,35.5,,,,,,,,,,,,,,,54.3
11 Coal Creek Preserve,3.9,SMC,,,,,,,,,,,,,,,,,,,,,,,,36.7,,
12 Colma,13.7,SMC,,,,,,,,,,,,,,,,,,,,,,,,,24.8,38.3
13 Daly City,148.1,SMC,,,,,,,,,,,,,,,,,,,,,,,,,12.3,25.8
14 East Palo Alto,48.3,SMC,74.4,91.2,91.9,,92.2,93.3,93.4,,,,92.5,,,,95.0,99.2,,,99.7,,,,,,,
15 El Granada,49.2,SMC,,,,,,,,,,,,,,,,,,,,,,,,,35.2,
16 Emerald Lake Hills,24.6,SMC,,94.3,,,,51.0,80.0,85.8,91.3,,,,,,92.2,,,,93.4,96.1,,,,98.1,,98.9
17 Foster City,150.0,SMC,9.1,,,,,,,27.4,37.2,,38.7,,,,,,,,,,,,,51.8,,
18 Half Moon Bay,68.0,SMC,,,,,,,8.9,,,,,,,,,,,,,,,,,,30.5,
19 Half Moon Bay State Beach,4.4,SMC,,,,,,,,,,,,,,,,,,,,,,,,,50.7,
20 Hillsborough,85.3,SMC,3.3,,,,,,3.6,24.5,25.3,,,,,,25.5,,,,,,,,,,,52.5
21 Kensington Square,0.6,SMC,86.9,100.0,,,,,,,,,,,,,99.99,,,,,,,,,,,
22 Ladera,8.1,SMC,,,,,30.5,,,,47.6,,,,50.6,,,82.1,92.0,,99.7,,,,,,,
23 Los Trancos Woods,5.3,SMC,,,,,71.4,,,,,,74.9,75.0,,,,,,,95.8,,,,,99.9,,
24 Menlo Oaks,3.5,SMC,,,,,98.4,99.7,,,,,100.0,,,,,,,,,,,,,,,
25 Menlo Park,139.5,SMC,67.7,76.8,87.7,90.7,91.2,,92.5,,,91.6,,,91.8,,93.5,94.7,,,94.8,,95.7,,,95.1,,95.1
26 Millbrae,65.0,SMC,,,,,,,,18.4,31.6,,32.8,,,,,,,,,,,,,31.9,,40.9
27 Montara,27.8,SMC,,,,,,,,,,,,,,,,,,,,,,,,,26.8,
28 Moss Beach,19.7,SMC,,,,,,,,,,,,,,,,,,,,,,,,,38.5,
29 North Fair Oaks,26.7,SMC,78.1,90.4,93.1,93.8,94.8,96.1,96.9,,99.1,,,,,,99.17,,,,,,,,,,,
30 Pacifica,150.9,SMC,,,,,,,,,,,,,,,,,,,,,,,,,27.5,
31 Palomar Park,4.0,SMC,,,,,,,91.1,,94.9,,,,,,98.1,,,,100.0,,,,,,,
32 Portola Valley,48.2,SMC,,,,,57.3,59.8,,,61.0,,66.2,66.4,67.4,70.3,72.0,,,,90.7,94.0,99.5,,,,,
33 Purisima Creek Preserve,16.5,SMC,,,,,,,,,,,,,,,,,,,,,,,,,35.7,
34 Redwood City,240.5,SMC,34.0,39.1,46.0,51.6,56.9,60.8,62.9,,65.1,,66.3,66.7,67.0,,75.0,77.9,,,83.1,,90.2,,,90.3,,90.8
35 Russian Ridge Preserve,12.2,SMC,,,,,,,,,,,,,,,,,,,,,,,21.8,,,
36 San Bruno,114.0,SMC,,,,,,,,,,25.4,,,,,25.5,,,,,,,27.1,,,,
37 San Carlos,99.0,SMC,22.2,26.0,32.9,,37.2,39.0,40.5,,41.4,,,41.7,,,,,,,,,,,,,59.5,78.7
38 San Mateo,256.0,SMC,11.1,,,,,,11.3,25.5,27.8,,,,,,,,,,,,,,,46.5,,50.6
39 San Mateo Highlands,18.0,SMC,,,,,,,18.0,29.2,,,,,,,,,,,,,,,,76.7,,
40 Sequoia Tract,11.0,SMC,,,,,72.8,82.3,92.5,,,,96.4,,97.5,98.2,99.4,,,,,,,,,,,
41 Sky Londa,11.8,SMC,,,,,72.1,,73.2,,,,75.4,75.5,,,,83.4,,,87.0,,99.2,,,,,
42 Skyline Ridge OSP,0.8,SMC,,,,,,,,,,,,,,,,91.5,,,,,93.5,,,,,
43 South San Francisco,185.3,SMC,,,,,,,,,,,,,,,,,,,,,,26.1,,26.4,,
44 West Menlo Park,11.2,SMC,,,,,97.5,98.1,,,,99.3,99.7,,100.0,,,,,,,,,,,,,
45 Windy Hill Preserve,4.1,SMC,,,,,,,,,,,,,,,,,,,,,,,99.1,,,
46 Woodside,75.2,SMC,51.9,,52.3,,,54.0,56.1,,,,62.2,65.8,81.8,84.3,85.5,,,,91.1,,94.1,96.6,,,,99.3
47 #
48 # Santa Clara County
49 #
50 Branham,44.0,SCC,,,,,,,,,,,,,26.5,27.9,,32.1,,,,,,,,,,
51 Campbell,119.0,SCC,8.9,10.1,12.4,,,,,25.2,26.5,,,,26.8,28.3,,,,,,,,,,,,
52 Communications Hill,27.8,SCC,,,,,,,,,,,,,34.1,,,37.2,,,,,,,,,,
53 Cupertino,172.0,SCC,22.1,23.9,26.2,,,26.3,26.4,,,,26.5,,,,29.5,29.7,,,,,,,,,,
54 Edenvale,30.0,SCC,,,,,,,,,,,,,47.35,,,47.0,,,,,,,,,,
55 Foothills Preserve,1.1,SCC,,,,,,,,,,,,,,,,,,,,,,,,80.7,,
56 Gardner,23.4,SCC,,,,,,,,,,,,,22.6,40.5,,43.9,,,,,,,,,,
57 Gilroy,188.9,SCC,7.9,,,,,,,,,,,,,,,,,,,,,,,,,
58 Henry Coe State Park,265.9,SCC,,,,,,,,,,,,,,,,,,,,,,,,0.2,,
59 Los Altos,138.2,SCC,40.2,43.7,72.4,77.2,84.5,90.8,91.0,,91.1,,91.2,,,,90.63,90.9,,,91.3,91.4,91.5,,,,,
60 Los Altos Hills,91.3,SCC,48.4,,49.0,55.1,,55.4,55.8,,,,,,56.4,59.0,,62.1,62.5,,65.9,71.0,76.3,91.0,,,,91.1
61 Los Gatos,148.0,SCC,7.5,8.6,8.8,,,,,26.1,,,28.2,,,,,28.6,,,,,,29.1,,,,
62 Loyola,18.3,SCC,,,,,60.8,62.1,,,,,91.5,,91.3,,,,,,,,,92.1,98.7,,,99.5
63 Milpitas,224.0,SCC,2.2,,,,4.4,,,,,26.6,27.2,,,,,29.5,,,,,,,,,,
64 Monte Sereno,20.4,SCC,20.5,,,,,,,39.8,,,44.1,,,,,,,,,,,,,,,
65 Mountain View,208.1,SCC,53.0,59.9,63.0,63.6,72.9,77.1,91.1,,,,92.3,,,,,93.5,,,93.7,,,,92.9,,,
66 Palo Alto,297.2,SCC,63.0,73.6,85.4,85.7,87.1,87.6,88.1,,90.3,90.4,90.5,90.6,,90.7,,91.3,91.5,,93.0,,,,92.8,,,93.0
67 Parkview,42.5,SCC,,,,,,,,,,,,,30.32,,,32.1,,,,,,,,,,
68 San Jose,2618.7,SCC,1.3,1.36,5.3,,,,5.4,,,6.7,11.9,13.1,18.2,19.8,23.1,25.6,,,,,,,26.9,,,
69 Santa Clara,348.0,SCC,6.4,,9.6,,,,,,,26.6,,,,,28.8,29.4,,,,,,,,33.9,,
70 San Martin,35.3,SCC,15.7,,,,,,,,,,,,,,,,,,,,,,,,,
71 Saratoga,180.0,SCC,14.5,15.7,17.4,,,,,26.9,,,27.2,,,,,,,,,,,,,,,
72 Seven Trees,40.9,SCC,,,,,,,,,,,,,27.96,28.0,,,,,,,,,,,,
73 Spartan Keyes,64.3,SCC,,,,,,,22.1,,,,,,38.9,39.0,,35.8,,,,,,,,,,
74 Sunnyvale,357.0,SCC,19.4,19.9,22.2,,,,25.1,,,25.8,25.9,,,,,31.0,,,31.3,,,,,,46.6,
75 Willow Glen,81.6,SCC,,,,,,,13.9,,,,,,29.67,32.6,,34.9,,,,,,,,,,
76 Willow Glen South,63.3,SCC,,,,,,,,,,,,,22.3,30.6,,30.2,,,,,,,,,,
77 #
78 # Alameda County
79 #
80 Cherryland,20.9,AlC,,,,,,,,,,,,,,,,,26.8,,,,,,,,,
81 Fremont,780.2,AlC,9.0,,,10.0,,,11.7,,27.5,28.1,,,,,,,28.8,,,,,,,,,
82 Hayward,444.5,AlC,,,,,,,4.6,,,,5.1,,,,,,26.3,,,,,,,,,
83 Newark,147.0,AlC,15.0,,,17.0,,,18.7,26.8,30.8,,,,,,,,42.5,,,,,,,,,
84 San Leandro,230.6,AlC,,,,,,,,,,,,,,,,,,,,,,25.9,,,,
85 San Lorenzo,55.5,AlC,,,,,,,,,,,,,,,,,34.56,,,,,34.7,,,,
86 Union City,208.8,AlC,7.0,,,8.0,,,8.8,,25.7,,26.7,,,,,,,,,,,,,,,
87 #
88 # SF Neighborhoods
89 #
90 Presidio Terrace,2.8,sf,,,,,,,37.0,,,,,,,,43.7,,,,,,,,,,,
91 South Beach,4.8,sf,,,,,,,28.2,,,,39.6,,,,,,,,,,,,,,,
92 Golden Gate Park,40.8,sf,,,,,,,25.6,,,,,,,,37.8,,,,,,,,,,,
93 Lake Street,3.9,sf,,,,,,,,,,,,,,,36.8,,,,,,,,,,,
94 Lincoln Park,4.5,sf,,,,,,,43.0,,,,,,,,,,,,,,,,,,,
95 Seacliff,4.1,sf,,,,,,,23.1,,,,,,,,30.7,,,,,,,,,,,
96 Presidio National Park,43.5,sf,,,,,,,21.1,,,,24.4,,,,27.7,,,,,,,,,,,
97 Cole Valley,1.7,sf,,,,,,,19.6,,,,,,,,,,,,,,,,,,,
98 Polk Gulch,4.0,sf,,,,,,,18.2,,,,,,,,,,,,,,,,,,,
99 Balboa Terrace,3.4,sf,,,,,,,18.2,,,,,,,,,,,,,,,,,,,
100 Northern Waterfront,5.6,sf,,,,,,,,,,,16.4,,,,,,,,,,,,,,,
101 Forest Hill,6.1,sf,,,,,,,15.7,,,,,,,,,,,,,,,,,,,
102 Little Hollywood,3.7,sf,,,,,,,,,,,15.4,,,,,,,,,,,,,,,
103 Presidio Heights,6.5,sf,,,,,,,15.1,,,,,,,,,,,,,,,,,,,
104 Aquatic Park Fort Mason,6.4,sf,,,,,,,,,,,14.9,,,,,,,,,,,,,,,
105 Clarendon Heights,6.0,sf,,,,,,,14.3,,,,,,,,,,,,,,,,,,,
106 Fisherman's Wharf,6.2,sf,,,,,,,,,,,14.2,,,,,,,,,,,,,,,
107 Sutro Heights,7.1,sf,,,,,,,,,,,14.0,,,,,,,,,,,,,,,
108 Ashbury Heights,3.7,sf,,,,,,,12.9,,,,,,,,,,,,,,,,,,,
109 Dogpatch,5.1,sf,,,,,,,,,,,12.4,,,,,,,,,,,,,,,
110 Cow Hollow,12.0,sf,,,,,,,5.0,,,,12.0,,,,,,,,,,,,,,,
111 Pacific Heights,18.0,sf,,,,,,,10.8,,,,,,,,,,,,,,,,,,,
112 Golden Gate Heights,17.8,sf,,,,,,,10.7,,,,,,,,,,,,,,,,,,,
113 Financial District,9.4,sf,,,,,,,5.8,,,,9.7,,,,,,,,,,,,,,,
114 Mission Bay,13.8,sf,,,,,,,,,,,9.3,,,,,,,,,,,,,,,
115 Central Waterfront,10.2,sf,,,,,,,,,,,6.7,,,,,,,,,,,,,,,
116 #
117 # Far Away Places
118 #
119 Barangaroo; NSW,1.7,far,49.9,,,,,,,,,,,,,,,,,,,,,,,,,
120 Millers Point; NSW,3.2,far,38.2,,,,,,,,,,,,,,,,,,,,,,,,,
121 Cambridge; MA,180.8,far,6.4,,,,,,,,,,,,,,,,,,,,,,,,,
122 MIT; MA,9.6,far,37.2,,,,,,,,,,,,,,,,,,,,,,,,,
123 Muir Beach; Marin,4.6,far,35.8,,,,,,,,,,,,,,,,,,,,,,37.2,,,
124 Marin Headlands GGNRA,65.7,far,,,,,,,,,,,,,,,,,,,,,,,30.8,,,
125 Mt Tamalpais State Park,31.7,far,,,,,,,,,,,,,,,,,,,,,,,40.3,,,
126 Dawes Point; NSW,1.8,far,29.2,,,,,,,,,,,,,,,,,,,,,,,,,
127 Mokelumne Hill; Calaveras,14.7,far,28.9,,,,,,,,,,,,,,,,,,,,,,,,,
128 Guerneville; Sonoma,22.7,far,23.4,,,,,,,,,,,,,,,,,,,,,,,,,
129 Healdsburg; Sonoma,53.7,far,18.5,,,,,,,,,,,,,,,,,,,,,,,,,
130 Bodega Bay; Sonoma,28.9,far,18.0,,,,,,,,,,,,,,,,,,,,,,,,,
131 Sausalito; Marin,32.7,far,,,,,,,,,,,13.1,,,,,,,,,,,,,,,
132 Corte Madera; Marin,51.0,far,,,,,,,,,,,13.0,,,,,,,,,,,,,,,
133 Stinson Beach; Marin,11.2,far,9.2,,,,,,,,,,,,,,,,,,,,,,37.4,,,
134 Mill Valley; Marin,92.2,far,,,,,,,,,,,5.1,,,,,,,,,,,,,,,
135 San Rafael; Marin,260.0,far,,,,,,,,,,,3.7,,,,,,,,,,,,,,,
136 Emeryville,28.1,far,,,,,,,5.5,,,,7.0,,,,,,,,,,,,,,,
137 Berkeley,260.3,far,5.0,,,7.0,,,,,,,,,,,,,,,,,,,,,,
138 Albany,42.7,far,,,,,,,,,,,6.6,,,,,,,,,,,,,,,
139 Rosie Riveter Park,5.5,far,,,,,,,,,,,29.3,,,,,,,,,,,,,,,
140 #
141 # Counties
142 #
143 San Mateo,2951.0,county,20.1,21.2,22.9,23.4,24.57,25.53,26.43,30.0,31.27,32.24,32.54,32.98,33.48,33.56,34.51,34.7,35.05,36.08,36.41,37.3,38.06,40.33,47.2,48.1,50.06,53.96
144 Santa Clara,7564.0,county,12.7,13.6,15.4,15.6,16.04,16.29,16.78,17.73,18.15,20.0,21.1,22.53,24.45,25.05,25.96,27.76,28.03,28.24,28.39,28.5,28.56,29.04,,,30.31,30.34
145 Alameda,5704.0,county,3.3,,,3.94,,,4.73,,7.06,7.14,7.34,,,,,,9.86,9.87,,,,10.96,,,,
146 Marin,2322.0,county,6.7,,,,,,,,,,7.98,,,,,,,,,,,,,,,
147 San Francisco,1197.0,county,4.5,,,,,,,,,,5.47,,,,6.4,6.51,,,,,,,,,,
148 Napa,1524.0,county,5.1,,,,,,,,,,,,,,,,,,,,,,,,,
149 Sonoma,4556.0,county,5.1,,,,,,,,,,,,,,,,,,,,,,,,,
150 Santa Cruz,2767.0,county,2.3,,,,,,,,,,,,,,,,,,,,,,,,,
151 Contra Costa,6034.0,county,1.0,,,,,,,,,1.41,,,,,,,,1.42,,,,,,,,
152 #
153 # Big Places
154 #
155 California,375216.0,big,0.712,0.811,0.846,0.867,0.8875,,0.9054,0.9624,1.0289,1.0758,1.1278,1.1386,1.1812,1.1939,1.2007,1.2524,1.2987,,1.3048,1.3106,1.3136,1.3565,1.3877,1.4023,1.4656,1.4968
156 USA,6406754.0,big,0.048,0.052,0.055,0.05589,0.0571,0.05749,0.05853,0.06183,0.06553,0.06824,0.07138,0.072,0.07446,0.0752,0.07665,0.07904,0.08173,0.08199,0.08252,0.083,0.08314,0.08565,0.087,0.089,0.09215,0.09399
157 Earth,40818989.0,big,0.008,0.0089,0.0091,0.00936,0.009535,0.009536,0.009597,0.010136,0.010561,0.010997,0.011349,0.011448,0.011839,0.011955,0.012024,0.0124113,0.012835,0.012886,0.013799,0.013855,0.013895,0.01429,0.01479,0.01482,0.014891,0.015172

View File

@ -1,5 +1,6 @@
date year title hours miles feet
##### 2019-2022: Mostly Eddington rides; most recent first
Sat, 9/17 2022 San Gregorio / Tunitas 6:33:44 80.53 6,015
Thu, 7/14 2022 Bike Hut Classic 6:36:30 74.16 6,070
Sat, 7/9 2022 Purisima Creek Trail 7:20:20 62.93 7,139
Sat, 7/2 2022 Bear Gulch, West Side 6:29:10 77.73 6,991

Can't render this file because it has a wrong number of fields in line 2.

View File

@ -1,9 +1,10 @@
date year title hours miles feet
all 2021 Yearly 490:32:00 6064.5 196634
all 2020 Yearly 438:53:00 5341.9 94777
all 2019 Yearly 476:19:00 6016.1 149797
all 2018 Yearly 475:56:00 6101.0 158642
all 2017 Yearly 567:20:00 7356.4 202096
all 2016 Yearly 486:23:00 6339.2 201453
all 2015 Yearly 419:57:00 5452.6 209859
all 2014 Yearly 191:02:00 2469.1 118481
all 2022 Yearly 398:48:00 4382 292575
all 2021 Yearly 490:32:00 6064 196634
all 2020 Yearly 438:53:00 5341 94777
all 2019 Yearly 476:19:00 6016 149797
all 2018 Yearly 475:56:00 6101 158642
all 2017 Yearly 567:20:00 7356 202096
all 2016 Yearly 486:23:00 6339 201453
all 2015 Yearly 419:57:00 5452 209859
all 2014 Yearly 191:02:00 2469 118481
1 date year title hours miles feet
2 all 2021 2022 Yearly 490:32:00 398:48:00 6064.5 4382 196634 292575
3 all 2020 2021 Yearly 438:53:00 490:32:00 5341.9 6064 94777 196634
4 all 2019 2020 Yearly 476:19:00 438:53:00 6016.1 5341 149797 94777
5 all 2018 2019 Yearly 475:56:00 476:19:00 6101.0 6016 158642 149797
6 all 2017 2018 Yearly 567:20:00 475:56:00 7356.4 6101 202096 158642
7 all 2016 2017 Yearly 486:23:00 567:20:00 6339.2 7356 201453 202096
8 all 2015 2016 Yearly 419:57:00 486:23:00 5452.6 6339 209859 201453
9 all 2014 2015 Yearly 191:02:00 419:57:00 2469.1 5452 118481 209859
10 all 2014 Yearly 191:02:00 2469 118481

BIN
ipynb/tilehunter.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB