Designaciones en el estado de la Republica Argentina Noviembre 2017

Estimado lector, como buen informático tengo todo automatizado y se trata simplemente de correr un programita que extrae la información de los boletines oficiales.  Lamentablemente resolver los problemas económicos de nuestro pais no es tan fácil, aunque no pueden culparnos de no tener datos: aca un servidor hace el trabajo de forma voluntaria y mira para otro lado cuando la indignación atenta contra mis principios.

Aca la visualización

Como de costumbre, la visualización no ha cambiado demasiado desde la última vez, se puede observar que cada punto agrupa la cantidad de designaciones (aproximadas) que hubo en el estado.  Pinchando en el puntito se accede a los detalles.Screenshot from 2017-11-15 22-29-34

OJO: Me llama la atención que el estado se maneja mucho con “contratos”, en general 180 dias.  Supongo que luego los iran renovando, es decir, seguramente la gran cantidad de designaciones es también debido a los vencimientos de contratos.

Anuncios

Deuda de Letras y Bonos en la República Argentina

Bienvenido a otro interesante trabajito de obtención, visualización y análisis de datos abiertos en Argentina.  Anteriormente compartí unos resultados obtenidos de analizar los Boletines Oficiales y extraer algunos datos útiles acerca de las letras y bonos adquiridos por la República Argentina.  En el gráfico se puede observar el lamentable “Default” que transitó nuestro país entre el 2002 y 2007 (ningúna deuda es adquirida en ese tiempo, sinó que se mas bien se pagaron las deudas).

En estos últimos años y meses nuestro pais se ha reinsertado al mundo, indudablemente se está invirtiendo mucho en infraestructura, seguramente las deudas adquiridas son un reflejo de ello, aunque también es importante invertir para luego poder pagar las deudas.  Espero no estar equivocado en este razonamiento, prefiero ser optimista.  De todas formas, me parece muy valioso poder “observar” y monitorear la deuda.

Screenshot from 2017-09-26 21-59-37

Los datos están disponibles en el repositorio.  Este trabajo es compartido también con el propósito de recibir algún comentario: si hubiese algún dato erroneo, se lo corregirá a la brevedad.  Cada puntito en el gráfico tiene un enlace que le permitirá navegar el origen de los montos:

Screenshot from 2017-09-26 22-02-33

Aquí está disponible la “visualización“.  Por ejemplo, se puede observar que durante este mes de Septiembre Nación ha adquirido una deuda de 1.879.603.000 (mil ochocientos millones de dólares).

Screenshot from 2017-09-26 22-07-02Y si desea acceder a los detalles, solo hay que pinchar con el ratón en el enlace “detalles”, que abrirá una nueva ventana con el texto:Screenshot from 2017-09-26 22-08-56

Estos mil ochocientos millones están compuestos por dos bonos.

Bueno, ha llegado el final de este pequeño trabajito, espero haber sumado al conocimiento y transparencia desde mi humilde lugar.  Agradazco como siempre su visita y tiempo, hasta pronto.

-=[ Comunidad Datos Abiertos en Argentina ]=-

Analizando datos abiertos para determinar cuánto dinero recaudó el ciberataque con el ransomware WannaCry

El viernes 12 de Mayo un amigo me contacta y me cuenta una novedad:  Telefónica de España estaba siendo atacada por un RansomWare.  Un RansomWare es un programa que cifra los archivos y exige un rescate a cambio de des-cifrarlos.  Se supo luego que este Ransomware es conocido con el nombre de “WannaCry” y que se mete en las computadoras aprovechando una vulnerabilidad llamada “EternalBlue“.  Esta vulnerabilidad era parte de el armamento digital secreto de la CIA.  Aunque Wikileaks divulgó los detalles muchas empresas muy importantes no han instalado el parche de seguridad correspondiente.

El ataque de este Ransomware se propagó a otras empresas alrededor del mundo.  El RansomWare pide un rescate de u$d 300 en bitcoins.

Screenshot from 2017-08-19 21-15-32

