Síťové mapování má dlouhou tradici a velký význam v přírodních vědách – zejména faunistice. Ve Střední Evropě je nejrozšířenější technikou pro výpočet síťových polí metoda Kartierung der Flora Mitteleuropas (KFME).
Tato metodika dělí území Střední Evropy na pole o velikosti 6×10 úhlových minut, což v našich zeměpisných šířkách představuje lichoběžníky blízké čtvercům. Těmto “čtvercům” je pak přiřazeno čtyřmístné číslo podle sloupců a řádek, počítaných od severu k jihu a od západu k východu.
V našich podmínkách se s technikou KFME setkáme ve dvou mutacích:
hrubé čtverce, podle původní metodiky (4 ciferné značení)
jemné čtverce, kdy je čtverec navíc rozdělen do 4 podčtverců označených písmeny a až d
Obě variace metodiky KFME jsou od srpna 2019 (tj. od verze 1.4.2) podporovány v rámci erkové package RCzechia.
# krok první: načtení potřebných knihoven
library(tidyverse)
library(leaflet.extras)
library(RCzechia)
library(leaflet)
library(units)
library(knitr)
library(sf)
Čtverce jsou realizovány pomocí funkce KFME_grid()
, která má jako argument rozlišení - buď nízké (low = 4 ciferné čtverce) nebo vysoké (high = 4 čísla a písmeno).
Čtverce vyvoláme a zobrazíme pomocí jednoduchého kódu, a můžeme je použít jak ve statických, tak dynamických mapách - zde v prostředí {ggplot2}
a {leaflet}
knihoven.
# statická mapa - {ggplot2}
ggplot() +
geom_sf(data = RCzechia::republika("low")) +
geom_sf(data = RCzechia::KFME_grid("low"), fill = "NA", color = "grey60")
# dynamická mapa - {leaflet}
leaflet(data = RCzechia::republika("low")) %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data = RCzechia::KFME_grid("low"),
color = "red",
weight = 1,
fillOpacity = 0,
popup = ~as.character(ctverec)) %>%
leaflet.extras::addResetMapButton()
Zajímavá je kombinace čtverců s geokódovací funkcí RCzechia::geocode()
, která dohledává bodové souřadnice přes API Českého zeměměřičského ústavu.
Tato funkce je vektorizovaná, a podporuje dohledávání souřadnic pro větší objemy adres.
Jakmile mám dohledanou adresu v datovém formátu dle balíčku {sf}
, tak snadno a rychle dohledám hrubý či jemný čtverec pomocí funkce sf::st_join
- tato funkce provede prostorové připojení dvou prostorových objektů (v mém případě bodových souřadnic a mapových čtverců).
Přitom, a to je podstatné, ve svém výstupu zkombinuje data z obou prostorových objektů. V konečném efektu tedy dojde k obohacení data framu souřadnic o číslo čtverce. QED.
# lokality Lasius myops; podle Dva nálezy mravence Lasius myops..., Pech 2010
lokality <- c("Kadaň", "Louny")
# geokódování lokalit - typ bodu = obec
myops <- RCzechia::geocode(lokality) %>%
filter(type == "Obec")
# data frame myops nyní obsahuje lokality a souřadnice
knitr::kable(myops)
address | type | result | geometry |
---|---|---|---|
Kadaň | Obec | Kadaň | POINT (13.28488 50.38336) |
Louny | Obec | Louny | POINT (13.80088 50.35918) |
# snadno doplníme "hrubý" čtverec - standardní metodika 4 čísel
hrube <- sf::st_join(myops, RCzechia::KFME_grid("low"))
kable(hrube)
address | type | result | ctverec | geometry |
---|---|---|---|---|
Kadaň | Obec | Kadaň | 5645 | POINT (13.28488 50.38336) |
Louny | Obec | Louny | 5648 | POINT (13.80088 50.35918) |
# případně "jemný" čtverec - modifikovaná metodika 4 čísla + písmenko
jemne <- sf::st_join(myops, RCzechia::KFME_grid("high"))
kable(jemne)
address | type | result | ctverec | geometry |
---|---|---|---|---|
Kadaň | Obec | Kadaň | 5645b | POINT (13.28488 50.38336) |
Louny | Obec | Louny | 5648b | POINT (13.80088 50.35918) |
Jako příklad použití v mapě uvádím ogeokódovanou lokalitu kanceláře České společnosti entomologické, včetně zařazení do čtverce a podčtverce dle metodiky KFME.
# geokódování lokalit - typ bodu = konkrétní adresa (kancelář ČSE)
spolecnost <- RCzechia::geocode("Viničná 7, Praha 2") %>%
filter(type == "AdresniMisto")
# velký čtverec = 4 čísla; join nebude levý = bude filtrační (vrátí 1 čtverec)
velky_ctverec <- st_join(KFME_grid("low"), spolecnost, left = F)
# malý čtverec = 4 čísla + písmenko
maly_ctverec <- st_join(KFME_grid("high"), spolecnost, left = F)
# hranice Prahy - pro kontext...
praha <- RCzechia::kraje() %>% # objekt všech všechny krajů ...
filter(NAZ_CZNUTS3 == "Hlavní město Praha") # ... a z nich Praha
# pražský kus Vltavy - s řekou vypadá město líp...
vltava <- RCzechia::reky("Praha")
ggplot() +
geom_sf(data = vltava, color = "steelblue", size = 1.25, alpha = .5) +
geom_sf(data = praha, fill = NA, size = 1, alpha = .5) +
geom_sf(data = velky_ctverec, color = "darkorchid4", fill = NA) +
geom_sf(data = maly_ctverec, color = "goldenrod2", fill = NA) +
geom_sf(data = spolecnost, col = "red", pch = 4, size = 2.5) +
geom_sf_text(data = velky_ctverec, aes(label = ctverec), color = "darkorchid4") +
geom_sf_text(data = maly_ctverec, aes(label = ctverec), color = "goldenrod2") +
theme(axis.title = element_blank())
Typický use case faunistických čtverců je zakreslení nálezů do mapy ČR; pro ilustraci použiji opět mravence Lasius myops Forel 1894, volně podle https://pavelpech.webpark.cz/Pech_Lasius_m.pdf
# lokality Lasius myops; podle Dva nálezy mravence Lasius myops..., Pech 2010
lokality <- c("Kadaň", "Louny")
# geokódování lokalit - typ bodu = obec
myops <- RCzechia::geocode(lokality) %>%
filter(type == "Obec")
# zjistíme "hrubý" čtverec jako vektor - standardní metodika 4 čísel
hrube <- sf::st_join(myops, RCzechia::KFME_grid("low"))$ctverec
# pro hrubé čtverce zjistíme souřadnice středobodů (v nich bude střed kolečka)
stredobody <- sf::st_centroid(subset(RCzechia::KFME_grid(), ctverec %in% hrube))
# o výsledku podáme zprávu
ggplot() +
# kompletní síťová pole pro orientaci
geom_sf(data = KFME_grid(), fill = NA, color = "gray65", size = .25) +
# hranice republiky v nízkém (= elegantním) rozlišení
geom_sf(data = republika("low"), fill = NA, color = "gray40", size = 1) +
# významné řeky pro snazší orientaci
geom_sf(data = subset(reky(), Major), color = "steelblue", size = .66, alpha = 1/2) +
# nalezené čtverce jako body
geom_sf(data = stredobody, color = "firebrick", size = 3) +
# omáčka pro hezčí graf
theme_void() +
labs(title = "Lokality mravence *Lasius myops* Forel 1894 v ČR",
caption = "podle Pech 2010") +
theme(plot.title = ggtext::element_markdown(size = 15))
Pro zájemce o využití čtverců mimo erko – například v rámci QGIS nebo jiného GISu – dále nabízím polygony čtverců ke stažení ve formátu GeoPackage.
Soubor kfme_czechia.gpkg obsahuje dvě vrstvy:
vrstva
puvodni
představuje čtverce podle původní metodiky (4 číslice)vrstva
jemne
jsou čtverce podle modifikované metodiky (4 číslice + písmeno)