{
"cells": [
{
"cell_type": "markdown",
"id": "b4ae2aec",
"metadata": {},
"source": [
"# 09: Geopandas exercise solutions"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "adapted-heath",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import geopandas as gp\n",
"from shapely.geometry import Point, Polygon\n",
"from pathlib import Path\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.backends.backend_pdf import PdfPages"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "928f22eb",
"metadata": {},
"outputs": [],
"source": [
"datapath = Path('../data/geopandas/')"
]
},
{
"cell_type": "markdown",
"id": "54ed3ea9",
"metadata": {},
"source": [
"## TEST YOUR SKILLS #0\n",
"- make a new geodataframe of the parks\n",
"- add a columns with centroids for each park\n",
"- plot an interactive window with the park centroids and the neighborhoods\n",
"- hints: \n",
" - remember the shapely methods are available for each geometry object (e.g. `centroid()`) \n",
" - you can loop over the column in a couple different ways\n",
" - you can define which columns contains the geometry of a geodataframe\n",
" - you will likely have to define the CRS"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "03b1b58e",
"metadata": {},
"outputs": [],
"source": [
"parks = gp.read_file(datapath / 'Madison_Parks.geojson')\n",
"hoods = gp.read_file(datapath / 'Neighborhood_Associations.geojson')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d3ad33ec",
"metadata": {},
"outputs": [],
"source": [
"# loopy solution\n",
"parks_cent = parks.copy()\n",
"centroids = []\n",
"for i in parks_cent.geometry.values:\n",
" centroids.append(i.centroid)\n",
"parks_cent['centroid'] = centroids"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "599de3e5",
"metadata": {},
"outputs": [],
"source": [
"# do it all at once with a list comprehension\n",
"parks_cent['centroid'] = [i.centroid for i in parks_cent.geometry]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bbe8574f",
"metadata": {},
"outputs": [],
"source": [
"# set the geometry and CRS\n",
"parks_cent.set_geometry('centroid', inplace=True)\n",
"parks_cent.set_crs(parks.crs, inplace=True);"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "16fcbb94",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
Make this Notebook Trusted to load map: File -> Trust Notebook
"
],
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m_hoods = hoods.explore()\n",
"parks_cent.explore(m=m_hoods)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "historic-charleston",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "87c2939a",
"metadata": {},
"source": [
"## TEST YOUR SKILLS #1\n",
"Using the `bounds` geodataframe you just made, write a function to visualize predicate behaviors.\n",
"- your function should accept a left geodataframe, a right geodataframe, and a string for the predicate\n",
"- your function should plot:\n",
" - the left geodataframe in (default) blue\n",
" - the result of the spatial join operation in another color\n",
" - the right geodataframe in another color with outline only\n",
"- then you should set the title of the plot to the string predicate value used\n",
"- the geodataframes to test with are `isthmus_parks` and `bounds`\n",
"- your function should `return` the joined geodataframe\n",
"\n",
"- a couple hints:\n",
" - in the `plot` method are a couple args called `facecolor` and `edgecolor` that will help plot the rectangle\n",
" - there are other predicates to try out \n",
"\n",
"- _advanced options_: if that was easy, you can try a couple other things like:\n",
" - explore joins with points and lines in addition to just polygons\n",
" - change around the `bounds` polygon dimensions \n",
" - use `explore()` to make an interactive map"
]
},