El “WannaCry” solamente acepta el pago en Bitcoins, en su versión original el “WannaCry v1” usa la dirección bitcoin 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw para recibir lo que sería “el rescate”.

Me pregunté:  ¿ Cuánto habra recaudado esta version del Ransomware y podré usar datos abiertos para responder esa pregunta ?

El Bitcoin como muchos sabran es una exitosa cryptomoneda y funciona gracias a la tecnología llamada Blockchain que excede al menos la intención de este artículo.  Solamente voy a mencionar que se pueden consultar todas las transacciones hechas en bitcoins, por ejemplo aca.

Tras algo de data crunching y scripting pude tener todas las transacciones recibidas por esta dirección de bitcoins y armar un grafico con las cantidades de dinero de rescate pagado, en montos acumulados y a medida que fueron enviadas.  En algún momento la recepción de dinero se detiene, muy posiblemente gracias a que un investigador llamado Marcus Hutchins descubrió una manera de detener este ataque.  Esto provocó que surjan nuevas versiones mejoradas de este Ransomware posiblemente con ótra dirección Bitcoin que no he tenido en cuenta en este caso.

Screenshot from 2017-09-08 00-15-30

Se observa que en total se recaudaron unos 17 BTC (Bitcoins), a la fecha un bitcoin sale unos U$D 4500.

Link al grafico interactivoLink a los datos

El conocimiento y experiencia de Marcus Hutchins es asombroso, aunque lamentablemente lo detuvo el FBI en la conferencia de seguridad DEFCON hace unas semanas acusandolo de vender un software que roba cuentas bancarias.  No quiero entrar en un debate al respecto.

Comunidad de Datos Abiertos Argentina.

Espero que les haya gustado este analisis veloz sobre los bitcoins, espero tener tiempo para profundizar y compartir más cosas curiosas.

Jauria de Datos Abiertos y Perros en una ciudad Mascotera

En Nueva York (Estados Unidos) existe un registro de los perros en la ciudad.  Se trata de una base de datos con detalles interesantes acerca de las mascotas que acompañan a sus dueños.  PFrank1ara los Neoyorkinos es obligatorio registrar a sus mascotas, aunque lamentablemente solamente 1 de 5 respeta la normativa.  Me parece una excelente idea, siendo nuestra ciudad tan “Mascotera” no estaria mal un registro abierto de mascotas.  La ley 14107 habla de registrar solamente a los “perros potencialmente peligrosos”,  y deja de lado aquellos perritos mas pequeños que quizás no sean peligrosos pero si conviven con nosotros todos los días.

En Nueva York usaron este conjunto de datos y han elaborado varias ideas interesantes.  En un principio analizaron los nombres de los perros y su ubicación, aunque también correlacionaron cantidad de perros y zonas más caras (ó de mejor poder adquisitivo).

Me pareció una muy buena idea, y busqué si existe algo asi en alguna ciudad de nuestro país aunque todavía no pude encontrarlo.  Esto es un ejemplo de que hay muchisimas oportunidades de implementar políticas de Datos Abiertos en la Ciudad Mascotera de Buenos Aires.

 

Comunidad de Datos Abiertos

Analizando datos abiertos de peajes AUSA en autopistas

This is the post excerpt.

Cuando salgo de viaje en auto junto a mi familia opto por diferentes estrategias, siempre con el propósito de minimizar el tiempo de viaje y maximizar la seguridad. Mi estrategia es en función de una variable sobre la que tengo un cierto control: el horario de salida. Durante el viaje, observando el caudal de vehículos comienzo a formularme algunas preguntas:

  • ¿ En qué horario del día habrá mayor caudal de vehículos ?
  • ¿ Si saliese una hora más temprano ó más tarde, habría menos tránsito ?
  • ¿ Cuándo es el peor horario para ir ó regresar de un fin de semana largo ?

Los Datos Abiertos utilizados contienen variables numéricas, fecha/hora y categóricas. Estos datos son un registro del flujo vehicular en cada una de cuatro estaciones de peaje en la Ciudad de Buenos Aires, más adelante describo cuáles son estas estaciones de peaje.

