View source: R/descarga_datos_abiertos_aux.R
descarga_db | R Documentation |
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 de covidmx
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 archivo zip
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 archivo zip
descargado
parse_db_datos_abiertos_tbl()
Genera una base de datos en duckdb
(o tibble
) 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()
.
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)
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
|
Lista de valores:
dats - Tabla conectada mediante duckdb::dbConnect__duckdb_driver()
(si duckdb
) o
tibble (si tibble
)
disconnect - Funcion para cerrar la conexion a la base de datos.
dict - Lista de tibble
s con el diccionario de datos para cada variable
descarga_datos_abiertos()
read_datos_abiertos()
descarga_datos_red_irag()
descarga_datos_variantes_GISAID()
#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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.