forked from Fernandez-Lab-WSU/geocovid_bsas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
creacion_de_rasters.qmd
165 lines (126 loc) · 4.18 KB
/
creacion_de_rasters.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
---
title: "Creación de imagenes raster"
lang: es
---
---
**Input inicial**
- Archivos `.csv` con datos de movilidad ciudadana expresados por QuadKeys.
Existe un archivo por locación y horario reportado.
**Objetivo**
- Crear las imagenes rasters para cada caso expresando como atributo el cambio
porcentual semanal y prepandemia.
---
## Paquete `quadkeyr`
Los pasos que se describen aquí se encuentran detallados en [la viñeta del
paquete `quadkeyr`](https://fernandez-lab-wsu.github.io/quadkeyr/articles/create_rasters_from_grid.html) que fue especificamente creado para la creación de los
rasters.
## 1. Leo los archivos
Esta función me reporta los archivos faltantes en la serie de días y horarios.
```{r eval= FALSE, include = TRUE}
files <- read_all_files(path_to_csvs = "../geocovid/data/rasters/",
colnames = c("lat", "lon",
"quadkey", "date_time",
"n_crisis", "percent_change"),
coltypes = list(
lat = 'd',
lon = 'd',
quadkey = 'i',
date_time = 'T',
n_crisis = 'c',
percent_change = 'c'))
files
```
Por ejemplo, estos fueron los faltantes para los datos de AMBA:
```
day time
1 2020-07-03 0
2 2020-07-04 0
3 2020-07-05 0
4 2020-07-06 0
5 2020-07-07 0
6 2020-07-08 0
7 2020-07-09 0
8 2020-07-10 0
9 2020-07-11 0
10 2020-07-12 0
11 2020-09-12 0
12 2020-09-13 0
13 2020-07-03 8
14 2020-07-04 8
15 2020-07-05 8
16 2020-07-06 8
17 2020-07-07 8
18 2020-07-08 8
19 2020-07-09 8
20 2020-07-10 8
21 2020-07-11 8
22 2020-07-12 8
23 2020-09-12 8
24 2020-09-13 8
25 2020-07-03 16
26 2020-07-04 16
27 2020-07-05 16
28 2020-07-06 16
29 2020-07-07 16
30 2020-07-08 16
31 2020-07-09 16
32 2020-07-10 16
33 2020-07-11 16
34 2020-09-12 16
```
## 2. Convierto los QuadKeys en coordenadas del mapa
- Tomo todos los QuadKeys que fueron reportados al menos una vez en mi lista de
archivos `.csv` y los convierto en latitud y longitud.
- Este punto representa la ubicación del vértice de arriba a la izquierda
de cada QuadKey.
```{r eval= FALSE, include = TRUE}
quadkeys <- unique(files$quadkey)
qtll <- quadkey_to_latlong(quadkeys = quadkeys)
```
## 3. Completar la grilla de QuadKeys
- Si bien un gran número de QuadKeys que son siempre reportados en todos los
archivos, esto no es una constante.
- La función `regular_qk_grid` permite completar la grilla. Esta función
devuelve una lista con 3 elementos: `data`, `num_rows` y `num_cols`.
```{r eval= FALSE, include = TRUE}
regular_grid <- regular_qk_grid(qtll)
regular_grid
```
## 4. Crear los polígonos
```{r eval= FALSE, include = TRUE}
polygrid <- grid_to_polygon(regular_grid$data)
```
## 5. Generar los rasters para las variables de interés
La función `apply_weekly_lag()` permite generar los datos de cambio porcentual
semanal creando un lag de 7 días.
```{r eval= FALSE, include = TRUE}
polyvar <- files |>
dplyr::inner_join(polygrid, by = 'quadkey' ) |>
apply_weekly_lag()
polyvar7 <- polyvar |>
drop_na(percent_change_7)
```
Loas imagenes raster se crearan automaticamente para todos los archivos en la
carpeta con el formato `<nombre>_<fecha>_<hora>.tif`. La función
`polygon_to_raster` va a crear los raster incluso si hay algún archivo de la
serie faltante.
```{r eval= FALSE, include = TRUE}
# cambio porcentual prepandemia
polygon_to_raster(data = polyvar,
nx = grid$num_cols +1 ,
ny = grid$num_rows +1 ,
template = polyvar,
variable = 'percent_change',
filename = 'Baires',
path = "data/"
)
# cambio porcentual semanal
polygon_to_raster(data = polyvar7,
nx = grid$num_cols +1 ,
ny = grid$num_rows +1 ,
template = polyvar7,
variable = 'percent_change_7',
filename = 'Baires',
path = "data/"
)
```