{
"cells": [
{
"cell_type": "markdown",
"id": "9c0169ef-beb3-4f80-b55a-1152fe068020",
"metadata": {
"pycharm": {
"name": "#%% md\n"
},
"tags": [
"full-width"
]
},
"source": [
"# Vector libraries\n",
"\n",
"This page lists Python GIS libraries related to working with **vector data**, categorized into core (data structures), data processing, analysis and visualization. If you see any missing Python tools, please open a PR (see [instructions](contributing.html)). Tools are sorted alphabetically in each category. The [linkages](#linkages) section shows how the tools are connected to the broader Python ecosystem.\n",
"\n",
"Tables below list relevant information about the libraries, including:\n",
" - links to the *Homepage* of the package (redirects after clicking the House character)\n",
" - short *Info* (description) of the package: You can see the desciprtion by holding your mouse on top of the ⓘ character for a second \n",
" - License\n",
" - Latest PyPi and conda-forge version of the package\n",
" - Number of downloads from PyPi or conda-forge\n",
" - Latest release date "
]
},
{
"cell_type": "markdown",
"id": "4a4838a2-739c-4eac-b4dc-f159658348f5",
"metadata": {},
"source": [
"## Libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "a79f153e-8927-4226-90b3-1c2309476f10",
"metadata": {
"pycharm": {
"name": "#%%\n"
},
"tags": [
"full-width",
"hide-input"
]
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" Analysis / modelling \n",
" \n",
" \n",
" Name \n",
" Homepage \n",
" Info \n",
" License \n",
" PyPi version \n",
" PyPi downloads (monthly) \n",
" Conda-forge version \n",
" Conda-forge downloads \n",
" Conda-forge latest release \n",
" \n",
" \n",
" \n",
" \n",
" access \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 26,600 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" esda \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 43,532 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" geosnap \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 162 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" giddy \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,704 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" inequality \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,266 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" mesa \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 3,303 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" mesa-geo \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 599 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
" mgwr \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 24,323 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" momepy \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 28,009 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" movingpandas \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 2,904 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pandana \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 1,643 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pointpats \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,870 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pyinterpolate \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 117 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
" pysal \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 27,846 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" r5py \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 22 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" scikit-mobility \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 7,724 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" segregation \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 24,599 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spaghetti \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,282 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spglm \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 24,219 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spint \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,187 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" splot \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,734 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spopt \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,186 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spreg \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 24,569 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" spvcm \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 23,199 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" tobler \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 24,794 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" trackintel \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 349 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
" transbigdata \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 580 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" urbanaccess \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 247 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" urbansim \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 240 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"\n",
"\n",
" Core / data structures \n",
" \n",
" \n",
" Name \n",
" Homepage \n",
" Info \n",
" License \n",
" PyPi version \n",
" PyPi downloads (monthly) \n",
" Conda-forge version \n",
" Conda-forge downloads \n",
" Conda-forge latest release \n",
" \n",
" \n",
" \n",
" \n",
" GEOS \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 48,017 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" PDAL \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 2,020 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" cuspatial \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 26 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
" dask-geopandas \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 7,160 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" fiona \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 2,605,728 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" geographiclib \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 3,418,834 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" geopandas \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 2,406,025 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" laspy \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 27,799 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" libpysal \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 60,019 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pygeos \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 171,470 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pyogrio \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 1,145 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pyshp \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 356,639 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" python-igraph \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 241,827 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" rtree \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 974,019 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" shapely \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 7,085,616 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"\n",
"\n",
" Data extraction / processing \n",
" \n",
" \n",
" Name \n",
" Homepage \n",
" Info \n",
" License \n",
" PyPi version \n",
" PyPi downloads (monthly) \n",
" Conda-forge version \n",
" Conda-forge downloads \n",
" Conda-forge latest release \n",
" \n",
" \n",
" \n",
" \n",
" geopy \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 4,544,815 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" h3 \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 1,497,900 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" osmnet \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 4,705 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" osmnx \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 70,199 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pyntcloud \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 8,362 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pyrosm \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 6,442 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" snkit \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 29 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
"
\n",
"\n",
"\n",
" Visualization \n",
" \n",
" \n",
" Name \n",
" Homepage \n",
" Info \n",
" License \n",
" PyPi version \n",
" PyPi downloads (monthly) \n",
" Conda-forge version \n",
" Conda-forge downloads \n",
" Conda-forge latest release \n",
" \n",
" \n",
" \n",
" \n",
" geoplot \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 7,769 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" legendgram \n",
" 🏠 \n",
" ⓘ \n",
" \n",
" \n",
" 37 \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" pandas-bokeh \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 13,031 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
" vizent \n",
" 🏠 \n",
" ⓘ \n",
" NA \n",
" \n",
" 12 \n",
" NA \n",
" NA \n",
" NA \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pygieons import Ecosystem\n",
"\n",
"# Initialize\n",
"e = Ecosystem(plot_type=\"vector\", log=False)\n",
"\n",
"# Prepare the table and plot it\n",
"e.prepare_table().show()"
]
},
{
"cell_type": "markdown",
"id": "9595e1e3-000a-4130-85ed-873e6f3bb130",
"metadata": {},
"source": [
"## Linkages"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "951482b3-5ad9-4e92-8dad-6cc6703804c2",
"metadata": {
"pycharm": {
"name": "#%%\n"
},
"tags": [
"hide-input"
]
},
"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",
""
],
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Initialize\n",
"e = Ecosystem(plot_type=\"vector+generic\", log=False)\n",
"\n",
"# Prepare the network and plot it\n",
"net = e.prepare_net()\n",
"net.show()"
]
}
],
"metadata": {
"execution": {
"timeout": 360
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}