Obteniendo los datos

Peajes AUSA comparte los datos abiertos en el Catálogo de datos abiertos de Gobierno de la Ciudad de Buenos Aires. Los datos utilizados en este post pueden ser obtenidos con estas instrucciones de unix:

wget https://recursos-data.buenosaires.gob.ar/ckan2/autopistas/ausapasovehiculo-2013.csv
wget https://recursos-data.buenosaires.gob.ar/ckan2/autopistas/ausapasovehiculo-2015.csv

Los registros publicados como datos abiertos son estadísticas aproximadas de estas cuatro estaciones de peaje:

  • ALB Alberti (AU1 – 25 de Mayo) Alberti
  • AVE Parque Avellaneda (AU6 – Perito Moreno)
  • DEL De Au. Dellepiane (AU1 – 25 de Mayo)
  • ILL Retiro (AU Pte. Arturo Illia)

A partir del año 2014 encontré que en los datos hay ocho estaciones de peaje en lugar de cuatro. Sospecho que a cada una de las cuatro estaciones de peaje la acompaña una etiqueta adicional, aunque desconozco aún el motivo de estas cuatro estaciones adicionales, que son:

  • SAR Alberti (AU1 – 25 de Mayo) Sarandi
  • SAL Parque Avellaneda (AU6 – Perito Moreno)
  • DEC De Au. Dellepiane (AU1 – 25 de Mayo)
  • RET Retiro (AU Pte. Arturo Illia)

Preparando los datos

Comencé analizando datos del año 2013. Primero transformé la fecha en un formato manejable. Código para leer el conjunto de datos:

ausa <- read.csv(file="ausapasovehiculo-2013.csv", sep=";")
ausa$FECHA2 <- as.Date(ausa$FECHA, format = "%m/%d/%Y");
ausa$MES <- format(ausa$FECHA2, "%m");
ausa$HORA <- as.character(ausa$HORA)
ausa$HORA1 <- as.numeric(gsub("^([0-9]*):.*", "\\1", ausa$HORA, perl=TRUE))
ausa$FECHA_HORA1 <- strptime(paste(ausa$FECHA, ausa$HORA), format="%m/%d/%Y %H:%M:%S")
ausa$FECHA_HORA2 <- strptime(paste(ausa$FECHA, ausa$HORA_FIN), format="%m/%d/%Y %H:%M:%S")

