PATRONES PUNTUALES PARA ANÁLISIS DE HURTOS A VEHICULOS

require(raster)
## Loading required package: raster
## Loading required package: sp
comunas=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Comuna.shp")
hurtos=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Hurtos2017/2017_0_WGS84.shp")


##-- 1.1  Identificar las zonas de los hurtos de vehiculos en Cali 

pos_vehi=which(hurtos@data$DELITO=="HURTO VEHICULOS")
hurtos_vehiculo=hurtos[pos_vehi,]
plot(comunas)
points(hurtos_vehiculo,col="red")

##-- 1.2 Convertir los datos a un patron puntual teniendo como referencia las coordenadas de los hurtos a vehiculos

require(spatstat)
## Loading required package: spatstat
## Loading required package: spatstat.data
## Loading required package: nlme
## 
## Attaching package: 'nlme'
## The following object is masked from 'package:raster':
## 
##     getData
## Loading required package: rpart
## 
## spatstat 1.64-1       (nickname: 'Help you I can, yes!') 
## For an introduction to spatstat, type 'beginner'
## 
## Note: spatstat version 1.64-1 is out of date by more than 6 months; we recommend upgrading to the latest version.
## 
## Attaching package: 'spatstat'
## The following objects are masked from 'package:raster':
## 
##     area, rotate, shift
hurtos_vehiculo=crop(hurtos_vehiculo,comunas)
loc=coordinates(hurtos_vehiculo) # coordenadas de los hurtos a vehiculos 
extent(comunas)                  # extension de de la capa de comunas 
## class      : Extent 
## xmin       : -76.59284 
## xmax       : -76.46125 
## ymin       : 3.331802 
## ymax       : 3.505871
patron_hurtos=ppp(x=loc[,1],y=loc[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871))) #owin ancho de la ventana de visualizacion 
## Warning: data contain duplicated points
plot(patron_hurtos)

##-- 1.3 Genarar mapa de la densidad para ver como es la ditribucion espacial de los hurtos a vehiculos 

densidad=density(patron_hurtos,0.005)
plot(densidad)

densidad_tabla=data.frame(densidad) # convertirla en un raster 
densidad_hurtos_vehi=rasterFromXYZ(densidad_tabla[,1:3])
densidad_hurtos_vehi2=mask(densidad_hurtos_vehi,comunas)
plot(densidad_hurtos_vehi2)
plot(comunas,add=T) # sobrepone la capa de comunas

#En el anterior mapa se observa dos nichos muy marcados de hurtos a vehiculos que hacen referencias al norte oeste de ciudad entre las comunas 19 y 3 y al norte en la comuna 5. Por otra parte, al suroriente de la ciudad tambien se observan episodiso de huertos pero en menor proporcion. 

PATRONES PUNTUALES PARA ANÁLISIS DE HURTOS A PERSONAS

require(raster)
comunas=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Comuna.shp")
hurtos=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Hurtos2017/2017_0_WGS84.shp")

##-- 2.1  Identificar las zonas de los hurtos de personas en Cali 

pos_per=which(hurtos@data$DELITO=="HURTO A PERSONAS")
hurtos_personas=hurtos[pos_per,]
plot(comunas)
points(hurtos_personas,col="blue")

##-- 2.2 Convertir los datos a un patron puntual teniendo como referencia las coordenadas de los hurtos a personas 

require(spatstat)
hurtos_personas=crop(hurtos_personas,comunas)
locp=coordinates(hurtos_personas) # coordenadas de los hurtos a vehiculos 
extent(comunas)                  # extension de de la capa de comunas 
## class      : Extent 
## xmin       : -76.59284 
## xmax       : -76.46125 
## ymin       : 3.331802 
## ymax       : 3.505871
patron_hurtos1=ppp(x=locp[,1],y=locp[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871))) #owin ancho de la ventana de visualizacion 
## Warning: data contain duplicated points
plot(patron_hurtos1)

##-- 2.3 Genarar mapa de la densidad para ver como es la ditribucion espacial de los hurtos a personas

densidad1=density(patron_hurtos1,0.005)
plot(densidad1)

densidad_tabla=data.frame(densidad1) # convertirla en un raster 
densidad_hurtos_per=rasterFromXYZ(densidad_tabla[,1:3])

densidad_hurtos_per2=mask(densidad_hurtos_per,comunas)
plot(densidad_hurtos_per2)
plot(comunas,add=T) # sobrepone la capa de comunas

