{ "cells": [ { "cell_type": "markdown", "id": "d4a0b595", "metadata": {}, "source": [ "(e_attributes)=\n", " \n", "\n", "----------------\n", "\n", "```{admonition} Learning Objectives\n", "* Create and manipulate vector attributes\n", "* Subset data\n", "* Plot lat lon as points\n", "* Subset points by location\n", "```\n", "```{admonition} Review\n", "* [Vector Data](c_vectors.md)\n", "```\n", "----------------\n", "\n", "\n", "# Attributes & Indexing for Vector Data\n", "\n", "```{figure} ../_static/c_data_types/dataframe.svg\n", ":name: vector properties \n", "Structure of a `GeoDataFrame` extends the functionality of a Pandas `DataFrame`\n", "```\n", "\n", "Each `GeoSeries` can contain any geometry type (e.g. points, lines, polygon) and has a `GeoSeries.crs` attribute, which stores information on the projection (CRS stands for Coordinate Reference System). Therefore, each `GeoSeries` in a `GeoDataFrame` can be in a different projection, allowing you to have, for example, multiple versions of the same geometry, just in a different CRS.\n", "\n", "\n", "```{tip} Becuase GeoPandas are so intertwined spend the time to learn more about here [Pandas User Guide](https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html)\n", "```\n", "\n", "## Create New Attributes\n", "\n", "One of the most basic operations is creating new attributes. Let's say for instance we want to look at the world population in millions. We can start with an existing column of data `pop_est`. Let's start by looking at the column names:" ] }, { "cell_type": "code", "execution_count": 1, "id": "c29f501d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['pop_est', 'continent', 'name', 'iso_a3', 'gdp_md_est', 'geometry'], dtype='object')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import geopandas\n", "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n", "world.columns" ] }, { "cell_type": "markdown", "id": "0babd195", "metadata": {}, "source": [ "We can then do basic operations on the basis of column names. Here we create a new column `m_pop_est`:" ] }, { "cell_type": "code", "execution_count": 2, "id": "337fb249", "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", "
pop_estcontinentnameiso_a3gdp_md_estgeometrym_pop_est
0889953.0OceaniaFijiFJI5496MULTIPOLYGON (((180.00000 -16.06713, 180.00000...0.889953
158005463.0AfricaTanzaniaTZA63177POLYGON ((33.90371 -0.95000, 34.07262 -1.05982...58.005463
\n", "
" ], "text/plain": [ " pop_est continent name iso_a3 gdp_md_est \\\n", "0 889953.0 Oceania Fiji FJI 5496 \n", "1 58005463.0 Africa Tanzania TZA 63177 \n", "\n", " geometry m_pop_est \n", "0 MULTIPOLYGON (((180.00000 -16.06713, 180.00000... 0.889953 \n", "1 POLYGON ((33.90371 -0.95000, 34.07262 -1.05982... 58.005463 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "world['m_pop_est'] = world['pop_est'] / 1e6\n", "world.head(2)" ] }, { "cell_type": "markdown", "id": "b3a4198a", "metadata": {}, "source": [ "------------------------\n", "\n", "\n", "## Indexing and Selecting Data\n", "\n", "GeoPandas inherits the standard pandas methods for indexing/selecting data. This includes label based indexing with .loc and integer position based indexing with .iloc, which apply to both GeoSeries and GeoDataFrame objects. For more information on indexing/selecting, see the [pandas documentation](https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html).\n", "\n", "\n", "### Selection by Index Position\n", " \n", "Pandas provides a suite of methods in order to get purely integer based indexing. The semantics follow closely Python and NumPy slicing. These are 0-based indexing. When slicing, the start bound is included, while the upper bound is excluded. For instance `name = 'fudge'` with `name[0:3]` returns `'fud'`, where f is at 0 and g is at the 3 position with the upper bound excluded." ] }, { "cell_type": "code", "execution_count": 3, "id": "bb5ea8c3", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/mmann1123/Documents/github/pyGIS/pygis/_build/jupyter_execute/docs/e_attributes_5_0.png" } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.style.use('bmh') # better for plotting geometries vs general plots.\n", "\n", "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))\n", "northern_world = world.iloc[ 0:4 ] \n", "northern_world.plot(figsize=(10,5)) \n", "plt.show()" ] }, { "cell_type": "markdown", "id": "20642733", "metadata": {}, "source": [ "#### Different choices for indexing\n", "\n", "Object selection has had a number of user-requested additions in order to\n", "support more explicit location based indexing. \n", "\n", "```{panels}\n", "\n", "* ``.loc`` is primarily label based, but may also be used with a boolean array. ``.loc`` will raise ``KeyError`` when the items are not found. Allowed inputs are:\n", "\n", " * A single label, e.g. ``5`` or ``'a'`` (Note that ``5`` is interpreted as a\n", " *label* of the index. This use is **not** an integer position along the\n", " index.).\n", " * A list or array of labels ``['a', 'b', 'c']``.\n", " * A slice object with labels ``'a':'f'`` (Note that contrary to usual Python\n", " slices, **both** the start and the stop are included, when present in the\n", " index! See [Slicing with labels](https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-slicing-with-labels) \n", " and [Endpoints are inclusive](https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html#advanced-endpoints-are-inclusive) \n", " * A boolean array (any ``NA`` values will be treated as ``False``).\n", " * A ``callable`` function with one argument (the calling Series or DataFrame) and\n", " that returns valid output for indexing (one of the above).\n", "\n", " See more at [Selection by Label](https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-label).\n", "\n", "------------\n", "\n", "* ``.iloc`` is primarily integer position based (from ``0`` to\n", " ``length-1`` of the axis), but may also be used with a boolean\n", " array. ``.iloc`` will raise ``IndexError`` if a requested\n", " indexer is out-of-bounds, except *slice* indexers which allow\n", " out-of-bounds indexing. (this conforms with Python/NumPy *slice*\n", " semantics). Allowed inputs are:\n", "\n", " * An integer e.g. ``5``.\n", " * A list or array of integers ``[4, 3, 0]``.\n", " * A slice object with integers ``1:7``.\n", " * A boolean array (any ``NA`` values will be treated as ``False``).\n", " * A ``callable`` function with one argument (the calling Series or DataFrame) and\n", " that returns valid output for indexing (one of the above).\n", "\n", " See more at : [Selection by Position](https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-integer) and\n", " [Advanced Indexing](https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html#advanced).\n", "\n", "* ``.loc``, ``.iloc``, and also ``[]`` indexing can accept a ``callable`` as indexer. See more at [Selection By Callable](https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-callable).\n", "\n", "```\n", "\n", "Getting values from an object with multi-axes selection uses the following\n", "notation (using ``.loc`` as an example, but the following applies to ``.iloc`` as\n", "well). Any of the axes accessors may be the null slice ``:``. Axes left out of\n", "the specification are assumed to be ``:``, e.g. ``p.loc['a']`` is equivalent to\n", "``p.loc['a', :, :]``.\n", "\n", "\n", "| Object Type | Indexers |\n", "| :--- | ---: |\n", "| Series | `s.loc[indexer]` |\n", "| DataFrame | `df.loc[row_indexer,column_indexer]` |\n", "\n", "### Subset Points by Location\n", "In addition to the standard pandas methods, GeoPandas also provides coordinate based indexing with the cx indexer, which slices using a bounding box. Geometries in the GeoSeries or GeoDataFrame that intersect the bounding box will be returned.\n", "\n", "Using the world dataset, we can use this functionality to quickly select all cities in the northern and southern hemisphere using a `_CoordinateIndexer` using `.cx`. `.cx` allows you to quickly access the table's `geometry`, where indexing reflects `[x,y]` or `[lon,lat]`. Here we will query points above and below 0 degrees latitude:" ] }, { "cell_type": "code", "execution_count": 4, "id": "ef63867d", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/mmann1123/Documents/github/pyGIS/pygis/_build/jupyter_execute/docs/e_attributes_7_0.png" } }, "output_type": "display_data" } ], "source": [ "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))\n", "northern_world = world.cx[ : , 0: ] # subsets all rows above 0 with a slice\n", "northern_world.plot(figsize=(10, 5))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "id": "94f63ad0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/home/mmann1123/Documents/github/pyGIS/pygis/_build/jupyter_execute/docs/e_attributes_8_0.png" } }, "output_type": "display_data" } ], "source": [ "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))\n", "southern_world = world.cx[ : , :0 ] # subsets all rows below 0 with a slice\n", "southern_world.plot(figsize=(10, 5))\n", "plt.show()" ] } ], "metadata": { "jupytext": { "text_representation": { "extension": ".md", "format_name": "myst" } }, "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.10.9" }, "myst": { "html_meta": { "description lang=en": "Learn how to change, subset, and plot vector data (shapefile) attribute data. This includes an example of plotting latitude longitude data as well as subsetting (indexing) by location.", "description lang=es": "Aprenda a cambiar, crear subconjuntos y trazar datos de atributos de datos vectoriales (shapefile). Esto incluye un ejemplo de trazado de datos de latitud y longitud, así como subconjuntos (indexación) por ubicación.", "description lang=fr": "Apprenez à modifier, sous-ensemble et tracer des données attributaires de données vectorielles (fichier de formes). Cela inclut un exemple de traçage des données de longitude de latitude ainsi que le sous-ensemble (indexation) par emplacement.", "keywords": "spatial, attribute data, subset, shapefile", "property=og:locale": "en_US" } }, "source_map": [ 17, 53, 57, 60, 63, 77, 85, 150, 157 ] }, "nbformat": 4, "nbformat_minor": 5 }