Skip to content

Instantly share code, notes, and snippets.

@mbjoseph
Last active March 27, 2019 14:04
Show Gist options
  • Save mbjoseph/75e40aed8627ee69b8b505124b50a69e to your computer and use it in GitHub Desktop.
Save mbjoseph/75e40aed8627ee69b8b505124b50a69e to your computer and use it in GitHub Desktop.
Timing experiments: GeoPandas' overlay() and earthpy's clip_shp
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import geopandas as gpd\n",
"import numpy as np\n",
"import earthpy.clip as ec\n",
"from earthpy.io import path_to_example\n",
"from shapely.geometry import Point"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"plt.rcParams['figure.figsize'] = (12, 8)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"counties = gpd.read_file(path_to_example('colorado-counties.geojson'))\n",
"co_bounds = counties.dissolve(by = 'state_abbr').bounds"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"def random_pts_in_bounds(bounds, n_pts, buffer_dist=0.1):\n",
" \"\"\"Generate random buffered points in spatial bounds\"\"\"\n",
" x = np.random.uniform(co_bounds.minx.values, co_bounds.maxx.values, size=n_pts)\n",
" y = np.random.uniform(co_bounds.miny.values, co_bounds.maxy.values, size=n_pts)\n",
" pt_df = pd.DataFrame({\n",
" 'pt_number': list(range(n_pts)), \n",
" 'Coordinates': list(zip(x, y))\n",
" })\n",
" pt_df['Coordinates'] = pt_df['Coordinates'].apply(Point)\n",
" pt_gdf = gpd.GeoDataFrame(pt_df, geometry='Coordinates',\n",
" crs={\"init\": \"epsg:4326\"})\n",
" return gpd.GeoDataFrame(pt_gdf.buffer(buffer_dist), \n",
" columns=['geometry'],\n",
" crs={\"init\": \"epsg:4326\"})"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5390f24940>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pts = random_pts_in_bounds(co_bounds, 30)\n",
"ax = pts.plot(color='grey', edgecolor='darkred', alpha = .5)\n",
"counties.plot(ax=ax, alpha = .9, facecolor='none')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"def clip(to_clip, clip_shp):\n",
" \"\"\"Alternative clip function\"\"\"\n",
" union = gpd.GeoDataFrame(\n",
" gpd.GeoSeries([clip_shp.unary_union]), \n",
" columns=['geometry'], \n",
" crs=clip_shp.crs\n",
" )\n",
" return gpd.overlay(to_clip, union, how='intersection')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Timing tests:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Increasing the number of polygons being clipped"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"25.4 ms ± 1.41 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"24.3 ms ± 1.73 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"29.9 ms ± 1.66 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"26.6 ms ± 2.26 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"46.4 ms ± 834 µs per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"54.6 ms ± 4.08 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"258 ms ± 22.5 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"307 ms ± 17.1 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"2.16 s ± 159 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n",
"2.79 s ± 145 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)\n"
]
}
],
"source": [
"pt_range = 10 ** np.arange(5)\n",
"earthpy_time = []\n",
"new_clip_time = []\n",
"for pts in pt_range:\n",
" polys = random_pts_in_bounds(co_bounds, pts)\n",
" \n",
" ep_time = %timeit -o -n 5 ec.clip_shp(polys, counties)\n",
" earthpy_time.append(ep_time)\n",
" \n",
" cl_time = %timeit -o -n 5 clip(polys, counties)\n",
" new_clip_time.append(cl_time)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cl_avg = np.array([t.average for t in new_clip_time])\n",
"ep_avg = np.array([t.average for t in earthpy_time])\n",
"\n",
"fig = plt.figure(figsize=(8,5))\n",
"ax = fig.add_subplot(111)\n",
"\n",
"ax.set_title('Clip speed vs. intersection')\n",
"\n",
"plt.plot(pt_range, cl_avg, label='New clip() function')\n",
"plt.fill_between(pt_range, \n",
" [t.best for t in new_clip_time], \n",
" [t.worst for t in new_clip_time], \n",
" alpha = .2)\n",
"plt.plot(pt_range, ep_avg, label='EarthPy clip')\n",
"plt.fill_between(pt_range, \n",
" [t.best for t in earthpy_time], \n",
" [t.worst for t in earthpy_time], \n",
" alpha=.2)\n",
"plt.xlabel('Number of polygons being clipped')\n",
"plt.ylabel('Execution time in seconds (mean (min, max)')\n",
"plt.xscale('log')\n",
"plt.yscale('log')\n",
"ax.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Environment info"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"affine==2.2.2\r\n",
"alabaster==0.7.12\r\n",
"appdirs==1.4.3\r\n",
"argh==0.26.2\r\n",
"arrow==0.13.1\r\n",
"aspy.yaml==1.1.2\r\n",
"atomicwrites==1.3.0\r\n",
"attrs==19.1.0\r\n",
"Babel==2.6.0\r\n",
"backcall==0.1.0\r\n",
"binaryornot==0.4.4\r\n",
"black==18.9b0\r\n",
"bleach==3.1.0\r\n",
"boto3==1.9.112\r\n",
"botocore==1.12.112\r\n",
"bumpversion==0.5.3\r\n",
"certifi==2018.11.29\r\n",
"cfgv==1.4.0\r\n",
"chardet==3.0.4\r\n",
"Click==7.0\r\n",
"click-plugins==1.0.4\r\n",
"cligj==0.5.0\r\n",
"cloudpickle==0.8.0\r\n",
"codecov==2.0.15\r\n",
"colorama==0.4.1\r\n",
"contextlib2==0.5.5\r\n",
"cookiecutter==1.6.0\r\n",
"coverage==4.5.3\r\n",
"cycler==0.10.0\r\n",
"cytoolz==0.9.0.1\r\n",
"dask==1.1.1\r\n",
"decorator==4.3.2\r\n",
"defusedxml==0.5.0\r\n",
"descartes==1.1.0\r\n",
"docutils==0.14\r\n",
"download==0.3.3\r\n",
"-e git+git@github.com:earthlab/earthpy.git@4ab121dad67cf2e1ead0edd202e268528218a5bc#egg=earthpy\r\n",
"entrypoints==0.3\r\n",
"filelock==3.0.10\r\n",
"Fiona==1.8.4\r\n",
"future==0.17.1\r\n",
"GDAL==2.4.0\r\n",
"geopandas==0.4.0\r\n",
"gitdb2==2.0.5\r\n",
"GitPython==2.1.11\r\n",
"graphviz==0.8.3\r\n",
"html5lib==1.0.1\r\n",
"identify==1.2.2\r\n",
"idna==2.8\r\n",
"imageio==2.5.0\r\n",
"imagesize==1.1.0\r\n",
"importlib-metadata==0.8\r\n",
"importlib-resources==1.0.2\r\n",
"ipykernel==5.1.0\r\n",
"ipython==7.3.0\r\n",
"ipython-genutils==0.2.0\r\n",
"ipywidgets==7.2.1\r\n",
"jedi==0.13.3\r\n",
"Jinja2==2.10\r\n",
"jinja2-time==0.2.0\r\n",
"jmespath==0.9.4\r\n",
"jsonschema==3.0.1\r\n",
"jupyter==1.0.0\r\n",
"jupyter-client==5.2.4\r\n",
"jupyter-console==5.2.0\r\n",
"jupyter-core==4.4.0\r\n",
"kiwisolver==1.0.1\r\n",
"livereload==2.6.0\r\n",
"m2r==0.2.1\r\n",
"mapclassify==2.0.1\r\n",
"MarkupSafe==1.1.1\r\n",
"matplotlib==3.0.2\r\n",
"mistune==0.8.4\r\n",
"more-itertools==6.0.0\r\n",
"multidict==4.5.2\r\n",
"munch==2.3.2\r\n",
"nbconvert==5.4.1\r\n",
"nbdime==1.0.4\r\n",
"nbformat==4.4.0\r\n",
"networkx==2.2\r\n",
"nodeenv==1.3.3\r\n",
"notebook==5.7.4\r\n",
"numpy==1.16.1\r\n",
"observations==0.1.4\r\n",
"olefile==0.46\r\n",
"packaging==19.0\r\n",
"pandas==0.24.1\r\n",
"pandocfilters==1.4.2\r\n",
"parso==0.3.4\r\n",
"pathtools==0.1.2\r\n",
"pexpect==4.6.0\r\n",
"pickleshare==0.7.5\r\n",
"Pillow==5.4.1\r\n",
"pluggy==0.9.0\r\n",
"port-for==0.3.1\r\n",
"poyo==0.4.2\r\n",
"pre-commit==1.14.3\r\n",
"prometheus-client==0.6.0\r\n",
"prompt-toolkit==2.0.9\r\n",
"ptyprocess==0.6.0\r\n",
"py==1.8.0\r\n",
"Pygments==2.3.1\r\n",
"pyparsing==2.3.1\r\n",
"pyproj==1.9.6\r\n",
"pyrsistent==0.14.11\r\n",
"pytest==4.3.1\r\n",
"pytest-cov==2.6.1\r\n",
"pytest-vcr==1.0.1\r\n",
"python-dateutil==2.8.0\r\n",
"pytz==2018.9\r\n",
"PyWavelets==1.0.1\r\n",
"PyYAML==3.13\r\n",
"pyzmq==18.0.0\r\n",
"qtconsole==4.3.1\r\n",
"rasterio==1.0.18\r\n",
"requests==2.21.0\r\n",
"Rtree==0.8.3\r\n",
"s3transfer==0.2.0\r\n",
"scikit-image==0.14.2\r\n",
"scipy==1.2.1\r\n",
"Send2Trash==1.5.0\r\n",
"Shapely==1.6.4.post2\r\n",
"simplegeneric==0.8.1\r\n",
"six==1.12.0\r\n",
"smmap2==2.0.5\r\n",
"snowballstemmer==1.2.1\r\n",
"snuggs==1.4.2\r\n",
"Sphinx==1.8.0\r\n",
"sphinx-autobuild==0.7.1\r\n",
"sphinx-rtd-theme==0.4.3\r\n",
"sphinxcontrib-websupport==1.1.0\r\n",
"terminado==0.8.1\r\n",
"testpath==0.4.2\r\n",
"toml==0.10.0\r\n",
"toolz==0.9.0\r\n",
"torchfile==0.1.0\r\n",
"torchvision==0.2.1\r\n",
"tornado==6.0.1\r\n",
"tox==3.7.0\r\n",
"tox-conda==0.1.0\r\n",
"tqdm==4.31.1\r\n",
"traitlets==4.3.2\r\n",
"urllib3==1.24.1\r\n",
"vcrpy==2.0.1\r\n",
"virtualenv==16.4.3\r\n",
"visdom==0.1.8.3\r\n",
"watchdog==0.9.0\r\n",
"wcwidth==0.1.7\r\n",
"webencodings==0.5.1\r\n",
"websocket-client==0.47.0\r\n",
"whichcraft==0.5.2\r\n",
"widgetsnbextension==3.2.1\r\n",
"wrapt==1.11.1\r\n",
"yarl==1.3.0\r\n",
"zipp==0.3.3\r\n"
]
}
],
"source": [
"!pip freeze"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'commit_hash': '2e1cca5bc',\n",
" 'commit_source': 'installation',\n",
" 'default_encoding': 'UTF-8',\n",
" 'ipython_path': '/home/max/anaconda3/envs/earthpy-dev/lib/python3.6/site-packages/IPython',\n",
" 'ipython_version': '7.3.0',\n",
" 'os_name': 'posix',\n",
" 'platform': 'Linux-4.15.0-46-generic-x86_64-with-debian-buster-sid',\n",
" 'sys_executable': '/home/max/anaconda3/envs/earthpy-dev/bin/python',\n",
" 'sys_platform': 'linux',\n",
" 'sys_version': '3.6.7 | packaged by conda-forge | (default, Feb 28 2019, '\n",
" '09:07:38) \\n'\n",
" '[GCC 7.3.0]'}\n"
]
}
],
"source": [
"import IPython\n",
"print(IPython.sys_info())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment