Paquete DatosCovidINS
Paquete DatosCovidINS
Diego Ramos
Universidad del Valle
Sep/2020
Universidad del Valle
Sep/2020
Este paquete tiene como propósito automatizar el acceso informático y curación de los datos suministrados por el Instituto Nacional de Salud (de Colombia) para facilitar su uso en computación, análisis, visualización, etc.
Nota: Este paquete fue actualizado el 9 de noviembre de 2020 debido a los últimos cambios presentados en el dataset proporcionado por el instituto nacional de salud. Ahora los nombre de las ciudades deben ser ingresados en mayúsculas. Por ejemplo, para consultar los datos de Bogotá ingrese INSCiudad[“BOGOTA”].
BeginPackage["DatosCovidINS`"]INSCiudad::usage = "INSCiudad[x] proporciona el conteo diario de casos nuevos de Covid-19 en la ciudad x en formato de series de tiempo."INSColombia::usage = "INSColombia[] proporciona el conteo diario de casos nuevos de Covid-19 en Colombia en formato de series de tiempo."Begin["`Private`"]INSCiudad[city_String]:= Module ParesFechaCiudad , FechaCiudadAsintomatico , ConteoRangoDeFechasPorCiudad, DatosPorCiudad1, DatosPorCiudad2, ConteoFechasPorCiudad1, ConteoFechasPorCiudad2, ConteoRangoDeFechasPorCiudad1, ConteoRangoDeFechasPorCiudad2, asociacion, MinMaxFechas, datos, drop1, drop2, RangoDeFechas , ParesFechaCiudad = Select[{Association[#]["fecha_inicio_sintomas"], Association[#]["ciudad_municipio_nom"]}&/@data, Head[#[[1]]] =!= Missing &]; FechaCiudadAsintomatico = Select[{Association[#]["fecha_de_notificaci_n"], Association[#]["ciudad_municipio_nom"],Association[#]["fecha_inicio_sintomas"]}&/@data, Head[#[[3]]]=== Missing &]; DatosPorCiudad1 = Select[ParesFechaCiudad,#[[2]]==city &]; DatosPorCiudad2 = Select[FechaCiudadAsintomatico, #[[2]] == city &]; drop1 = Reverse@ToExpression@StringSplit[StringDrop[#, -8],"/"]&/@(DatosPorCiudad1[[All,1]]); drop2 = Reverse@ToExpression@StringSplit[StringDrop[#, -8],"/"]&/@(DatosPorCiudad2[[All,1]]); ConteoFechasPorCiudad1 = Counts[drop1]; ConteoFechasPorCiudad2 = Counts[drop2]; MinMaxFechas = MinMax[ DateObject[#]&/@DeleteDuplicates[Join[drop1, drop2]] ]; RangoDeFechas = DateRange[MinMaxFechas[[1]],MinMaxFechas[[2]]]; asociacion = AssociationThread[RangoDeFechas -> Table[0,{Length[RangoDeFechas]}]]; ConteoRangoDeFechasPorCiudad1 = Join [asociacion,KeyMap[DateObject,ConteoFechasPorCiudad1]]; ConteoRangoDeFechasPorCiudad2 = Join [asociacion,KeyMap[DateObject,ConteoFechasPorCiudad2]]; TimeSeries[Normal[ConteoRangoDeFechasPorCiudad1 + ConteoRangoDeFechasPorCiudad2]/.Rule -> List] INSColombia[]:= Module FechasFIS, FechasAsintomaticos, MinMaxFechas, ConteoAsintomaticos, RangoDeFechas, ConteoFIS, datos, ConteoRangoDeFechasFIS, ConteoRangoDeFechasAsintomaticos , FechasFIS = Reverse@ToExpression@StringSplit[StringDrop[#,-8],"/"]&/@Select[Association[#]["fecha_inicio_sintomas"]&/@data, Head[#] =!= Missing &]; FechasAsintomaticos =Reverse@ToExpression@StringSplit[StringDrop[#,-8],"/"]&/@(Select[Map[{ Association[#]["fecha_de_notificaci_n"], Association[#]["fecha_inicio_sintomas"]}&, data], Head[#[[2]]] === Missing & ][[All, 1]]); MinMaxFechas = MinMax[DateObject[#]&/@DeleteDuplicates[Join[FechasFIS, FechasAsintomaticos]]]; RangoDeFechas = DateRange[MinMaxFechas[[1]],MinMaxFechas[[2]]]; ConteoFIS = Counts[FechasFIS]; ConteoAsintomaticos = Counts[FechasAsintomaticos]; ConteoRangoDeFechasFIS = Join[AssociationThread[RangoDeFechas -> Table[0,{Length[RangoDeFechas]}]],KeyMap[DateObject,ConteoFIS]]; ConteoRangoDeFechasAsintomaticos = Join[ AssociationThread[RangoDeFechas -> Table[0, {Length[RangoDeFechas]}]], KeyMap[DateObject, ConteoAsintomaticos]]; TimeSeries[Normal[ConteoRangoDeFechasFIS + ConteoRangoDeFechasAsintomaticos]/.Rule->List] INSData[]:= Module request1, length, request2 , request1=HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json", <|Method->"GET","Query"->{"$select"->"count(id_de_caso)","$offset"->0},CharacterEncoding->"UTF8"|>]; length=ToExpression[Values[First[URLExecute[request1]]]][[1]]; request2=HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json",<|Method->"GET","Query"->{"$limit"->length,"$offset"->0},CharacterEncoding->"UTF8"|>]; URLExecute[request2] data = INSData[];End[]EndPackage[]