Лабораторная работа №4

Мое задание состоит в том, что надо выбрать любой показатель из раздела “Транспорт” и составить 2 по РФ. Я выбрал такой показатель, как “Объем отправленных грузов(т)”.

Загрузка пакетов

library('R.utils')               # gunzip() для распаковки архивов 
## Warning: package 'R.utils' was built under R version 3.5.3
## Loading required package: R.oo
## Warning: package 'R.oo' was built under R version 3.5.2
## Loading required package: R.methodsS3
## Warning: package 'R.methodsS3' was built under R version 3.5.2
## R.methodsS3 v1.7.1 (2016-02-15) successfully loaded. See ?R.methodsS3 for help.
## R.oo v1.22.0 (2018-04-21) successfully loaded. See ?R.oo for help.
## 
## Attaching package: 'R.oo'
## The following objects are masked from 'package:methods':
## 
##     getClasses, getMethods
## The following objects are masked from 'package:base':
## 
##     attach, detach, gc, load, save
## R.utils v2.8.0 successfully loaded. See ?R.utils for help.
## 
## Attaching package: 'R.utils'
## The following object is masked from 'package:utils':
## 
##     timestamp
## The following objects are masked from 'package:base':
## 
##     cat, commandArgs, getOption, inherits, isOpen, parse, warnings
library('sp')                    # функция spplot()
## Warning: package 'sp' was built under R version 3.5.3
library('ggplot2')               # функция ggplot()
## Warning: package 'ggplot2' was built under R version 3.5.2
library('RColorBrewer')          # цветовые палитры
## Warning: package 'RColorBrewer' was built under R version 3.5.2
require('rgdal')                 # функция readOGR()
## Loading required package: rgdal
## Warning: package 'rgdal' was built under R version 3.5.3
## rgdal: version: 1.4-3, (SVN revision 828)
##  Geospatial Data Abstraction Library extensions to R successfully loaded
##  Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
##  Path to GDAL shared files: C:/Users/stud/Documents/R/win-library/3.5/rgdal/gdal
##  GDAL binary built with GEOS: TRUE 
##  Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
##  Path to PROJ.4 shared files: C:/Users/stud/Documents/R/win-library/3.5/rgdal/proj
##  Linking to sp version: 1.3-1
## 
## Attaching package: 'rgdal'
## The following object is masked from 'package:R.oo':
## 
##     getDescription
library('broom')                 # функция tidy()
## Warning: package 'broom' was built under R version 3.5.3
require('dplyr')                 # функция join()
## Loading required package: dplyr
## Warning: package 'dplyr' was built under R version 3.5.3
## 
## 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('scales')                # функция pretty_breaks()
## Warning: package 'scales' was built under R version 3.5.3
library('mapproj')
## Warning: package 'mapproj' was built under R version 3.5.3
## Loading required package: maps
## Warning: package 'maps' was built under R version 3.5.3
library('gpclib')
## General Polygon Clipper Library for R (version 1.5-5)
##  Type 'class ? gpc.poly' for help
library('maptools')
## Warning: package 'maptools' was built under R version 3.5.3
## Checking rgeos availability: FALSE
##      Note: when rgeos is not available, polygon geometry     computations in maptools depend on gpclib,
##      which has a restricted licence. It is disabled by default;
##      to enable gpclib, type gpclibPermit()

Объем перевезок за 2017 год

Загрузка данных

gpclibPermit()
## Warning in gpclibPermit(): support for gpclib will be withdrawn from
## maptools at the next major release
## [1] TRUE
ShapeFileURL <- "https://biogeo.ucdavis.edu/data/gadm3.6/shp/gadm36_RUS_shp.zip"
if (!file.exists('./data')) dir.create('./data')
if (!file.exists('./data/gadm36_RUS_shp.zip')) {
    download.file(ShapeFileURL, destfile = './data/gadm36_RUS_shp.zip')
}
# распаковать архив
unzip('./data/gadm36_RUS_shp.zip', exdir = './data/gadm36_RUS_shp')
# посмотреть список файлов распакованного архива
dir('./data/gadm36_RUS_shp')
##  [1] "gadm36_RUS_0.cpg" "gadm36_RUS_0.dbf" "gadm36_RUS_0.prj"
##  [4] "gadm36_RUS_0.shp" "gadm36_RUS_0.shx" "gadm36_RUS_1.cpg"
##  [7] "gadm36_RUS_1.dbf" "gadm36_RUS_1.prj" "gadm36_RUS_1.shp"
## [10] "gadm36_RUS_1.shx" "gadm36_RUS_2.cpg" "gadm36_RUS_2.dbf"
## [13] "gadm36_RUS_2.prj" "gadm36_RUS_2.shp" "gadm36_RUS_2.shx"
## [16] "gadm36_RUS_3.cpg" "gadm36_RUS_3.dbf" "gadm36_RUS_3.prj"
## [19] "gadm36_RUS_3.shp" "gadm36_RUS_3.shx" "license.txt"

