Geospatial Data Analysis
Analyzing Denver's small cell nodes (used for enabling 5G-powered IoT)—using ggmap for R, GeoPandas for Python, and JuliaGeo for Julia.
The wireless carrier industry and the City and County of Denver have been building small cell infrastructure to expand 4G and 5G coverage and capacity, and accommodate growing demand for mobile data consumption. This type of expansion is also the enabler that businesses and municipalities need, in order to turn on (Internet of Things) IoT-powered smart cities, agriculture, factories, etc. Let’s take a look at where these small cell nodes are (and will be) deployed in Denver.
Getting Started
If you are interested in reproducing this work, here are the versions of R, Python, and Julia used (as well as the respective packages for each). Additionally, my coding style here is verbose, in order to trace back where functions/methods and variables are originating from, and make this a learning experience for everyone—including me.
cat(R.version$version.string, R.version$nickname)
R version 4.2.3 (2023-03-15) Shortstop Beagle
require(devtools)
devtools::install_version("dplyr", version="1.1.2", repos="http://cran.us.r-project.org")
devtools::install_version("ggplot2", version="3.4.2", repos="http://cran.us.r-project.org")
devtools::install_version("ggmap", version = "3.0.2", repos = "http://cran.us.r-project.org")
library(dplyr)
library(ggplot2)
library(ggmap)
import sys
print(sys.version)
3.11.4 (v3.11.4:d2340ef257, Jun 6 2023, 19:15:51) [Clang 13.0.0 (clang-1300.0.29.30)]
!pip install pyreadr==0.4.7
!pip install numpy==1.25.1
!pip install pandas==2.0.3
!pip install plotnine==0.12.1
!pip install scipy==1.11.1
import pyreadr
import numpy
import pandas
import plotnine
from scipy import stats
using InteractiveUtils
InteractiveUtils.versioninfo()
Julia Version 1.9.2
Commit e4ee485e909 (2023-07-05 09:39 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin22.4.0)
CPU: 8 × Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-14.0.6 (ORCJIT, skylake)
Threads: 1 on 8 virtual cores
Environment:
DYLD_FALLBACK_LIBRARY_PATH = /Library/Frameworks/R.framework/Resources/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/jre/lib/server
using Pkg
Pkg.add(name="RData", version="1.0.0")
Pkg.add(name="CSV", version="0.10.11")
Pkg.add(name="DataFrames", version="1.5.0")
Pkg.add(name="CategoricalArrays", version="0.10.8")
Pkg.add(name="Colors", version="0.12.10")
Pkg.add(name="Cairo", version="1.0.5")
Pkg.add(name="Gadfly", version="1.3.4")
Pkg.add(name="StatsBase", version="0.33.21")
using RData
using CSV
using DataFrames
using CategoricalArrays
using Colors
using Cairo
using Gadfly
using StatsBase
Importing and Examining Dataset
str(small_cells)
'data.frame': 2517 obs. of 22 variables:
$ owner_name : Factor w/ 6 levels "AT&T","Crown Castle (T-Mobile)",..: 1 5 2 2 2 2 5 2 1 2 ...
$ applicant_company_name: Factor w/ 6 levels "BV","Crown Castle",..: 1 5 2 2 2 2 5 2 1 2 ...
$ permit_master_number : Factor w/ 43 levels "2017-ENCROACHMENT-0000080",..: NA 2 42 42 42 42 40 42 15 11 ...
$ permit_ref_number : Factor w/ 111 levels "2016-ENCROACHMENT-0000001",..: NA 46 110 110 110 110 107 110 NA 74 ...
$ node_group : Factor w/ 332 levels " 2018 Group 1B",..: 151 65 267 265 267 166 146 265 88 98 ...
$ node_id : chr "COL07002F_R01" "HIGHLANDS SC 30" "DN0315" "DN0791" ...
$ node_address : chr "1405 Little Raven St." "2595 DECATUR ST DENVER CO 80211" "2719 W 21st Ave" "1525 Valentia St" ...
$ node_n : num 39.8 39.8 39.7 39.7 39.8 ...
$ node_e : num -105 -105 -105 -105 -105 ...
$ node_type : Factor w/ 8 levels "Type 1A, Utility Pole Mounted",..: 4 7 2 2 2 2 4 2 7 7 ...
$ status : Ord.factor w/ 3 levels "Proposed"<"Future Planned 1-2 Years"<..: 3 3 NA NA NA NA 1 NA 2 3 ...
$ pole_material : Factor w/ 4 levels "Metal","Metal ",..: 1 1 4 4 4 3 1 4 1 1 ...
$ pole_manufacturer : Factor w/ 6 levels "Comptek","CompTek",..: 2 2 3 3 3 3 2 3 4 5 ...
$ pole_model : Factor w/ 8 levels "1002661","Class 4 Wood Pole",..: 7 4 4 4 4 4 4 4 7 4 ...
$ pole_height_ft : int 35 31 0 0 0 27 34 0 35 25 ...
$ pole_color : Factor w/ 10 levels "Agate Grey (RAL 7038)",..: 5 5 8 8 8 8 5 8 5 8 ...
$ rf_equipment : Factor w/ 31 levels "","1","2","3",..: 3 14 13 13 13 13 14 13 3 13 ...
$ intended_use : Factor w/ 3 levels "Multi Carrier",..: 3 3 3 3 3 3 3 3 3 1 ...
$ asset_owner : Factor w/ 11 levels " ","ATT","BV on behalf of ATT",..: 3 8 9 9 9 9 9 9 3 5 ...
$ site_id : Factor w/ 1144 levels "COL06929F_R01 - LTE1C - Micro Cell - STAPL - 2017H2TUsc (CRAN_RUTH_STAPL_064)",..: 99 1143 707 907 709 662 1143 829 238 731 ...
$ fixed_asset_id : chr "14809978" "387368" "DN0315" "DN0791" ...
$ council_district : Factor w/ 11 levels "1","2","3","4",..: 9 1 1 8 1 7 7 9 9 10 ...
# Identify missing values (NA)
missing_values <- is.na(small_cells)
# Count NA
missing_counts <- colSums(is.na(small_cells))
missing_counts
owner_name applicant_company_name permit_master_number permit_ref_number node_group node_id node_address node_n node_e node_type status pole_material pole_manufacturer pole_model pole_height_ft pole_color rf_equipment intended_use asset_owner site_id fixed_asset_id council_district
0 0 263 635 3 0 0 0 0 0 419 0 0 0 0 0 0 0 0 0 0 0
# Locate NA
row_indices <- which(missing_values, arr.ind = TRUE)[, "row"]
col_indices <- which(missing_values, arr.ind = TRUE)[, "col"]
missing_indices <- cbind(row_indices, col_indices)
missing_indices
row_indices col_indices
[1,] 1 3
[2,] 31 3
[3,] 35 3
[4,] 36 3
[5,] 38 3
[6,] 48 3
[7,] 72 3
[8,] 82 3
[9,] 84 3
[10,] 90 3
[11,] 94 3
[12,] 103 3
[13,] 106 3
[14,] 107 3
[15,] 112 3
[16,] 115 3
[17,] 119 3
[18,] 120 3
[19,] 125 3
[20,] 144 3
[21,] 145 3
[22,] 148 3
[23,] 158 3
[24,] 161 3
[25,] 187 3
[26,] 197 3
[27,] 198 3
[28,] 201 3
[29,] 202 3
[30,] 207 3
[31,] 208 3
[32,] 219 3
[33,] 237 3
[34,] 245 3
[35,] 248 3
[36,] 249 3
[37,] 272 3
[38,] 275 3
[39,] 314 3
[40,] 324 3
[41,] 329 3
[42,] 339 3
[43,] 344 3
[44,] 350 3
[45,] 351 3
[46,] 364 3
[47,] 367 3
[48,] 375 3
[49,] 385 3
[50,] 398 3
[51,] 413 3
[52,] 416 3
[53,] 418 3
[54,] 431 3
[55,] 441 3
[56,] 459 3
[57,] 463 3
[58,] 475 3
[59,] 487 3
[60,] 489 3
[61,] 502 3
[62,] 509 3
[63,] 539 3
[64,] 547 3
[65,] 565 3
[66,] 583 3
[67,] 635 3
[68,] 647 3
[69,] 649 3
[70,] 656 3
[71,] 669 3
[72,] 682 3
[73,] 703 3
[74,] 705 3
[75,] 708 3
[76,] 712 3
[77,] 724 3
[78,] 730 3
[79,] 743 3
[80,] 755 3
[81,] 798 3
[82,] 799 3
[83,] 802 3
[84,] 804 3
[85,] 808 3
[86,] 809 3
[87,] 825 3
[88,] 866 3
[89,] 879 3
[90,] 891 3
[91,] 892 3
[92,] 899 3
[93,] 907 3
[94,] 908 3
[95,] 914 3
[96,] 919 3
[97,] 921 3
[98,] 922 3
[99,] 944 3
[100,] 946 3
[101,] 970 3
[102,] 972 3
[103,] 977 3
[104,] 988 3
[105,] 1015 3
[106,] 1020 3
[107,] 1048 3
[108,] 1056 3
[109,] 1057 3
[110,] 1064 3
[111,] 1073 3
[112,] 1082 3
[113,] 1092 3
[114,] 1101 3
[115,] 1116 3
[116,] 1124 3
[117,] 1129 3
[118,] 1139 3
[119,] 1140 3
[120,] 1149 3
[121,] 1154 3
[122,] 1165 3
[123,] 1168 3
[124,] 1187 3
[125,] 1219 3
[126,] 1242 3
[127,] 1253 3
[128,] 1259 3
[129,] 1263 3
[130,] 1267 3
[131,] 1270 3
[132,] 1283 3
[133,] 1289 3
[134,] 1290 3
[135,] 1302 3
[136,] 1310 3
[137,] 1323 3
[138,] 1340 3
[139,] 1345 3
[140,] 1358 3
[141,] 1362 3
[142,] 1367 3
[143,] 1389 3
[144,] 1410 3
[145,] 1411 3
[146,] 1413 3
[147,] 1416 3
[148,] 1421 3
[149,] 1428 3
[150,] 1449 3
[151,] 1458 3
[152,] 1465 3
[153,] 1466 3
[154,] 1472 3
[155,] 1495 3
[156,] 1498 3
[157,] 1505 3
[158,] 1513 3
[159,] 1525 3
[160,] 1530 3
[161,] 1536 3
[162,] 1541 3
[163,] 1542 3
[164,] 1547 3
[165,] 1564 3
[166,] 1577 3
[167,] 1592 3
[168,] 1601 3
[169,] 1612 3
[170,] 1640 3
[171,] 1642 3
[172,] 1651 3
[173,] 1671 3
[174,] 1674 3
[175,] 1688 3
[176,] 1690 3
[177,] 1707 3
[178,] 1732 3
[179,] 1740 3
[180,] 1769 3
[181,] 1770 3
[182,] 1772 3
[183,] 1781 3
[184,] 1792 3
[185,] 1810 3
[186,] 1814 3
[187,] 1817 3
[188,] 1826 3
[189,] 1830 3
[190,] 1849 3
[191,] 1850 3
[192,] 1851 3
[193,] 1857 3
[194,] 1868 3
[195,] 1872 3
[196,] 1884 3
[197,] 1885 3
[198,] 1889 3
[199,] 1895 3
[200,] 1904 3
[201,] 1905 3
[202,] 1912 3
[203,] 1915 3
[204,] 1927 3
[205,] 1931 3
[206,] 1936 3
[207,] 1941 3
[208,] 1946 3
[209,] 1949 3
[210,] 1950 3
[211,] 1959 3
[212,] 1972 3
[213,] 1977 3
[214,] 1985 3
[215,] 2004 3
[216,] 2029 3
[217,] 2032 3
[218,] 2034 3
[219,] 2054 3
[220,] 2061 3
[221,] 2069 3
[222,] 2077 3
[223,] 2084 3
[224,] 2090 3
[225,] 2115 3
[226,] 2131 3
[227,] 2135 3
[228,] 2138 3
[229,] 2168 3
[230,] 2178 3
[231,] 2182 3
[232,] 2186 3
[233,] 2187 3
[234,] 2195 3
[235,] 2199 3
[236,] 2211 3
[237,] 2214 3
[238,] 2217 3
[239,] 2220 3
[240,] 2230 3
[241,] 2234 3
[242,] 2242 3
[243,] 2280 3
[244,] 2291 3
[245,] 2310 3
[246,] 2311 3
[247,] 2313 3
[248,] 2327 3
[249,] 2331 3
[250,] 2351 3
[251,] 2371 3
[252,] 2387 3
[253,] 2403 3
[254,] 2408 3
[255,] 2422 3
[256,] 2426 3
[257,] 2459 3
[258,] 2460 3
[259,] 2468 3
[260,] 2506 3
[261,] 2513 3
[262,] 2515 3
[263,] 2516 3
[264,] 1 4
[265,] 9 4
[266,] 14 4
[267,] 19 4
[268,] 28 4
[269,] 30 4
[270,] 31 4
[271,] 32 4
[272,] 35 4
[273,] 36 4
[274,] 38 4
[275,] 42 4
[276,] 48 4
[277,] 61 4
[278,] 67 4
[279,] 72 4
[280,] 77 4
[281,] 82 4
[282,] 84 4
[283,] 90 4
[284,] 94 4
[285,] 98 4
[286,] 103 4
[287,] 106 4
[288,] 107 4
[289,] 110 4
[290,] 111 4
[291,] 112 4
[292,] 113 4
[293,] 114 4
[294,] 115 4
[295,] 119 4
[296,] 120 4
[297,] 125 4
[298,] 143 4
[299,] 144 4
[300,] 145 4
[301,] 147 4
[302,] 148 4
[303,] 150 4
[304,] 154 4
[305,] 158 4
[306,] 160 4
[307,] 161 4
[308,] 167 4
[309,] 168 4
[310,] 172 4
[311,] 175 4
[312,] 187 4
[313,] 188 4
[314,] 191 4
[315,] 197 4
[316,] 198 4
[317,] 201 4
[318,] 202 4
[319,] 204 4
[320,] 205 4
[321,] 207 4
[322,] 208 4
[323,] 212 4
[324,] 217 4
[325,] 219 4
[326,] 220 4
[327,] 222 4
[328,] 225 4
[329,] 226 4
[330,] 234 4
[331,] 237 4
[332,] 241 4
[333,] 245 4
[334,] 247 4
[335,] 248 4
[336,] 249 4
[337,] 256 4
[338,] 258 4
[339,] 268 4
[340,] 272 4
[341,] 274 4
[342,] 275 4
[343,] 276 4
[344,] 282 4
[345,] 286 4
[346,] 294 4
[347,] 297 4
[348,] 301 4
[349,] 303 4
[350,] 305 4
[351,] 308 4
[352,] 310 4
[353,] 313 4
[354,] 314 4
[355,] 324 4
[356,] 327 4
[357,] 329 4
[358,] 332 4
[359,] 333 4
[360,] 336 4
[361,] 339 4
[362,] 344 4
[363,] 348 4
[364,] 350 4
[365,] 351 4
[366,] 356 4
[367,] 358 4
[368,] 359 4
[369,] 364 4
[370,] 367 4
[371,] 375 4
[372,] 384 4
[373,] 385 4
[374,] 388 4
[375,] 394 4
[376,] 398 4
[377,] 403 4
[378,] 410 4
[379,] 413 4
[380,] 416 4
[381,] 417 4
[382,] 418 4
[383,] 426 4
[384,] 431 4
[385,] 441 4
[386,] 442 4
[387,] 444 4
[388,] 456 4
[389,] 459 4
[390,] 463 4
[391,] 466 4
[392,] 469 4
[393,] 470 4
[394,] 475 4
[395,] 479 4
[396,] 482 4
[397,] 487 4
[398,] 489 4
[399,] 492 4
[400,] 493 4
[401,] 498 4
[402,] 502 4
[403,] 509 4
[404,] 510 4
[405,] 514 4
[406,] 516 4
[407,] 527 4
[408,] 534 4
[409,] 539 4
[410,] 542 4
[411,] 547 4
[412,] 548 4
[413,] 553 4
[414,] 555 4
[415,] 557 4
[416,] 562 4
[417,] 565 4
[418,] 578 4
[419,] 583 4
[420,] 584 4
[421,] 587 4
[422,] 588 4
[423,] 591 4
[424,] 597 4
[425,] 612 4
[426,] 619 4
[427,] 628 4
[428,] 632 4
[429,] 635 4
[430,] 638 4
[431,] 641 4
[432,] 645 4
[433,] 647 4
[434,] 649 4
[435,] 656 4
[436,] 657 4
[437,] 658 4
[438,] 669 4
[439,] 672 4
[440,] 674 4
[441,] 676 4
[442,] 678 4
[443,] 681 4
[444,] 682 4
[445,] 693 4
[446,] 696 4
[447,] 697 4
[448,] 698 4
[449,] 703 4
[450,] 705 4
[451,] 708 4
[452,] 710 4
[453,] 711 4
[454,] 712 4
[455,] 719 4
[456,] 720 4
[457,] 722 4
[458,] 724 4
[459,] 730 4
[460,] 741 4
[461,] 743 4
[462,] 749 4
[463,] 755 4
[464,] 756 4
[465,] 765 4
[466,] 767 4
[467,] 776 4
[468,] 780 4
[469,] 794 4
[470,] 797 4
[471,] 798 4
[472,] 799 4
[473,] 802 4
[474,] 804 4
[475,] 805 4
[476,] 808 4
[477,] 809 4
[478,] 816 4
[479,] 817 4
[480,] 821 4
[481,] 825 4
[482,] 831 4
[483,] 836 4
[484,] 845 4
[485,] 852 4
[486,] 866 4
[487,] 879 4
[488,] 881 4
[489,] 882 4
[490,] 883 4
[491,] 889 4
[492,] 890 4
[493,] 891 4
[494,] 892 4
[495,] 893 4
[496,] 895 4
[497,] 897 4
[498,] 899 4
[499,] 901 4
[500,] 905 4
[501,] 907 4
[502,] 908 4
[503,] 910 4
[504,] 914 4
[505,] 916 4
[506,] 919 4
[507,] 921 4
[508,] 922 4
[509,] 926 4
[510,] 930 4
[511,] 944 4
[512,] 946 4
[513,] 950 4
[514,] 953 4
[515,] 954 4
[516,] 961 4
[517,] 962 4
[518,] 966 4
[519,] 967 4
[520,] 970 4
[521,] 972 4
[522,] 977 4
[523,] 984 4
[524,] 988 4
[525,] 1001 4
[526,] 1015 4
[527,] 1017 4
[528,] 1020 4
[529,] 1022 4
[530,] 1025 4
[531,] 1040 4
[532,] 1043 4
[533,] 1044 4
[534,] 1048 4
[535,] 1051 4
[536,] 1056 4
[537,] 1057 4
[538,] 1064 4
[539,] 1065 4
[540,] 1072 4
[541,] 1073 4
[542,] 1078 4
[543,] 1082 4
[544,] 1085 4
[545,] 1089 4
[546,] 1091 4
[547,] 1092 4
[548,] 1101 4
[549,] 1108 4
[550,] 1116 4
[551,] 1118 4
[552,] 1120 4
[553,] 1124 4
[554,] 1129 4
[555,] 1134 4
[556,] 1137 4
[557,] 1138 4
[558,] 1139 4
[559,] 1140 4
[560,] 1145 4
[561,] 1148 4
[562,] 1149 4
[563,] 1151 4
[564,] 1154 4
[565,] 1162 4
[566,] 1163 4
[567,] 1165 4
[568,] 1168 4
[569,] 1174 4
[570,] 1186 4
[571,] 1187 4
[572,] 1197 4
[573,] 1201 4
[574,] 1209 4
[575,] 1213 4
[576,] 1219 4
[577,] 1227 4
[578,] 1231 4
[579,] 1242 4
[580,] 1243 4
[581,] 1253 4
[582,] 1259 4
[583,] 1263 4
[584,] 1267 4
[585,] 1268 4
[586,] 1270 4
[587,] 1279 4
[588,] 1283 4
[589,] 1289 4
[590,] 1290 4
[591,] 1291 4
[592,] 1295 4
[593,] 1296 4
[594,] 1302 4
[595,] 1308 4
[596,] 1310 4
[597,] 1314 4
[598,] 1323 4
[599,] 1332 4
[600,] 1334 4
[601,] 1340 4
[602,] 1345 4
[603,] 1350 4
[604,] 1358 4
[605,] 1360 4
[606,] 1362 4
[607,] 1367 4
[608,] 1374 4
[609,] 1380 4
[610,] 1382 4
[611,] 1389 4
[612,] 1392 4
[613,] 1401 4
[614,] 1410 4
[615,] 1411 4
[616,] 1413 4
[617,] 1416 4
[618,] 1421 4
[619,] 1426 4
[620,] 1427 4
[621,] 1428 4
[622,] 1432 4
[623,] 1439 4
[624,] 1449 4
[625,] 1458 4
[626,] 1462 4
[627,] 1465 4
[628,] 1466 4
[629,] 1472 4
[630,] 1478 4
[631,] 1479 4
[632,] 1482 4
[633,] 1495 4
[634,] 1498 4
[635,] 1499 4
[636,] 1505 4
[637,] 1508 4
[638,] 1509 4
[639,] 1513 4
[640,] 1518 4
[641,] 1525 4
[642,] 1530 4
[643,] 1536 4
[644,] 1538 4
[645,] 1541 4
[646,] 1542 4
[647,] 1545 4
[648,] 1547 4
[649,] 1553 4
[650,] 1555 4
[651,] 1557 4
[652,] 1560 4
[653,] 1563 4
[654,] 1564 4
[655,] 1571 4
[656,] 1572 4
[657,] 1577 4
[658,] 1578 4
[659,] 1588 4
[660,] 1592 4
[661,] 1598 4
[662,] 1600 4
[663,] 1601 4
[664,] 1605 4
[665,] 1612 4
[666,] 1613 4
[667,] 1616 4
[668,] 1619 4
[669,] 1620 4
[670,] 1623 4
[671,] 1625 4
[672,] 1635 4
[673,] 1636 4
[674,] 1640 4
[675,] 1642 4
[676,] 1644 4
[677,] 1648 4
[678,] 1651 4
[679,] 1654 4
[680,] 1661 4
[681,] 1662 4
[682,] 1671 4
[683,] 1672 4
[684,] 1674 4
[685,] 1675 4
[686,] 1679 4
[687,] 1688 4
[688,] 1690 4
[689,] 1693 4
[690,] 1695 4
[691,] 1706 4
[692,] 1707 4
[693,] 1732 4
[694,] 1740 4
[695,] 1742 4
[696,] 1753 4
[697,] 1756 4
[698,] 1769 4
[699,] 1770 4
[700,] 1771 4
[701,] 1772 4
[702,] 1781 4
[703,] 1783 4
[704,] 1791 4
[705,] 1792 4
[706,] 1808 4
[707,] 1810 4
[708,] 1813 4
[709,] 1814 4
[710,] 1816 4
[711,] 1817 4
[712,] 1819 4
[713,] 1822 4
[714,] 1825 4
[715,] 1826 4
[716,] 1830 4
[717,] 1838 4
[718,] 1843 4
[719,] 1848 4
[720,] 1849 4
[721,] 1850 4
[722,] 1851 4
[723,] 1857 4
[724,] 1866 4
[725,] 1868 4
[726,] 1872 4
[727,] 1878 4
[728,] 1884 4
[729,] 1885 4
[730,] 1887 4
[731,] 1889 4
[732,] 1890 4
[733,] 1894 4
[734,] 1895 4
[735,] 1898 4
[736,] 1904 4
[737,] 1905 4
[738,] 1909 4
[739,] 1911 4
[740,] 1912 4
[741,] 1913 4
[742,] 1915 4
[743,] 1916 4
[744,] 1917 4
[745,] 1920 4
[746,] 1923 4
[747,] 1924 4
[748,] 1927 4
[749,] 1931 4
[750,] 1932 4
[751,] 1934 4
[752,] 1936 4
[753,] 1939 4
[754,] 1940 4
[755,] 1941 4
[756,] 1942 4
[757,] 1944 4
[758,] 1946 4
[759,] 1948 4
[760,] 1949 4
[761,] 1950 4
[762,] 1951 4
[763,] 1954 4
[764,] 1958 4
[765,] 1959 4
[766,] 1970 4
[767,] 1971 4
[768,] 1972 4
[769,] 1975 4
[770,] 1977 4
[771,] 1978 4
[772,] 1981 4
[773,] 1985 4
[774,] 1986 4
[775,] 1996 4
[776,] 1997 4
[777,] 2000 4
[778,] 2001 4
[779,] 2003 4
[780,] 2004 4
[781,] 2009 4
[782,] 2011 4
[783,] 2025 4
[784,] 2029 4
[785,] 2032 4
[786,] 2034 4
[787,] 2037 4
[788,] 2047 4
[789,] 2048 4
[790,] 2049 4
[791,] 2050 4
[792,] 2053 4
[793,] 2054 4
[794,] 2061 4
[795,] 2069 4
[796,] 2072 4
[797,] 2076 4
[798,] 2077 4
[799,] 2080 4
[800,] 2084 4
[801,] 2087 4
[802,] 2090 4
[803,] 2098 4
[804,] 2106 4
[805,] 2115 4
[806,] 2118 4
[807,] 2120 4
[808,] 2131 4
[809,] 2135 4
[810,] 2136 4
[811,] 2138 4
[812,] 2141 4
[813,] 2150 4
[814,] 2159 4
[815,] 2168 4
[816,] 2169 4
[817,] 2177 4
[818,] 2178 4
[819,] 2180 4
[820,] 2181 4
[821,] 2182 4
[822,] 2186 4
[823,] 2187 4
[824,] 2188 4
[825,] 2191 4
[826,] 2193 4
[827,] 2195 4
[828,] 2199 4
[829,] 2211 4
[830,] 2214 4
[831,] 2215 4
[832,] 2217 4
[833,] 2219 4
[834,] 2220 4
[835,] 2225 4
[836,] 2226 4
[837,] 2230 4
[838,] 2234 4
[839,] 2240 4
[840,] 2242 4
[841,] 2246 4
[842,] 2253 4
[843,] 2254 4
[844,] 2269 4
[845,] 2270 4
[846,] 2273 4
[847,] 2279 4
[848,] 2280 4
[849,] 2282 4
[850,] 2283 4
[851,] 2291 4
[852,] 2292 4
[853,] 2306 4
[854,] 2310 4
[855,] 2311 4
[856,] 2313 4
[857,] 2327 4
[858,] 2328 4
[859,] 2331 4
[860,] 2351 4
[861,] 2354 4
[862,] 2356 4
[863,] 2364 4
[864,] 2369 4
[865,] 2371 4
[866,] 2373 4
[867,] 2378 4
[868,] 2387 4
[869,] 2393 4
[870,] 2396 4
[871,] 2403 4
[872,] 2408 4
[873,] 2410 4
[874,] 2413 4
[875,] 2419 4
[876,] 2422 4
[877,] 2425 4
[878,] 2426 4
[879,] 2427 4
[880,] 2430 4
[881,] 2434 4
[882,] 2442 4
[883,] 2446 4
[884,] 2453 4
[885,] 2459 4
[886,] 2460 4
[887,] 2468 4
[888,] 2473 4
[889,] 2481 4
[890,] 2487 4
[891,] 2498 4
[892,] 2502 4
[893,] 2506 4
[894,] 2513 4
[895,] 2514 4
[896,] 2515 4
[897,] 2516 4
[898,] 2517 4
[899,] 710 5
[900,] 1243 5
[901,] 1819 5
[902,] 3 11
[903,] 4 11
[904,] 5 11
[905,] 6 11
[906,] 8 11
[907,] 14 11
[908,] 16 11
[909,] 19 11
[910,] 25 11
[911,] 29 11
[912,] 30 11
[913,] 32 11
[914,] 36 11
[915,] 67 11
[916,] 84 11
[917,] 103 11
[918,] 106 11
[919,] 107 11
[920,] 110 11
[921,] 111 11
[922,] 134 11
[923,] 143 11
[924,] 144 11
[925,] 145 11
[926,] 154 11
[927,] 160 11
[928,] 161 11
[929,] 163 11
[930,] 166 11
[931,] 167 11
[932,] 181 11
[933,] 187 11
[934,] 188 11
[935,] 195 11
[936,] 201 11
[937,] 202 11
[938,] 205 11
[939,] 207 11
[940,] 208 11
[941,] 216 11
[942,] 219 11
[943,] 221 11
[944,] 226 11
[945,] 234 11
[946,] 241 11
[947,] 245 11
[948,] 246 11
[949,] 256 11
[950,] 268 11
[951,] 275 11
[952,] 276 11
[953,] 291 11
[954,] 301 11
[955,] 323 11
[956,] 327 11
[957,] 329 11
[958,] 344 11
[959,] 348 11
[960,] 356 11
[961,] 358 11
[962,] 364 11
[963,] 384 11
[964,] 385 11
[965,] 394 11
[966,] 395 11
[967,] 401 11
[968,] 404 11
[969,] 408 11
[970,] 410 11
[971,] 413 11
[972,] 417 11
[973,] 418 11
[974,] 419 11
[975,] 431 11
[976,] 434 11
[977,] 441 11
[978,] 442 11
[979,] 456 11
[980,] 459 11
[981,] 465 11
[982,] 466 11
[983,] 468 11
[984,] 469 11
[985,] 470 11
[986,] 475 11
[987,] 482 11
[988,] 483 11
[989,] 489 11
[990,] 498 11
[991,] 500 11
[992,] 502 11
[993,] 509 11
[994,] 510 11
[995,] 519 11
[996,] 532 11
[997,] 536 11
[998,] 539 11
[999,] 541 11
[1000,] 542 11
[1001,] 547 11
[1002,] 548 11
[1003,] 553 11
[1004,] 557 11
[1005,] 562 11
[1006,] 572 11
[1007,] 583 11
[1008,] 584 11
[1009,] 587 11
[1010,] 588 11
[1011,] 590 11
[1012,] 618 11
[1013,] 625 11
[1014,] 628 11
[1015,] 631 11
[1016,] 638 11
[1017,] 642 11
[1018,] 644 11
[1019,] 645 11
[1020,] 647 11
[1021,] 657 11
[1022,] 658 11
[1023,] 662 11
[1024,] 665 11
[1025,] 674 11
[1026,] 678 11
[1027,] 681 11
[1028,] 697 11
[1029,] 711 11
[1030,] 719 11
[1031,] 720 11
[1032,] 724 11
[1033,] 732 11
[1034,] 743 11
[1035,] 749 11
[1036,] 751 11
[1037,] 756 11
[1038,] 765 11
[1039,] 767 11
[1040,] 776 11
[1041,] 779 11
[1042,] 790 11
[1043,] 793 11
[1044,] 794 11
[1045,] 795 11
[1046,] 808 11
[1047,] 811 11
[1048,] 816 11
[1049,] 817 11
[1050,] 825 11
[1051,] 831 11
[1052,] 883 11
[1053,] 887 11
[1054,] 889 11
[1055,] 891 11
[1056,] 892 11
[1057,] 893 11
[1058,] 897 11
[1059,] 899 11
[1060,] 907 11
[1061,] 909 11
[1062,] 916 11
[1063,] 922 11
[1064,] 924 11
[1065,] 926 11
[1066,] 946 11
[1067,] 950 11
[1068,] 954 11
[1069,] 966 11
[1070,] 967 11
[1071,] 996 11
[1072,] 999 11
[1073,] 1006 11
[1074,] 1011 11
[1075,] 1014 11
[1076,] 1015 11
[1077,] 1016 11
[1078,] 1017 11
[1079,] 1020 11
[1080,] 1022 11
[1081,] 1044 11
[1082,] 1048 11
[1083,] 1055 11
[1084,] 1056 11
[1085,] 1061 11
[1086,] 1064 11
[1087,] 1065 11
[1088,] 1072 11
[1089,] 1073 11
[1090,] 1078 11
[1091,] 1082 11
[1092,] 1089 11
[1093,] 1090 11
[1094,] 1091 11
[1095,] 1117 11
[1096,] 1124 11
[1097,] 1129 11
[1098,] 1135 11
[1099,] 1136 11
[1100,] 1140 11
[1101,] 1148 11
[1102,] 1151 11
[1103,] 1156 11
[1104,] 1176 11
[1105,] 1177 11
[1106,] 1185 11
[1107,] 1186 11
[1108,] 1187 11
[1109,] 1188 11
[1110,] 1202 11
[1111,] 1209 11
[1112,] 1220 11
[1113,] 1233 11
[1114,] 1238 11
[1115,] 1240 11
[1116,] 1241 11
[1117,] 1257 11
[1118,] 1259 11
[1119,] 1268 11
[1120,] 1289 11
[1121,] 1291 11
[1122,] 1298 11
[1123,] 1299 11
[1124,] 1305 11
[1125,] 1308 11
[1126,] 1314 11
[1127,] 1319 11
[1128,] 1322 11
[1129,] 1323 11
[1130,] 1332 11
[1131,] 1334 11
[1132,] 1350 11
[1133,] 1376 11
[1134,] 1379 11
[1135,] 1380 11
[1136,] 1386 11
[1137,] 1401 11
[1138,] 1411 11
[1139,] 1412 11
[1140,] 1413 11
[1141,] 1417 11
[1142,] 1421 11
[1143,] 1428 11
[1144,] 1432 11
[1145,] 1435 11
[1146,] 1438 11
[1147,] 1439 11
[1148,] 1449 11
[1149,] 1450 11
[1150,] 1472 11
[1151,] 1478 11
[1152,] 1479 11
[1153,] 1482 11
[1154,] 1490 11
[1155,] 1491 11
[1156,] 1493 11
[1157,] 1495 11
[1158,] 1498 11
[1159,] 1503 11
[1160,] 1508 11
[1161,] 1510 11
[1162,] 1518 11
[1163,] 1541 11
[1164,] 1542 11
[1165,] 1549 11
[1166,] 1553 11
[1167,] 1560 11
[1168,] 1563 11
[1169,] 1569 11
[1170,] 1571 11
[1171,] 1572 11
[1172,] 1578 11
[1173,] 1600 11
[1174,] 1601 11
[1175,] 1616 11
[1176,] 1621 11
[1177,] 1625 11
[1178,] 1635 11
[1179,] 1636 11
[1180,] 1640 11
[1181,] 1642 11
[1182,] 1648 11
[1183,] 1652 11
[1184,] 1672 11
[1185,] 1707 11
[1186,] 1725 11
[1187,] 1737 11
[1188,] 1740 11
[1189,] 1771 11
[1190,] 1772 11
[1191,] 1774 11
[1192,] 1789 11
[1193,] 1800 11
[1194,] 1808 11
[1195,] 1813 11
[1196,] 1814 11
[1197,] 1816 11
[1198,] 1823 11
[1199,] 1838 11
[1200,] 1851 11
[1201,] 1855 11
[1202,] 1861 11
[1203,] 1865 11
[1204,] 1866 11
[1205,] 1868 11
[1206,] 1872 11
[1207,] 1875 11
[1208,] 1884 11
[1209,] 1885 11
[1210,] 1887 11
[1211,] 1895 11
[1212,] 1905 11
[1213,] 1906 11
[1214,] 1908 11
[1215,] 1911 11
[1216,] 1912 11
[1217,] 1916 11
[1218,] 1917 11
[1219,] 1920 11
[1220,] 1922 11
[1221,] 1924 11
[1222,] 1935 11
[1223,] 1939 11
[1224,] 1940 11
[1225,] 1946 11
[1226,] 1948 11
[1227,] 1951 11
[1228,] 1952 11
[1229,] 1958 11
[1230,] 1970 11
[1231,] 1971 11
[1232,] 1972 11
[1233,] 1978 11
[1234,] 1979 11
[1235,] 1981 11
[1236,] 2001 11
[1237,] 2003 11
[1238,] 2005 11
[1239,] 2011 11
[1240,] 2025 11
[1241,] 2036 11
[1242,] 2037 11
[1243,] 2047 11
[1244,] 2048 11
[1245,] 2049 11
[1246,] 2076 11
[1247,] 2087 11
[1248,] 2090 11
[1249,] 2098 11
[1250,] 2118 11
[1251,] 2120 11
[1252,] 2131 11
[1253,] 2133 11
[1254,] 2135 11
[1255,] 2138 11
[1256,] 2139 11
[1257,] 2141 11
[1258,] 2150 11
[1259,] 2153 11
[1260,] 2155 11
[1261,] 2160 11
[1262,] 2164 11
[1263,] 2168 11
[1264,] 2169 11
[1265,] 2177 11
[1266,] 2178 11
[1267,] 2179 11
[1268,] 2187 11
[1269,] 2193 11
[1270,] 2195 11
[1271,] 2202 11
[1272,] 2206 11
[1273,] 2215 11
[1274,] 2219 11
[1275,] 2220 11
[1276,] 2225 11
[1277,] 2226 11
[1278,] 2232 11
[1279,] 2234 11
[1280,] 2237 11
[1281,] 2246 11
[1282,] 2262 11
[1283,] 2283 11
[1284,] 2292 11
[1285,] 2295 11
[1286,] 2311 11
[1287,] 2315 11
[1288,] 2318 11
[1289,] 2321 11
[1290,] 2327 11
[1291,] 2328 11
[1292,] 2331 11
[1293,] 2332 11
[1294,] 2338 11
[1295,] 2354 11
[1296,] 2356 11
[1297,] 2362 11
[1298,] 2366 11
[1299,] 2387 11
[1300,] 2390 11
[1301,] 2393 11
[1302,] 2410 11
[1303,] 2419 11
[1304,] 2425 11
[1305,] 2433 11
[1306,] 2440 11
[1307,] 2446 11
[1308,] 2459 11
[1309,] 2460 11
[1310,] 2468 11
[1311,] 2473 11
[1312,] 2474 11
[1313,] 2480 11
[1314,] 2482 11
[1315,] 2487 11
[1316,] 2493 11
[1317,] 2494 11
[1318,] 2506 11
[1319,] 2516 11
[1320,] 2517 11
Visualizing Categorical Data
# small_cells %>%
# ggplot2::ggplot(aes(x=owner_name, y=(..count..), fill=status)) +
# ggplot2::geom_bar(position="stack", stat="count") +
# ggplot2::scale_x_discrete(limits=c("Verizon", "AT&T", "Crown Castle (T-Mobile)", "Zayo", "Mobilitie (Sprint)", "SQF")) +
# ggplot2::scale_y_continuous(expand=c(0, 0), position="right") + # Scale
# # ggplot2::scale_fill_manual(values=c("Existing"=palette_michaelmallari_r[2], "Proposed"=palette_michaelmallari_r[19], "Future Planned 1-2 Years"=palette_michaelmallari_r[20])) +
# ggplot2::labs(
# title="Denver's 5G-Readiness and Commitments, Especially From Verizon",
# alt="Denver's 5G-Readiness and Commitments, Especially From Verizon",
# subtitle="Count of small cell sites, grouped by owner and status, 2021",
# x=NULL,
# y=NULL,
# fill=NULL,
# caption="Source: https://www.denvergov.org/opendata/dataset/city-and-county-of-denver-small-cell-node"
# ) +
# theme_michaelmallari_r()
Visualizing Geospatial Data
# Center map on Colfax & Broadway
denver <- c(lon = -104.98741062659272, lat = 39.7400672449674)
denver_map <- ggmap::get_map(denver, zoom = 12, source = "stamen", maptype = "toner")
# ggmap::ggmap(denver_map, base_layer = ggplot(small_cells, aes(node_e, node_n))) +
# ggplot2::geom_point(aes(color=council_district), size=0.33) +
# # ggplot2::scale_y_continuous(expand=c(0, 0), position="right") + # Scale
# ggplot2::labs(
# title="Small Cell Nodes Located by Council District in Denver",
# alt="Small Cell Nodes Located by Council District in Denver",
# subtitle=NULL,
# x="Latitude",
# y="Longitude",
# color="Council District",
# caption="Source: https://www.denvergov.org/opendata/dataset/city-and-county-of-denver-small-cell-node"
# )
small_cells_att <- small_cells %>%
filter(owner_name == "AT&T")
# ggmap::ggmap(denver_map, base_layer = ggplot(small_cells_att, aes(node_e, node_n))) +
# ggplot2::geom_point(aes(color = status), size = 0.5, alpha = 0.75) +
# ggplot2::xlab("Latitude") +
# ggplot2::ylab("Longitude") +
# ggplot2::labs(title = "AT&T Small Cell Nodes in Denver", color = "Status") +
# ggplot2::scale_color_manual(values=c("#00a6c8", "#eb3300", "#9063cd")) +
# ggplot2::theme(
# plot.title = element_text(size = 14, face = "bold", hjust = 0.5)
# )
# small_cells_tmobile_sprint <- small_cells %>%
# filter(owner_name == "Crown Castle (T-Mobile)" | owner_name == "Mobilitie (Sprint)")
#
# ggmap::ggmap(denver_map, base_layer = ggplot(small_cells_tmobile_sprint, aes(node_e, node_n))) +
# ggplot2::geom_point(aes(colour = status), size = 0.5, alpha = 0.75) +
# ggplot2::xlab("Latitude") +
# ggplot2::ylab("Longitude") +
# ggplot2::labs(title = "T-Mobile/Sprint Small Cell Nodes in Denver", colour = "Status") +
# ggplot2::scale_color_manual(values=c("#00a6c8", "#eb3300")) +
# ggplot2::theme(
# plot.title = element_text(size = 14, face = "bold", hjust = 0.5)
# )
# small_cells_verizon <- small_cells %>%
# filter(owner_name == "Verizon")
#
# ggmap::ggmap(denver_map, base_layer = ggplot(small_cells_verizon, aes(node_e, node_n))) +
# ggplot2::geom_point(aes(colour = status), size = 0.5, alpha = 0.75) +
# ggplot2::xlab("Latitude") +
# ggplot2::ylab("Longitude") +
# ggplot2::labs(title = "Verizon Small Cell Nodes in Denver", colour = "Status") +
# ggplot2::scale_color_manual(values=c("#00a6c8", "#eb3300")) +
# ggplot2::theme(
# plot.title = element_text(size = 14, face = "bold", hjust = 0.5)
# )
References
- Bivand, R. S., Pebesma, E., & Gómez-Rubio, V. (2013). Applied Spatial Data Analysis with R (2nd ed.). Springer. https://doi.org/10.1007/978-1-4614-7618-4