Carlos Eduardo Caceres Gonzalez ccaceresg@unal.edu.co
http://ambientebogota.gov.co/red-de-calidad-del-aire
http://ambientebogota.gov.co/estaciones-rmcab
http://201.245.192.252:81/home/map
Paquetes requeridos
#install.packages("psych")
#install.packages("dplyr")
#install.packages("leaflet")
#install.packages("rgdal")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(leaflet)
library(rgdal)
## Loading required package: sp
## rgdal: version: 1.5-23, (SVN revision 1121)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.2.1, released 2020/12/29
## Path to GDAL shared files: C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/gdal
## GDAL binary built with GEOS: TRUE
## Loaded PROJ runtime: Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]
## Path to PROJ shared files: C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:1.4-5
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading rgdal.
## Overwritten PROJ_LIB was C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/proj
library(sp)
library(sf)
## Linking to GEOS 3.9.0, GDAL 3.2.1, PROJ 7.2.1
library(psych)
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:psych':
##
## logit
## The following object is masked from 'package:dplyr':
##
## recode
#Importamos el excel
Estaciones <- read.csv("C:/Academic/GEOESTADISTICA/Talleres/Taller_01_AED/Caracteristicas_Estaciones.csv", sep = ";")
data.frame(Estaciones)
## ï..Estacion Lat_Decimal Lon_Decimal Altitud_msnm Localidad
## 1 Guaymaral 4.783756 -74.04418 2580 Suba
## 2 Usaquen 4.710350 -74.03042 2570 Usaquen
## 3 Suba 4.761247 -74.09346 2571 Suba
## 4 Bolivia 4.735867 -74.12588 2574 Engativa
## 5 Las Ferias 4.690700 -74.08248 2552 Engativa
## 6 P. Simon Bolivar 4.658467 -74.08397 2577 Barrios Unidos
## 7 Sagrado Corazon 4.625486 -74.06698 2621 Santa Fe
## 8 Fontibon 4.670100 -74.14155 2591 Fontibon
## 9 Puente Aranda 4.631767 -74.11748 2590 Puente Aranda
## 10 Kennedy 4.625050 -74.16133 2580 Kennedy
## 11 Carvajal 4.595617 -74.14858 2563 Kennedy
## 12 Tunal 4.576225 -74.13096 2589 Tunjuelito
## 13 San Cristobal 4.572553 -74.08381 2688 San Cristobal
## direccion Tipo_de_zona Tipo_de_estacion
## 1 Autopista Norte # 205-59 Suburbana De fondo
## 2 Carrera 7B Bis # 132-11 Urbana De fondo
## 3 Carrera 111 # 159A-61 Suburbana De fondo
## 4 Avenida Calle 80 # 121-98 Suburbana De fondo
## 5 Avenida Calle 80 # 69Q-50 Urbana De trafico
## 6 Calle 63 # 59A-06 Urbana De fondo
## 7 Calle 37 # 8-40 Urbana De trafico
## 8 Carrera 96G # 17B-49 Urbana Industrial
## 9 Calle 10 # 65-28 Urbana Industrial
## 10 Carrera 80 Urbana De fondo
## 11 Autopista Sur # 63-40 # 40-55 sur Urbana Trafico
## 12 Carrera 24 # 49-86 sur Urbana De fondo
## 13 Carrera 2 Este # 12-78 sur Urbana De fondo
## Altura_del_suelo_m Localizacion_toma_muestra
## 1 0 Zona Verde
## 2 10 Azotea
## 3 6 Azotea
## 4 0 Zona Verde
## 5 0 Zona Verde
## 6 0 Zona Verde
## 7 15 Azotea
## 8 12 Azotea
## 9 10 Azotea
## 10 3 Zona Verde
## 11 3 Azotea
## 12 0 Zona Verde
## 13 0 Zona Verde
## Altura_punto_de_muestra_al_suelo_m Altura_viento_al_suelo_m PM10 PST PM2.5
## 1 4.0 10 SI NO NO
## 2 13.0 19 SI NO SI
## 3 9.0 10 SI NO NO
## 4 4.6 10 NO NO NO
## 5 4.6 10 SI NO SI
## 6 4.6 10 SI NO SI
## 7 18.0 19 SI NO NO
## 8 15.0 22 SI NO NO
## 9 13.0 20 SI NO NO
## 10 7.0 10 SI NO SI
## 11 6.0 13 SI SI SI
## 12 3.0 10 SI NO SI
## 13 4.0 10 SI NO NO
## O3 NO2 CO SO2 V_V DV T_.C. Prec R_S H_R Ps_Atm
## 1 SI SI NO NO SI SI SI SI SI SI SI
## 2 SI NO SI NO SI SI SI SI NO NO NO
## 3 SI SI NO SI SI SI SI SI NO NO NO
## 4 NO NO NO NO SI SI NO SI NO NO NO
## 5 SI SI SI SI SI SI SI SI NO SI SI
## 6 SI SI SI SI SI SI SI SI SI SI NO
## 7 SI NO NO NO SI SI NO SI NO NO NO
## 8 SI NO SI SI SI SI SI SI NO NO SI
## 9 SI SI SI SI SI SI SI SI NO NO NO
## 10 NO SI SI SI SI SI SI SI SI SI SI
## 11 SI NO SI SI SI SI SI SI NO NO NO
## 12 SI SI SI SI SI SI SI SI SI SI NO
## 13 SI NO SI SI SI SI SI SI SI SI NO
El area de ubicacion de las estaciones, es dentro del la ciudad de Bogota.
PM10: Particulas con diametro entre 2,5 y 10 micrometros
PM2.5: Particulas con diametro menor a 2,5 micrometros
O3: Ozono
NO2: Dioxido de Nitrogeno
CO: Monoxido de Carbono
SO2: Dioxido de azufre
#Variables
df <- read.csv("C:/Academic/GEOESTADISTICA/Talleres/Taller_01_AED/Contaminantes.csv", sep = ";")
df
## ï..Estacion Lat_Decimal Lon_Decimal PM10 PM2.5 O3 NO2 CO SO2
## 1 Guaymaral 4.783756 -74.04418 15 30 2 2 NA NA
## 2 Usaquen 4.710350 -74.03042 3 12 NA 3 NA 0
## 3 Suba 4.761247 -74.09346 24 28 NA NA NA 0
## 4 Bolivia 4.735867 -74.12588 25 14 NA NA NA 0
## 5 Las Ferias 4.690700 -74.08248 5 15 4 4 NA NA
## 6 P. Simon Bolivar 4.658467 -74.08397 4 NA 3 NA NA NA
## 7 Sagrado Corazon 4.625486 -74.06698 3 15 4 8 0 NA
## 8 Fontibon 4.670100 -74.14155 8 NA 3 6 NA 0
## 9 Puente Aranda 4.631767 -74.11748 NA NA 1 7 NA 0
## 10 Kennedy 4.625050 -74.16133 21 28 3 NA 0 0
## 11 Carvajal 4.595617 -74.14858 41 71 2 6 0 10
## 12 Tunal 4.576225 -74.13096 12 0 NA 1 0 0
## 13 San Cristobal 4.572553 -74.08381 7 15 NA 4 0 NA
x1 <- df$PM1[!is.na(df$PM10)]
x2 <- df$PM2.5 [!is.na(df$PM2.5)]
x3 <- df$O3 [!is.na(df$O3)]
x4 <- df$NO2 [!is.na(df$NO2)]
x5 <- df$CO [!is.na(df$CO)]
x6 <- df$SO2 [!is.na(df$SO2)]
nombres_filas <- c("MÃnimo","Máximo","Promedio", "Mediana","Moda","Desviación estándar", "AsimetrÃa","Kurtosis","Coeficiente Variación")
nombres_Columnas <- c("PM10","PM2.5","O3","NO2","CO","SO2")
var1 <- c(min(x1), max(x1),mean(x1,na.rm=TRUE), median(x1), mode(x1), sd(x1,na.rm=TRUE), skew(x1), kurtosi(x1), sd(x1) / mean(x1))
var2 <- c(min(x2), max(x2),mean(x2,na.rm=TRUE), median(x2), mode(x2), sd(x2,na.rm=TRUE), skew(x2), kurtosi(x2), sd(x2) / mean(x2))
var3 <- c(min(x3), max(x3),mean(x3,na.rm=TRUE), median(x3), mode(x3), sd(x3,na.rm=TRUE), skew(x3), kurtosi(x3), sd(x3) / mean(x3))
var4 <- c(min(x4), max(x4),mean(x4,na.rm=TRUE), median(x4), mode(x4), sd(x4,na.rm=TRUE), skew(x4), kurtosi(x4), sd(x4) / mean(x4))
var5 <- c(min(x5), max(x5),mean(x5,na.rm=TRUE), median(x5), mode(x5), sd(x5,na.rm=TRUE), skew(x5), kurtosi(x5), sd(x5) / mean(x5))
var6 <- c(min(x6), max(x6),mean(x6,na.rm=TRUE), median(x6), mode(x6), sd(x6,na.rm=TRUE), skew(x6), kurtosi(x6), sd(x6) / mean(x6))
tabla1 <- cbind(var1, var2, var3, var4, var5, var6)
rownames(tabla1) <- nombres_filas
colnames(tabla1) <- nombres_Columnas
data.frame(tabla1)
## PM10 PM2.5 O3
## MÃnimo 3 0 1
## Máximo 41 71 4
## Promedio 14 22.8 2.75
## Mediana 10 15 3
## Moda numeric numeric numeric
## Desviación estándar 11.7241010510207 19.2226717994953 1.03509833901353
## AsimetrÃa 0.899765513196713 1.37149888737206 -0.253599093058315
## Kurtosis -0.318161060720585 1.1765036316055 -1.376875
## Coeficiente Variación 0.837435789358624 0.84309964032874 0.376399396004921
## NO2 CO SO2
## MÃnimo 1 0 0
## Máximo 8 0 10
## Promedio 4.55555555555556 0 1.25
## Mediana 4 0 0
## Moda numeric numeric numeric
## Desviación estándar 2.35112266327765 0 3.53553390593274
## AsimetrÃa -0.0363082277346534 NaN 1.85615530061469
## Kurtosis -1.56844617653688 NaN 1.703125
## Coeficiente Variación 0.516100096817044 NaN 2.82842712474619
#PM10
op = par(mfrow = c(1, 3))
hist(df$PM1[!is.na(df$PM10)], freq = FALSE, main = "", xlab = "Particulas 2.5 - 10 micrometros", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x1), sd(x1)), add = T)
boxplot(x1, xlab = "Boxplot PM10")
qqPlot(x1, ylab = "PM10")
## [1] 10 2
par(op)
#PM2.5
op = par(mfrow = c(1, 3))
hist(df$PM2.5[!is.na(df$PM2.5)], freq = FALSE, main = "", xlab = "Particulas <2.5 micrometros", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x2), sd(x2)), add = T)
boxplot(x2, xlab = "Boxplot PM <2.5")
qqPlot(x2, ylab = "PM <2.5")
## [1] 8 9
par(op)
#O3
op = par(mfrow = c(1, 3))
hist(df$O3[!is.na(df$O3)], freq = FALSE, main = "", xlab = "Ozono", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x3), sd(x3)), add = T)
boxplot(x3, xlab = "Boxplot Ozono")
qqPlot(x3, ylab = "Ozono")
## [1] 6 2
par(op)
#NO2
op = par(mfrow = c(1, 3))
hist(df$NO2[!is.na(df$NO2)], freq = FALSE, main = "", xlab = "Dioxido Nitrogeno", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x4), sd(x4)), add = T)
boxplot(x4, xlab = "Boxplot Dioxido Nitrogeno")
qqPlot(x4, ylab = "Dioxido Nitrogeno")
## [1] 8 4
par(op)
#CO
op = par(mfrow = c(1, 3))
hist(df$CO[!is.na(df$CO)], freq = FALSE, main = "", xlab = "Monoxido Carbono - NA", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x5), sd(x5)), add = T)
boxplot(x5, xlab = "Boxplot Monoxido Carbono - NA")
qqPlot(x5, ylab = "Monoxido Carbono- NA")
## [1] 1 2
par(op)
#SO2
op = par(mfrow = c(1, 3))
hist(df$SO2[!is.na(df$SO2)], freq = FALSE, main = "", xlab = "Dioxido de azufre - NA", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x6), sd(x6)), add = T)
boxplot(x6, xlab = "Boxplot Dioxido de azufre - NA")
qqPlot(x6, ylab = "Dioxido de azufre - NA")
## [1] 7 1
par(op)