
{
"cell_type": "markdown",
"id": "74576cf5",
"metadata": {},
"source": [
"### first have to bring over some things from the main lesson"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1b3e7437",
"metadata": {},
"outputs": [],
"source": [
"parks.to_crs(3071, inplace=True)\n",
"hoods.to_crs(parks.crs, inplace=True)\n",
"isthmus = hoods.loc[hoods['NEIGHB_NAME'].str.contains('Marquette') | \n",
" hoods['NEIGHB_NAME'].str.contains('Tenney')]\n",
"from shapely.geometry import box\n",
"bbox = box(570600, 290000, 573100, 291700)\n",
"bounds = gp.GeoDataFrame(geometry=[bbox],crs=parks.crs)\n",
"isthmus_parks = gp.sjoin(left_df=parks, right_df=isthmus)\n",
"isthmus_parks.drop(columns=[ 'index_right','OBJECTID_right', 'NA_ID', 'STATUS', 'CLASSIFICA', 'Web',\n",
" 'ShapeSTArea', 'ShapeSTLength'], inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "2c88f25c",
"metadata": {},
"outputs": [],
"source": [
"def show_predicate(ldf,rdf,predicate):\n",
" sj = gp.sjoin(ldf, rdf, predicate=predicate)\n",
" ax = ldf.plot()\n",
" sj.plot(ax=ax, color='black')\n",
" rdf.plot(facecolor='none', edgecolor='orange', ax=ax)\n",
" ax.set_title(predicate)\n",
" return sj"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "bf1d1f6c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
OBJECTID_left
\n",
"
Park_ID
\n",
"
Type
\n",
"
Acreage
\n",
"
Park_Name
\n",
"
ShortName
\n",
"
Subtype
\n",
"
SHAPESTArea
\n",
"
SHAPESTLength
\n",
"
geometry
\n",
"
NEIGHB_NAME
\n",
"
index_right
\n",
"
\n",
" \n",
" \n",
"
\n",
"
6
\n",
"
6422
\n",
"
1360
\n",
"
NEIGHBORHOOD
\n",
"
6.08
\n",
"
Yahara Place Park
\n",
"
Yahara Place
\n",
"
None
\n",
"
264814.254303
\n",
"
4619.706039
\n",
"
POLYGON ((572969.327 290871.975, 572979.154 29...
\n",
"
Marquette Neighborhood Association
\n",
"
0
\n",
"
\n",
"
\n",
"
12
\n",
"
6428
\n",
"
3540
\n",
"
TRAFFICWAY
\n",
"
0.10
\n",
"
Few Street (South) Street End
\n",
"
Few St
\n",
"
None
\n",
"
4522.502594
\n",
"
270.158029
\n",
"
POLYGON ((572000.229 289978.256, 572017.381 28...
\n",
"
Marquette Neighborhood Association
\n",
"
0
\n",
"
\n",
"
\n",
"
19
\n",
"
6435
\n",
"
3480
\n",
"
TRAFFICWAY
\n",
"
0.12
\n",
"
Baldwin Street End
\n",
"
Baldwin St
\n",
"
None
\n",
"
5319.010742
\n",
"
294.682954
\n",
"
POLYGON ((572164.248 290098.321, 572179.960 29...
\n",
"
Marquette Neighborhood Association
\n",
"
0
\n",
"
\n",
"
\n",
"
49
\n",
"
6465
\n",
"
1240
\n",
"
MINI
\n",
"
0.66
\n",
"
Morrison Park
\n",
"
Morrison
\n",
"
None
\n",
"
28667.633148
\n",
"
680.142299
\n",
"
POLYGON ((572460.118 290317.086, 572465.604 29...
\n",
"
Marquette Neighborhood Association
\n",
"
0
\n",
"
\n",
"
\n",
"
56
\n",
"
6472
\n",
"
1100
\n",
"
OPEN SPACE
\n",
"
7.66
\n",
"
Yahara River Parkway
\n",
"
Yahara River
\n",
"
None
\n",
"
333593.558197
\n",
"
13219.124814
\n",
"
MULTIPOLYGON (((572463.071 290603.880, 572425....
\n",
"
Marquette Neighborhood Association
\n",
"
0
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" OBJECTID_left Park_ID Type Acreage \\\n",
"6 6422 1360 NEIGHBORHOOD 6.08 \n",
"12 6428 3540 TRAFFICWAY 0.10 \n",
"19 6435 3480 TRAFFICWAY 0.12 \n",
"49 6465 1240 MINI 0.66 \n",
"56 6472 1100 OPEN SPACE 7.66 \n",
"\n",
" Park_Name ShortName Subtype SHAPESTArea \\\n",
"6 Yahara Place Park Yahara Place None 264814.254303 \n",
"12 Few Street (South) Street End Few St None 4522.502594 \n",
"19 Baldwin Street End Baldwin St None 5319.010742 \n",
"49 Morrison Park Morrison None 28667.633148 \n",
"56 Yahara River Parkway Yahara River None 333593.558197 \n",
"\n",
" SHAPESTLength geometry \\\n",
"6 4619.706039 POLYGON ((572969.327 290871.975, 572979.154 29... \n",
"12 270.158029 POLYGON ((572000.229 289978.256, 572017.381 28... \n",
"19 294.682954 POLYGON ((572164.248 290098.321, 572179.960 29... \n",
"49 680.142299 POLYGON ((572460.118 290317.086, 572465.604 29... \n",
"56 13219.124814 MULTIPOLYGON (((572463.071 290603.880, 572425.... \n",
"\n",
" NEIGHB_NAME index_right \n",
"6 Marquette Neighborhood Association 0 \n",
"12 Marquette Neighborhood Association 0 \n",
"19 Marquette Neighborhood Association 0 \n",
"49 Marquette Neighborhood Association 0 \n",
"56 Marquette Neighborhood Association 0 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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T0/HvHnzMH/+fHTs2BEXLlzAokWL8NlnnyEuLg4VK1ZE3bp1MXDgwHz7NjAwQIsWLbB582Y8ePAA6enpqFq1Kr766it8+eWXirjhw4ejatWq+PnnnzFhwgS8evUKVlZWaNSokdIj+g0bNsSFCxcwb948zJ49G69evYKNjQ06deoEPT09AED16tWxfPly/Prrr+jQoQMyMzOxfv16tGrVCmZmZvj555/x7Nkz6OnpwcHBARs2bMCoUaOKfb8SkTKJEEKoOwkiIiIideBTY0RERKSxWAgRERGRxmIhRERERBqLhRARERFpLBZCREREpLFYCBEREZHG4jhC+ZDL5Xj27BlMTExyHKafiIiISh8hBF69egWZTAYtrdzP+7AQysezZ89gZ2en7jSIiIioCB4/fpznpMgshPJhYmICIGtHmpqaqjkbIiIiKojExETY2dkpfsdzw0IoH28vh5mamrIQIiIiKmPyu62FN0sTERGRxmIhRERERBqLhRARERFpLBZCREREpLFYCBEREZHGYiFEREREGouFEBEREWksFkJERESksVgIERERkcZiIUREREQai4UQERERaSwWQkRERKSxOOkqaY7ECCDjlbqzICKif9MxAUxrqm/zatsykSolRgCHaqk7CyIiyknP22orhlgIkWZ4eyao1RZAWke9uRARUZaEG0DgcLWerWchRJpFWgewaKLuLIiIqJTgzdJERESksVgIERERkcZiIUREREQai4UQERERaSwWQkRERKSxWAgRERGRxmIhREQqI5fL1Z0CEZESFkJEpBIXwyNgWqUGvvrlT3WnQkSkwEKIiErc3UeR6NClK5KiHuDnLyehietAJCYlqzstIiIWQkRUsm7cf4xGrdohOfqhoi302C7Y1W6EMxeuqjEzIiIWQkRUwoZP/hyvn93N1p74JAKd27fipTIiUisWQkRUIhKTktGi5zCEeO/MNUaemoyfv5wEp+6DeKmMiNSChRARlYhf/vbChcPbChQb4r0T0xYsLeGMiIiyYyFERCVCW6vgXy/Vm3bEuh/nlGA2REQ5YyFERCWiS+tmACT5xpnIPsT543uhVYjCiYiouPCbh4hKRFunerD8sEGeMTrGUhw/ehCVzKUqyoqISBkLISIqMV9//Q0kuvo5LpNo62Dl+m1o2aC2irMiInqHhRARlZjPRvfDrkMnoGdmlW3Z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",
"text/plain": [
"
"
],
"text/plain": [
" geometry index_right \\\n",
"0 POLYGON ((573100.000 290000.000, 573100.000 29... 35 \n",
"0 POLYGON ((573100.000 290000.000, 573100.000 29... 12 \n",
"0 POLYGON ((573100.000 290000.000, 573100.000 29... 92 \n",
"\n",
" OBJECTID_left Park_ID Type Acreage \\\n",
"0 6451 3590 TRAFFICWAY 0.08 \n",
"0 6428 3540 TRAFFICWAY 0.10 \n",
"0 6509 1000 MINI 3.58 \n",
"\n",
" Park_Name ShortName Subtype SHAPESTArea \\\n",
"0 Paterson Street (North) Street End Paterson St None 3549.678101 \n",
"0 Few Street (South) Street End Few St None 4522.502594 \n",
"0 Orton Park Orton None 156086.664276 \n",
"\n",
" SHAPESTLength NEIGHB_NAME \n",
"0 239.046579 Tenney-Lapham Neighborhood Association \n",
"0 270.158029 Marquette Neighborhood Association \n",
"0 1712.836076 Marquette Neighborhood Association "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sj = show_predicate(bounds, isthmus_parks, 'overlaps')\n",
"sj.head()"
]
},