Edirne
1. libraries
library(DBI)
library(sf)
#test123
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1
library(leaflet)
library(ggplot2)
library(tmap)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(nngeo)
2. Connect to PostgreSQL Database
library(DBI)
db <- 'urbanoccupations_db' #provide the name of your db
host_db <- 'aws-eu-central-1-portal.1.dblayer.com' #i.e. # i.e. 'ec2-54-83-201-96.compute-1.amazonaws.com'
db_port <- '18368' # or any other port specified by the DBA
db_u <- 'online_user'
db_p <- 'Peculiar-Crazy9-Trailing'
con <- dbConnect(RPostgres::Postgres(), dbname = db, host=host_db, port=db_port, user=db_u, password=db_p)
3. Access PostgreSQL layer and query dataset for Motorized Transport
file_motor = dbGetQuery(con, "select * from piet_phd_data.DH_1940_Edirne_Transport WHERE network_ty IN ('Ausgebaute Allwetterstrasse', 'Fahrstrasse')")
newGeom = st_as_sfc(structure(as.character(file_motor$geom), class = "WKB"),EWKB=TRUE)
file_motor_geom = st_set_geometry(file_motor, newGeom)
# plot(file_motor_geom$geometry)
map_motor = ggplot(file_motor_geom) + geom_sf()
map_motor

4. Access PostgreSQL layer and query dataset for cart Transport
file_cart = dbGetQuery(con, "select * from piet_phd_data.DH_1940_Edirne_Transport WHERE network_ty IN ('Karawanenweg', 'Saumweg')")
newGeom = st_as_sfc(structure(as.character(file_cart$geom), class = "WKB"),EWKB=TRUE)
file_cart_geom = st_set_geometry(file_cart, newGeom)
map_cart = ggplot(file_cart_geom) + geom_sf() + aes(colour = "red")
map_cart

5. Access PostgreSQL layer and query dataset for Walking paths
file_walk = dbGetQuery(con, "select * from piet_phd_data.DH_1940_Edirne_Transport WHERE network_ty IN ('Fußweg')")
newGeom = st_as_sfc(structure(as.character(file_walk$geom), class = "WKB"),EWKB=TRUE)
file_walk_geom = st_set_geometry(file_walk, newGeom)
map_cart = ggplot(file_walk_geom) + geom_sf() + aes(col = "red")
map_cart

6a. Access PostgreSQL layer and query dataset for Settlement layer
file_settlements = dbGetQuery(con, "select * from piet_phd_data.nfs_settlements_1940_pop_xy where not geom in ('0101000020E610000000000000000000000000000000000000')")
newGeom = st_as_sfc(structure(as.character(file_settlements$geom), class = "WKB"),EWKB=TRUE)
file_settlements_geom = st_set_geometry(file_settlements, newGeom)
plot(file_settlements_geom$geometry)

6b. Visualize first few rows of data as a sample
library (knitr)
kable(head(file_settlements, 10), caption = "Sample of Dataset")
| id | place_id | il_original | ilce_original | bucak_commune_original | belediye_koy_original | male | female | both | comments | geom | newpoint_x | newpoint_y |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Edirne | MerkezNahiyesi | Merkez | Azatli | 385 | 406 | 791 | NA | 0101000020E610000024287E8CB9B33A40B2D7BB3FDEBF4440 | 26.70205 | 41.49897 |
| 2 | 2 | Edirne | MerkezNahiyesi | Merkez | Bosna | 610 | 578 | 1188 | NA | 0101000020E61000003F52448655903A40EE08A7052FD04440 | 26.56380 | 41.62644 |
| 3 | 3 | Edirne | MerkezNahiyesi | Merkez | Büyük döllük | 316 | 362 | 678 | NA | 0101000020E6100000029EB47059993A4056B8E52329E14440 | 26.59902 | 41.75907 |
| 4 | 4 | Edirne | MerkezNahiyesi | Merkez | Dayakadin | 247 | 250 | 497 | NA | 0101000020E61000001AD578E926A93A40D9CEF753E3C94440 | 26.66075 | 41.57725 |
| 5 | 5 | Edirne | MerkezNahiyesi | Merkez | Dayran | 380 | 372 | 752 | NA | 0101000020E61000006C19FF3EE39A3A40FCCEDA6D17BE4440 | 26.60503 | 41.48509 |
| 6 | 6 | Edirne | MerkezNahiyesi | Merkez | Demirbanli | 243 | 262 | 505 | NA | 0101000020E6100000F0F96184F0BC3A4025404D2D5BD94440 | 26.73804 | 41.69810 |
| 7 | 7 | Edirne | MerkezNahiyesi | Merkez | Degirmenyeni | 237 | 259 | 496 | NA | 0101000020E6100000ADBD4F55A18D3A40A587A1D5C9E14440 | 26.55324 | 41.76397 |
| 8 | 8 | Edirne | MerkezNahiyesi | Merkez | Hasanaga | 2516 | 98 | 2614 | NA | 0101000020E610000067D13B15709F3A408A75AA7CCFDC4440 | 26.62280 | 41.72508 |
| 9 | 9 | Edirne | MerkezNahiyesi | Merkez | Hatip | 94 | 89 | 183 | NA | 0101000020E61000002E3883BF5F903A4084F23E8EE6E84440 | 26.56396 | 41.81954 |
| 10 | 10 | Edirne | MerkezNahiyesi | Merkez | Hadira ga | 233 | 254 | 487 | NA | 0101000020E6100000C5FEB27BF2A83A4083DDB06D51DE4440 | 26.65995 | 41.73686 |
Table 1: Sample of Dataset
8. example of a leaflet map in Rmarkdown
8a.Calculate symbology column
#Classification of population figures and addition of column "colorpal" for symbolisation
file_settlements_geom$colorpal <- cut(file_settlements_geom$both, c(0,250,500,1000,2500,20000), include.lowest = F, labels = c('250', '500', '1000', '2500', '2500+'))
# Colour coding of the legend and symbols in leaflet map
beatCol <- colorFactor(palette = 'BuPu', file_settlements_geom$colorpal)
8b. Map creation
map <- leaflet() %>%
addTiles() %>%
addMiniMap( position = "topleft", toggleDisplay = TRUE, autoToggleDisplay = TRUE, collapsedWidth = 19, collapsedHeight = 19, minimized=TRUE) %>%
addProviderTiles(providers$Stamen.Toner, group = 'Toner') %>%
addProviderTiles(provider = providers$Esri.WorldImagery, group = 'ESRI') %>%
addCircleMarkers(data=file_settlements_geom, file_settlements_geom$newpoint_x, file_settlements_geom$newpoint_y, color = ~beatCol(colorpal), radius = ~sqrt(both/1000), group = 'Settlements', opacity = 1, weight = 10, popup = ~paste0("<b>", belediye_koy_original, "</b>","<br/>", format(both, big.mark=","))) %>%
addPolylines(data=file_motor_geom$geometry, color = "Green", smoothFactor = 1, opacity = 0.5, weight =5, group = 'Motorways') %>%
addPolylines(data=file_cart_geom$geometry, color = "Pink", smoothFactor = 1, opacity = 0.4, weight =2, group = 'Cart roads') %>%
addPolylines(data=file_walk_geom$geometry, color = "Red", smoothFactor = 1, opacity = 0.5, weight =4, group = 'Walking paths') %>%
addLegend('bottomright', pal = beatCol, values = file_settlements_geom$colorpal, title = '<b>Settlement size</b>', opacity = 1) %>%
addLayersControl(
baseGroups = c("Toner (default)", "ESRI"),
overlayGroups = c("Settlements", "Motorways", "Cart roads", "Walking paths"),
options = layersControlOptions(collapsed = FALSE)
)
map
9 Exploratory Data Analysis (EDA)
9a Calculate distance from settlements to the nearest roads per type











