En este tutorial genero códigos QR desde R para cinco fuentes de datos climáticos y geoespaciales que uso a diario. Con un vector de URLs y un bucle de pocas líneas, R escribe un PNG por enlace, listo para una presentación, un póster o una clase.
Un QR resuelve un problema concreto: el público no puede hacer clic en una diapositiva proyectada ni en un afiche impreso. Hacerlo en R, y no en un generador web, deja el proceso reproducible y lo escala a 5 o a 500 enlaces sin repetir clics.
Las cinco fuentes
Cada QR apunta a un portal de datos abiertos. El nombre corto de la tercera columna es el que usa el código para nombrar cada PNG.
| Fuente | Qué ofrece | Nombre en el código |
|---|---|---|
| IDEAM – DHIME | Series hidrometeorológicas de las estaciones de Colombia | ideam |
| SIAC – Portal de Datos Abiertos MADS | Capas ambientales oficiales del Ministerio de Ambiente | siac |
| Copernicus Data Space Ecosystem | Imágenes Sentinel y servicios Copernicus, de acceso libre | cope |
| WorldClim 2.1 | Climatología 1970–2000 y 19 variables bioclimáticas, de 30 s a 10 min | wcli |
| CHIRPS v3 | Precipitación a 0.05°, de 1981 a casi el presente | chrp |
El código
El script completo cabe en 20 líneas y solo depende del paquete qrcode. Al correrlo, la carpeta qr/ queda con cinco archivos: qr_ideam.png, qr_siac.png, qr_cope.png, qr_wcli.png y qr_chrp.png.
# Load libraries ----------------------------------------------------------
pacman::p_load(qrcode)
# URLs --------------------------------------------------------------------
urls <- c(
ideam = "https://www.ideam.gov.co/dhime",
siac = "https://siac-datosabiertos-mads.hub.arcgis.com",
cope = "https://dataspace.copernicus.eu/",
wcli = "https://worldclim.org/data/worldclim21.html",
chrp = "https://chc.ucsb.edu/data/chirps3"
)
# Generate QR codes -------------------------------------------------------
dir.create("qr", showWarnings = FALSE)
for (name in names(urls)) {
code <- qr_code(urls[[name]], ecl = "M")
png(file.path("./qr/", paste0("qr_", name, ".png")), width = 1000, height = 1000)
par(mar = c(0, 0, 0, 0))
plot(code)
dev.off()
}
Buenas prácticas antes de imprimir
Un QR impreso no se corrige, así que vale la pena revisar tres cosas antes de mandarlo a un afiche.
- Escanea cada QR con el celular. Confirma que abre la página que esperas. Por ejemplo, el enlace del IDEAM abre la portada de DHIME; la descarga de datos está en atencionciudadano.ideam.gov.co.
- Elige el nivel de corrección según el uso.
"L"(7 %) o"M"(15 %) bastan para pantalla. Usa"H"(30 %) si vas a poner un logo encima conadd_logo(). - Para impresión, usa vector. El mismo paquete escribe SVG, que escala a cualquier tamaño sin pixelarse. Dentro del bucle, basta con una línea:
Deja un comentario