descarga_db {covidmx} | R Documentation |
Auxiliares para la descarga de datos abiertos
Description
Conjunto de funciones para apoyar la descarga de datos abiertos de la Direccion General de Epidemiologia (DGE)
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
) con 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()
.
Usage
descarga_db(
read_format = c("duckdb", "tibble"),
tblname = "covidmx",
pragma_memory_limit = Sys.getenv("pragma_memory_limit"),
drv = duckdb::duckdb(),
dbdir = tempfile(fileext = ".duckdb"),
colClasses = get_col_class(),
sites.covid = get_sites_covid(),
download_process = c("pins", "download.file"),
unzip_command = Sys.getenv("unzip_command"),
unzip_args = Sys.getenv("unzip_args"),
check_unzip_install = TRUE,
clear_zip = (download_process[1] != "pins"),
clear_csv = TRUE,
force_download = FALSE,
show_warnings = TRUE,
datos_abiertos_zip_paths = NULL,
datos_abiertos_unzipped_path = NULL,
datos_abiertos_tbl = NULL,
quiet = FALSE,
board_url_name = "datos_abiertos",
cache = NULL,
use_cache_on_failure = TRUE,
download_file_args = list(method = "curl", destfile = tempfile(), quiet = quiet),
descarga_db_datos_abiertos_tbl_args = list(),
...
)
descarga_diccionario(
download_process = c("pins", "download.file"),
site.covid.dic = get_site_dic(),
quiet = FALSE,
clear_zip = download_process[1] != "pins",
clear_csv = TRUE,
diccionario_zip_path = NULL,
diccionario_unzipped_path = NULL,
diccionario = NULL,
board_url_name_dict = "diccionario_covid",
cache_diccionario = NULL,
use_cache_on_failure = TRUE,
force_download = FALSE,
show_warnings = TRUE,
download_file_args_dict = list(method = "curl", destfile = tempfile(), quiet = quiet),
unzip_args_dict = list(exdir = ".", overwrite = TRUE),
descarga_db_diccionario_ssa_args = list()
)
descarga_db_datos_abiertos_tbl(
download_process = c("pins", "download.file"),
sites.covid = get_sites_covid(),
quiet = FALSE,
board_url_name = "datos_abiertos",
cache = NULL,
use_cache_on_failure = TRUE,
force_download = FALSE,
show_warnings = TRUE,
download_file_args = list(method = "curl", destfile = tempfile(), quiet = quiet),
...
)
descarga_db_diccionario_ssa(
download_process = c("pins", "download.file"),
site.covid.dic = get_site_dic(),
quiet = FALSE,
board_url_name_dict = "diccionario_covid",
cache_diccionario = NULL,
use_cache_on_failure = TRUE,
force_download = FALSE,
show_warnings = TRUE,
download_file_args_dict = list(method = "curl", destfile = tempfile(), quiet = quiet),
...
)
unzip_db_datos_abiertos_tbl(
datos_abiertos_zip_paths,
unzip_command = Sys.getenv("unzip_command"),
unzip_args = Sys.getenv("unzip_args"),
check_unzip_install = TRUE,
quiet = FALSE,
clear_zip = FALSE
)
unzip_db_diccionario_ssa(
diccionario_zip_path,
unzip_args_dict = list(exdir = ".", overwrite = TRUE),
clear_zip = FALSE
)
parse_db_diccionario_ssa(diccionario_unzipped_path, clear_csv = FALSE)
parse_db_datos_abiertos_tbl(
datos_abiertos_unzipped_path,
read_format = c("duckdb", "tibble"),
pragma_memory_limit = Sys.getenv("pragma_memory_limit"),
dbdir = tempfile(fileext = ".duckdb"),
drv = duckdb::duckdb(),
colClasses = get_col_class(),
tblname = "covidmx",
quiet = TRUE,
clear_csv = FALSE,
...
)
pega_db_datos_abiertos_tbl_y_diccionario(datos_abiertos_tbl, diccionario)
Arguments
read_format |
(opcional) |
tblname |
(opcional) Nombre de la tabla de |
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
|
drv |
(opcional) Un driver para |
dbdir |
(opcional) Direccion donde guardar la base de datos con terminacion |
colClasses |
(opcional) Clases de la columna para leer en |
sites.covid |
(opcional) Sitios web con el vinculo a los archivos |
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 |
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 |
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 |
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 |
quiet |
(opcional) Variable para no mostrar mensajes |
board_url_name |
(opcional) Establece el nombre del |
cache |
parametro para el cache de |
use_cache_on_failure |
(opcional) Booleana. Establece que si no se pueden descargar
datos nuevos utilice los que tenga en memoria. Por default es |
download_file_args |
(opcional) Lista de argumentos adicionales para |
descarga_db_datos_abiertos_tbl_args |
(opcional) Lista con argumentos adicionales
para el |
... |
Parametros adicionales para |
site.covid.dic |
(opcional) Sitio desde el cual descarga del diccionario de datos. La ultima verificacion del sitio fue el 6 de septiembre 2022. |
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 |
board_url_name_dict |
(opcional) Establece el nombre del |
cache_diccionario |
(opcional) Direccion donde guardar el diccionario en memoria
usando |
download_file_args_dict |
(opcional) Lista de argumentos adicionales
para |
unzip_args_dict |
(opcional) Lista de argumentos para usar |
descarga_db_diccionario_ssa_args |
(opcional) Lista con argumentos adicionales para el
|
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
See Also
descarga_datos_abiertos()
read_datos_abiertos()
descarga_datos_red_irag()
descarga_datos_variantes_GISAID()
Examples
#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.
diclink <- "https://github.com/RodrigoZepeda/covidmx/raw/main/diccionario_datos_covid19.zip"
dlink <- "https://github.com/RodrigoZepeda/covidmx/raw/main/datos_abiertos_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)){
# Descarga solo el diccionario no oficial (omite el site.covid.dic para el de DGE)
diccionario <- descarga_diccionario(show_warnings = FALSE, site.covid.dic = diclink)
# O bien descarga solo los datos abiertos de ejemplo desde Github
# omite el dlink (o cámbialo por el vínculo correcto) para descargar los datos de la DGE
datos_abiertos <- descarga_db(sites.covid = dlink, show_warnings = FALSE)
# Pegalos en el formato que se necesita para el resto de funciones
datos_covid <- pega_db_datos_abiertos_tbl_y_diccionario(datos_abiertos, diccionario)
# Desconectamos
datos_covid$disconnect()
# Tambien puedes descargar paso por paso
datos_abiertos <- descarga_db_datos_abiertos_tbl(
sites.covid = dlink,
show_warnings = FALSE
) |> # Descarga
unzip_db_datos_abiertos_tbl() |> # Unzippea
parse_db_datos_abiertos_tbl() # Duckdb
# O bien el diccionario
diccionario <- descarga_db_diccionario_ssa(site.covid.dic = diclink) |> # Descarga
unzip_db_diccionario_ssa() |> # Unzippea
parse_db_diccionario_ssa() # Tibble
# Si descargaste cada uno por separado necesitas la funcion pega para
# juntarlos en un unico objeto
datos_covid <- pega_db_datos_abiertos_tbl_y_diccionario(datos_abiertos, diccionario)
}