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")
idplace_idil_originalilce_originalbucak_commune_originalbelediye_koy_originalmalefemalebothcommentsgeomnewpoint_xnewpoint_y
11EdirneMerkezNahiyesiMerkezAzatli385406791NA0101000020E610000024287E8CB9B33A40B2D7BB3FDEBF444026.7020541.49897
22EdirneMerkezNahiyesiMerkezBosna6105781188NA0101000020E61000003F52448655903A40EE08A7052FD0444026.5638041.62644
33EdirneMerkezNahiyesiMerkezBüyük döllük316362678NA0101000020E6100000029EB47059993A4056B8E52329E1444026.5990241.75907
44EdirneMerkezNahiyesiMerkezDayakadin247250497NA0101000020E61000001AD578E926A93A40D9CEF753E3C9444026.6607541.57725
55EdirneMerkezNahiyesiMerkezDayran380372752NA0101000020E61000006C19FF3EE39A3A40FCCEDA6D17BE444026.6050341.48509
66EdirneMerkezNahiyesiMerkezDemirbanli243262505NA0101000020E6100000F0F96184F0BC3A4025404D2D5BD9444026.7380441.69810
77EdirneMerkezNahiyesiMerkezDegirmenyeni237259496NA0101000020E6100000ADBD4F55A18D3A40A587A1D5C9E1444026.5532441.76397
88EdirneMerkezNahiyesiMerkezHasanaga2516982614NA0101000020E610000067D13B15709F3A408A75AA7CCFDC444026.6228041.72508
99EdirneMerkezNahiyesiMerkezHatip9489183NA0101000020E61000002E3883BF5F903A4084F23E8EE6E8444026.5639641.81954
1010EdirneMerkezNahiyesiMerkezHadira ga233254487NA0101000020E6100000C5FEB27BF2A83A4083DDB06D51DE444026.6599541.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

9b From the top Nearest cities in the regiion

9c Correlation between Male/Female ratio distribution and Settlement size

Next