Skip to content

Instantly share code, notes, and snippets.

@shuuji3
Last active August 26, 2022 14:39
Show Gist options
  • Save shuuji3/f00f05396005a5d6d75ddcecb71375be to your computer and use it in GitHub Desktop.
Save shuuji3/f00f05396005a5d6d75ddcecb71375be to your computer and use it in GitHub Desktop.
introduction-to-geopandas.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "introduction-to-geopandas.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyPGwoDkR4HCxE31n+D9NlYy",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/shuuji3/f00f05396005a5d6d75ddcecb71375be/introduction-to-geopandas.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "YJ79cTWbYf6D"
},
"outputs": [],
"source": [
"%pip install pillow pysal geopandas rtree matplotlib jupyterlab"
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import geopandas as gpd\n",
"from shapely.geometry import Point\n",
"%matplotlib inline"
],
"metadata": {
"id": "MLEaGXxpYkNX"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"!rm -rf cb_2021_us_state_500k/\n",
"!wget https://www2.census.gov/geo/tiger/GENZ2021/shp/cb_2021_us_state_500k.zip\n",
"!unzip cb_2021_us_state_500k.zip -d cb_2021_us_state_500k/\n",
"!ls cb_2021_us_state_500k/"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "KFKAOL7yYuDL",
"outputId": "e331c3ca-fa0b-4cfe-9f60-99b57c635003"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"--2022-08-26 13:49:02-- https://www2.census.gov/geo/tiger/GENZ2021/shp/cb_2021_us_state_500k.zip\n",
"Resolving www2.census.gov (www2.census.gov)... 104.97.106.142, 2600:1408:e000:19e::208c, 2600:1408:e000:1a3::208c\n",
"Connecting to www2.census.gov (www2.census.gov)|104.97.106.142|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: unspecified [application/zip]\n",
"Saving to: ‘cb_2021_us_state_500k.zip’\n",
"\n",
"cb_2021_us_state_50 [ <=> ] 3.17M --.-KB/s in 0.09s \n",
"\n",
"2022-08-26 13:49:03 (36.5 MB/s) - ‘cb_2021_us_state_500k.zip’ saved [3321661]\n",
"\n",
"Archive: cb_2021_us_state_500k.zip\n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.shp.ea.iso.xml \n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.shp.iso.xml \n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.shp \n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.shx \n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.dbf \n",
" inflating: cb_2021_us_state_500k/cb_2021_us_state_500k.prj \n",
" extracting: cb_2021_us_state_500k/cb_2021_us_state_500k.cpg \n",
"cb_2021_us_state_500k.cpg cb_2021_us_state_500k.shp.ea.iso.xml\n",
"cb_2021_us_state_500k.dbf cb_2021_us_state_500k.shp.iso.xml\n",
"cb_2021_us_state_500k.prj cb_2021_us_state_500k.shx\n",
"cb_2021_us_state_500k.shp\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"states = gpd.read_file('cb_2021_us_state_500k/cb_2021_us_state_500k.shp')\n",
"states.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 302
},
"id": "OKkm29liZ2PJ",
"outputId": "e1cb74d1-b5b0-47e7-db05-02c2e7f29fdb"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" STATEFP STATENS AFFGEOID GEOID STUSPS NAME LSAD \\\n",
"0 56 01779807 0400000US56 56 WY Wyoming 00 \n",
"1 02 01785533 0400000US02 02 AK Alaska 00 \n",
"2 24 01714934 0400000US24 24 MD Maryland 00 \n",
"3 60 01802701 0400000US60 60 AS American Samoa 00 \n",
"4 05 00068085 0400000US05 05 AR Arkansas 00 \n",
"\n",
" ALAND AWATER \\\n",
"0 251458712294 1867503716 \n",
"1 1478942847588 245378425142 \n",
"2 25151992308 6979074857 \n",
"3 197759069 1307243751 \n",
"4 134660767709 3121950081 \n",
"\n",
" geometry \n",
"0 POLYGON ((-111.05456 45.00095, -111.04507 45.0... \n",
"1 MULTIPOLYGON (((179.48246 51.98283, 179.48657 ... \n",
"2 MULTIPOLYGON (((-76.05015 37.98691, -76.04998 ... \n",
"3 MULTIPOLYGON (((-168.14582 -14.54791, -168.145... \n",
"4 POLYGON ((-94.61792 36.49941, -94.61765 36.499... "
],
"text/html": [
"\n",
" <div id=\"df-4afa3160-8979-43ae-ac41-1b7ecf42f496\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>STATEFP</th>\n",
" <th>STATENS</th>\n",
" <th>AFFGEOID</th>\n",
" <th>GEOID</th>\n",
" <th>STUSPS</th>\n",
" <th>NAME</th>\n",
" <th>LSAD</th>\n",
" <th>ALAND</th>\n",
" <th>AWATER</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>56</td>\n",
" <td>01779807</td>\n",
" <td>0400000US56</td>\n",
" <td>56</td>\n",
" <td>WY</td>\n",
" <td>Wyoming</td>\n",
" <td>00</td>\n",
" <td>251458712294</td>\n",
" <td>1867503716</td>\n",
" <td>POLYGON ((-111.05456 45.00095, -111.04507 45.0...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>02</td>\n",
" <td>01785533</td>\n",
" <td>0400000US02</td>\n",
" <td>02</td>\n",
" <td>AK</td>\n",
" <td>Alaska</td>\n",
" <td>00</td>\n",
" <td>1478942847588</td>\n",
" <td>245378425142</td>\n",
" <td>MULTIPOLYGON (((179.48246 51.98283, 179.48657 ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>24</td>\n",
" <td>01714934</td>\n",
" <td>0400000US24</td>\n",
" <td>24</td>\n",
" <td>MD</td>\n",
" <td>Maryland</td>\n",
" <td>00</td>\n",
" <td>25151992308</td>\n",
" <td>6979074857</td>\n",
" <td>MULTIPOLYGON (((-76.05015 37.98691, -76.04998 ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>60</td>\n",
" <td>01802701</td>\n",
" <td>0400000US60</td>\n",
" <td>60</td>\n",
" <td>AS</td>\n",
" <td>American Samoa</td>\n",
" <td>00</td>\n",
" <td>197759069</td>\n",
" <td>1307243751</td>\n",
" <td>MULTIPOLYGON (((-168.14582 -14.54791, -168.145...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>05</td>\n",
" <td>00068085</td>\n",
" <td>0400000US05</td>\n",
" <td>05</td>\n",
" <td>AR</td>\n",
" <td>Arkansas</td>\n",
" <td>00</td>\n",
" <td>134660767709</td>\n",
" <td>3121950081</td>\n",
" <td>POLYGON ((-94.61792 36.49941, -94.61765 36.499...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4afa3160-8979-43ae-ac41-1b7ecf42f496')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-4afa3160-8979-43ae-ac41-1b7ecf42f496 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-4afa3160-8979-43ae-ac41-1b7ecf42f496');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"states.plot()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 160
},
"id": "mU6V4oL1aRyL",
"outputId": "94eb2598-eb74-44a7-e86d-cc898e4a0d59"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8da04523d0>"
]
},
"metadata": {},
"execution_count": 19
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"states.iloc[10:20].plot()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 246
},
"id": "pMyA8cq5bPw1",
"outputId": "97280b2b-8d43-413a-c0ba-5e7e2c5681f6"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8da08448d0>"
]
},
"metadata": {},
"execution_count": 30
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"df = pd.read_csv('https://github.com/datasciencelabs/data/raw/master/powerplants.csv', index_col='Unnamed: 0')\n",
"df"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "blOem6nQbrrr",
"outputId": "06445856-9dfb-4471-e45a-eff3469209d3"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" id1 lat1 lon1 val1\n",
"1 3 31.0069 -88.0103 18567.239\n",
"2 7 34.0128 -85.9708 4548.031\n",
"3 8 33.6446 -87.2003 7601.531\n",
"4 10 32.6017 -87.7811 33627.550\n",
"5 26 33.2442 -86.4567 73140.882\n",
"... ... ... ... ...\n",
"1237 56908 46.1066 -112.8755 0.219\n",
"1238 56914 33.3590 -117.1110 0.160\n",
"1239 56948 32.9175 -111.5041 0.000\n",
"1240 57001 32.7971 -116.9720 0.028\n",
"1241 70454 34.3387 -82.8207 0.886\n",
"\n",
"[1241 rows x 4 columns]"
],
"text/html": [
"\n",
" <div id=\"df-bd0f26ed-e6cd-402f-a3a1-507479f122bd\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id1</th>\n",
" <th>lat1</th>\n",
" <th>lon1</th>\n",
" <th>val1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>31.0069</td>\n",
" <td>-88.0103</td>\n",
" <td>18567.239</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7</td>\n",
" <td>34.0128</td>\n",
" <td>-85.9708</td>\n",
" <td>4548.031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>8</td>\n",
" <td>33.6446</td>\n",
" <td>-87.2003</td>\n",
" <td>7601.531</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>10</td>\n",
" <td>32.6017</td>\n",
" <td>-87.7811</td>\n",
" <td>33627.550</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>26</td>\n",
" <td>33.2442</td>\n",
" <td>-86.4567</td>\n",
" <td>73140.882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1237</th>\n",
" <td>56908</td>\n",
" <td>46.1066</td>\n",
" <td>-112.8755</td>\n",
" <td>0.219</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1238</th>\n",
" <td>56914</td>\n",
" <td>33.3590</td>\n",
" <td>-117.1110</td>\n",
" <td>0.160</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1239</th>\n",
" <td>56948</td>\n",
" <td>32.9175</td>\n",
" <td>-111.5041</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1240</th>\n",
" <td>57001</td>\n",
" <td>32.7971</td>\n",
" <td>-116.9720</td>\n",
" <td>0.028</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1241</th>\n",
" <td>70454</td>\n",
" <td>34.3387</td>\n",
" <td>-82.8207</td>\n",
" <td>0.886</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1241 rows × 4 columns</p>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-bd0f26ed-e6cd-402f-a3a1-507479f122bd')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-bd0f26ed-e6cd-402f-a3a1-507479f122bd button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-bd0f26ed-e6cd-402f-a3a1-507479f122bd');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 51
}
]
},
{
"cell_type": "code",
"source": [
"Point(35,135)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 121
},
"id": "miK8geWacgJX",
"outputId": "521b1e04-516f-4bf2-8f88-03cc4ab3e7fd"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<shapely.geometry.point.Point at 0x7f8d9b86b690>"
],
"image/svg+xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"34.0 134.0 2.0 2.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,270.0)\"><circle cx=\"35.0\" cy=\"135.0\" r=\"0.06\" stroke=\"#555555\" stroke-width=\"0.02\" fill=\"#66cc99\" opacity=\"0.6\" /></g></svg>"
},
"metadata": {},
"execution_count": 52
}
]
},
{
"cell_type": "code",
"source": [
"points = df.apply(lambda x: Point(x.lon1, x.lat1), axis=1)\n",
"points.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ZYa3pW7Sg5QA",
"outputId": "cc050be1-39c6-4032-d7ee-bdee13ed3eda"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/pandas/core/dtypes/cast.py:118: ShapelyDeprecationWarning: The array interface is deprecated and will no longer work in Shapely 2.0. Convert the '.coords' to a numpy array instead.\n",
" arr = construct_1d_object_array_from_listlike(values)\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1 POINT (-88.0103 31.0069)\n",
"2 POINT (-85.9708 34.0128)\n",
"3 POINT (-87.2003 33.6446)\n",
"4 POINT (-87.7811 32.6017)\n",
"5 POINT (-86.4567 33.2442)\n",
"dtype: object"
]
},
"metadata": {},
"execution_count": 53
}
]
},
{
"cell_type": "code",
"source": [
"powerplants = gpd.GeoDataFrame(df, geometry=points)\n",
"powerplants.crs = {'init': 'epsg:4326'}\n",
"powerplants.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 262
},
"id": "vkZDvnvnhG9-",
"outputId": "de5a403d-3ecd-4f56-905c-b61204f2f254"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/pyproj/crs/crs.py:131: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6\n",
" in_crs_string = _prepare_from_proj_string(in_crs_string)\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" id1 lat1 lon1 val1 geometry\n",
"1 3 31.0069 -88.0103 18567.239 POINT (-88.01030 31.00690)\n",
"2 7 34.0128 -85.9708 4548.031 POINT (-85.97080 34.01280)\n",
"3 8 33.6446 -87.2003 7601.531 POINT (-87.20030 33.64460)\n",
"4 10 32.6017 -87.7811 33627.550 POINT (-87.78110 32.60170)\n",
"5 26 33.2442 -86.4567 73140.882 POINT (-86.45670 33.24420)"
],
"text/html": [
"\n",
" <div id=\"df-a6753f63-88aa-4112-b3ee-d90affc6d357\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id1</th>\n",
" <th>lat1</th>\n",
" <th>lon1</th>\n",
" <th>val1</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>31.0069</td>\n",
" <td>-88.0103</td>\n",
" <td>18567.239</td>\n",
" <td>POINT (-88.01030 31.00690)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7</td>\n",
" <td>34.0128</td>\n",
" <td>-85.9708</td>\n",
" <td>4548.031</td>\n",
" <td>POINT (-85.97080 34.01280)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>8</td>\n",
" <td>33.6446</td>\n",
" <td>-87.2003</td>\n",
" <td>7601.531</td>\n",
" <td>POINT (-87.20030 33.64460)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>10</td>\n",
" <td>32.6017</td>\n",
" <td>-87.7811</td>\n",
" <td>33627.550</td>\n",
" <td>POINT (-87.78110 32.60170)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>26</td>\n",
" <td>33.2442</td>\n",
" <td>-86.4567</td>\n",
" <td>73140.882</td>\n",
" <td>POINT (-86.45670 33.24420)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a6753f63-88aa-4112-b3ee-d90affc6d357')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-a6753f63-88aa-4112-b3ee-d90affc6d357 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-a6753f63-88aa-4112-b3ee-d90affc6d357');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 59
}
]
},
{
"cell_type": "code",
"source": [
"powerplants.plot()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 252
},
"id": "0zwFsb4_hxmG",
"outputId": "4cf7aef6-25bf-4fba-c957-7e24a3c941e6"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8d9b63db50>"
]
},
"metadata": {},
"execution_count": 60
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "tdCixg9hiLql"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment