Este documento contiene el código R para la lectura, limpieza y georreferenciación de los datos recolectados en el proyecto Compartiendo la historia escondida del cambio climatico en Latinoamerica a traves de las TIC, financiado por el Instituto Panamericano de Geografia e Historia (IPGH).
Creditos Daniela Ballari - Universidad del Azuay, Cuenca, Ecuador, dballari@uazuay.edu.ec - Programación R y Visualizacion
Diana Comesana - Universidad de la Republica, Montevideo, Uruguay, diana.comesana@fic.edu.uy - Recoleccion y organizacion de informacion
Luis Vilches - Universidad Javeriana, Bogota, Colombia, lmvilches@javeriana.edu.co - Director del proyecto
El código se ejecuta con Run o Ctrl+Shift+Enter, el resultado aparecerá debajo del código
Cargar las librerias a utilizar.
library(readODS)
library(sp)
library(knitr)
Definir el directorio de trabajo donde se localizan los archivos y leer los archivos. En este caso son archivos de excel por año y por periódico. Se comienza trabajando con los datos de Uruguay.
opts_knit$set(root.dir = "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos")
El código anterior es equivalente a setwd("D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos")
files <- list.files(pattern='') #leer archivos de texto
files <- paste0(getwd(),"/",files)
head(files)
[1] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1831Periodicomanía.ods"
[2] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1836Defensor_de_las_Leyes.ods"
[3] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1844El Telegrafo de la línea.ods"
[4] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1853ElOrden.ods"
[5] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1863ElSiglo.ods"
[6] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/uruguay_resultados_corregidos/1865ElSiglo.ods"
Leer los datos de Uruguay y unir los diferentes excels en una única variable llamada data
data <- NULL
for(i in 1:length(files)){
a <- read_ods(files[i], sheet = 1, col_names = TRUE, )
names(a) <- c("Identificador","codigoISO_pais_registro","codigoISO_pais_evento",
"Año","Periodico","N°","Fecha","Evento", "latitud_norte","latitud_sur", "longitud_este", "longitud_oeste", "Veloc_Viento","creciente",
"temperatura", "lluvias","nevada","efecto_detectable","URI" )
data <- rbind(data, a)
}
nrow(data)#618
[1] 618
head(data)
Se procede de similar manera con los datos de Colombia. Se añaden a los datos de Uruguay.
opts_knit$set(root.dir = "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/Colombia_resultados_corregidos/")
files <- list.files(pattern='') #leer archivos de texto
files <- paste0(getwd(),"/",files)
files
[1] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/Colombia_resultados_corregidos/1860ElAviso.ods"
[2] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/Colombia_resultados_corregidos/1882_El-periódico-ilustrado.ods"
[3] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/Colombia_resultados_corregidos/1886El_Unitario.ods"
[4] "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/Colombia_resultados_corregidos/1887ElUnitario.ods"
for(i in 1:length(files)){
a <- read_ods(files[i], sheet = 1, col_names = TRUE,)
names(a) <- names(data)
data <- rbind(data, a)
}
nrow(data)#650
[1] 634
Revisar que los datos de latitud y longitud estén completos, sin datos faltantes
table(is.na(data$latitud_norte))
FALSE
634
table(is.na(data$longitud_este))
FALSE
634
Revisar los valores únicos para eventos
table(data$Evento)
Altas temperaturas Altas Temperaturas Avalancha
5 1 1
Baja temperatura Bajas Temperaturas Borrasca
1 4 8
Brisa débil Brisa fresca Brisa fuerte
12 54 37
Brisa moderada Buen tiempo Calor
19 1 13
Ciclón Escarcha Exesivo calor
5 1 1
Frío Frio intenso Frío intenso
1 1 1
Frío Intenso granizada Granizada
2 3 5
Granizo Heladas Huracán
8 1 1
Inundacion Inundación Lluvia
1 114 54
Lluvias Lluvias (fin sequía) nevada
2 1 1
Nevada Niebla Nieve
5 2 2
Nubosidad Ola de frío Pampero
1 1 1
Poca Nubosidad Sequía Temporal
1 20 103
Temporal duro Temporal Duro Temporal fuerte
41 21 11
Temporal Fuerte Temporal huracanado Temporal Huracanado
5 2 8
Temporal muy duro Temporal muy fuerte Tifón
4 1 1
Tormenta Tormeta Viento
12 1 6
Viento fuerte
26
Homogenizar los eventos en relación a mayúsculas, minúsculas, espacios, etc.
data$Evento[data$Evento=="Altas Temperaturas"]<- "Altas temperaturas"
data$Evento[data$Evento=="Bajas Temperaturas"]<- "Bajas temperaturas"
data$Evento[data$Evento=="Baja temperatura"]<- "Bajas temperaturas"
data$Evento[data$Evento=="Frio intenso"]<- "Frío intenso"
data$Evento[data$Evento=="Frío Intenso"]<- "Frío intenso"
data$Evento[data$Evento=="granizada"]<- "Granizada"
data$Evento[data$Evento=="Granizo"]<- "Granizada"
data$Evento[data$Evento=="Inundacion"]<- "Inundación"
data$Evento[data$Evento=="Lluvias"]<- "Lluvia"
data$Evento[data$Evento=="nevada"]<- "Nevada"
data$Evento[data$Evento=="Tormeta"]<- "Tormenta"
data$Evento[data$Evento=="Temporal Huracanado"]<- "Temporal huracanado"
data$Evento[data$Evento=="Temporal Duro"]<- "Temporal duro"
data$Evento[data$Evento=="Temporal Fuerte"]<- "Temporal fuerte"
table(data$Evento)
Altas temperaturas Avalancha Bajas temperaturas
6 1 5
Borrasca Brisa débil Brisa fresca
8 12 54
Brisa fuerte Brisa moderada Buen tiempo
37 19 1
Calor Ciclón Escarcha
13 5 1
Exesivo calor Frío Frío intenso
1 1 4
Granizada Heladas Huracán
16 1 1
Inundación Lluvia Lluvias (fin sequía)
115 56 1
Nevada Niebla Nieve
6 2 2
Nubosidad Ola de frío Pampero
1 1 1
Poca Nubosidad Sequía Temporal
1 20 103
Temporal duro Temporal fuerte Temporal huracanado
62 16 10
Temporal muy duro Temporal muy fuerte Tifón
4 1 1
Tormenta Viento Viento fuerte
13 6 26
Homogenizar los periódicos
table(data$Periodico)
Defensor de las Leyes El Aviso
2 1
El Bien El Bien Público
75 303
El Orden 1853 El Periódico Ilustrado
6 9
El Siglo El Telégrafo de la línea
21 3
El Tribuno El unitario
9 6
El Uruguay La Justicia
2 2
La Paz La Trinidad
59 26
O Brazil Periódicomanía
2 2
The Express The Montevideo Independent
105 1
data$Periodico[data$Periodico=="El bien público"]<- "El Bien Público"
data$Periodico[data$Periodico=="El bien Público"]<- "El Bien Público"
data$Periodico[data$Periodico=="La Trinidad 1881"]<- "La Trinidad"
data$Periodico[data$Periodico=="LaTrinidad"]<- "La Trinidad"
table(data$Periodico)
Defensor de las Leyes El Aviso
2 1
El Bien El Bien Público
75 303
El Orden 1853 El Periódico Ilustrado
6 9
El Siglo El Telégrafo de la línea
21 3
El Tribuno El unitario
9 6
El Uruguay La Justicia
2 2
La Paz La Trinidad
59 26
O Brazil Periódicomanía
2 2
The Express The Montevideo Independent
105 1
Georreferenciar los registros
data$lat <- as.numeric(data$latitud_norte)
data$lon <- as.numeric(data$longitud_este)
coordinates(data) <- c("lon", "lat")
class(data)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
head(data)
coordinates Identificador codigoISO_pais_registro
1 (-56.1666, -34.8669) 010001.01:URY URY
2 (-56.1666, -34.8669) 010001.02:URY URY
3 (-71.6163, -32.0458) 010001.03:URY URY
4 (-79, 9) 010001.04:URY URY
5 (-56.2513, -34.8844) 010001:05:URY URY
6 (-56.2513, -34.8844) 010001:06:URY URY
codigoISO_pais_evento Año Periodico N. Fecha
1 URY 1831 Periódicomanía 5 #N/A
2 URY 1831 Periódicomanía 6 #N/A
3 CHL 1836 Defensor de las Leyes 60 #N/A
4 PAN 1836 Defensor de las Leyes 86 #N/A
5 URY 1844 El Telégrafo de la línea 5 #N/A
6 URY 1844 El Telégrafo de la línea 5 #N/A
Evento latitud_norte latitud_sur longitud_este longitud_oeste
1 Buen tiempo -34.8669 <NA> -56.1666 <NA>
2 Temporal -34.8669 <NA> -56.1666 <NA>
3 Temporal -32.0458 <NA> -71.6163 <NA>
4 Temporal fuerte 09.0000 <NA> -79.0000 <NA>
5 Temporal -34.8844 <NA> -56.2513 <NA>
6 Niebla -34.8844 <NA> -56.2513 <NA>
Veloc_Viento creciente temperatura lluvias nevada
1 0 a 1 Km/hr <NA> <NA> <NA> <NA>
2 62 a 87 km/hr <NA> <NA> <NA> <NA>
3 62 a 74 Km/hr <NA> <NA> <NA> <NA>
4 75 a 84 km/hr <NA> <NA> <NA> <NA>
5 62 a 74 km/hr <NA> <NA> <NA> <NA>
6 <NA> <NA> <NA> <NA> <NA>
efecto_detectable
1 sin indicios de tempestad
2 Pasó la tormenta puntual, destrozos consideralbles
3 Valparaiso, problemas fragata por temporal
4 Istmo de Paraná. Destrozos
5 1844-12-14 hr. 14:30 Lanchón General Medina varó en Punta Lobos por el viento
6 1844-12-15 hr. 7: 45 no pueden hacerse observaciones por la niebla
URI
1 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/24368
2 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/24369
3 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/23887
4 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/23888
5 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/21715
6 http://bibliotecadigital.bibna.gub.uy:8080/jspui/handle/123456789/21715
Guardar los datos homogenizados como archivo RDATA
opts_knit$set(root.dir = "D:/adm/Documents/RESEARCH/IPGH-Tendencias/datos/corregidos/")
data$year <- data$Año
save(data, file = "CleanData.RData")
Para reducir el numero de eventos a considerar, se realizó la siguiente clasificación.
data$Evento_r[data$Evento=="Altas temperaturas"]<- "Calor"
data$Evento_r[data$Evento=="Calor"]<-"Calor"
data$Evento_r[data$Evento=="Exesivo calor"]<-"Calor"
data$Evento_r[data$Evento=="Bajas temperaturas"]<- "Frio"
data$Evento_r[data$Evento=="Frío"]<- "Frio"
data$Evento_r[data$Evento=="Frío intenso"]<-"Frio"
data$Evento_r[data$Evento=="Escarcha"]<-"Frio"
data$Evento_r[data$Evento=="Heladas"]<-"Frio"
data$Evento_r[data$Evento=="Ola de frío"]<-"Frio"
data$Evento_r[data$Evento=="Brisa débil"]<- "Viento"
data$Evento_r[data$Evento=="Brisa fresca"]<-"Viento"
data$Evento_r[data$Evento=="Brisa fuerte"]<-"Viento"
data$Evento_r[data$Evento=="Brisa moderada"]<-"Viento"
data$Evento_r[data$Evento=="Viento"]<-"Viento"
data$Evento_r[data$Evento=="Viento fuerte"]<-"Viento"
data$Evento_r[data$Evento=="Pampero"]<-"Viento"
#"Hidrometeoro - precipitación" 5 eventos
data$Evento_r[data$Evento=="Lluvia"]<- "Hidrometeoro - precipitación"
data$Evento_r[data$Evento=="Lluvias (fin sequía)"]<-"Hidrometeoro - precipitación"
data$Evento_r[data$Evento=="Granizada"]<-"Hidrometeoro - precipitación"
data$Evento_r[data$Evento=="Nevada"]<-"Hidrometeoro - precipitación"
data$Evento_r[data$Evento=="Nieve"]<-"Hidrometeoro - precipitación"
data$Evento_r[data$Evento=="Temporal"]<-"Tempestad"
data$Evento_r[data$Evento=="Temporal duro"]<-"Tempestad"
data$Evento_r[data$Evento=="Temporal fuerte"]<-"Tempestad"
data$Evento_r[data$Evento=="Temporal huracanado"]<-"Tempestad"
data$Evento_r[data$Evento=="Temporal muy duro"]<-"Tempestad"
data$Evento_r[data$Evento=="Temporal muy fuerte"]<-"Tempestad"
data$Evento_r[data$Evento=="Tifón"]<-"Tempestad"
data$Evento_r[data$Evento=="Tormenta"]<-"Tempestad"
data$Evento_r[data$Evento=="Borrasca"]<-"Tempestad"
data$Evento_r[data$Evento=="Ciclón"]<- "Tempestad"
#"Tiempo severo" 1 evebti
data$Evento_r[data$Evento=="Huracán"]<-"Tiempo severo"
data$Evento_r[data$Evento=="Niebla"]<-"Hidrometeoro - Suspención"
data$Evento_r[data$Evento=="Nubosidad"]<-"Cobertura del cielo"
data$Evento_r[data$Evento=="Poca Nubosidad"]<-"Cobertura del cielo"
data$Evento_r[data$Evento=="Buen tiempo"] <-"Cobertura del cielo"
data$Evento_r[data$Evento=="Inundación"] <-"Inundación"
data$Evento_r[data$Evento=="Sequía"] <-"Sequía"
data$Evento_r[data$Evento=="Avalancha"] <-"Avalancha"
table(data$Evento_r)
Avalancha Calor Cobertura del cielo
1 20 3
Frio Hidrometeoro - precipitación Hidrometeoro - Suspención
13 81 2
Inundación Sequía Tempestad
115 20 223
Tiempo severo Viento
1 155
save(data, file = "CleanData_reclasificado.RData")