{ "cells": [ { "cell_type": "markdown", "id": "5680ff45", "metadata": {}, "source": [ "# `geopandas`" ] }, { "cell_type": "markdown", "id": "746e0170", "metadata": {}, "source": [ ":::{admonition} Lesson Content\n", ":class: note, dropdown\n", "\n", "- `geopandas` vs. `pandas`\n", "- spatial data operations\n", "- reprojecting to meters\n", "- filtering a geodataframe by a vector\n", "\n", ":::" ] }, { "cell_type": "markdown", "id": "0f3d9efd", "metadata": {}, "source": [ "## Context\n", "\n", "🐼➕🌐 = 🚀🎉❤️\n", "\n", "We've used `pandas` to help us get the most out of our csv and excel data. We talked yesterday about how spatial data is stored and organized. Today we combine both worlds with `geopandas`, an extenions of `pandas` specific to spatial data.\n", "\n", "Just like how we saw that converting datetime strings to Python datetime objects, converting our latitudes and longitudes to points allows us to use a world more of spatial data analysis techniques. It's so exciting!" ] }, { "cell_type": "markdown", "id": "ee7e6c8b", "metadata": {}, "source": [ "## `geopandas`\n", "\n", "GeoPandas is an extension of Pandas. GeoDataFrames have the same row, column structure with indexes that are accessed in the same way as Pandas. The difference is that they also have a `geometry` column.\n", "\n", "" ] }, { "cell_type": "markdown", "id": "4649f43a", "metadata": {}, "source": [ "Let's look at an example geodataframe that comes pre-loaded on geopandas." ] }, { "cell_type": "code", "execution_count": 1, "id": "f63156ac", "metadata": {}, "outputs": [], "source": [ "import geopandas as gpd" ] }, { "cell_type": "code", "execution_count": 2, "id": "53e7cb88", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/p8/985fq4dx1356qtcv5dd4zgyr0000gn/T/ipykernel_17022/309957874.py:1: FutureWarning: The geopandas.dataset module is deprecated and will be removed in GeoPandas 1.0. You can get the original 'naturalearth_lowres' data from https://www.naturalearthdata.com/downloads/110m-cultural-vectors/.\n", " gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))\n" ] }, { "data": { "text/html": [ "
\n", " | pop_est | \n", "continent | \n", "name | \n", "iso_a3 | \n", "gdp_md_est | \n", "geometry | \n", "
---|---|---|---|---|---|---|
0 | \n", "889953.0 | \n", "Oceania | \n", "Fiji | \n", "FJI | \n", "5496 | \n", "MULTIPOLYGON (((180.00000 -16.06713, 180.00000... | \n", "
1 | \n", "58005463.0 | \n", "Africa | \n", "Tanzania | \n", "TZA | \n", "63177 | \n", "POLYGON ((33.90371 -0.95000, 34.07262 -1.05982... | \n", "
2 | \n", "603253.0 | \n", "Africa | \n", "W. Sahara | \n", "ESH | \n", "907 | \n", "POLYGON ((-8.66559 27.65643, -8.66512 27.58948... | \n", "
3 | \n", "37589262.0 | \n", "North America | \n", "Canada | \n", "CAN | \n", "1736425 | \n", "MULTIPOLYGON (((-122.84000 49.00000, -122.9742... | \n", "
4 | \n", "328239523.0 | \n", "North America | \n", "United States of America | \n", "USA | \n", "21433226 | \n", "MULTIPOLYGON (((-122.84000 49.00000, -120.0000... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
172 | \n", "6944975.0 | \n", "Europe | \n", "Serbia | \n", "SRB | \n", "51475 | \n", "POLYGON ((18.82982 45.90887, 18.82984 45.90888... | \n", "
173 | \n", "622137.0 | \n", "Europe | \n", "Montenegro | \n", "MNE | \n", "5542 | \n", "POLYGON ((20.07070 42.58863, 19.80161 42.50009... | \n", "
174 | \n", "1794248.0 | \n", "Europe | \n", "Kosovo | \n", "-99 | \n", "7926 | \n", "POLYGON ((20.59025 41.85541, 20.52295 42.21787... | \n", "
175 | \n", "1394973.0 | \n", "North America | \n", "Trinidad and Tobago | \n", "TTO | \n", "24269 | \n", "POLYGON ((-61.68000 10.76000, -61.10500 10.890... | \n", "
176 | \n", "11062113.0 | \n", "Africa | \n", "S. Sudan | \n", "SSD | \n", "11998 | \n", "POLYGON ((30.83385 3.50917, 29.95350 4.17370, ... | \n", "
177 rows × 6 columns
\n", "\n", " | Can# | \n", "Jday | \n", "Latitude | \n", "Longitude | \n", "... | \n", "CO (ppbv) | \n", "CO2_ppm | \n", "OCS (MS) | \n", "DMS (MS) | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "8198 | \n", "202.0 | \n", "35.000000 | \n", "-118.943333 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "518.0 | \n", "-888.0 | \n", "
1 | \n", "7167 | \n", "202.0 | \n", "35.081667 | \n", "-119.101000 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "519.0 | \n", "-888.0 | \n", "
2 | \n", "6354 | \n", "202.0 | \n", "35.170000 | \n", "-119.233333 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "495.0 | \n", "14.0 | \n", "
3 | \n", "7226 | \n", "202.0 | \n", "35.346667 | \n", "-119.381667 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "505.0 | \n", "11.9 | \n", "
4 | \n", "6269 | \n", "202.0 | \n", "35.438333 | \n", "-119.433333 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "487.0 | \n", "17.4 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
4485 | \n", "5090 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "553.0 | \n", "4.0 | \n", "
4486 | \n", "5028 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "528.0 | \n", "5.5 | \n", "
4487 | \n", "5017 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "583.0 | \n", "8.6 | \n", "
4488 | \n", "5091 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "534.0 | \n", "3.9 | \n", "
4489 | \n", "5046 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "-999.0 | \n", "-999.0 | \n", "530.0 | \n", "9.1 | \n", "
4490 rows × 10 columns
\n", "\n", " | Can# | \n", "Jday | \n", "Latitude | \n", "Longitude | \n", "... | \n", "CO2_ppm | \n", "OCS (MS) | \n", "DMS (MS) | \n", "geometry | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "8198 | \n", "202.0 | \n", "35.000000 | \n", "-118.943333 | \n", "... | \n", "NaN | \n", "518.0 | \n", "NaN | \n", "POINT (-118.94333 35.00000) | \n", "
1 | \n", "7167 | \n", "202.0 | \n", "35.081667 | \n", "-119.101000 | \n", "... | \n", "NaN | \n", "519.0 | \n", "NaN | \n", "POINT (-119.10100 35.08167) | \n", "
2 | \n", "6354 | \n", "202.0 | \n", "35.170000 | \n", "-119.233333 | \n", "... | \n", "NaN | \n", "495.0 | \n", "14.0 | \n", "POINT (-119.23333 35.17000) | \n", "
3 | \n", "7226 | \n", "202.0 | \n", "35.346667 | \n", "-119.381667 | \n", "... | \n", "NaN | \n", "505.0 | \n", "11.9 | \n", "POINT (-119.38167 35.34667) | \n", "
4 | \n", "6269 | \n", "202.0 | \n", "35.438333 | \n", "-119.433333 | \n", "... | \n", "NaN | \n", "487.0 | \n", "17.4 | \n", "POINT (-119.43333 35.43833) | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
4485 | \n", "5090 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "NaN | \n", "553.0 | \n", "4.0 | \n", "POINT (-95.34160 29.71720) | \n", "
4486 | \n", "5028 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "NaN | \n", "528.0 | \n", "5.5 | \n", "POINT (-95.34160 29.71720) | \n", "
4487 | \n", "5017 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "NaN | \n", "583.0 | \n", "8.6 | \n", "POINT (-95.34160 29.71720) | \n", "
4488 | \n", "5091 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "NaN | \n", "534.0 | \n", "3.9 | \n", "POINT (-95.34160 29.71720) | \n", "
4489 | \n", "5046 | \n", "NaN | \n", "29.717200 | \n", "-95.341600 | \n", "... | \n", "NaN | \n", "530.0 | \n", "9.1 | \n", "POINT (-95.34160 29.71720) | \n", "
4405 rows × 11 columns
\n", "\n", " | Can# | \n", "Jday | \n", "Latitude | \n", "Longitude | \n", "... | \n", "CO2_ppm | \n", "OCS (MS) | \n", "DMS (MS) | \n", "geometry | \n", "
---|---|---|---|---|---|---|---|---|---|
1779 | \n", "9068 | \n", "174.0 | \n", "33.667200 | \n", "-117.847000 | \n", "... | \n", "409.0 | \n", "570.0 | \n", "NaN | \n", "POINT (-117.84700 33.66720) | \n", "
2206 | \n", "6343 | \n", "177.0 | \n", "33.615195 | \n", "-117.784866 | \n", "... | \n", "414.0 | \n", "593.0 | \n", "0.5 | \n", "POINT (-117.78487 33.61519) | \n", "
2234 | \n", "9309 | \n", "177.0 | \n", "33.640604 | \n", "-117.806361 | \n", "... | \n", "419.0 | \n", "572.0 | \n", "NaN | \n", "POINT (-117.80636 33.64060) | \n", "
3 rows × 11 columns
\n", "