#El anterior mapa, se evidencia una situación preocupante en la comuna 3 en dónde se refleja un alto grado de hurtos a personas en la ciudad de Cali específicamente en este sector. Esta información seria un insumo importante para la toma de decisiones por parte de las autoridades en reforzar la seguridad en este sector que es turístico como lo es San Antonio y El Peñón. 

PATRONES PUNTUALES PARA ANÁLISIS DE HURTOS A RESIDENCIAS

require(raster)
comunas=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Comuna.shp")
hurtos=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Hurtos2017/2017_0_WGS84.shp")


##-- 3.1  Identificar las zonas de los hurtos de vehiculos en Cali 

pos_res=which(hurtos@data$DELITO=="HURTO RESIDENCIA")
hurtos_residencia=hurtos[pos_res,]
plot(comunas)
points(hurtos_residencia,col="green")

##-- 3.2 Convertir los datos a un patron puntual teniendo como referencia las coordenadas de los hurtos a residencias

require(spatstat)
hurtos_residencia=crop(hurtos_residencia,comunas)
locr=coordinates(hurtos_residencia) # coordenadas de los hurtos a residencias  
extent(comunas)                  
## class      : Extent 
## xmin       : -76.59284 
## xmax       : -76.46125 
## ymin       : 3.331802 
## ymax       : 3.505871
patron_hurtos2=ppp(x=locr[,1],y=locr[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871)))
## Warning: data contain duplicated points
plot(patron_hurtos2)

##-- 3.3 Genarar mapa de la densidad para ver como es la ditribucion espacial de los hurtos a residencias


densidad2=density(patron_hurtos2,0.005)
plot(densidad2)

densidad_tabla=data.frame(densidad2) # convertirla en un raster 
densidad_hurtos_res=rasterFromXYZ(densidad_tabla[,1:3])

densidad_hurtos_res2=mask(densidad_hurtos_res,comunas)
plot(densidad_hurtos_res2)
plot(comunas,add=T) # sobrepone la capa de comunas

#En el siguiente mapa se observa un corredor muy amplio de hurtos a residencias que se extiende por todo la cuidad, especialmente se observa una densidad alta en el centro y el oriente de Cali.

##– ANALISIS ESPACIO TEMPORAL DE HURTOS A VEHICULOS, PERSONAS Y RESIDENCIAS EN EL AÑO 2017

require(raster)
comunas=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Comuna.shp")
hurtos=shapefile("D:/ESPECIALIZACION/SEMESTRE_1/1. Tratamiento de datos/Clase 13/DATOS/Hurtos2017/2017_0_WGS84.shp")

##-- A) HURTOS A VEHICULOS

densidades_mes_veh=list()

for(i in 1:12){
  pos_vehi=which(hurtos@data$DELITO=="HURTO VEHICULOS"&hurtos@data$MES==i) # identificar las zonas de hurtos a vehiculos por mes
  hurtos_vehiculo=hurtos[pos_vehi,]
  
  hurtos_vehiculo=crop(hurtos_vehiculo,comunas)  # Convertir los datos a un patron puntual
  loc=coordinates(hurtos_vehiculo)
  patron_hurtos=ppp(x=loc[,1],y=loc[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871))) 
  
  densidad=density(patron_hurtos,0.005) # Convierto los datos en un raster de densidad 
  densidad_tabla=data.frame(densidad)
  densidad_hurtos_vehi=rasterFromXYZ(densidad_tabla[,1:3])
  
  densidad_hurtos_vehi2=mask(densidad_hurtos_vehi,comunas) # Generar la máscara para recortar el mapa 
  densidades_mes_veh[[i]]=densidad_hurtos_vehi2
  }
## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points
  densidades_mes_veh=stack(densidades_mes_veh) # Generar el stack de densidad por mes 
  names(densidades_mes_veh)=month.name
  plot(densidades_mes_veh)

  require(rasterVis) # Comparo los datos bajo la misma escala de representación de densidad
## Loading required package: rasterVis
## Loading required package: lattice
## 
## Attaching package: 'lattice'
## The following object is masked from 'package:spatstat':
## 
##     panel.histogram
## Loading required package: latticeExtra
  levelplot(densidades_mes_veh,par.settings=BuRdTheme)+layer(sp.polygons(comunas)) 

##-- B) HURTOS A PERSONAS 

densidades_mes_per=list()