Utilizando los datos del año 2013, se preparó un gráfico de linea con el caudal de vehículos por mes para cada una de las cuatro estaciones de peaje. (Figura #1):

Figura #1

Particularidades de los datos

Para el mes Mayo y Junio de 2013 no hay datos (una pena porque aquí tienen lugar unos feriados muy interesantes).
El caudal de vehículos de los meses de vacaciones (de Enero a Abril) tiene valores inusuales: más adelante analizando los datos del 2015 no se observa esta gran diferencia en el caudal de vehículos respecto al resto del año.

Código para crear la figura #1:

old.par <- par(mfrow=c(2,2))
options(scipen=5)
las_estaciones <- c("DEL","ILL","ALB","AVE");
fecha1 = "2013-01-01";
fecha2 = "2014-01-01";
for (laestacion in las_estaciones) {
	subpt <- ausa[ ausa$ESTACION == laestacion, ]
	pp <- aggregate(cbind(subpt$CANTIDAD_PASOS) , by=list(FECHA=subpt$MES), FUN=sum, na.rm=TRUE)
	tlab = pp$FECHA;
	maxy = max(pp$V1)
	miny = min(pp$V1)
	lab <- format(tlab,format="%b-%Y")
	plot(V1 ~ FECHA, pp, main=laestacion, ylim=c(0,maxy), xaxt = "n", ylab="autos", xlab="mes", type = "l", axes=FALSE)
	axis(1, at=tlab, labels=FALSE)
	axis(2, las=2, cex.axis=.7)
	text(x=tlab, y=par()$usr[3]-0.06*(par()$usr[4]),labels=lab, srt=90, adj=1, xpd=TRUE, cex=.7)
}

 

¿ A qué hora salir un fin de semana largo ?

Sabiendo cuándo hubo un feriado, es posible estudiar el caudal de vehículos antes, durante y después. Un científico de datos puede utilizar sus herramientas para ganar tiempo y lo más importante: salud.

Aquí una lista de feriados argentinos
Un fin de semana largo, a mitad de año:
Lunes 14 de Octubre de 2013 – Día del Respeto a la Diversidad Cultural: la mayoría saldría el viernes 11.

Analizando tránsito de días previos y posteriores al feriado del lunes 14 de Octubre de 2013

En este gráfico se observa la cantidad de vehículos que circulan los días previos, durante y posterior al feriado del 14 de Octubre de 2013. Cada gráfico es un día, en el eje X están las 24 horas de cada día y el eje Y es la cantidad de vehículos total que pasaron por todas las estaciones de peaje de AUSA en la Ciudad de Buenos Aires.

Figura #2
LA IDA: El feriado fue el día Lunes 14 de Octubre, es razonable asumir que para aprovechar el fin de semana la mayoría partiríamos de viaje el viernes 11 de Octubre. Observar la figura #2 (Día 11 de Octubre). No está facil la decisión, prácticamente todo el día desde las 8 de la mañana hasta las 19 hay un caudál sostenido de vehículos. Una opción podría ser salir el mismo viernes 11 de Octubre a la madrugada ó esperar a la noche, después de las 22 ya que el caudal de vehículos desciende alcanzando un mínimo a las 4 de la madrugada del día siguiente: Sábado 12 de Octubre de 2013.


Figura #3
EL RETORNO: Asumiendo que la mayoría retomamos nuestras labores diarias el día martes 15 de Octubre por la mañana, observar la figura #3 día 14 de Octubre. Aquí el mayor caudal de autos es entre las 12 y las 21 horas del día feriado, los máximos de caudal a las 13 horas, y entre las 18 y 22 horas. Evitaría emprender el regreso a casa cerca del mediodía ó por la tarde. Una estrategia que me ha dado resultado es salir por la mañana cerca de las 9 ó regresar a última hora después de las 22, se viaja de noche pero se ahorra tiempo y stress.

Código para crear la Figura #2 y #3:

las_fechas <- c("2013-10-10", "2013-10-11", "2013-10-12", "2013-10-13", "2013-10-14", "2013-10-15")
coco <- aggregate(x=ausa$CANTIDAD_PASOS, by=list(ausa$FECHA2, ausa$HORA1), FUN=sum)
subpp <- xtabs(coco$x ~ coco$Group.2 + coco$Group.1)
subpp1 <- subpp[, las_fechas]
maxy = max(subpp1)
miny = min(subpp1)
tmin <- min(ausa$HORA1)
tmax <- max(ausa$HORA1)
tlab <- seq(tmin, tmax)
lab <- format(tlab,format="%H:%M:%S")
old.par <- par(mfrow=c(3, 2))
for (item in seq(1, length(las_fechas))) {
	maxy = max(subpp1[,item])
	miny = min(subpp1[,item])
	plot(subpp1[, c(las_fechas[item])], main=las_fechas[item], ylim=c(miny, maxy), xlim=c(tmin,tmax), xlab="hora", ylab="autos", xaxt = "n", type = "l", axes=FALSE)
	par(new=TRUE)
	axis(1, at=tlab, labels=FALSE)
	axis(2, las=2, cex.axis=.7)
	text(x=tlab, y=par()$usr[3]-.14*(par()$usr[4]),labels=lab, adj=1, xpd=TRUE, cex=.7)
}

 


Datos más recientes, analizando el año 2015

Preparando los datos

ausa <- read.csv(file="ausapasovehiculo-2015.csv", sep=";")
ausa$FECHA2 <- as.Date(ausa$FECHA, format = "%d/%m/%Y");
ausa$MES <- format(ausa$FECHA2, "%m");
ausa$HORA <- as.character(ausa$HORA)
ausa$HORA1 <- as.numeric(gsub("^([0-9]*):.*", "\\1", ausa$HORA, perl=TRUE))
ausa$FECHA_HORA1 <- strptime(paste(ausa$FECHA, ausa$HORA), format="%d/%m/%Y %H:%M:%S")
ausa$FECHA_HORA2 <- strptime(paste(ausa$FECHA, ausa$HORA_FIN), format="%d/%m/%Y %H:%M:%S")

Se preparó un gráfico de linea con el caudal de vehículos por mes para cada una de las cuatro estaciones de peaje. Comparando con el análisis de los datos del año 2013, estos números no tienen una marcada diferencia de flujo vehicular entre Enero a Marzo y el resto del año. También es interesante que en este set de datos no faltan valores para ningún mes.


Figura #4
Quisiera repetir el análisis de a qué hora hay mayor caudal de vehículos en la ida y en el retorno de un feriado largo.

Feriado de interés del año 2015:
Agosto, Lunes 17 – Paso a la Inmortalidad del General José de San Martín.

Analizando tránsito del Lunes 17 de Agosto de 2015

En las figuras #5 y #6 se observa la cantidad de vehículos que circulan los días anteriores, durante y posterior al feriado del Lunes 17 de Agosto de 2015.

LA IDA: El feriado en cuestión fue el día Lunes 17 de Agosto. Se asume que la mayoría trabajamos de lunes a viernes y se sale de viaje el viernes 14 de Agosto para aprovechar lo más posible el fin de semana.

¿ A qué hora conviene salir para ganar tiempo ?

 


Figura #5

Observando la figura #5, día 14 de agosto: Una opción es salir a la madrugada (entre las 4 y 5 de la mañana). También se puede salir a la tarde, después de las 19, ya que el caudal de vehículos desciende alcanzando un mínimo a las 4 de la madrugada del día sábado 15 de Agosto de 2015.

EL RETORNO: Regresaría de este feriado largo el lunes 17 de agosto ó un día antes, el domingo 16 de agosto. Alguno querría aprovechar lo más posible y regresar el martes 18 de agosto. De optar por regresar un día antes al feriado (el 16 de agosto), sería entre las 14 y 18 horas cuando los datos indican un menor caudal vehicular.
Si regreso el lunes 17 de agosto, sería por la mañana, antes del mediodía.

Figura #6
El día martes 18 de Agosto el caudal de vehículos regresa a su comportamiento normal con mayor caudal vehicular cuando la gente va y regresa de sus trabajos.

las_fechas <- c("2015-08-13", "2015-08-14", "2015-08-15", "2015-08-16", "2015-08-17", "2015-08-18")
coco <- aggregate(x=ausa$CANTIDAD_PASOS, by=list(ausa$FECHA2, ausa$HORA1), FUN=sum)
subpp <- xtabs(coco$x ~ coco$Group.2 + coco$Group.1)
subpp1 <- subpp[, las_fechas]
maxy = max(subpp1)
miny = min(subpp1)
tmin <- min(ausa$HORA1)
tmax <- max(ausa$HORA1)
tlab <- seq(tmin, tmax)
lab <- format(tlab,format="%H:%M:%S")

old.par <- par(mfrow=c(3, 2))
for (item in seq(1, length(las_fechas))) {
maxy = max(subpp1[,item])
miny = min(subpp1[,item])
plot(subpp1[, c(las_fechas[item])], main=las_fechas[item], ylim=c(miny, maxy), xlim=c(tmin,tmax), xlab="hora", ylab="autos", xaxt = "n", type = "l", axes=FALSE)
par(new=TRUE)
axis(1, at=tlab, labels=FALSE)
axis(2, las=2, cex.axis=.7)
text(x=tlab, y=par()$usr[3]-.14*(par()$usr[4]),labels=lab, adj=1, xpd=TRUE, cex=.8)
}