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'))
filesCreación de imagenes raster
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 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.
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
.csvy los convierto en latitud y longitud.Este punto representa la ubicación del vértice de arriba a la izquierda de cada QuadKey.
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_gridpermite completar la grilla. Esta función devuelve una lista con 3 elementos:data,num_rowsynum_cols.
regular_grid <- regular_qk_grid(qtll)
regular_grid4. Crear los polígonos
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.
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.
# 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/"
)