for(i in 1:12){
  pos_per=which(hurtos@data$DELITO=="HURTO A PERSONAS"&hurtos@data$MES==i) # identificar las zonas de hurtos a vehiculos por mes
  hurtos_personas=hurtos[pos_per,]
  
  hurtos_personas=crop(hurtos_personas,comunas)  # Convertir los datos a un patron puntual
  locp=coordinates(hurtos_personas)
  patron_hurtos1=ppp(x=locp[,1],y=locp[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871))) 
  
  densidad=density(patron_hurtos1,0.005) # Convierto los datos en un raster de densidad 
  densidad_tabla=data.frame(densidad)
  densidad_hurtos_per=rasterFromXYZ(densidad_tabla[,1:3])
  
  densidad_hurtos_per2=mask(densidad_hurtos_per,comunas) # Generar la máscara para recortar el mapa 
  densidades_mes_per[[i]]=densidad_hurtos_per2
  }
## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points
  densidades_mes_per=stack(densidades_mes_per) # Generar el stack de densidad por mes 
  names(densidades_mes_per)=month.name
  plot(densidades_mes_per)

  require(rasterVis) # Comparo los datos bajo la misma escala de representación de densidad
  levelplot(densidades_mes_per,par.settings=BuRdTheme)+layer(sp.polygons(comunas)) 

##-- C) HURTOS A RESIDENCIAS  

densidades_mes_res=list()

for(i in 1:12){
  pos_res=which(hurtos@data$DELITO=="HURTO RESIDENCIA"&hurtos@data$MES==i) # identificar las zonas de hurtos a vehiculos por mes
  hurtos_residencia=hurtos[pos_res,]
  
  hurtos_residencia=crop(hurtos_residencia,comunas)  # Convertir los datos a un patron puntual
  locr=coordinates(hurtos_residencia)
  patron_hurtos2=ppp(x=locr[,1],y=locr[,2],window=owin(c(-76.59284,-76.46125),c(3.331802,3.505871))) 
  
  densidad=density(patron_hurtos2,0.005) # Convierto los datos en un raster de densidad 
  densidad_tabla=data.frame(densidad)
  densidad_hurtos_res=rasterFromXYZ(densidad_tabla[,1:3])
  
  densidad_hurtos_res2=mask(densidad_hurtos_res,comunas) # Generar la máscara para recortar el mapa 
  densidades_mes_res[[i]]=densidad_hurtos_res2
  }
## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points

## Warning: data contain duplicated points
  densidades_mes_res=stack(densidades_mes_res) # Generar el stack de densidad por mes 
  names(densidades_mes_res)=month.name
  plot(densidades_mes_res)

  require(rasterVis) # Comparo los datos bajo la misma escala de representación de densidad
  levelplot(densidades_mes_res,par.settings=BuRdTheme)+layer(sp.polygons(comunas)) 

#Los mapas de los hurtos a vehículos reflejan la dinámica espacio temporal, en donde se observa que el mes de abril fue un mes muy apetecido para el hurto de vehículos en la zona norte de la cuidad. Por su parte, en la zona centro se identifica como un nicho predilecto para el hurto a vehículos presente en la mayoría de los meses del año. Sin embargo, en los periodos de noviembre y diciembre se refleja un corredor mucho más amplio de hurtos en las zonas sur, pasando por el oeste hacia el norte de Cali.

#Para el caso de hurtos a personas es preciso resaltar el grado de riesgo que representa el noroeste de la ciudad específicamente la comuna 3, en donde independientemente del rango de visualización, en esta comuna se muestra un alto grado de hurtos a personas en todos los meses del año. Este comportamiento, se refleja en una proporción menor pero significativa en la comuna colindante (comuna 19) entre los sectores de san Fernando, Tequendama y sus alrededores, en donde también, a lo largo del año se han presentado casos de huertos personas de manera significativa.  En lo que se refiere al norte, sur y oriente de la ciudad los índices son términos generales bajos. 

#Las zonas predilectas para el hurto de residencias se enmarcan en los sectores del oriente de la cuidad y la comuna 10. La comuna 3 sigue marcando la parada también en el hurto a residencias con una preferencia muy marcada en el mes de marzo.  De igual manera realizando el análisis puntual en cada mes, se identifica un comportamiento particular en los meses de febrero, agosto y septiembre, donde los índices de hurto a residencia se disparan por todo la cuidad, lo que podría relacionarse tal vez con la temporada de vacaciones en donde las residencias se encuentran deshabitadas cual es propicio para este tipo de situaciones. 

#En términos generales de acuerdo al análisis de la dinámica espacio temporal realiza para los casos de hurtos a vehículos, residencias y personas, que identifica en términos generales un nicho muy marcada en la comuna 3, específicamente en los sectores del san Antonio, el peñón, barrio libertadores y alrededores.