{ "cells": [ { "cell_type": "markdown", "id": "1eb9cb43-692a-4d8c-83d2-85065aa4e1ae", "metadata": {}, "source": [ "# Breaking Bad, Albuquerque\n", "Let's get some free city data for Albuquerque, NM and make a heatmap of where in town most Breaking Bad filming took place" ] }, { "cell_type": "code", "execution_count": 1, "id": "cc1d171e-aab1-4982-a03b-28c72e4eb021", "metadata": {}, "outputs": [], "source": [ "import geopandas as gp\n", "from pathlib import Path\n", "import fiona\n", "fiona.drvsupport.supported_drivers['libkml'] = 'rw' # enable KML support which is disabled by default\n", "fiona.drvsupport.supported_drivers['LIBKML'] = 'rw' # enable KML support which is disabled by default\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "d8485fb9-0c3f-4f8d-b7c5-2fd891c577b5", "metadata": {}, "outputs": [], "source": [ "# data from https://www.cabq.gov/abq-data/" ] }, { "cell_type": "code", "execution_count": 3, "id": "04b18ca6-1224-4b8d-8ae7-61ec13ec7953", "metadata": {}, "outputs": [], "source": [ "datapath = Path('../data/geopandas/abq/')" ] }, { "cell_type": "markdown", "id": "ce611231-207c-4572-94cb-fc800c4387b3", "metadata": {}, "source": [ "### here we have to do a bunch of data munging - this is always a big part of any data project" ] }, { "cell_type": "code", "execution_count": 4, "id": "7e6ef5b9-afd4-4e04-a03a-7588bf6be72c", "metadata": {}, "outputs": [], "source": [ "gdf = gp.read_file(datapath / 'abq_films.geojson')\n", "gdf = gdf.loc[gdf.geometry != None] # there are some missing geometries, so we can skip those\n", "gdf['Title'] = gdf['Title'].apply(lambda x:x.strip()) # let's strip off extra spaces from the Titles field\n", "gdf.Title = ['In Plain Sight' if \"Plain Sight\" in i else i for i in gdf.Title]\n", "gdf['Year'] = [i.year for i in gdf.ShootDate]\n", "gdf = gdf.drop(columns='ShootDate') # something with this " ] }, { "cell_type": "markdown", "id": "69d88a70-e721-422e-a304-b2139b534e20", "metadata": {}, "source": [ "### what are the top 20 projects filming in ABQ?" ] }, { "cell_type": "code", "execution_count": 5, "id": "3e691881-5402-4445-a315-7aafd370b6fa", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAI2CAYAAAB60XNuAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAf8lJREFUeJztnQW8HOX1vycQCNAEKFac4OVfPLgVKRqsKVa8SKAULcWCleLuXqBYgaDBHVooEBKkDVq8wT1Bgs//87z9ze3cze6VnZm9s3uf5/MZcu/eZWVm3vc97znfc06fOI7jSERERKRETNLTH0BERESkEg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipaNv1KT88MMP0dtvvx0NGDAg6tOnT09/HBEREekClF/77LPPollnnTWaZJJJWs9AwTiZY445evpjiIiISB2MHTs2mn322VvPQMFzknzBqaeeuqc/joiIiHSB8ePHBwdDso63nIGShHUwTjRQREREmovO5BmKZEVERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHX2jFmTggbd16/mvHze4sM8iIiIi3UcPioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhIaxgon3zySfTBBx90+Jwvv/wyeu2116Kvv/4603NERESk99EtA+Waa66JFltssWjeeeeNFlpooWjgwIHRiBEjJnrewQcfHE0//fTRcsstF/499dRT63qOiIiI9E66ZaA8+uij0RVXXBF9/PHHwYPy29/+Ntpss82iF198se05f/nLX6LTTjstevDBB6P33nsvGj58eLTffvtFd911V7eeIyIiIr2XPnEcx/X+z99//3005ZRTRuecc0600047hceWX375aP75548uu+yytuetscYa0dRTTx3deOONXX5OZ4wfPz6aZppponHjxoX/L83AA2/r1vd4/bjB3Xq+iIiI1EdH63duItmXX345+vbbb6PZZ589/P7DDz9ETz75ZAjbpFlhhRWiJ554osvPERERkd5N33r/RwyTnXfeOVpiiSWiNddcMzz22WefRd988000wwwztHsuv3/44Yddfk41ENKmxbRYYCIiItKaTFJvaGebbbYJGTg33HBDNOmkk4bHk38xQNJgWPTt27fLz6nGscceG1xCyTHHHHPU89FFRESkFQ0UjJNtt902evjhh6MHHnggZPIk9O/fP5p22mmjd955p93/8+6777aFgbrynGocdNBBIV6VHGPHju3uRxcREZFWNFDQj2y33XbR3/72t2CczDfffBM9Z9VVV43uvPPOtt/R4N5+++3h8e48p5J+/foFMU36EBERkdakWxqUHXfcMdQ9ueqqq4In5YUXXmjTjySakkMOOSQIXocNGxZtsMEG0aWXXhq8JX/4wx/aXqcrzxEREZHeS7c8KGTfzDbbbMGQ2HjjjduOq6++uu05gwYNiu67775ozJgx0a677hqEr3//+9+jeeaZp1vPERERkd5LpjooPYl1UERERJqPhtRBERERESkCDRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR09O3pD9CsDDzwtm49//XjBhf2WURERFoNPSgiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdfev5n+I4jr744otoiimmiPr2bf8S3377bfT111+3e6xPnz7Rj370o6qvxfMnm2yyej6GiIiItCjd8qB88skn0amnnhr99Kc/jQYMGBBdffXVEz3n+OOPj6aZZppo5plnbjsWXHDBiZ537rnnRrPOOmswcgYOHBhdc8012b6JiIiI9E4DZfjw4dEbb7wRjRgxosPnLb300tHnn3/edrz55pvt/s7/v9dee0VnnXVW9OWXX0bDhg2Lttpqq+jRRx+t71uIiIhI7w3x7LLLLl1+7vfffx9NMskkIbxTyWmnnRZttNFG0ZAhQ8LvQ4cOjS655JLojDPOiJZffvnufCQRERFpQQoRyT755JPRVFNNFfXv3z/6+c9/Hj3++OPt9CsjR46MVllllXb/z2qrrRY99thjRXwcERER6e0Gypxzzhldf/310bhx46LXX389mn/++aPVV189evXVV8PfP/vss2jChAnRjDPO2O7/4/f333+/5usivB0/fny7Q0RERFqT3A2UbbfdNtpggw2C+BWj47zzzot+/OMfRxdddFG75/3www8T/V4tHJRw7LHHBvFtcswxxxx5f3QRERHpLXVQSEOeb7752jwoZP8Q+qn0lvD7LLPMUvN1DjrooOCVSY6xY8cW/dFFRESkVQ2Ur776Knr++efbPB54SVZcccXovvvua/e8e+65J1pppZVqvk6/fv2iqaeeut0hIiIirUm3DBQyc5LU4UQXws/pwmyDBw+Obr/99uidd96JxowZE22xxRZBc7Lrrru2PWf//feP7rjjjuicc84JnpAjjzwyevbZZ6N99tknz+8mIiIivcFAeeihh9qKr1EZllom/Lzvvvu2Peeoo44KehNqofzqV78K4Zwnnngimmeeedqeg2iWwmwXXnhhtPjii0e33XZbOBZddNF8v52IiIi0fh2UVVddtc17UoslllgiZPF0BsYLh4iIiEglNgsUERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiJSOjRQREREpHRooIiIiEjp0EARERGR0qGBIiIiIqVDA0VERERKhwaKiIiIlA4NFBERESkdGigiIiLS3AbKt99+G1177bXR6quvHk077bTR8OHDqz5vxIgR0TLLLBP95Cc/iVZaaaXowQcfrOs5IiIi0jvploFy1llnRddcc000bNiwaNy4cdE333wz0XP+9re/RZtsskm09dZbR4899lgwZtZZZ53omWee6dZzREREpPfSJ47juKtP5ql9+vT57//Yp090+eWXByMjzXrrrRdNMskk0a233tr22BJLLBGOiy++uMvP6Yzx48dH00wzTTCUpp566nZ/G3jgbVF3eP24wd16fqPeQ0REpNXoaP2u24OSGCcd8fDDD0drrLFGu8fWXHPN8Hh3niMiIiK9l755W0WfffZZ0JWkmWmmmaK33367y8+pxtdffx2O9HuJiIhIa1JIFg/hmzR9+/YN4aHuPifNscceG1xCyTHHHHPk/KlFRESkJQ2UAQMGRFNOOWX04Ycftnv8/fffDx6Srj6nGgcddFCIVyXH2LFj8/zoIiIi0qoGChqVpZdeOnrooYfaPU7WzrLLLtvl51SjX79+QUyTPkRERKQ1yT3Es9dee0U33XRTdPPNN0ffffdddMkll0QjR46M9thjj249R0RERHov3TJQ8HJQoI0Ddtlll/Dznnvu2facIUOGRCeddFK04447RlNMMUV06KGHRpdeemm04oordus5IiIi0nvpVh0UvB2ff/551fALupJKJkyYUPXx7j6nGtZBERERad06KN1KMybTJvGedIWuGB71GCciIiLS2tgsUEREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREpH357+AFKbgQfe1q3T8/pxgz2dIiLSEuhBERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdJhJdleTHcr1YLVakVEpBHoQREREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUjr49/QGktRl44G3d/n9eP25wIZ9FRESaBz0oIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdY3UC644IJo4YUXbnessMIKEz3v0UcfjYYMGRINGjQo2mKLLaJnnnkm748iIiIiTUru3Yzff//9aNJJJ42uvPLKtsf4Pc1TTz0VrbbaatGee+4Z7bPPPtGll14arbTSStHTTz8dDRw4MO+PJCIiIr3dQIEpp5wyeE5qcdRRR0XLL798dMIJJ4TfMU4eeuih6KSTTorOOuusIj6SiIiI9HYNyksvvRQMELwkBxxwQPTxxx+3+/sDDzwQrbfeem2/9+nTJ/zO4yIiIiK5e1D69esX7brrrtE666wTffrpp9HRRx8dXXPNNdG//vWvaOqpp46++OKL6JNPPolmmWWWdv8fv48dO7bm63799dfhSBg/frxXT0REpEXJ3UBBU9K37/9eduWVV47mmWee6JxzzokOPPDA6LvvvguPTz755BMZNt9++23N1z322GOjI444Iu+PKyIiIr0hxJM2TmDaaaeNFl100bYsnQEDBgTj5KOPPmr3PH6fYYYZar7uQQcdFI0bN67t6MjbIiIiIs1NQ+qgvPXWWyG8E95wkkmixRdfPBo5cmS75zzyyCMh5bgWeFh4jfQhIiIirUnuBsphhx0Wffjhh+Hn77//PoRlXn311WirrbZqe84uu+wSXXfdddETTzwRfr/77rujBx98MBo6dGjeH0dERESakNw1KHPOOWe0xBJLBE8JYtiZZpopuv7666MVV1yx7Tk77LBD9OKLL4bHpp9++vA8NCbpzB4RERHpveRuoOy0007hePPNN6Opppoqmm666ao+7/jjj48OOeSQ6N13341mm2228FwRERGRQgyUhNlnn73T5yCY5RARERFJY7NAERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR19e/oDiGRl4IG3dev5rx832JMuIlJy9KCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESociWZGSCHEV+4qI/A89KCIiIlI69KCI9BK666EBU7JFpKfQgyIiIiKlQwNFRERESochHhHJDcNIIpIXelBERESkdOhBEZGmwpRvkd6BBoqISA9g3RuRjjHEIyIiIqVDD4qISAuiYFmaHT0oIiIiUjr0oIiISGm9NIqiey8aKCIiIgVTtKE1sAVbWRjiERERkdKhB0VERERK56XRgyIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6dBAERERkdKhgSIiIiKlQwNFRERESocGioiIiJQODRQREREpHRooIiIiUjo0UERERKR0aKCIiIhI6egxA+XFF1+Mdtttt2jw4MHR3nvvHY0dO7anPoqIiIiUjB4xUP79739HyyyzTPTFF19E22+/ffTaa6+F3999992e+DgiIiJSMnrEQPnTn/4U/fSnP40uvfTSaNNNN42uu+66qF+/ftHJJ5/cEx9HRERESkaPGCh33313tNFGG7X9Ptlkk0Xrr79+eFxERESkb6NPwZdffhl98MEH0eyzz97ucX5//fXXa/5/X3/9dTgSxo0bF/4dP378RM/94esvu/WZqr1GZ7TCe3T39VvlPcp4LRrxHmW8Fo14jzJei0a8RxmvRSPeo4zXohHv8UMJr0Wt90gei+O44/85bjCffPIJnygePnx4u8dPP/30eIoppqj5/x1++OHh//PwHHgPeA94D3gPeA9ETX8Oxo4d26G90HAPSv/+/aO+fftGH3/8cbvHP/roo+jHP/5xzf/voIMOin7/+9+3/f7DDz+E15h++umjPn36dPq+WGxzzDFHyBaaeuqpM34L38Pz5D3luHAOca51zRhfx9qK5+Szzz6LZp111g6f13ADBeNk4YUXjp588sl2j/P74osvXvP/Q0TLkWbaaaft9vtzAosyUHwPz5P3lOPCOcS5tjeuGVN38/WnmWaacopkSS2+9tpro5dffjn8Pnr06CCQ5XERERGRhntQYPfddw8ek8UWWyykGz/33HPR7373u2izzTbzioiIiEjPGCiTTjppqIFCPZT//Oc/0bzzzttpLCorhIcOP/zwicJEvkfjz5XXonedq1b4Dr6H58l7qvFjrw9K2dxfVURERCQDNgsUERGR0qGBIiIiIqWjZQ2Ub7/9NjrnnHO6/TcphnQV4GZ8fZEiIFngoYce6vbfusNdd90VvfDCC93+W3e47LLLok8++aTbf+ttNOJ6txIta6CwYO2///41/3bAAQc0/DP1Vijk85Of/KTQ92Bgzz///NExxxwTvfXWW1HRvP/++6FlQ7Ny0UUXtXUPJ91/tdVWiwYNGhTdfvvtubw+m4BTTz01+u6778Lv9913X7TEEktEq666avT8889HzcItt9wSjRkzJvz86aefRkOGDIkWWWSR6Nxzz83l9e+///5oxIgRNf928803Z36Pyy+/PJRyqPW3J554IvN7MO7ee++9mn9jvEhjrncj+f7776PXXnst+uabbwp5/ZY1UDqCnj9UoK2HRx99NPQN6spBp+Y8uPLKK0NKNkVwpphiinYHFXazgk76qKOOihZYYIHoRz/60UTvcdVVV2WuHsyNTB+m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5UFLGyivvPJKmPRZPPr169fumH766XN5Dyb4GWecMd5vv/3CxHvKKafEa6+9djzllFPGo0aNyvz6l156afj8ffr0ieeZZ554scUWa3fwfvUwbNiwdq/DZD/ZZJOFgV75HrfddlucFxMmTIhffvnlOG/uueeeeMCAAfFOO+0UP/bYYzWf99xzz4VJol7WXHPNeNlll43XWWedcJ257jPMMEO8yiqrZBqUn376aTzXXHMFg7QSJv1f//rXbEkKn9zy4uuvv85tkqoFEyQLytChQ+Nzzz03Puuss+Jtttkm3MeJEcR5u/rqq+t6fc47BmLRvPnmm2HC//GPfxyuMWOReeWll16q+zWPO+64ePnll4//+te/xiuvvHK85557xtdee23VI4+F7O67747XWmutia4512SPPfaI8+CYY44J8+rOO+/cdr233nrrcL1ZGPOA9WKmmWaK999//3bzOWsG8wrz1zLLLBM/88wzdb3+FVdcET5zkQwbNqzw+RyDZNpppw3z7cwzzxwfdNBB8WabbRbWKQzGvGjpUve4aAkfIIitbO2MC6ze2GgaskQuvPDCEFJAKMb7LLPMMsGFXinQrQfSAzty7+PGRafQXRA30aSxK+DSJIadBeLUxG6JXeIGRm8BxJPRhxC7zAKvxzVNQiRFQSgH/QnCPEJJhGJ++ctfhpACivYsoM/BVV7NFY+LG/0MgsNm6PrN50QfkscY6AjeA+Hkv//97xDK+NnPfhY0A4nIl/OGFqIeTjjhhBBPTws184bwDuGX6aabLowPskUQS3IvPPvss2GM1iMwJROL10Ong/Ca0FSlwD6BcEXWRq0IZPfcc8+J5lRC7eibEOrmEcpFqIz248UXXwzXlXO33377hTBoHqBdRAh9xRVXBCE82hDCMYTzEpF9lnuKeQqdGoJxxLZFcHsnc3se8zmglyO09vDDD4f7GNEwYy8vgWwgblHY/WBBsjOVnocdIjuRBx54ILhqE3A9b7fddrm+F16I//znP7m+ZrOD54VwS1eOm266KfP7EQJ58MEH42aGXTmhkiLBg4E7/quvvmr3+Pfffx/OIV6CrDQixLP44ovHDz30UNW/TTfddFXDJr0RPOJ4aFh6Z5111tw84q1Ky4lkE7Bw2XkULRZqNAisSJ0tonAXljW1MSjcReoYuzCyh9gdZYWMildeeWWiXRxZEXnU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4osvjgYPHhz1798/OuGEE6KrrroqNAdEL7XFFluE0GXZ2WuvvUL12wRS+fEEpUGw/sYbb+TzhrGUnpNPPjmebLLJ4v79+8f77rtveOyll16Kf/azn8XffvttT388ERHpgI8//jgeMGBAfMUVV1T9+5133hlPMcUU8WuvvVbq87jgggvGzz//fM3faz1WL3pQSs4LL7wQxEiIAXENJlAIZ6GFFrLLsYhIybn33ntDKXsyMatBHZ8hQ4aEooPyPzRQSg4lkSlAtcQSS0z0t5/97GchxVJERMoLYRHm647g7+nwiWiglJ5vvvmmrSpfkneeQHYP8UwRESkv0003Xae6DP5uk8v2WEm25Ky66qpB4f2f//ynnYHy4IMPRldeeWX08MMP9+jnExGRjllttdWioUOHBo/48ssvX7W5HvP5P/7xj9Kfyj/+8Y8hPTopg5H+PXksLzRQSgrZOmTq0HOErpGkolHzhKZSDz30UKg4iKJ6qaWW6umPKiIiHUCtqr333jtsOHfeeedo3XXXDRWR33333eiBBx6Izj777FD6frHFFiv1eVx88cVDpeYEmtimf08em3LKKXN5P+uglBSqw3LzJlVi6eVAmjE9DnADokuhkqaIiJQf6p6QXkwV5HHjxrU9PtVUU4XNJpWPabwn/0MDpUkMFBERaX5ow/DUU0+FBnuERkiAwEiRiTHEIyIi0iD69esXLbfccp7vLqCBUmIuuuiiTuuc7LTTTtGBBx7YsM8kIiLSCDRQSswCCywQ1N8dseiiizbs84iIiDQKDZQSs/LKKzdFfwYREZG8sZKsiIiIlA4NFBERESkdphmXFFpYf//999GMM87Y0x9FRESk4WigiIiISOkwxCMiIiKlQwNFRERESocGioiIiJQODRQR6VFoMT969OjMzxGR1sJCbSJSCKNGjYpeeeWVDp9Di/lTTz01mmGGGaKllloqPPbwww+H5mlLLrlk2/MqnyMirY8GiogUAh1b77///rbfhw8fHg0aNCiad9552x771a9+Fa200krRgAED2h6jg/fss8/ezkARkd6HBoqIFMLQoUPDkXDddddFO+64Y7Trrru2e97SSy8dOrwmXpe33normjBhQnT11VeHx9Zdd92qrx/HcfTkk09GY8eOjeaee+5oscUW80qKtBAaKCLSo6TDN3hd3nnnnWjcuHFtnbzxsFTy/vvvRxtvvHH03nvvRQsvvHD0r3/9KxgpI0aMaOeNEZHmRQNFREoDHpfbb789hHjOOuusms/beeedo/nnnz966KGHokknnTT65ptvojXXXDM64ogjQohIRJofDRQRaSo++uij6JZbbomOPPLI6MYbbwyhHo6BAwdGDzzwQE9/PBHJCQ0UEWkq3njjjWCQjBw5MhozZky7vy233HI99rlEJF80UESkqZh66qnDv3/4wx+iVVZZpac/jogUhIXaRKRU9O/fP/rqq69q/n2++eYLx3nnnTfR38gAEpHWQANFREoF2Tx33HFHdOGFF4ZUYzJ6KrnooouCDmWDDTaIzj///OiEE06IVl111eiSSy7pkc8sIvljiEdEGsLmm28ePB+VVBZq22233aLJJpsseuyxx6Ivvvgi/L3yOYR2nnvuuejSSy+NHnnkkWiWWWYJotmVV17ZqynSIvSJUZuJiIiIlAhDPCIiIlI6NFBERESkdGigiIiISOnQQBEREZHSoYEiIiIipUMDRUREREqHBoqIiIiUDg0UERERKR0aKCIiIlI6NFBERESkdGigiIiISOnQQBEREZGobPx/1rL8KGjn+PgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gdf.groupby('Title').count()['Type'].sort_values(ascending=False)[:20].plot.bar()" ] }, { "cell_type": "markdown", "id": "fbbe8751-5a21-46d5-9970-c1647a0b9898", "metadata": {}, "source": [ "### we can just take a look at where Breaking Bad filming events took place as dots on the map" ] }, { "cell_type": "code", "execution_count": 6, "id": "646e80be-53f0-4797-8ae5-eef8d2143286", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf.loc[gdf.Title=='Breaking Bad'].explore()" ] }, { "cell_type": "markdown", "id": "927d8216-86a6-4194-8b92-c9571aa952f4", "metadata": {}, "source": [ "### What are the other titles?" ] }, { "cell_type": "code", "execution_count": 7, "id": "7d9b046d-1e9c-4e83-a60a-661175e9f959", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['0000', '$5 a Day', '10 Years',\n", " '15 Good Reasons to go to Albuquerque', '2 Guns', '50 to 1',\n", " '500 MPH Storm', 'Adam Feldman',\n", " 'Adventures of a Teenage Dragonslayer',\n", " 'Albuquerque Convention and Visitors Bureau',\n", " 'Albuquerque Economic Development', 'All in a Days Work',\n", " 'All of Us', 'As Cool As I Am', 'Beyond the Blackboard',\n", " 'Breaking Bad', 'Camera Obscura', 'Cineflix Productions',\n", " 'CNM Student Film', 'Crash', 'Crazy Heart', 'Danappel Creative',\n", " 'Dark Country', 'Dead Billy', 'Deadly Impact',\n", " 'Desert Gems Productions', 'Desert Vamps 101',\n", " 'Digital Filmmaking Institute', 'Doritos', 'Due Date',\n", " 'Easier With Practice', 'Easy Money', 'Enemy Way',\n", " 'Energy Advances New Mexico', 'Fatal Encounters',\n", " 'Force of Execution', 'Frank', 'Friendship!', 'Frontera', 'Gamer',\n", " 'Goats', 'Good Luck Mr Gorski', 'Great American Road Trip',\n", " 'Habitat for Humanity', 'halflife digital', 'Hamlet 2',\n", " 'Hector Balderas', 'Honeylicious', 'Husband for Hire',\n", " 'In Plain Sight', 'Justice Denied', 'LadyFingers', 'Larsons Field',\n", " 'Legion', 'Lemonade Mouth', 'Let Me In', 'Lone Survivor',\n", " 'Longmire', 'Love Lies Bleeding', \"Love 'n Dancing\", 'Love Ranch',\n", " 'MacGruber', 'Miss Barb', 'Montar la Cabra',\n", " 'Motorcycle vs Car Drift Battle 3 The Driftpocalypse',\n", " 'My One and Only', 'NBC Today Show', 'Never Land', 'Night and Day',\n", " 'NMDOT', 'Not Forgotten', 'Nothing But Besties',\n", " 'Observe and Report', 'Odd Thomas', 'On the Border', 'Outside TV',\n", " \"Pascal's Bullet\", 'Passion Play', 'Paul', 'Putnam Partner LLC',\n", " 'Rags to Rubies', 'Random Natural Occurrence',\n", " 'Rebecca Elise Productions', 'Rio Grande Community Farm',\n", " 'Saige Paints the Sky', 'Saint John of Las Vegas', 'Scoundrels',\n", " 'SOS Commercial Productions', 'Southwest Productions',\n", " 'Sunshine Cleaning', 'Swing Vote', 'Tennessee',\n", " 'Terminator Salvation', 'Terminator: Sarah Connor Chronicles',\n", " 'The Avengers', 'The Book of Eli', 'The Dry Land', 'The Eye',\n", " 'The Eyes of an Enemy', 'The Host',\n", " 'The Incredible Voyage of Captain Hook', 'The Last Stand',\n", " 'The Lying Game', 'The Man App', 'The Men Who Stare at Goats',\n", " 'The New Media Firm', 'The Night Shift', 'The Odds', 'The PayOff',\n", " 'The Resident', 'The Reunion', 'The Southwest Chronicles',\n", " 'The Spy Next Door', 'The War Boys', 'Those That Play Your Clowns',\n", " 'Tiger Eyes', 'Travel Channel', 'Truth Be Told',\n", " 'Untitled Alan Loeb Project', 'Validation', 'Vegas',\n", " 'Warrior Woman', 'Dirty Weekend', \"Hunter's Game\", 'Killer Woman',\n", " 'Killer Women', 'killer Women', 'La Vida Robot', 'Afterwards',\n", " 'Dig', 'Messengers, The', 'Night Shift, The', 'War on Everyone',\n", " 'Endgame (now known as The Player)', 'IDR: Where we are when',\n", " 'Katie Says Goodbye', 'Preacher'], dtype=object)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf['Title'].unique()" ] }, { "cell_type": "code", "execution_count": 8, "id": "6c0c882d-1497-4d84-8fd5-59c28e112e6a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Movie', 'TV Production', 'Movie aka Hypercane', 'Political Ad',\n", " 'Movie aka I was a 7th Grade Dragonslayer', 'Commercial',\n", " 'Commercial by Production Outfitters',\n", " 'Political Ad Martin Heinrich', 'Movie aka Let Them Shine',\n", " 'TV Series Season 2', 'TV Series Season 3', 'TV Series Season 4',\n", " 'TV Series Season 1', 'Movie Duke City Shootout ',\n", " 'Movie CNM Student Film', 'TV Series Season 1 Episode 1',\n", " 'TV Series Season 1 Episode 2', 'TV Series Season 1 Episode 3',\n", " 'TV Series Season 1 Christian and Joe', 'Commercial for Kia',\n", " 'Commercial for Transportation Security Administration',\n", " 'Commercial by Marcia Woske', 'Commercial for Doritos',\n", " 'TV Series', 'TV Series Wicked episode',\n", " 'TV Series Road Warriors episode', 'PSA on DWI',\n", " 'PSA on bicycle safety', 'Commercial for Hard Rock Casino',\n", " 'TV Movie', 'TV Series Season 5', 'Movie by 9 Point Productions',\n", " 'Video', 'TV Series by A& E', 'TV Spot entitled Lend A Hand',\n", " 'TV Series Pilot', 'PSA Anti Drinking Campaign',\n", " 'PSA starring Erik Estrada', 'PSA', 'PSA Crossing Paths',\n", " 'PSA for DWI', 'TV Spot for Outside TV', 'TV Feature by USDA',\n", " 'Movie aka American Girl Saige Paints the Sky', 'PSA for DUI',\n", " 'PSA for NMDOT', 'PSA for NMDOT Seatbelt Safety',\n", " 'Commercial for PNM', 'Commercial by Diane Denish',\n", " 'Movie aka Project Angel', 'TV Pilot', 'Movie aka American Tragic',\n", " 'Movie by Holly Adams Production', 'Movie aka Blood Brothers',\n", " 'Movie by Tripp Townsend and Frozen Frame Productions',\n", " 'TV Spot for The Travel Channel', 'Movie aka The Rabbit Factory',\n", " 'Movie by Cool Cat Productions', 'TV Series Season 5 pt. 2',\n", " 'TV Mini-Series'], dtype=object)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf['Type'].unique()" ] }, { "cell_type": "markdown", "id": "1d96ecb2-ce40-446a-990d-6d22743523ec", "metadata": {}, "source": [ "## read in the zone atlas - this is a grid from the city that is used for zoning, but we can use it as a base for a heatmap as it covers the city with equal-sized squares" ] }, { "cell_type": "code", "execution_count": 9, "id": "9b5e5c62-db6a-490d-95e1-63c3157a950b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf_pg = gp.read_file(datapath / 'zoneatlaspagegrid.kmz')\n", "gdf_pg.explore()" ] }, { "cell_type": "markdown", "id": "c5b9087c-b00d-4095-8a63-96f93b453eb2", "metadata": {}, "source": [ "### we can assign a variable `title_to_plot` to be able to check out heatmaps of any of the titles above" ] }, { "cell_type": "code", "execution_count": 10, "id": "3b7e5652-89f3-42b3-931a-d65e1ad99e18", "metadata": {}, "outputs": [], "source": [ "title_to_plot = 'Breaking Bad'" ] }, { "cell_type": "markdown", "id": "ff353450-af1c-412a-89dd-77d11466812d", "metadata": {}, "source": [ "### Finally, we need to do a few things and set them to intermediate results:\n", "- load a fresh copy of the polygons\n", "- use `sjoin` to intersect the `gdf` points corresponding to the title named in `title_to_plot` which returns only the polygon of intersection for each point in the original point dataframe and convert to the correct CRS. Note that we can use only the columns we need (e.g. `[['Name','geometry']]) as long as `geometry` is included. This makes the results a little cleaner\n", "- next, with that result, use `groupby` to count all the points based on their `Name` column\n", "- count these up, choose a column from the result (we randomly chose `geometry` here) and rename the counts to a column called `points`\n", "- finally merge the column of counts back to the original dataframe of zones noting that we will use `Name` on the left and `index` on the right" ] }, { "cell_type": "code", "execution_count": 11, "id": "07fb6e15-0924-4424-b787-f7c4ba64909d", "metadata": {}, "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", "
idNamedescriptiontimestampbeginendaltitudeModetessellateextrudevisibilitydrawOrdericonsnippetgeometry
0ID_00000A1<html xmlns:fo=\"http://www.w3.org/1999/XSL/For...NaTNaTNaTclampToGround-10-1NaNNoneMULTIPOLYGON Z (((-106.87033 35.21665 0, -106....
1ID_00001A2<html xmlns:fo=\"http://www.w3.org/1999/XSL/For...NaTNaTNaTclampToGround-10-1NaNNoneMULTIPOLYGON Z (((-106.85258 35.21674 0, -106....
2ID_00002A3<html xmlns:fo=\"http://www.w3.org/1999/XSL/For...NaTNaTNaTclampToGround-10-1NaNNoneMULTIPOLYGON Z (((-106.83482 35.21683 0, -106....
\n", "
" ], "text/plain": [ " id Name description timestamp \\\n", "0 ID_00000 A1 \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Namegeometryindex_rightTitle
12A13MULTIPOLYGON Z (((-106.65731 35.21756 0, -106....1370Breaking Bad
60C13MULTIPOLYGON Z (((-106.65716 35.18854 0, -106....1378Breaking Bad
64C17MULTIPOLYGON Z (((-106.58618 35.18876 0, -106....1375Breaking Bad
\n", "" ], "text/plain": [ " Name geometry index_right \\\n", "12 A13 MULTIPOLYGON Z (((-106.65731 35.21756 0, -106.... 1370 \n", "60 C13 MULTIPOLYGON Z (((-106.65716 35.18854 0, -106.... 1378 \n", "64 C17 MULTIPOLYGON Z (((-106.58618 35.18876 0, -106.... 1375 \n", "\n", " Title \n", "12 Breaking Bad \n", "60 Breaking Bad \n", "64 Breaking Bad " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sj_result = gdf_pg[['Name','geometry']].sjoin(\n", " gdf[['Title','geometry']].loc[gdf.Title==title_to_plot].to_crs(gdf_pg.crs))\n", "print(len(sj_result), len(gdf.loc[gdf.Title==title_to_plot]), len(gdf_pg))\n", "sj_result.head(3)" ] }, { "cell_type": "markdown", "id": "7efeaf67-6f03-4204-8735-6413841a8be9", "metadata": {}, "source": [ "Next, with that result, use `groupby` to count all the points based on their `Name` column.\n", "\n", "This gives us counts for each column..." ] }, { "cell_type": "code", "execution_count": 13, "id": "2d119e22-bcb8-4693-bd7e-725af49f599e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "53\n" ] }, { "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", "
geometryindex_rightTitle
Name
G21222
M16222
G20222
H15333
\n", "
" ], "text/plain": [ " geometry index_right Title\n", "Name \n", "G21 2 2 2\n", "M16 2 2 2\n", "G20 2 2 2\n", "H15 3 3 3" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sj_count = sj_result.groupby(\n", " 'Name').count()\n", "print(len(sj_count))\n", "sj_count.sample(4)" ] }, { "cell_type": "markdown", "id": "468ec5ad-7a1b-4a0e-b4a3-b705c499dfdc", "metadata": {}, "source": [ "Count these up, choose a column from the result (we randomly chose `geometry` here)" ] }, { "cell_type": "code", "execution_count": 14, "id": "4d04966b-5f7e-44f7-994c-78e823c10a0d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name\n", "A13 1\n", "C13 1\n", "C17 2\n", "C19 1\n", "D16 5\n", "Name: points, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sj_sum = sj_count.geometry.rename('points')\n", "sj_sum.head()" ] }, { "cell_type": "code", "execution_count": 15, "id": "3f147222-40bf-4a9d-8698-3242a09d86e4", "metadata": {}, "outputs": [], "source": [ "gdf_pg = gdf_pg[['Name','geometry']].merge(sj_sum, left_on='Name', right_index=True)" ] }, { "cell_type": "markdown", "id": "bf2ff361-6350-4b88-a095-02f130806573", "metadata": {}, "source": [ "### Or, we can smack _all_ that work into a single chain (WAT!?)" ] }, { "cell_type": "code", "execution_count": 16, "id": "68a06afc-b668-4fc9-8640-82290ecf23ff", "metadata": {}, "outputs": [], "source": [ "gdf_pg = gp.read_file(datapath / 'zoneatlaspagegrid.kmz') # load a fresh copy of the polygons \n", "gdf_pg = gdf_pg.merge(gdf_pg[['Name','geometry']].sjoin(\n", " gdf[['Title','geometry']].loc[gdf.Title==title_to_plot].to_crs(gdf_pg.crs)).groupby(\n", " 'Name').count().geometry.rename('points'), left_on='Name', right_index=True)" ] }, { "cell_type": "markdown", "id": "1ba52905-a539-472d-893a-917db7807a6d", "metadata": {}, "source": [ "### finally, let's look at the result on the map overlaying the points with the heatmap. Whew!" ] }, { "cell_type": "code", "execution_count": 17, "id": "454c001b-de05-43e5-8b28-f9076a1ea23f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = gdf_pg[['points','geometry']].explore(column='points', cmap='magma_r')\n", "gdf.loc[gdf.Title==title_to_plot][['Site', 'geometry']].explore(m=m)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "47abb704-2dc5-4a22-b628-7a3258a96ae2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "pyclass", "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.14.6" } }, "nbformat": 4, "nbformat_minor": 5 }