-
Notifications
You must be signed in to change notification settings - Fork 4
/
04_cartes_3D.qmd
77 lines (62 loc) · 2.25 KB
/
04_cartes_3D.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Les cartes en 3D
## linemap
Le package `linemap` [@R-linemap] permet de réaliser des cartes composées de lignes.
```{r linemap}
#| fig-width: 7
#| fig-height: 8
#| eval: true
library(linemap)
library(sf)
library(terra)
library(mapsf)
com <- st_read("data/lot.gpkg", layer = "communes", quiet = TRUE)
elev <- rast("data/elev.tif")
cahors <- st_buffer(com[com$NOM_COM == "Cahors", ], 5000)
elev_cahors <- crop(elev, cahors)
mf_theme("green")
mf_map(cahors, col = NA, border = NA, expandBB = c(-.05,0,0.05,0))
linemap(x = elev_cahors,
k = 5,
bg = getOption("mapsf.bg"),
add = TRUE, lwd = 1)
mf_title("Altitude vers Cahors")
mf_credits("Giraud & Pecout, 2023")
```
## Relief Tanaka
Nous utilisons le package `tanaka` [@R-tanaka] qui met à disposition une méthode [@Tanaka50] utilisée pour améliorer la perception du relief.
```{r tanaka}
library(tanaka)
library(terra)
mf_theme("candy")
mf_map(cahors, col = NA, border = NA)
tanaka(elev_cahors,
breaks = seq(100,375,25),
col = hcl.colors(11, "Lajolla"),
add = TRUE)
mf_title("Altitude vers Cahors")
mf_credits("Giraud & Pecout, 2023")
```
<!-- ## rayshader -->
<!-- Le package `rayshader` [@R-rayshader] permet de réaliser de belles cartes en relief mais il n'est pas très facile à prendre en main. Le package `rayvista` [@R-rayvista] s'appuie sur `rayshader` et facilite la création de représentations 3D du terrain. -->
<!-- `rayvista` n'est pas sur le CRAN. -->
<!-- ```{r rayshade,eval=FALSE} -->
<!-- # remotes::install_github("https://github.com/h-a-graham/rayvista") -->
<!-- library(rayshader) -->
<!-- library(rayvista) -->
<!-- zone <- plot_3d_vista( -->
<!-- lat = 44.9320, long = 1.6905, radius = 4000, -->
<!-- zscale = 1.5, phi = 30, theta = 120, -->
<!-- windowsize = c(1000, 600), -->
<!-- baseshape = "circle", -->
<!-- overlay_detail = 15, -->
<!-- elevation_detail = 14, -->
<!-- background = "grey20" -->
<!-- ) -->
<!-- png("img/mezels.png", width = 1000, height = 600) -->
<!-- render_camera(zoom = .4) -->
<!-- render_depth(focus = 0.4, focallength = 55, vignette = TRUE) -->
<!-- dev.off() -->
<!-- ``` -->
<!-- ```{r, fig.align='center', echo=FALSE, out.width='100%'} -->
<!-- # knitr::include_graphics("img/mezels.png") -->
<!-- ``` -->