Latvijā ir izveidots Latvijas Atvērto datu portāls, kurā pieejami dažādi brīvi pieejami iestāžu publicētie dati. 2017. gada septembrī AS “Latvijas Valsts meži” (turpmāk LVM) pievienojusi arī savus datus shape formātā, tai skaitā arī viņu pārraudzībā esošo mežu nogabalu informāciju.

Šajā rakstā aprakstīts kā izmantojot programmu R iegūt un attēlot šos datus. Pirms tam ieteicams iepazīties ar rakstu Latvijas novadu kartogrammas veidošana ar paketi ggplot2, lai būtu skaidri soļi datu pārveidošanai un karšu pamatnes (šajā gadījumā novadu robežu) attēlošanai.

Sākumā ielasa novadu robežu informāciju, pieņemot, ka vajadzīgie faili jau ir uz Jūsu datora.

library(rgdal)
Latvijagdb<-"/Users/didzis/Dropbox/DidzaDati/eksper/GIS_Latvija10.2/GIS_Latvija10.2.gdb"
novadi <- readOGR(dsn=Latvijagdb,layer="novadi_2009_pol")
## OGR data source with driver: OpenFileGDB 
## Source: "/Users/didzis/Dropbox/DidzaDati/eksper/GIS_Latvija10.2/GIS_Latvija10.2.gdb", layer: "novadi_2009_pol"
## with 119 features
## It has 8 fields
library(ggplot2)
novadi.df<-fortify(novadi,region="Nos_pilns")

Mežu nogabalu informāciju lejupielādē kā zip failu no Latvijas Atvērto datu portāla vietnes un saglabāta pagaidu direktorijā. Pēc tam zip failu atarhivē. Nogabalu shape failu importē no pagaidu direktorijas, kur konkrētā slāņa nosaukums ir LVM_KVARTALI.

tmpdir <- tempdir()
url <- "https://data.gov.lv/dati/lv/dataset/1ad99307-26cc-4990-a788-4ce09a349ba4/resource/85ffe8a4-dcd6-49c2-a7ab-6f03cc065662/download/lvm_kvartali_shp.zip"
file <- basename(url)
download.file(url, file)
unzip(file, exdir = tmpdir)
mezi <- readOGR(dsn=tmpdir,layer = "LVM_KVARTALI")
## OGR data source with driver: ESRI Shapefile 
## Source: "/var/folders/1l/z08xhcns757c330886wzwfc00000gn/T//RtmpvREJfM", layer: "LVM_KVARTALI"
## with 42375 features
## It has 7 fields

Datu attēlošanai ar ggplot2 paketi, shape faila informāciju pārvērš par datu tabulu, izmantojot funkciju fortify() un mainīgo BLOCKKEY kā unikālo identifikatoru. Tas prasīs kādu laiku, jo objektā ir vairāk kā 40000 nogabalu, kuriem norādīts vairāk kā divi miljoni koordināšu.

mezi.df <- fortify(mezi, region = "BLOCKKEY")

Attēlošanu atkal veic ar funkcijām ggplot() un geom_polygon(), kur viens geom_polygon() ir paredzēts novadu robežu attēlošanai, bet otrs ir mežu nogabalu attēlošani.

ggplot(novadi.df, aes(long,lat, group = group)) + 
  geom_polygon(fill = "white", color = "black",size = 0.25) +
  geom_polygon(data = mezi.df, fill = "darkgreen",alpha = 0.9) +
  coord_fixed() + theme_void()

center