domingo, 22 de septiembre de 2024

Cuantificando el efecto del filtro de luz azul de unas gafas graduadas

Algunas gafas graduadas (entre ellas las mías) incluyen un filtro azul que atenúa las frecuencias de luz más altas, supuestamente reduciendo la fatiga ocular y protegiendo el ojo a largo plazo frente al uso continuado de pantallas.

lunes, 16 de septiembre de 2024

Teoría de colas y fiestas de pueblo

La Teoría de Colas es la disciplina que estudia los procesos de demanda de Servicio por parte de una serie de Clientes sobre uno o más Recursos o Servidores. Ejemplos de colas son las que se forman en las cajas del supermercado, en la parada del bus, y también en cosas más incorpóreas como las aplicaciones que se ejecutan en un ordenador solicitando tiempo de CPU.

domingo, 8 de septiembre de 2024

Calculando el promedio ponderado de una serie histórica con un único campo

En ocasiones se precisa sumarizar para cada fila de una tabla el valor que ha tenido una variable a lo largo del tiempo. La forma obvia aunque costosa de lograrlo es almacenando individualmente en columnas los últimos n valores del histórico y operar sobre ellos para obtener algún tipo de promediado (media, media ponderada, mediana,...). Vamos a ver una forma mucho más económica de calcular un promedio ponderado por antigüedad de los valores de la serie, solo necesitando el propio campo donde se almacena el dato.

lunes, 19 de agosto de 2024

Modelo geométrico de piedra de playa con R

Cuando voy a una playa de piedras me gusta fijarme en la forma ovalada que adquieren las piedras, labradas por las olas a lo largo de miles o millones de años. Vamos a programar una rutina que, a partir del contorno de una piedra de este tipo, la modele en base a 4 elipses. De cada una de ellas se utiliza 1/4 de la forma garantizando la continuidad de las derivadas, y por tanto la suavidad del contorno modelado, en los cuatro puntos de unión.

domingo, 11 de agosto de 2024

Anaglifos de un mapa de elevación con R

En 'Proyección de sombras sobre un DEM con R' partiendo de un mapa de elevaciones obteníamos una visión pseudo 3D coloreada de su hillshade, añadiéndole además una proyección de sombras. Le vamos a dar una nueva vuelta de tuerca para construir, con el mismo método de slicing que usamos en aquella ocasión, un anaglifo que permita percibir de forma real el relieve 3D del mapa.

martes, 6 de agosto de 2024

La costa más cercana con R

En ausencia de corrientes y viento, la ruta más rápida desde el mar a tierra es la línea recta hasta el punto más cercano de costa. Este mapa pretende indicar hacia dónde deberíamos dirigirnos desde cualquier punto del océano para alcanzar la costa de las Islas Canarias lo antes posible. Se asume la validez de la distancia euclídea para la proyección geográfica analizada.

viernes, 24 de mayo de 2024

Apilado por mínimo para preservar sombras en RAW

Me quedan pocas funciones de apilado por probar, y una de ellas es el mínimo. Haciendo en este caso el ejercicio al revés tratamos de discurrir una aplicación donde este apilado tenga utilidad, y se me ha ocurrido la de preservar las sombras proyectadas por un "reloj solar" casero.

lunes, 29 de abril de 2024

Proyección de sombras sobre un DEM con R

Dada la naturaleza de los mapas de elevación (DEM), donde en cada celda del terreno tenemos que preocuparnos de una única coordenada tridimensional, aunque con algunas restricciones podemos acercarnos de forma sencilla a un cálculo exacto de proyección de sombras, sin necesidad de recurrir a verdaderos algoritmos 3D complejos basados en trazado de rayos (los usados en software como Blender, rayshader,...).

jueves, 25 de abril de 2024

Mapas estilo karesansui con R

El karesansui (枯山水) o jardín seco japonés es una técnica de paisajismo donde mediante rocas y otros elementos se representan islas separadas por un manto de grava que simboliza el mar. La arena se rastrilla formando surcos, los cuales en las proximidades de cada isla siguen sus contornos de forma concéntrica emulando las olas.

sábado, 23 de marzo de 2024

Ocultando imágenes en el espectro de un sonido con R

Un clásico juego de encriptación consiste en incrustar imágenes en el espectro de un archivo de audio. En el caso de usar frecuencias audibles va a sonar horrible, pero si dibujamos su espectrograma las imágenes aparecerán por arte de magia.

martes, 19 de marzo de 2024

Los fotógrafos son terribles estadísticos

Sin ánimo de chinchar a nadie pero diciendo las cosas como son, este artículo pretende mostrar varios ejemplos de por qué los fotógrafos en ocasiones resultan ser terribles en estadística, haciendo simplificaciones y asumiendo causalidades donde solo hay correlaciones, y llegando así a conclusiones erróneas. He tratado de ser muy breve en cada uno de los ocho mitos falsos tratados pero se incluyen enlaces para ampliar información.

domingo, 10 de marzo de 2024

Midiendo la velocidad de centrifugado de una lavadora con la FFT

Con el análisis espectral del sonido que hace una lavadora durante su centrifugado podemos calcular con mucha precisión a cuántas rpm está girando. Lo mismo es aplicable al sonido de cualquier otro tipo de motor.

domingo, 3 de marzo de 2024

Apilado por media para simular ISO ultra bajo/filtro ND en RAW (II)

Como cierre un tanto procrastinado del ejercicio 'Apilado por media para simular ISO ultra bajo/filtro ND en RAW (I)', vamos a promediar varios archivos RAW procedentes de capturas de la misma escena para simular el efecto de un filtro de densidad neutra (ND), en este caso con el objetivo de obtener un archivo RAW de larga exposición.

jueves, 29 de febrero de 2024

Añadiendo niebla a un mapa con Photoshop

En este ejercicio vamos a emular un efecto de niebla sobre un mapa de elevación con su correspondiente hillshade, y lo haremos enteramente con Photoshop, dejando la versión en código para otra iteración. La clave está en conocer la altitud en cada zona del mapa, lo que nos va a permitir aplicar la niebla selectivamente. Así crearemos dramatismo introduciéndola en los valles y laderas inferiores, dejando las cumbres más altas inalteradas.

lunes, 19 de febrero de 2024

Mapas estilo LEGO con R

Tras el bombardeo que el algoritmo de LinkedIn me ha propinado días atrás con mapas hechos de fichas LEGO con ArcGIS Pro o QGIS, he querido escribir mi propia función en R que vaya un poco más allá: se trata no solo de representar mapas con fichas de LEGO, sino que se utilicen diferentes tamaños y orientaciones de los ladrillos como ocurriría con un LEGO real.

domingo, 21 de enero de 2024

Plegando papel con R

En 'Digital map folding part 1: 2D' encontramos un tutorial para emular el plegado en papel de un mapa (aplicable a cualquier cosa susceptible de ser impresa). El proceso es laborioso y no parametrizable, fruto de usar un programa no pensado para ello, pero la idea es buena y fácilmente programable así que vamos a replicarla con R. La automatizaremos para un número arbitrario de pliegues por eje.

miércoles, 17 de enero de 2024

Los horizontes del Lago Michigan con R

Alguna vez de pie en la orilla de la playa te has preguntado a qué distancia quedaba el horizonte? seguramente te habrás pasado y por mucho. Depende de la estatura de cada uno, pero hay que ser muy alto para llegar a ver siquiera 5km.

lunes, 15 de enero de 2024

Conectando los Grandes Lagos al mar con R

Los cinco Grandes Lagos se encuentran por encima del nivel del mar (Superior: 183 m s. n. m., Michigan: 177 m s. n. m., Hurón: 176 m s. n. m., Erie: 174 m s. n. m., Ontario: 74 m s. n. m.). Esto significa que si instalásemos desagües en sus partes más profundas comunicando cada uno de ellos con el océano, se empezarían a vaciar hasta igualarse al nivel del mar.

lunes, 1 de enero de 2024

Reescalado de imágenes con el paquete 'terra' de R

Siempre he echado en falta que R no disponga de funciones estándar para reescalar imágenes (matrices/arrays). Existen varios paquetes con esta funcionalidad, y uno de ellos que empecé a usar hoy es bueno (calidad de implementación de los algoritmos de interpolación habituales con profusión de opciones de promediado), bonito (intuitivo y fácil de usar) y barato (aceptablemente rápido).