descarga_datos_abiertos {covidmx} | R Documentation |
Descarga de datos abiertos
Description
Funcion para la descarga de datos abiertos de la Direccion General de Epidemiologia (DGE)
Usage
descarga_datos_abiertos(
dbdir = tempfile(fileext = ".duckdb"),
sites.covid = get_sites_covid(),
site.covid.dic = get_site_dic(),
read_format = c("duckdb", "tibble"),
drv = duckdb::duckdb(),
pragma_memory_limit = Sys.getenv("pragma_memory_limit"),
tblname = "covidmx",
colClasses = get_col_class(),
download_process = c("pins", "download.file"),
unzip_command = Sys.getenv("unzip_command"),
unzip_args = Sys.getenv("unzip_args"),
unzip_args_dict = list(exdir = ".", overwrite = TRUE),
check_unzip_install = TRUE,
clear_zip = (download_process[1] != "pins"),
clear_csv = TRUE,
use_dict = TRUE,
datos_abiertos_zip_paths = NULL,
datos_abiertos_unzipped_path = NULL,
datos_abiertos_tbl = NULL,
diccionario_zip_path = NULL,
diccionario_unzipped_path = NULL,
diccionario = NULL,
quiet = FALSE,
cache_datos = NULL,
use_cache_on_failure = TRUE,
cache_diccionario = NULL,
force_download = FALSE,
show_warnings = TRUE,
board_url_name = "datos_abiertos",
board_url_name_dict = "diccionario_covid",
download_file_args = list(method = "curl", destfile = tempfile(), quiet = quiet),
download_file_args_dict = download_file_args,
descarga_db_datos_abiertos_tbl_args = list(),
descarga_db_diccionario_ssa_args = list(),
...
)
Arguments
dbdir |
(opcional) Direccion donde guardar la base de datos con terminacion |
sites.covid |
(opcional) Sitios web con el vinculo a los archivos |
site.covid.dic |
(opcional) Sitio desde el cual descarga del diccionario de datos. La ultima verificacion del sitio fue el 6 de septiembre 2022. |
read_format |
(opcional) |
drv |
(opcional) Un driver para |
pragma_memory_limit |
(opcional) Limite de memoria para el programa
(ver PRAGMAS). Cambialo a que sea mas o menos la mitad
de tu RAM. La forma mas sencilla es como una variable ambiental con
|
tblname |
(opcional) Nombre de la tabla de |
colClasses |
(opcional) Clases de la columna para leer en |
download_process |
(opcional) Metodo para descargar ya sea |
unzip_command |
(opcional) Forma de extraer la base de datos de datos abiertos
si |
unzip_args |
(opcional) Argumentos de extraccion de la base de datos de datos abiertos
si |
unzip_args_dict |
(opcional) Lista de argumentos para usar |
check_unzip_install |
(opcional) Bandera de verificacion para checar si tienes
lo necesario para unzippear los datos en el caso de que |
clear_zip |
(opcional) Si borrar los archivos |
clear_csv |
(opcional) Si borrar los archivos |
use_dict |
(opcional) Si descargar el diccionario de |
datos_abiertos_zip_paths |
(opcional) Camino a los datos abiertos si ya los
descargaste en |
datos_abiertos_unzipped_path |
(opcional) Camino a los datos abiertos |
datos_abiertos_tbl |
(opcional) Camino a un archivo |
diccionario_zip_path |
(opcional) Camino al diccionario si ya losdescargaste en |
diccionario_unzipped_path |
(opcional) Camino al diccionario |
diccionario |
(opcional) Lo que resulta de realizar una descarga del diccionario
usando |
quiet |
(opcional) Variable para no mostrar mensajes |
cache_datos |
(opcional) Direccion donde guardar los datos en memoria usando |
use_cache_on_failure |
(opcional) Booleana. Establece que si no se pueden descargar
datos nuevos utilice los que tenga en memoria. Por default es |
cache_diccionario |
(opcional) Direccion donde guardar el diccionario en memoria
usando |
force_download |
(opcional) Analiza si cambio el pin y descarga datos nuevos en caso afirmativo aunque haya pasado menos de un dia. |
show_warnings |
(opcional) si arrojar |
board_url_name |
(opcional) Establece el nombre del |
board_url_name_dict |
(opcional) Establece el nombre del |
download_file_args |
(opcional) Lista de argumentos adicionales para |
download_file_args_dict |
(opcional) Lista de argumentos adicionales
para |
descarga_db_datos_abiertos_tbl_args |
(opcional) Lista con argumentos adicionales
para el |
descarga_db_diccionario_ssa_args |
(opcional) Lista con argumentos adicionales para el
|
... |
(opcional) Parametros adicionales para |
Details
La funcion de descarga principal es descarga_datos_abiertos()
llama las siguientes funciones
en orden:
-
descarga_diccionario()
Se encarga de descargar y formatear el diccionario de datos -
descarga_db()
Se encarga de descargar y formatear la base de datos -
pega_db_datos_abiertos_tbl_y_diccionario()
Pega ambos en el formato lista decovidmx
A su vez descarga_diccionario()
ejecuta las siguientes para obtener el diccionario de datos:
-
descarga_db_diccionario_ssa()
Descarga el diccionario de la DGE -
unzip_db_diccionario_ssa()
Libera el archivozip
descargado -
parse_db_diccionario_ssa()
Genera una lista de tiblles con el diccionario por variable
Por otro lado,descarga_db()
ejecuta las siguientes para obtener los datos abiertos:
-
descarga_db_datos_abiertos_tbl()
Descarga las bases de datos de covid de la DGE -
unzip_db_datos_abiertos_tbl()
Libera el archivozip
descargado -
parse_db_datos_abiertos_tbl()
Genera una base de datos enduckdb
(otibble
) c on la informacion
Si en algun momento se interrumpio la descarga o hubo problemas de conexion o detuviste
el proceso de generacion de la base de datos abiertos puedes llamar a las funciones
de read_datos_abiertos()
.
Value
Lista de valores:
dats - Tabla conectada mediante
duckdb::dbConnect__duckdb_driver()
(siduckdb
) o tibble (sitibble
)disconnect - Funcion para cerrar la conexion a la base de datos.
dict - Lista de
tibble
s con el diccionario de datos para cada variable
Memoria RAM
Si tienes RAM que te sobre puedes no crear una base de datos en duckdb
sino leer directo
el archivo csv
. Esto se logra con read_format = tibble
. No lo recomiendo pues puedes
terminar con tu sesion de R
si se te acaba la memoria.
Windows Para abrir el archivo .zip
quiza requieras tambien descargar e instalar
7Zip
por default el sistema lo busca en
C:\\Program Files\\7-Zip\\7z.exe
pero si no esta ese directorio es necesario que
en unzip_command
especifiques el camino donde se instalo 7z.exe
.
Uso de pins
Para almacenar los datos se utiliza un pequenio cambio sobre la libreria pins
. Los datos
se descargan y se almacenan en cache junto con informacion sobre cuando fue la descarga. Si
no ha pasado un dia desde la ultima descarga no se descarga nada nuevo. Si los datos que
se tienen no han cambiado respecto a lo que esta en linea tampoco se vuelven a descargar aunque
haya pasado mas de un dia.
Si se te fue el Internet No te preocupes, pins
lee tu descarga mas reciente.
Para ver donde estan descargados tus datos usa pins::board_cache_path()
. Para borrarlos usa
pins::cache_prune()
.
Metodos de unzip
Por default el programa intenta abrir la base de datos con utils::unzip()
. Sin embargo
historicamente la base de datos ha estado codificada de tal forma que utils::unzip()
no
pueda abrirla. Para ello se utilizaban diferentes comandos en particular el default que
hemos visto funcionaba son los comandos de terminal unzip
(en Linux/OSX) y 7zip
(en Windows).
En caso de ser requeridos el sistema te lo hara saber junto con las instrucciones de instalacion
Note
No te recomiendo borrar el cache con clear_zip
o editarlo por cualquier otro medio si
estas usando pins
pues puede romperse la dependencia. Si accidentalmente lo borraste
usa pins::board_cache_path()
para ir al path
y borrar manualmente toda la carpeta.
References
Secretaría de Salud (2022). Datos Abiertos de COVID-19 URL: https://www.gob.mx/salud/documentos/datos-abiertos-152127
See Also
read_datos_abiertos()
descarga_datos_red_irag()
descarga_datos_variantes_GISAID()
casos()
Examples
# Descarga de la base de datos junto con diccionario en duckdb y la guarda en
# un archivo temporal.
# Puede cambiarse el dlink por el adecuado o dejarse en blanco
# quita la opción de sites.covid t site.covid.dic para descargar los de la DGE.
# Esto es solo un ejemplo.
file_duck <- tempfile(fileext = ".duckdb")
#Estos links deben omitirse en una corrida normal. Se incluyen por ahora como ejemplo
#pero las opciones site.covid.dic y sites.covid deben eliminarse de abajo.
dlink <- "https://github.com/RodrigoZepeda/covidmx/raw/main/datos_abiertos_covid19.zip"
diclink <- "https://github.com/RodrigoZepeda/covidmx/raw/main/diccionario_datos_covid19.zip"
#En el ejemplo de R por normas de CRAN tenemos que hacerlo así pero en tu
#computadora puedes solo usar descargar datos sin el if else
if (RCurl::url.exists(dlink) & RCurl::url.exists(diclink)){
datos_covid <- descarga_datos_abiertos(
dbdir = file_duck,
sites.covid = dlink,
site.covid.dic = diclink,
show_warnings = FALSE
)
# Luego haces algo con esos datos...
# Cuando terminas cierras la sesion:
datos_covid$disconnect()
# Despues podras leerlos con read_datos_abiertos cuando quieras:
datos_covid <- read_datos_abiertos(dbdir = file_duck, site.covid.dic = diclink)
datos_covid$disconnect()
# Si no pones `dbdir` nota que los datos se guardan en un archivo temporal que se elimina
# al cerrar tu sesion
datos_covid <- descarga_datos_abiertos(sites.covid = dlink, show_warnings = FALSE,
site.covid.dic = diclink)
} else {
datos_covid <- datosabiertos
}
# Desconectamos
datos_covid$disconnect()