
{
"cell_type": "markdown",
"id": "fb9476f2",
"metadata": {},
"source": [
"## TEST YOUR SKILLS _OPTIONAL_\n",
"We have an Excel file that contains a crosswalk between SPECIES number as provided and species name. Can we bring that into our dataset and evaluate some conclusions about tree species by neighborhood?\n",
"- start with the `trees_with_hoods` GeoDataFrame\n",
"- load up and join the data from datapath / 'Madison_Tree_Species_Lookup.xlsx'\n",
"- hint: check the dtypes before merging - if you are going to join on a column, the column must be the same dtype in both dataframes\n",
"- Make a multipage PDF with a page for each neighborhood showing a bar chart of the top ten tree species (by name) in each neighborhood\n",
"- Make a map (use explore, or save to SHP or geojson) showing the neighborhoods with a color-coded field showing the most common tree species for each neighborhood\n",
"\n",
"You will need a few pandas operations that we have only touched on a bit: \n",
"\n",
"`groupby`, `count`, `merge`, `read_excel`, `sort_values`, `iloc`"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f7586c06",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
SPECIES
\n",
"
DIAMETER
\n",
"
geometry
\n",
"
index_right
\n",
"
NEIGHB_NAME
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
554
\n",
"
22.0
\n",
"
POINT (569406.122 285635.225)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
\n",
"
\n",
"
1
\n",
"
554
\n",
"
20.0
\n",
"
POINT (569391.615 285635.545)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
\n",
"
\n",
"
2
\n",
"
320
\n",
"
14.0
\n",
"
POINT (569383.333 285772.643)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
\n",
"
\n",
"
3
\n",
"
320
\n",
"
20.0
\n",
"
POINT (569407.725 285782.686)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
\n",
"
\n",
"
4
\n",
"
320
\n",
"
20.0
\n",
"
POINT (569431.459 285792.707)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SPECIES DIAMETER geometry index_right \\\n",
"0 554 22.0 POINT (569406.122 285635.225) 6 \n",
"1 554 20.0 POINT (569391.615 285635.545) 6 \n",
"2 320 14.0 POINT (569383.333 285772.643) 6 \n",
"3 320 20.0 POINT (569407.725 285782.686) 6 \n",
"4 320 20.0 POINT (569431.459 285792.707) 6 \n",
"\n",
" NEIGHB_NAME \n",
"0 Bram's Addition Neighborhood Association \n",
"1 Bram's Addition Neighborhood Association \n",
"2 Bram's Addition Neighborhood Association \n",
"3 Bram's Addition Neighborhood Association \n",
"4 Bram's Addition Neighborhood Association "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# read back in the trees and hoods data\n",
"trees = gp.read_file(datapath / 'Street_Trees.geojson', index_col=0)\n",
"trees.to_crs(hoods.crs, inplace=True)\n",
"trees_with_hoods = trees[['SPECIES','DIAMETER','geometry']].sjoin(hoods[['NEIGHB_NAME','geometry']])\n",
"trees_with_hoods.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d3f3da2b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Code
\n",
"
Description
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
768
\n",
"
Cherry 'Pink Flair'
\n",
"
\n",
"
\n",
"
1
\n",
"
769
\n",
"
Amur Chokecherry
\n",
"
\n",
"
\n",
"
2
\n",
"
762
\n",
"
Black Cherry
\n",
"
\n",
"
\n",
"
3
\n",
"
666
\n",
"
Crabapple 'Adirondack'
\n",
"
\n",
"
\n",
"
4
\n",
"
665
\n",
"
Crabapple 'Sugar Tyme'
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
248
\n",
"
800
\n",
"
Oak Spp.
\n",
"
\n",
"
\n",
"
249
\n",
"
681
\n",
"
White Mulberry
\n",
"
\n",
"
\n",
"
250
\n",
"
680
\n",
"
Mulberry Spp.
\n",
"
\n",
"
\n",
"
251
\n",
"
805
\n",
"
Buckthorn Spp.
\n",
"
\n",
"
\n",
"
252
\n",
"
804
\n",
"
Swamp White Oak
\n",
"
\n",
" \n",
"
\n",
"
253 rows × 2 columns
\n",
"
"
],
"text/plain": [
" Code Description\n",
"0 768 Cherry 'Pink Flair'\n",
"1 769 Amur Chokecherry\n",
"2 762 Black Cherry\n",
"3 666 Crabapple 'Adirondack'\n",
"4 665 Crabapple 'Sugar Tyme'\n",
".. ... ...\n",
"248 800 Oak Spp.\n",
"249 681 White Mulberry\n",
"250 680 Mulberry Spp.\n",
"251 805 Buckthorn Spp.\n",
"252 804 Swamp White Oak\n",
"\n",
"[253 rows x 2 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# now read the excel file with tree species lookup - might need to fiddle with skiprows parameter\n",
"tree_species = pd.read_excel(datapath / 'Madison_Tree_Species_Lookup.xlsx', \n",
" skiprows = 6)\n",
"tree_species"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "97cbc192",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Code int64\n",
"Description object\n",
"dtype: object"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check out the data types \n",
"tree_species.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "5b67ef41",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SPECIES object\n",
"DIAMETER float64\n",
"geometry geometry\n",
"index_right int64\n",
"NEIGHB_NAME object\n",
"dtype: object"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trees_with_hoods.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "70f9b0b6",
"metadata": {},
"outputs": [],
"source": [
"# d'oh! Code in tree_species and SPECIES in trees_with_hoods are different types.\n",
"# To make them consistent, let's convert SPECIES in trees_with_hoods to int\n",
"trees_with_hoods.SPECIES = [int(i) for i in trees_with_hoods.SPECIES]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a89989b2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SPECIES int64\n",
"DIAMETER float64\n",
"geometry geometry\n",
"index_right int64\n",
"NEIGHB_NAME object\n",
"dtype: object"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trees_with_hoods.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "69fb939b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
SPECIES
\n",
"
DIAMETER
\n",
"
geometry
\n",
"
index_right
\n",
"
NEIGHB_NAME
\n",
"
Code
\n",
"
Description
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
554
\n",
"
22.0
\n",
"
POINT (569406.122 285635.225)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
554
\n",
"
Honeylocust Var.
\n",
"
\n",
"
\n",
"
1
\n",
"
554
\n",
"
20.0
\n",
"
POINT (569391.615 285635.545)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
554
\n",
"
Honeylocust Var.
\n",
"
\n",
"
\n",
"
2
\n",
"
554
\n",
"
8.0
\n",
"
POINT (569453.239 285930.349)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
554
\n",
"
Honeylocust Var.
\n",
"
\n",
"
\n",
"
3
\n",
"
554
\n",
"
17.0
\n",
"
POINT (569463.866 285930.348)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
554
\n",
"
Honeylocust Var.
\n",
"
\n",
"
\n",
"
4
\n",
"
554
\n",
"
20.0
\n",
"
POINT (569478.882 285930.117)
\n",
"
6
\n",
"
Bram's Addition Neighborhood Association
\n",
"
554
\n",
"
Honeylocust Var.
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
109750
\n",
"
976
\n",
"
19.0
\n",
"
POINT (568756.395 285356.696)
\n",
"
11
\n",
"
Burr Oaks Neighborhood Association
\n",
"
976
\n",
"
Elm 'Regal'
\n",
"
\n",
"
\n",
"
109751
\n",
"
976
\n",
"
15.0
\n",
"
POINT (568814.361 285356.511)
\n",
"
11
\n",
"
Burr Oaks Neighborhood Association
\n",
"
976
\n",
"
Elm 'Regal'
\n",
"
\n",
"
\n",
"
109752
\n",
"
976
\n",
"
10.0
\n",
"
POINT (568827.546 285356.119)
\n",
"
11
\n",
"
Burr Oaks Neighborhood Association
\n",
"
976
\n",
"
Elm 'Regal'
\n",
"
\n",
"
\n",
"
109753
\n",
"
80
\n",
"
4.0
\n",
"
POINT (566329.451 283988.236)
\n",
"
2
\n",
"
Arbor Hills Neighborhood Association
\n",
"
80
\n",
"
Dawn Redwood
\n",
"
\n",
"
\n",
"
109754
\n",
"
80
\n",
"
4.0
\n",
"
POINT (566329.451 283988.236)
\n",
"
2
\n",
"
Arbor Hills Neighborhood Association
\n",
"
80
\n",
"
Dawn Redwood
\n",
"
\n",
" \n",
"
\n",
"
109755 rows × 7 columns
\n",
"
"
],
"text/plain": [
" SPECIES DIAMETER geometry index_right \\\n",
"0 554 22.0 POINT (569406.122 285635.225) 6 \n",
"1 554 20.0 POINT (569391.615 285635.545) 6 \n",
"2 554 8.0 POINT (569453.239 285930.349) 6 \n",
"3 554 17.0 POINT (569463.866 285930.348) 6 \n",
"4 554 20.0 POINT (569478.882 285930.117) 6 \n",
"... ... ... ... ... \n",
"109750 976 19.0 POINT (568756.395 285356.696) 11 \n",
"109751 976 15.0 POINT (568814.361 285356.511) 11 \n",
"109752 976 10.0 POINT (568827.546 285356.119) 11 \n",
"109753 80 4.0 POINT (566329.451 283988.236) 2 \n",
"109754 80 4.0 POINT (566329.451 283988.236) 2 \n",
"\n",
" NEIGHB_NAME Code Description \n",
"0 Bram's Addition Neighborhood Association 554 Honeylocust Var. \n",
"1 Bram's Addition Neighborhood Association 554 Honeylocust Var. \n",
"2 Bram's Addition Neighborhood Association 554 Honeylocust Var. \n",
"3 Bram's Addition Neighborhood Association 554 Honeylocust Var. \n",
"4 Bram's Addition Neighborhood Association 554 Honeylocust Var. \n",
"... ... ... ... \n",
"109750 Burr Oaks Neighborhood Association 976 Elm 'Regal' \n",
"109751 Burr Oaks Neighborhood Association 976 Elm 'Regal' \n",
"109752 Burr Oaks Neighborhood Association 976 Elm 'Regal' \n",
"109753 Arbor Hills Neighborhood Association 80 Dawn Redwood \n",
"109754 Arbor Hills Neighborhood Association 80 Dawn Redwood \n",
"\n",
"[109755 rows x 7 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# now we can merge - check out the left_on, right_on args\n",
"trees_final = trees_with_hoods.merge(tree_species, left_on='SPECIES', right_on='Code')\n",
"trees_final"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "6b021718",
"metadata": {},
"outputs": [],
"source": [
"# now the multipage plots\n",
"with PdfPages(datapath / 'TreePlots.pdf') as outpdf:\n",
" # first groupby neighborhoods \n",
" for cn, cg in trees_final.groupby('NEIGHB_NAME'):\n",
" #then, for each neighborhood, group by \"Description\" to get counts by name\n",
" counts = cg.groupby('Description')['SPECIES'].count()\n",
" # sort them in reverse value\n",
" counts.sort_values(ascending=False, inplace=True)\n",
" #make a bar chart of the top ten counts\n",
" counts[:10].plot.bar()\n",
" # set up a title\n",
" plt.title(f'top 10 trees in {cn}')\n",
" # when the x-axis labels are long they can get cut off. tight_layout can help\n",
" plt.tight_layout()\n",
" outpdf.savefig()\n",
" plt.close('all')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "e851aac3",
"metadata": {},
"outputs": [],
"source": [
"# we can do this in an extra-pythonic way as well, chaining operations together\n",
"# advantage is it's faster to run but can be harder to initially understand and debug\n",
"with PdfPages(datapath / 'TreePlots.pdf') as outpdf:\n",
" # first groupby neighborhoods \n",
" for cn, cg in trees_final.groupby('NEIGHB_NAME'):\n",
" cg.groupby('Description')['SPECIES'].count().sort_values(ascending=False)[:10].plot.bar()\n",
" # set up a title\n",
" plt.title(f'top 10 trees in {cn}')\n",
" # when the x-axis labels are long they can get cut off. tight_layout can help\n",
" plt.tight_layout()\n",
" outpdf.savefig()\n",
" plt.close('all')"
]
},
{
"cell_type": "markdown",
"id": "ee27c8c2",
"metadata": {},
"source": [
"### Now let's find the most common tree species in each neighborhood and make a map. There are some [\"sophisticated\" ways](https://stackoverflow.com/questions/52243060/get-row-value-of-maximum-count-after-applying-group-by-in-pandas) using lots of pandas intrinsic functionality that can work, but we can also do it in a few (hopefully) logical explicit steps. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "36c9b2ef",
"metadata": {},
"outputs": [],
"source": [
"# we can make a couple empty lists and just append the neighborhood name and the index of the \n",
"# maximum occurring tree species in each in a loop. Still some \"cleverness\"\n",
"hood = []\n",
"max_tree = []\n",
"for cn, cg in trees_final.groupby('NEIGHB_NAME'):\n",
" hood.append(cn)\n",
" max_tree.append(cg.groupby('Description').count().sort_values(by='SPECIES', ascending=False).iloc[0].name)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "6586df5e",
"metadata": {},
"outputs": [],
"source": [
"# make a dataframe with these values\n",
"mts = pd.DataFrame(index=hood, data={'max_tree':max_tree})"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "a9a6b6e9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
Make this Notebook Trusted to load map: File -> Trust Notebook