Relationship Between the Residences of Farmers and Their Farmland
Source:vignettes/articles/example4.Rmd
example4.Rmd
Relationship Between the Residences of Farmers and Their Farmland
You can also visualize the relationship between the residences of farmers and their farmland.
library(dplyr)
library(sf)
library(osmdata)
library(ggplot2)
library(ggmapinset)
library(ggrepel)
db <- combine_fude(d, b, city = "松山", community = "和気|安城寺|長戸|久万ノ台")
set.seed(200)
probabilities <- c(0.97, 0.01, 0.005, 0.005, 0.005, 0.005)
names(probabilities) <- LETTERS[1:length(probabilities)]
db$fude$farmer = factor(sample(names(probabilities),
nrow(db$fude),
replace = TRUE,
prob = probabilities))
farm <- db$fude |>
group_by(farmer) |>
summarise(geometry = sf::st_union(geometry) |> sf::st_centroid()) |>
sf::st_set_crs(4326)
farm_radius <- farm |>
sf::st_transform(crs = sp::CRS("+init=epsg:32632")) |>
sf::st_buffer(dist = units::as_units(1, "km")) |>
sf::st_transform(crs = 4326)
bbox <- sf::st_bbox(db$fude)
streets <- bbox |>
osmdata::opq() |>
osmdata::add_osm_feature(key = "highway",
value = c("motorway", "primary", "secondary", "tertiary",
"residential", "living_street",
"unclassified", "service", "footway")) |>
osmdata::osmdata_sf()
river <- bbox |>
osmdata::opq() |>
osmdata::add_osm_feature(key = "waterway", value = "river") |>
osmdata::osmdata_sf()
inset1 <- configure_inset(
centre = sf::st_geometry(farm)[farm$farmer == "F"],
scale = 3,
translation = c(-4, 1),
radius = 1, units = "km"
)
inset2 <- configure_inset(
centre = sf::st_geometry(farm)[farm$farmer == "E"],
scale = 3,
translation = c(4, -3),
radius = 1, units = "km"
)
farm$x <- sf::st_coordinates(farm)[, 1]
farm$y <- sf::st_coordinates(farm)[, 2]
ggplot(data = db$fude) +
geom_sf(data = streets$osm_lines, colour = "gray") +
geom_sf(data = river$osm_lines, colour = "skyblue") +
geom_sf(aes(fill = farmer, colour = farmer), alpha = .5) +
geom_sf(data = farm, aes(colour = farmer)) +
geom_text_repel(data = farm,
aes(x = x, y = y, label = farmer),
nudge_x = c(.02, .02, .02, -.01, .02, -.012),
nudge_y = c(.01, 0, -.005, -.005, .01, -.005),
min.segment.length = 0,
segment.color = "black",
size = 3,
family = "Helvetica") +
geom_sf_inset(data = streets$osm_lines, colour = "gray", map_base = "none", inset = inset1) +
geom_sf_inset(data = river$osm_lines, colour = "skyblue", map_base = "none", inset = inset1) +
geom_sf_inset(aes(fill = farmer, colour = farmer), alpha = .5, map_base = "none", inset = inset1) +
geom_inset_frame(inset = inset1) +
geom_sf_inset(data = streets$osm_lines, colour = "gray", map_base = "none", inset = inset2) +
geom_sf_inset(data = river$osm_lines, colour = "skyblue", map_base = "none", inset = inset2) +
geom_sf_inset(aes(fill = farmer, colour = farmer), alpha = .5, map_base = "none", inset = inset2) +
geom_inset_frame(inset = inset2) +
theme_void() +
theme(legend.position = "none")
出典:農林水産省「筆ポリゴンデータ(2022年度公開)」および「農業集落境界データ(2020年度)」を加工して作成。