Выбор иерархии

# прочитать данные уровней 0, 1, 2
Regions0 <- readOGR("./data/gadm36_RUS_shp/gadm36_RUS_0.shp")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\stud\Desktop\4\data\gadm36_RUS_shp\gadm36_RUS_0.shp", layer: "gadm36_RUS_0"
## with 1 features
## It has 2 fields
Regions1 <- readOGR("./data/gadm36_RUS_shp/gadm36_RUS_1.shp")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\stud\Desktop\4\data\gadm36_RUS_shp\gadm36_RUS_1.shp", layer: "gadm36_RUS_1"
## with 83 features
## It has 10 fields
Regions2 <- readOGR("./data/gadm36_RUS_shp/gadm36_RUS_2.shp")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\stud\Desktop\4\data\gadm36_RUS_shp\gadm36_RUS_2.shp", layer: "gadm36_RUS_2"
## with 2445 features
## It has 13 fields
# контурные карты для разных уровней иерархии
# par(mfrow = c(1, 3))
# par(oma = c(0, 0, 0, 0))
# par(mar = c(0, 0, 1, 0))
# plot(Regions0, main = 'adm0', asp = 1.8)
# plot(Regions1, main = 'adm1', asp = 1.8)
# plot(Regions2, main = 'adm2', asp = 1.8) 
# par(mfrow = c(1, 1))
# делаем фактор из имён областей (т.е. нумеруем их)
Regions1@data$NAME_1 <- as.factor(Regions1@data$NAME_1)

Строим сам график

# загружаем статистику с показателями по регионам
fileURL <- 'https://raw.githubusercontent.com/luibrain/luibrain1/laba4/cargos.csv'
stat.Regions <- read.csv2(fileURL, stringsAsFactors = F)
stat.Regions$delivered_cargos_2017 <- as.numeric(stat.Regions$delivered_cargos_2017)
# вносим данные в файл карты
Regions1@data <- merge(Regions1@data, stat.Regions,
                       by.x = 'NAME_1', by.y = 'Region')
    
# задаём палитру
mypalette <- colorRampPalette(c('whitesmoke', 'coral3'))
spplot(Regions1, 'delivered_cargos_2017', main = 'Отправлено грузов (т)',
       col.regions = mypalette(10), # цветовая шкала
       # (10 градаций)
       col = 'coral4', # цвет контурных линий
       par.settings = list(axis.line = list(col = NA)) # без
       # осей
)

rm(Regions1, stat.Regions)

Муниципальные образования за 2014 год

Загрузка данных

gpclibPermit()
## Warning in gpclibPermit(): support for gpclib will be withdrawn from
## maptools at the next major release
## [1] TRUE
fileURL <- 'https://raw.githubusercontent.com/luibrain/luibrain1/laba4/min_obr.csv'
stat.Regions <- read.csv2(fileURL, stringsAsFactors = F)

Строим график

Regions2@data$NAME_2 <- as.factor(Regions2@data$NAME_2)
fileURL <- 'https://raw.githubusercontent.com/luibrain/luibrain1/laba4/Deaths_Adygeya.csv'
stat.Regions <- read.csv2(fileURL, stringsAsFactors = F)
stat.Regions$Coef_deaths <- as.numeric(stat.Regions$Coef_deaths)
Regions <- readOGR(dsn = './data/gadm36_RUS_shp', # папка
                   layer = 'gadm36_RUS_2') # уровень 
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\stud\Desktop\4\data\gadm36_RUS_shp", layer: "gadm36_RUS_2"
## with 2445 features
## It has 13 fields
Regions@data$id <- Regions@data$NAME_2
Regions <- Regions[grepl('^RU.AD.', Regions$HASC_2), ]
Regions.points <- fortify(Regions, region = 'id')
Regions.df <- merge(Regions.points, Regions@data, by = 'id')
stat.Regions$id <- stat.Regions$Districts
Regions.df <- merge(Regions.df,
                    stat.Regions[, c('id',
                                     'Coef_deaths')],
                    by = 'id')

centroids.df <- as.data.frame(coordinates(Regions))
centroids.df$id <- Regions@data$id
colnames(centroids.df) <- c('long', 'lat', 'id')


gp <- ggplot() +
  geom_polygon(data = Regions.df,
               aes(long, lat, group = group,
                   fill = Coef_deaths)) +
  geom_path(data = Regions.df,
            aes(long, lat, group = group),
            color = 'coral4') +
  coord_map(projection = 'gilbert') +
  scale_fill_distiller(palette = 'OrRd',
                       direction = 1,
                       breaks = pretty_breaks(n = 5)) +
  labs(x = 'Долгота', y = 'Широта',
       title = "Коэффициент смертности в Адыгеи за 2017 год") +
  geom_text(data = centroids.df,
            aes(long, lat, label = id))
gp