viernes, 25 de noviembre de 2022

Atrapar un Segundo (III): El segundo más molesto

 

Comparativa de los sistemas de posicionamiento.
Comparativa de los principales sistemas de posicionamiento (Fuente: GPS for Land Surveyors, CRC Press)

Lee aquí los otros artículos de la serie Atrapar un Segundo.


En el anterior artículo de esta serie, nos encontramos con que los responsables de medir el tiempo a nivel internacional se ven obligados a incluir segundos "extra" (intercalares) en ciertos momentos para ajustar sus ultraprecisos relojes a la imperfecta rotación terrestre.

El ciudadano medio ni se da cuenta de que le han regalado un segundo en un año. Sin embargo, ciertos sistemas informáticos tienen que ser vigilados durante esas jornadas para que no se produzcan errores indeseados. Ya se han dado en el pasado varios problemas de este tipo y cada vez hay más voces pidiendo que se elimine esta práctica. Tengamos en cuenta que desde los años 70 más de la mitad de los años han tenido su segundo añadido, y el número de sistemas vulnerables cada vez es mayor.

Entre las soluciones adoptadas para evitar los segundos intercalares, está la que aplica Google en sus sistemas, que consiste en repartir ese segundo en pequeñas porciones (milisegundos) a lo largo de un periodo más o menos largo. Otra solución sería la opuesta, es decir, acumular retraso y luego añadir toda una hora cada 600 años aproximadamente. 

Cualquier apaño, en todo caso, solo funcionará a escalas de unos pocos cientos de años, dado que la constante ralentización de la rotación de la Tierra nos llevaría dentro de 4000 años a tener que introducir ¡dos segundos extra cada mes! para mantener el estándar UTC (si con suerte queda alguien para contarlo).

La solución de acumular retraso es la que, aparentemente, es más práctica. Fue propuesta por la Unión Internacional de Telecomunicaciones, pero hasta hace muy poco no ha logrado un consenso entre todos los países. Aunque, ojo, solo podremos decir adiós a los odiosos segundos intercalares hasta 2035.
 

Los sistemas de posicionamiento, los grandes damnificados.


Antes que cualquier otro, el sistema de posicionamiento GPS tomó la drástica decisión. El sistema gestionado por la Fuerza Espacial norteamericana simplemente ignora estos segundos intercalares y ya lleva un buen puñado de segundos de diferencia respecto a UTC. La razón es que fue diseñado sin contar con esos saltos, que provocarían que en un instante los miles de millones de dispositivos GPS del mundo perdieran la medida y pasaran por un proceso de resincronización. Semejante apagón tendría un efecto que no podemos ni imaginar. 

Otros sistemas de posicionamiento (Galileo y GLONASS) sin embargo, han adoptado sus propias soluciones a medida, distintas de GPS y que cuentan en mayor o menor medida con los segundos intercalares, complicando aún más las posibilidades de llegar a acuerdos entre países.

Finalmente, el 18 de noviembre de 2022, se logró el acuerdo entre los países reunidos en la BIPM (Oficina Internacional de Pesos y Medidas) para eliminar los segundos intercalares. El desacuerdo entre sistemas de posicionamiento, al que aludíamos antes, ha sido el principal escollo para que finalmente se haya tenido que dar un plazo tan largo para la adopción de esta medida, hasta 2035.

Pero... si solo es un segundito de nada.


Para comprender la importancia de este acuerdo, tenemos que darnos cuenta que, desde que se inventaron los leap seconds, a mediados del s. XX, los sistemas informáticos han evolucionado enormemente, se han hecho globales, extraordinariamente más rápidos y, por tanto, dependen cada vez más de una sincronización ultraprecisa. Sistemas financieros y bursátiles, telecomunicaciones, redes científicas, sistemas de alerta de desastres, y un largo etcétera requieren cada vez más de un flujo constante en la medida del tiempo.

Efectivamente, tan importante como la medida exacta de los segundos, es que su flujo sea constante. Si tenemos que dar "saltos" en el flujo de segundos (para añadirlos o, aún peor, para sustraerlos), cada sistema tiene que solucionar ese salto individualmente, generando un intervalo caótico de resincronización que no podemos permitirnos. 

Podría ser peor: ¡segundos negativos!


Por si faltara algo más para enredar esta madeja gordiana (si se me permite la expresión), nuestro caprichoso planeta sigue con sus bamboleos, que ahora empiezan a ir en sentido contrario. Muy pronto podrían ser necesarios ¡segundos intercalares negativos!, o sea, suprimir segundos en lugar de añadirlos, como se había estado haciendo hasta ahora. Algo que no se ha hecho nunca y no se sabe muy bien cómo se podrá resolver.

El estándar UTC en peligro.


El retraso en paliar este problemón estaba amenazando la propia permanencia de UTC como estándar internacional. Diferentes países y organizaciones utilizan sus propios estándares de tiempo coordinado (el más prominente, el GPS estadounidense), y esta tendencia era cada vez mayor. Cada vez se veía más cercano el momento en que UTC pasara al olvido, con todas las consecuencias que podría desencadenar una ruptura semejante en el consenso del sistema de pesos y medidas internacional.

Para ponernos en contexto, tuvieron que pasar siglos hasta que todos los países llegaron a convencerse de que era buena idea eso de consensuar los pesos y medidas, que no valía eso de medir el "pie del rey" de turno. Que uno de esos consensos se pierda y la confianza en estos sistemas internacionales se resquebraje es la pesadilla de cualquier técnico o científico.




Elisa Felicitas Arias (foto: UNAHUR)



La argentina Felicitas Arias, exdirectora del Departamento de Tiempo de la Oficina Internacional de Pesos y Medidas, ha sido una de las figuras principales para la abolición de los segundos intercalares. En sus propias palabras: "Hay un problema que tenemos que parar, que es la proliferación de pseudoescalas de tiempo, que no son escalas en el sentido metrológico del término".

La política entra en escena


Es cierto que las razones técnicas han sido la principal razón que ha forzado, por fin, el acuerdo, y ha sentenciado a los molestos segundos intercalares para desaparecer dentro de poco más de una década. No olvidemos, sin embargo, que el problema amenazaba también con saltar a la arena política.

La ITU (Unión Internacional de Telecomunicaciones), dependiente de Naciones Unidas, ya estaba empezando a recomendar el uso de GPS como escala de tiempo, lo que hubiera dado al gobierno estadounidense un control sin precedentes sobre algo tan delicado. Ni que decir tiene que esto ha puesto muy nerviosa a Rusia y su GLONASS, precisamente en unos momentos de altísima tensión por la invasión de Ucrania.

Curiosamente, en la misma postura de Rusia, aunque por razones distintas, se ha posicionado el representante del Vaticano, el reverendo Pavel Gabor. El astrofísico y sacerdote, vicedirector del observatorio astronómico de este pequeño pero influyente estado, defendió que no se pierda la "antigua y sagrada" conexión con la rotación terrestre, las estrellas y el más allá, la cual nos ayuda a ver el tiempo como un "constante recordatorio de nuestra mortalidad".

Rev. Pavel Gabor (Foto: Observatorio Vaticano)

Aunque ahora su participación sea anecdótica, no olvidemos que históricamente la Iglesia ha sido uno de los motores en la medición del tiempo, y que fue un papa el que promovió en 1582 el calendario que hoy día usamos universalmente.

Por suerte, se ha podido aplacar a Rusia y demás reticentes incorporando un largo periodo de transición hasta 2035. Lo que pasará a medida que el desajuste entre el horario oficial y la rotación terrestre se vaya haciendo más y más grande, es cuestión que tendrán que dilucidar los científicos del futuro. Quizá se añada una hora dentro de 600 años, pero... eso será otra historia muy, muy lejana.

Lee aquí los otros artículos de la serie Atrapar un Segundo.

Atrapar un Segundo (I): Cómo calculamos el tiempo

Lee aquí los otros artículos de la serie Atrapar un Segundo.
Primer reloj de pulsera de cuarzo.
Deutsches Uhrenmuseum, CC BY 3.0 de, Link
Mi hijo menor y yo solemos levantarnos a la misma hora: yo para trabajar y él para ir al instituto. Cada uno de nosotros tiene una alarma en el móvil para despertarse (aunque yo por asegurarme, y un poco por nostalgia, también tengo mi viejo despertador Casio).

Yo sé que el despertador, por más que me afanase en ajustarlo, jamás va a sonar a la hora exacta, pues su tecnología no puede mantener esa precisión. Sin embargo, los dos smartphones lanzan sus alarmas exactamente a mismo tiempo, en gloriosa sincronía, de manera que es casi imposible saber cuál de los dos ha sido el primero.

Y lo más sorprendente es que ¡ninguno de nosotros dos ha puesto nunca en hora su móvil! Se sincronizan ellos solitos con varias decenas de los mejores y más sofisticados relojes jamás creados, que viajan por el espacio. Con todos ellos a la vez y con ninguno en concreto.

Ese momento cotidiano me produce una cierta satisfacción interior. Es un hito tecnológico de primer orden; el triunfo de una civilización que ha conseguido atrapar las arenas del tiempo entre los dedos.

En esta serie de artículos voy a intentar explicar todo lo que hay detrás de este hecho cotidiano. Lo que ocurre desde que un extraño aparato ha contado miles de millones de oscilaciones de partículas diminutas, hasta que mi celular ajusta su reloj interno de acuerdo con esa medición.

Un camino de siglos

Desde los tiempos más antiguos, calcular el tiempo fue un problema irresoluble. Al principio, en las sociedades nómadas, eso no era inconveniente; bastaba con tener una idea aproximada de cuándo salía el Sol y cuándo se ponía. Luego, con la invención de la agricultura, fue necesario contar además las fases de la Luna para saber cuándo sembrar y cuándo cosechar. 

Los antiguos romanos, tan avanzados que estaban en muchos aspectos de la ingeniería, apenas eran capaces de contar las horas "a ojo de buen cubero" a partir de la salida del Sol. Se ayudaban con rudimentarios relojes solares. Cuando hacía falta mayor precisión, por ejemplo, para medir el tiempo que podía tomarse un orador en su discurso -asunto crucial-, recurrían a clepsidras (relojes de agua).

Reloj solar (M.A.N. Madrid) 01.jpg
Reloj de Sol de Baelo Claudia (en la actual provincia de Cádiz). 


"Al obelisco que está en el Campo de Marte, el divino Augusto le atribuyó la admirable función de medir la sombra proyectada por el Sol, determinando así la duración de los días y las noches: hizo colocar placas que estaban en proporción respecto a la altura del obelisco, de manera que en la hora sexta del solsticio de invierno la sombra fuese tan larga como las placas, y disminuyese lentamente día a día para volver a crecer siguiendo las marcas de bronce insertadas en las piedras". Plinio el Viejo (siglo I)
Avanzando más en el tiempo, tampoco encontramos grandes avances hasta el siglo XVII. El propio Galileo, que supo enunciar el principio del péndulo, no llegó a aplicarlo en la práctica para hacer relojes. Se dice que, cuando realizaba sus famosos experimentos con planos inclinados, contrataba a un músico para que fuera marcando el compás y así tener una cierta medida del tiempo.


Clock-pendulum.gif
Mecanismo de escape en el que se basan los relojes de péndulo.
Dominio público, Enlace


Las grandes exploraciones marinas y la necesidad de calcular la longitud, hicieron que los relojes mecánicos llegaran al límite de su capacidad. Por muy sofisticados mecanismos que se inventaran, la mecánica era una barrera tecnológica que había que superar.

Hubo que esperar hasta el siglo XX para que se diera un salto cualitativo en la medición del tiempo. La idea era usar otro tipo de oscilaciones no mecánicas, mucho más rápidas y precisas. En 1921, Cady lograba el primer oscilador de cuarzo. Desde entonces, se convirtió en la base de casi todos los relojes que tenemos en nuestras casas.


Inside QuartzCrystal-Tuningfork.jpg
Oscilador de cuarzo que realiza 32768 oscilaciones por segundo 
(una potencia de 2, muy conveniente para los circuitos electrónicos).
Public Domain, Link



Casi al mismo tiempo que se desarrollaba el reloj de cuarzo, otras oscilaciones aún más precisas atraían la atención de los físicos. Se trata de ciertas partículas atómicas que cambian su estado cuántico a una regularidad asombrosa. El primer reloj atómico de uso práctico que sobrepasaba ya la precisión del cuarzo se presentó en 1955 y estaba basado en las oscilaciones del Cesio-133.

Pero no nos vengamos muy arriba. Esto no está ganado ni mucho menos. En este momento de aparente triunfo es cuando nos damos cuenta que nos hemos pasado de frenada.

 La Tierra atrasa

Antes de los relojes atómicos, el segundo se definía como una parte de la duración del año solar medio. Al igual que para los antiguos egipcios, el reloj de referencia era la Tierra en su giro alrededor del Sol.

En el siglo XIX, el astrónomo estadounidense Simon Newcomb demostró que el número de días varía en una pequeña fracción de un año para otro. La Tierra atrasa en una fracción del orden de 10-9 (variación relativa para un periodo de tiempo) en su traslación alrededor del Sol y, para colmo, también reduce su velocidad de rotación en una fracción del orden de 10-10.

Ya en la década de los 60 del siglo XX, era evidente que la definición del segundo como la 1/86400 parte del día solar no se sostenía. En un mundo donde se sucedían los descubrimientos en física, astronomía y en otros campos, era necesario cambiar el estándar. La primera medida fue congelar el segundo. Se tomó como referencia el tiempo medio del año 1900 y así nació el Tiempo de Efemérides.

Este estándar estuvo muy pocos años en vigor hasta que los relojes atómicos tomaron el relevo. Finalmente, en 1967 se hizo la definición que, de momento, ha llegado hasta hoy:

Un segundo es la duración de 9 192 631 770 oscilaciones de la radiación emitida en la transición entre los dos niveles hiperfinos del estado fundamental del isótopo 133 del átomo de cesio a una temperatura de cero K.
Esta definición sigue estando ligada, al menos en su origen, al tiempo solar, más concretamente al que se midió en algún momento determinado y que se tomó como referencia.

El analema es la curva que va formando
el Sol en el cielo durante un año y
que sirve para medir el tiempo.
(Foto: Anthony Ayiomamitis www.perseus.gr) 
Midiendo la posición del Sol en intervalos de 24 horas con gran precisión se obtiene lo que llamamos UT0 o Tiempo Solar Medio. Introduciendo en los cálculos los movimientos de cabeceo del eje de rotación de la Tierra y otras irregularidades (como las mareas), obtenemos el denominado UT1 o Tiempo Universal versión 1. Con más correcciones basadas en variaciones semi-anuales (¡introduciendo incluso las variaciones de vegetación!) finalmente se calcula la más paranoica medida posible del tiempo basada en el planeta, el llamado UT2 o Tiempo Universal versión 2. No va más, señores.

Una vez realizadas todas esas medidas y correcciones ultraprecisas, comprobamos con decepción que apenas podemos hacer predicciones con un margen de milisegundos. Los relojes atómicos, sin embargo, están en el orden de los nanosegundos (una escala un millón de veces más pequeña).

En los años 70 ya teníamos relojes mejores que la propia Tierra. El problema es que, si contamos el tiempo únicamente con esa extraordinaria precisión, al cabo de los años nos encontraríamos que las estaciones y otros eventos terrestres no se darían en el momento esperado. Para hacernos una idea de la magnitud del problema, decir que entre 1900 y 1996 se ha medido un retraso de unos 62 segundos respecto al movimiento terrestre.

Pero tampoco podemos prescindir de la precisión en esta era tecnológica. Cada vez hay más aplicaciones en todos los ámbitos que requieren una medida de referencia del tiempo suficientemente precisa.

Einstein la "fastidia" aún más

Por si no fuera esto suficiente lío, la física actual, según la Relatividad, nos dice que no hay un tiempo absoluto derivado de un único fenómeno natural. ¡Cada observador tiene su propio tiempo!

Los relojes en distintos lugares del planeta (o en el espacio) se ven afectados principalmente por dos efectos relativistas:

  • Por un lado, la velocidad relativa hace que el tiempo fluya más lento. Las ubicaciones en la superficie de la Tierra rotan más rápido cuanto más cercanas están al ecuador, y los relojes a bordo de satélites aún lo hacen a mayor velocidad.
  • Por el otro, la altura respecto al centro de la Tierra, el grosor variable de la corteza y la cercanía de grandes cordilleras hacen variar el campo gravitatorio y también la medida del tiempo, que se ralentiza ante los campos gravitatorios.
Estas variaciones, por supuesto, son imperceptibles para nosotros, pero no pasan desapercibidas para los precisos relojes atómicos. Precisamente, las mediciones de estos relojes son una de las evidencias más rotundas de que Einstein dio en el clavo. Y hay que tener en cuenta que no hay un tiempo mejor que otro. La limitación está en las propias leyes de la física. Un reloj en Sidney y otro en Río de Janeiro jamás de los jamases van a dar la misma medida del tiempo. ¡Nunca! ¡Su existencia física no está en el mismo tiempo! 

Como vemos, la Relatividad nos enseña que tomar un tiempo de referencia siempre es algo arbitrario. De manera bastante injusta, me he permitido culpar a Einstein, y espero que sepan perdonarme la licencia. Por supuesto, lo que hizo fue mostrarnos de manera genial cómo funciona la Naturaleza.

La historia de cómo logramos definir un tiempo de referencia suficientemente bueno, es materia para el resto de capítulos de la serie.



Referencias:


Atrapar un Segundo (II): Seamos precisos

Los actuales relojes atómicos pueden
variar un segundo en 14 mil millones
de años
(Foto Burrus / NIST)
Lee aquí los otros artículos de la serie Atrapar un Segundo.

Aunque en el lenguaje común los usamos como sinónimos, los conceptos de precisión y exactitud no son la misma cosa. 

La precisión se define en función de la reproducibilidad de una medida, es decir, la capacidad que tiene un instrumento de repetir la misma medida en las mismas condiciones. 

Por su parte, la exactitud nos dice cómo de cerca está esa medida de la medida real. Pero, al referirnos al tiempo, nuestro querido Alberto vino a decirnos que ¡no existe esa medida real! No hay un tiempo absoluto con el que compararse. Por tanto, lo primero que tendremos que hacer es tomar una referencia arbitraria. A esa referencia la llamamos tiempo estándar o estándar de tiempo.

Así pues, aunque un reloj pudiera mantener la máxima precisión, su lectura nunca coincidiría con el estándar, excepto en el instante en el que momentáneamente pasara por la medida precisa, la cual al fin y al cabo, solo lo sería por convención. Hay que ser muy optimista para no venirse abajo con semejante perspectiva.

El estándar actual en todo el mundo es el UTC. Más adelante veremos cómo se calcula esa referencia, pero antes tenemos que saber algo más sobre relojes y la forma de medir su calidad.

Dos máquinas en una

Un reloj no es una máquina en sí, sino dos máquinas acopladas:
  • Por un lado, tenemos una fuente de regularidad, que suele ser "algo" que oscila.
  • Por otro, un contador o acumulador que sume esas oscilaciones para saber cuánto tiempo ha pasado desde un instante de referencia (la "hora cero").
En un reloj mecánico, el oscilador es un péndulo o un muelle en espiral; en un reloj atómico, las transiciones entre estados de un átomo. Ejemplos de fuentes de regularidad no oscilantes serían las del reloj de arena o de agua, donde ese papel lo hace la viscosidad del fluido.

Crab Lucky video2.gif
Los púlsares son objetos celestes que también se han usado como osciladores para calcular el paso del tiempo con gran precisión. CC BY-SA 3.0Link

Por su parte, el acumulador puede ser un depósito de arena, un sistema de ruedas dentadas o un circuito electrónico. Es curioso que, a pesar de que intuitivamente le damos mucha importancia al oscilador, el acumulador suele ser la parte más voluminosa y también la que da mas quebraderos de cabeza a sus diseñadores. 

John Harrison Uhrmacher.jpg
El gran relojero John Harrison logró
cotas de precisión increíbles para el siglo XVIII
.
 Dominio público, 
Enlace
Eso es así porque es muy difícil aislar todo este mecanismo de los cambios en las condiciones ambientales. En el caso de los cronómetros marinos del mítico Harrison, esas condiciones incluían los movimientos del barco y las tormentas. Que el artesano inglés consiguiera tal grado de precisión en esas condiciones es una auténtica proeza. 

Aunque los modernos relojes atómicos no están, afortunadamente, a bordo de ningún barco, esta nave llamada Tierra también tiene sus oscilaciones e irregularidades. Incluso las variaciones del campo gravitatorio en los distintos lugares del planeta afectan a la medición del tiempo, teniendo en cuenta las extraordinarias precisiones que pretendemos obtener.

Midiendo relojes

Hay cuatro medidas que describen la calidad de un reloj:

Precisión en la frecuencia

A grandes rasgos, mide cuánto se distancia el segundo medido por el reloj del segundo teórico. Se suele calcular como la relación entre la variación en la medida y el tiempo transcurrido. A esto se le llama desviación normalizada de la frecuencia y se la representa por el símbolo y(t).

Por ejemplo, los cronómetros marinos de Harrison lograron reducir la desviación a tres segundos por día, lo cual nos da la siguiente medida normalizada:

El resultado es un número relativo que no depende de las unidades que hayamos usado para calcularlo. Cuanto menor sea el resultado, más preciso es el reloj. Los relojes atómicos actuales se mueven en desviaciones por debajo del orden de 10-14.

Estabilidad en la frecuencia

Hmaser.svg
Esquema de un máser de hidrógeno,
un oscilador que alcanza una gran estabilidad,
pero no mucha precisión.

CC BY-SA 3.0Link
Si la precisión nos habla de cuánto se desvía la medida en un periodo de tiempo, la estabilidad nos dice cómo cambia esa medida de un periodo de tiempo al siguiente.

Aunque pudiera parecerlo, no son medidas relacionadas. Un reloj puede tener un error significativo, pero mantenerlo estable a lo largo del tiempo. Por ejemplo, si un reloj varía un segundo por día, un día tras otro siempre igual, diríamos que tiene una precisión muy mala, pero una gran estabilidad.

Suele ocurrir que cada tipo de reloj tiene su punto fuerte en precisión o en estabilidad, pero no en ambas a la vez. Además la estabilidad suele ser muy sensible a los cambios ambientales, por lo que mantenerla en largos periodos de tiempo suele ser tarea difícil.

Precisión en el tiempo

La precisión en el tiempo mide cuánto se ajusta un reloj al sistema de referencia elegido. 

Puede parecer que estamos hablando de la misma precisión en la frecuencia que vimos antes, pero no es así. En este caso no se trata de una referencia ideal, sino de la integración del reloj en un sistema formado por varios relojes localizados en distintos lugares.

Hay ciertos sistemas en los que este tipo de precisión lo es todo, donde lo realmente importante es el tiempo que mide el sistema y no una referencia ideal externa. El ejemplo extremo de este caso es el sistema GPS. La precisión de la localización que nos da nuestro smartphone depende de lo bien integrados que estén todos los relojes a bordo de una constelación de satélites.

Navstar.jpg
Satélite NAVSTAR de la constelación GPS.
Es un sistema tan cerrado, que ya en 2019 la hora del
sistema GPS difería en aprox. 18 segundos frente al estándar UTC.

Dominio público, 
Enlace

Estabilidad en el tiempo

Al igual que la estabilidad en la frecuencia, la estabilidad en el tiempo es independiente de la precisión. 

En este caso se trata de una medida crucial, puesto que cualquier reloj cuya estabilidad pueda predecirse puede calibrarse respecto a un sistema y, a partir de ese momento, con las correcciones adecuadas, servir de referencia para el propio sistema.

De esta manera, se van creando sistemas primarios y secundarios que dan servicio a todos los usuarios de los sistemas sin tener que acceder directamente a todos los relojes. Esta técnica es la base del estándar UTC.

Sede de la hora en el Real Observatorio de la Armada.
Esta centenaria institución colabora en el cálculo del estándar de tiempo UTC.
(Foto del autor)


Pero, ¿cuántos relojes necesitamos?

Para los estándares de medida, la costumbre histórica ha sido elegir una única referencia universal, como la famosa barra de platino que definía el metro. Sin embargo, imaginemos un sistema formado por un único reloj. En principio, no tendríamos manera de saber si se está desviando, al no tener otra referencia. Sería cuestión de fe.

Se impone, por tanto, añadir otro reloj. Pero, ¡cáspita!, con dos relojes seguimos sin tener idea de cuál de los dos está dando la hora más ajustada, a no ser que, de nuevo, depositemos toda nuestra confianza en uno de ellos arbitrariamente.

Pongamos un tercer reloj. Ahora, si uno de ellos se desvía de los otros dos, podríamos suponer con cierta seguridad que está funcionando peor. Entonces, habría que quitarlo del sistema y ¡oh, no! hemos vuelto a tener dos relojes y el sistema se va al garete.

Así que añadimos un cuarto, un quinto, y así sucesivamente sin que nunca estemos del todo seguros de cuál de ellos es el que está siendo más preciso. Lo importante es la estabilidad del sistema. Por suerte, hoy contamos con cientos de relojes en el sistema TAI, de tal manera que podemos confiar con altísima seguridad en que podemos detectar y retirar automáticamente cada reloj que falle de manera puntual. Además, según lo ajustados que se mantiene cada reloj a la media del sistema, podemos asignarle a cada uno un coeficiente de ponderación.

La idea en la ponderación es la siguiente: si la variación de un reloj concreto tiene una media, por ejemplo, de -20 nanosegundos por día, según las mediciones del último mes, es bastante probable que mantenga una variación similar el mes siguiente, por lo que se aplica una corrección y ese dato corregido puede servir a su vez como modelo de comparación con otros relojes. De esa manera se teje una complicada red de dependencias que tarda todo un mes en resolverse.

El Tiempo Atómico (TAI) se ajusta mensualmente mediante esa técnica reuniendo datos de unos 250 relojes. Como no podemos esperar un mes para saber la hora, en 50 centros en todo el mundo se generan estimaciones en tiempo real. Estas estimaciones se denominan UTC(k), donde k son unas siglas indicando el centro de origen. Por ejemplo, UTC(NIST) es el que se calcula en Boulder (Colorado) y UTC(ROA) el de nuestro histórico Real Observatorio de la Armada en San Fernando (Cádiz). 


1861-03-17, El Museo Universal, Vista del Observatorio de San Fernando, Ruiz.jpg
El observatorio de San Fernando en un grabado del siglo XIX. 
Cerca de la Torre Alta se encuentra hoy el moderno Edificio de la Hora.
Biblioteca Virtual de Prensa Histórica (CC BY 4.0), Dominio público, Enlace

Tiempo Universal Coordinado (UTC)

Para saber por qué existe el UTC, empezaremos por conocer a tres de sus parientes: GMT, TAI y UT1.

GMT

Durante siglos, nadie se preocupó por la "estabilidad del sistema de tiempo". El sistema de referencia era el movimiento del planeta, y este era evidentemente inmutable, perfecto y absoluto. Aún así, no había un acuerdo mundial respecto a la hora de referencia, simplemente porque con la tecnología de la época, los horarios locales bastaban y sobraban.

Más tarde, desde el siglo XIX hasta bien entrado el XX, el tiempo medido astronómicamente (según el movimiento de la Tierra) en el Real Observatorio de Greenwich, cerca de Londres, se fue adoptando progresivamente como referencia, primero nacional y después universal.

De los cómputos tomados a mediodía o medianoche (según épocas) en dicho observatorio, resultaba el Tiempo Medio de Greenwich (GMT). En el ámbito militar y aeronáutico también era conocido como Hora Zulú (por el apelativo de la letra Z en el alfabeto radiofónico).

Con la aparición de los relojes atómicos a mediado del siglo XX, surgió el problema, del que hablamos en el anterior artículo, de que la medida atómica es más precisa que la astronómica, y por tanto el uso de GMT como estándar debía cambiar. El cambio se fue gestando a partir de 1960 y adoptado definitivamente en 1967. 

Desde entonces, las siglas GMT han pasado a designar una zona horaria, no un estándar de tiempo.

2005-06-27 - United Kingdom - England - London - Greenwich.jpg
Vista desde el Támesis del Colegio Real Naval y el Observatorio de Greenwich.
CC BY 3.0Enlace

TAI

El estándar TAI (Tiempo Atómico Internacional) es el resultado del cómputo de más de 400 relojes atómicos alrededor del mundo. Como tal, es un sistema cerrado y no se ajusta con ninguna referencia externa. De él depende la medida oficial del segundo y es el principal componente, aunque no el único, de UTC.

UT1

El Tiempo Universal (UT1) es el heredero del antiguo GMT. Se encarga de calcular la rotación media de la Tierra mediante observaciones astronómicas. De él y sus hermanos UT0 y UT2 hablamos en el anterior artículo de esta serie.

Reuniéndolo todo: UTC

De la combinación de la medida de osciladores atómicos (TAI) con la medida de un oscilador astronómico -la Tierra- (UT1), junto con otros componentes menores, surge el deseado estándar oficial universal UTC (Tiempo Coordinado Universal).

Como curiosidad, decir que las siglas UTC surgen del desacuerdo entre las siglas inglesas (CUT) y las francesas (TUC). La decisión salomónica fue poner unas siglas intermedias.

En nuestra vida diaria nos es imposible ignorar el movimiento de la Tierra, a pesar de que los relojes son mucho más precisos. Esto es así porque seguimos dependiendo de la salida y puesta del Sol, las estaciones, solsticios y otros eventos astronómicos para ordenar nuestra vida y todas nuestras actividades. Debido a ello, la medida de UTC se va ajustando periódicamente mediante los segundos intercalares (leap seconds, en inglés).

Estos son los segundos que se añaden o quitan al final o a la mitad de algunos años con el objetivo de que el fluir de los días no se desvíe demasiado del estándar UTC, lo que afectaría a nuestro ritmo de vida diario. Desde los años 70, se ha recurrido a añadir un segundo en ciertos años. Nunca se ha dado el caso de tener que quitarlos, aunque podría ocurrir. En una ocasión, en 1972, se añadieron dos segundos en el mismo año, uno el 30 de junio y el otro el 31 de diciembre.

¡Eso es! Unos pequeños ajustes cada pocos años y ya tenemos solucionado el problema por los siglos de los siglos... ¿O no?

Eso lo sabremos en el último artículo de esta serie.

domingo, 31 de marzo de 2019

Calendario romano en Javascript


Recientemente he estado leyendo el magnífico libro de Néstor F. Marqués "Un año en la antigua Roma: La vida cotidiana de los romanos a través de su calendario".

El libro hace un repaso completísimo por todas las particularidades de la forma de contar el tiempo que tenían los romanos, cómo fue cambiando a lo largo de los siglos, así como multitud de curiosidades sobre sus fiestas (que eran aún más que las que tenemos hoy en día), fechas destacadas y costumbres varias.

Néstor es conocido por su labor divulgativa en la cuenta de Twitter Antigua Roma al Día, que también os recomiendo encarecidamente. Su otro libro, también promete ser apasionante: "Fake news de la antigua Roma: Engaños, propaganda y mentiras de hace 2000 años".

Kalendas: el calendario en Javascript

Leyendo el libro de Néstor, se me ocurrió hacerme una función Javascript para poder incluir en cualquier página web la fecha actual en notación romana. Y dicho y hecho, aquí lo tenéis. La función kalendas está programada por mí siguiendo las enseñanzas del libro, y se incluye para los numerales de los años la función romanize creada por Steven Levithan.




El código fuente es de libre uso y se puede descargar aquí.

ACTUALIZACIÓN: He corregido el código para que se haga el paso de un año a otro a partir del 21 de abril (día de la fundación de Roma) en lugar del 1 de enero como se hacía en la versión anterior. Gracias a Néstor por el apunte.

lunes, 1 de octubre de 2018

La batalla por las bases de datos

Por @ElPamplina

Edgar F. Codd

La creación del modelo teórico de las bases de datos relacionales, tras una apariencia fría y académica, esconde una apasionante historia que incluye grandes corporaciones, luchas personales, comunismo, caza de brujas y agencias militares y espaciales. Vamos a descubrir al hombre que sentó las bases más sólidas y duraderas de la tecnología de la información, y contaremos la historia de cómo sufrió la incomprensión de la propia empresa para la que desarrolló su trabajo.

Una biografía movidita

El trabajo de un matemático en un centro de cálculo diseñando bases de datos nos parece algo rutinario y reposado, pero la vida de Codd no fue precisamente aburrida.

Su nombre completo era Edgar Frank Codd, aunque era conocido por sus allegados como Ted Codd. Nació el 18 de agosto de 1923 en Portland Bill, un remoto pueblo de Dorset, Inglaterra. Su padre era curtidor y su madre profesora, y era el menor de siete hermanos. A pesar de ese origen tan humilde, y gracias a una beca, estudió matemáticas y química en Oxford.

Podría haber evitado participar en la Segunda Guerra Mundial por ser estudiante, pero quiso alistarse en las Fuerzas Aéreas, llegando al grado de Teniente.
Short Sunderland Mk V ExCC.jpg
Bombardero de patrulla Short S.25 Sunderland, como el que pilotó Codd. (Public Domain, Link)

Una vez terminado su servicio como piloto, a los 25 años se marchó a Estados Unidos, donde IBM le contrató como programador matemático. Para él debió ser toda una experiencia llegar a Manhattan y encontrarse que iba a trabajar con un prototipo de computador que ocupaba dos pisos completos.

En 1953, cuando llevaba varios años labrándose un prestigio en una gran empresa como IBM, todo parecía ir sobre ruedas para Ted. Sin embargo, al igual que hiciera cuando abandonó la Universidad para luchar en la guerra, no dudó en dejarse llevar por sus ideas políticas cuando en EEUU comenzó la oscura etapa del Macartismo. No he encontrado referencias de que Codd fuese militante comunista, o de que estuviese siendo perseguido en ningún modo, pero su odio hacia esta ola de intolerancia le llevó a abandonar el país y trasladarse a Canadá.

Anticommunist Literature 1950s.png
Panfleto llamando a la población a luchar contra el comunismo. (Public Domain, Link)

Cuatro años después, cuando el apoyo al Macartismo decayó, Codd decide volver e incluso nacionalizarse estadounidense. De nuevo obtuvo trabajo en IBM y se dedicó a terminar su formación académica. Completó el doctorado en la Universidad de Michigan en Ann Arbor en 1965.

El hecho de tener una formación brillante y haber dedicado media vida a la empresa no parece que impresionara mucho a sus supervisores, dado que en 1967 realizaron una evaluación negativa de su trabajo y fue derivado a un laboratorio de menor nivel en San José (California).

Curiosamente, ese hecho aparentemente negativo supuso un golpe de suerte para él, dado que fue en San José donde tomó contacto con el incipiente mundo de las bases de datos y, a la larga, escribiría una de las páginas de oro de la computación.

Así estaban las cosas

A finales de los 60, los modelos de datos jerárquicos y en red (con Codasyl a la cabeza) lideraban el mercado, cada vez más demandado y competitivo, del tratamiento automatizado de la información. Era algo evidente que en el futuro cercano, como podemos comprobar hoy día, quien tuviera el control de la información tendría el poder. Era una batalla entre grandes corporaciones para tomar las posiciones de cabeza, ahora que la era de las tarjetas perforadas iba quedando atrás a pasos agigantados.

El gigante IBM había apostado fuertemente por el modelo jerárquico. La poderosa compañía creada 60 años atrás por el inventor de las tarjetas perforadas quería afianzarse como líder indiscutible y no iba a escatimar esfuerzos. En 1968 presenta su sistema IMS, derivado de uno anterior que se había creado nada menos que para el programa Apolo de la NASA.

IMS se basa en un modelo jerárquico, es decir, su estructura es de árbol, compuesto de nodos, que representan las entidades (por ejemplo, un cliente), enlazadas por arcos, que representan asociaciones (por ejemplo, un cliente con sus facturas). A diferencia de los sistemas en red, donde el grafo es más flexible, en estos sistemas no es posible acceder a la información como no sea a través de las asociaciones padre-hijo. Esta característica, en aquellos tiempos en los que el hardware era muy limitado, se consideraba una ventaja para dar un mayor rendimiento a las transacciones (inserciones, modificaciones y borrados) en la base de datos.

Por supuesto, el mantenimiento de toda esta estructura en árbol se lleva a base de punteros, es decir, cada nodo contiene información de direccionamiento que permite localizar a sus hijos, a los hijos de los hijos, y así sucesivamente. Cualquiera que haya programado alguna vez se dará cuenta de lo complicado y propenso a errores que podría llegar a ser cualquier procesamiento sobre semejante estructura.

IMS tenía muchas ventajas que lo hacían robusto y eficiente, de hecho siguió evolucionando y aún hoy sigue utilizándose.

Pero, como tantas veces ha ocurrido, alguien con otra visión tenía que venir para hacer ver que lo que todo el mundo veía como ventajas, en su justa medida, eran más bien inconvenientes. Y, muy a su pesar, ese revolucionario le iba a surgir a IBM de dentro de sus propias filas.

Surge la idea

Ted Codd no estaba muy satisfecho con el modelo jerárquico de IBM y empezó a redactar informes describiendo nuevas formas de organizar los datos. Esos trabajos eran internos y, paradójicamente, pudieron ver la luz en un ámbito científico y abierto precisamente porque dentro de la empresa a nadie, literalmente nadie, le importaba lo más mínimo. 

Ni siquiera el propio Codd estaba convencido de que aquello fuera más allá de una curiosidad teórica cuando, en 1970, publicó sus investigaciones en la prestigiosa revista Communications of the ACM. El título del artículo fue "A relational model of data for large shared data banks" (Un modelo de datos relacional para grandes bancos de datos compartidos) (PDF).

Su idea más brillante, a mi modo de ver, fue olvidarse de la ubicación física de los datos, de los malditos punteros y direccionamientos, de las series de registros secuenciales, etc. Codd, en su lugar, definió un modelo matemático abstracto, en el cual los datos se organizaban en entidades llamadas relaciones, definidas como conjuntos de tuplas.
  • Una relación es como un fichero o un nodo jerárquico, pero de la que no necesitas conocer su ubicación; te basta con llamarla por su nombre. ¡Simple!
  • Una tupla es como un registro de un fichero, pero el cual es localizable por su contenido, no por su dirección. Ciertos datos contenidos en la propia la tupla nos sirven para identificarla y distinguirla de las demás, es la clave principal (la clave para un producto podría ser, por ejemplo, su modelo y número de serie).
Al no tener direcciones, las tuplas no tienen ubicaciones específicas dentro de la relación, ni tampoco hay un orden establecido. ¡Efectivamente! Las relaciones son conjuntos de elementos en el sentido abstracto y matemático del término. Con esta radical simplificación, Codd liberaba al usuario del sistema relacional del corsé de la estructura de almacenamiento, sólo debía preocuparse por el qué y no por el cómo. En sus propias palabras: "Los usuarios de los futuros bancos de datos deberán ser protegidos de tener que saber cómo están organizados los datos en la máquina (la representación interna)".

De la incomprensión a la indiferencia

Como ya hemos dicho, IBM había apostado fuertemente y estaba haciendo enormes inversiones en su sistema jerárquico IMS. Las ideas teóricas e imaginativas de un empleado no muy bien considerado de un laboratorio de segundo nivel no iban a demoler todo eso de la noche a la mañana. Es más, podemos decir que, en la compañía que lo vio nacer, el brillante modelo relacional encontró, no ya oposición, sino más bien incomprensión e indiferencia.

Codd siguió a lo suyo, y un año después ya tenía listo otro de los pilares de su teoría: la normalización. En este caso, el artículo no se publicó abiertamente, sino que apareció en un principio como informe técnico interno de la empresa. En él se definían las tres reglas (formas normales) que debían cumplir las bases de datos relacionales. Con ellas se conseguía evitar la redundancia de los datos y garantizar su integridad

Para explicar estos conceptos eminentemente matemáticos con un lenguaje sencillo, lo mejor que se me ocurre es poner un par de ejemplos de problemas que podemos llegar a tener si no normalizamos nuestra base de datos:
  • Si rellenamos la dirección de un cliente cada vez que le emitimos una factura, lo más probable es que terminemos con varios domicilios distintos, sin saber cuál es el correcto, y que sea un dolor de cabeza cada vez que haya que actualizar sus datos de contacto. La redundancia es mala, ¡caca!
  • Los movimientos de una cuenta bancaria deberían estar indisolublemente ligados a dicha cuenta. Debería ser imposible eliminar una cuenta del sistema sin eliminar sus movimientos, y no debería haber ningún movimiento sin cuenta asociada. La integridad y la dependencia funcional entre datos no son solo condicionantes teóricos; surgen de la vida real, del modelo vivo del que el sistema de información pretende ser imagen. Sin ellos la base de datos se terminará llenando de basura y perdiendo valor.
En los años siguientes, Codd siguió publicando sus conclusiones ante la indiferencia de su empleador.  Lo hizo tanto internamente como en publicaciones en la revista de la ACM. Sin embargo, algo ocurrió en 1978.

Y por fin cambiaron las cosas

En una reunión técnica rutinaria, el modelo relacional de Codd llegó a oídos del presidente de la compañía, Frank Cary, quien empezó a interesarse en aquello. 

Unos años más tarde, IBM lanzaba su primer producto relacional, el SQL/DS, y un poco después, DB2. Habían perdido un tiempo precioso, puesto que las publicaciones de Codd habían calado en el ámbito académico y la Universidad de California en Berkeley, con financiación en parte de las Fuerzas Armadas, se había adelantado sacando al mercado Ingres, el primer sistema relacional. También se le adelantó Oracle, al introducir por primera vez en 1979 el lenguaje SQL, derivado del cálculo de predicados que había postulado Codd.

Doce reglas para dominarlos a todos

En 1985, crecido por el espectacular éxito de su modelo, Codd publicó en Computerworld otro artículo seminal: "Is Your DBMS Really Relational?" (¿Es tu sistema de base de datos realmente relacional?).

Como todo producto de éxito, los fabricantes se habían lanzado a llamar "relacional" a cualquier cosa que produjeran. El objetivo del nuevo artículo de Codd fue poner un poco de orden, dictando 12 reglas para validar en qué medida un modelo de datos se ajustaba a sus principios relacionales. Bueno, en realidad eran 13, pero Codd las numeró desde el cero, quizá por superstición, aunque nunca he encontrado un referencia a este detalle.

No voy a enumerar las reglas, porque sería farragoso y ya hay numerosas fuentes en Internet que lo hacen. Sólo voy a citar a la más enigmática y autorreferencial, la regla cero, que nos hace ver que Ted Codd también era amigo de Perogrullo:
"Cualquier sistema que se haga llamar relacional debe ser capaz de gestionar sus bases de datos enteramente mediante sus capacidades relacionales".
¡Palabra de Codd!

Referencias:





miércoles, 30 de agosto de 2017

Generación de mapas

Con ciertas técnicas se pueden generar mapas tan maravillosos como este. (Amit Patel)
La generación de mapas de forma automática es una tarea realmente fascinante, donde se pueden desarrollar y aplicar muy diversas técnicas matemáticas y de computación (análisis de grafos, reconocimiento de patrones, fractales, etc.) Es uno de esos casos en los que muy diversas materias se reúnen en la resolución de un problema tan concreto y aparentemente lúdico.

Lo primero que se nos viene a la cabeza preguntar es: ¿quién necesita mapas imaginarios? Son clásicos los mapas de ficción que aparecen (generalmente como hoja desplegable) en los libros de género fantástico, con los cuales el autor nos presenta el imaginario mundo en el que se desarrolla la historia. Lo normal ha sido encargar a un dibujante que plasme las calenturientas ideas del autor en un mapa más o menos detallado. De lo primero que se dan cuenta quienes intentan semejante cosa es lo difícil que resulta crear desde cero un mapa mínimamente creíble.

La Tierra Media de J.R.R. Tolkien es un ejemplo "de libro" de un mapa inverosímil.

Los juegos de rol y de estrategia son otros clientes habituales de los mapas imaginarios. Pero ha sido la llegada de los juegos por ordenador la que ha disparado la necesidad de generar infinitos mapas automáticamente, usando la potencia computacional y todo un arsenal de técnicas relacionadas con la Inteligencia Artificial.

Juegos como Sid Meier's Civilization usan intensivamente los mapas generados automáticamente.
Aparte de todos estos usos, como tantos problemas interesantes, se puede abordar la generación de mapas por el simple placer intelectual y, por qué no negarlo, convertirla en una afición bastante friki. Esto es lo que hace el maravilloso bot de Twitter (@unchartedatlas), creado por Martin O'Leary, que me ha inspirado esta serie de artículos.



Este fascinante programa genera cada hora automáticamente un nuevo mapa aleatorio completo con sus ríos, mares, montañas, ciudades e incluso topónimos. Yo de mayor querría hacer algo lo mitad de bueno que esto.

Fractal o no fractal, esa es la cuestión


Animated fractal mountain.gif
António Miguel de Campos - Wikipedia

Si la propia naturaleza en muchas ocasiones utiliza fractales, ¿por qué no aprovecharlos para nuestros mapas imaginarios? Los fractales son, en términos muy simples, objetos matemáticos cuya estructura se repite a diferentes escalas.

Para la creación de un paisaje fractal, generalmente se usan polígonos que se van subdividiendo en otros similares, desplazando aleatoriamente el punto central que comparten. Esto se muestra muy bien en la imagen animada anterior, en la que se usan triángulos como base para la generación del terreno.

A pesar de que los fractales imitan bastante bien las formas naturales, hay autores que sostienen que no representan correctamente ciertos procesos clave, como la erosión. Otro incoveniente es que distintas formas del terreno tienen distintas propiedades fractales, por lo que el uso de una función fractal general para todo el mapa no siempre es posible.

Atacando el problema sin fractales

Existen muchas formas de afrontar este problema sin usar fractales. Es un área bastante autodidacta, donde cada autor va modelando a su manera personal, aunque, como ocurre a menudo, las soluciones van convergiendo a una serie de técnicas. Cada una de estas técnicas intenta imitar un proceso, formación o erosión natural, y se van aplicando paso a paso, de manera acumulativa, hasta que finalmente obtenemos el mapa terminado. Es, por tanto, un proceso mucho más "dirigido" por la mano del creador que el proceso fractal que, al menos aparentemente, sería una solución puramente matemática.

Rejilla base

Rejilla hexagonal

Lo más sencillo es crear una rejilla ortogonal (de "cuadraditos") o hexagonal (como un panal de abejas). Si queremos más realismo, tendremos que irnos a una rejilla más compleja de polígonos irregulares (el bot de O'Leary lo hace precisamente de esta manera).

Un caso especial son los mapas para juegos de estrategia, en los que la dinámica del juego suele restringir el tipo de rejilla que se puede usar. También es posible en estos casos, primero generar el mapa con una rejilla irregular y luego adaptarle otra rejilla para los movimientos del juego.

Una forma común de realizar la distribución de la rejilla es mediante diagramas de Voronói. En este caso, las "semillas" serían unos puntos distribuidos más o menos aleatoriamente, y la forma de cada celda se adaptaría hasta ocupar el área más cercana a cada punto.

Caracterización de las celdas

Diagrama de Voronói correspondiente al mapa que se ve al principio de este artículo, con las celdas caracterizadas como tierra, mar y lagos. (Amit Patel)
El siguiente paso va a ser la asignación de distinta naturaleza ("tierra", "mar", etc.) a las celdas de la rejilla. Esto crea la distribución general del mapa.

Una distribución completamente aleatoria daría lugar a mapas muy extraños, por lo que se suelen usar ciertas estrategias, las cuales van a tender a darnos con más probabilidad un tipo de mapa frente a otros (por ejemplo, islas en lugar de continentes). También se puede partir de una forma base creada por un diseñador, si se trata de un encargo para un juego, por ejemplo.

Mapa de elevación

Mapa de elevación (Erik Nordeus)

Un paso clave para hacer un mapa es asignar a cada celda su elevación o altura de terreno. Esto, a la larga, va a definir todos los accidentes geográficos del mapa (cordilleras, ríos, etc.) e indirectamente también la ubicación de las ciudades y otros elementos extra.

Las celdas de mar tendrán elevación cero y, a partir de ahí habrá que ir asignando las alturas siguiendo una cierta estrategia. Aquí tampoco sería realista dejarlo todo al azar. Esta nueva caracterización del terreno es muy similar en concepto a la que hemos visto en el anterior punto, pero distinta en cuanto al algoritmo y parámetros a utilizar. Estos parámetros van a depender de en qué medida queremos generar terrenos preferentemente montañosos o llanos.

Distribución del agua

Los grafos dirigidos nos permiten representar el flujo del agua.

La consecuencia directa del mapa de elevación es la pendiente que van a seguir los flujos de agua. Será necesario crear un grafo dirigido (conjunto de nodos con aristas que tienen una dirección asignada) sobre el mapa de elevación, que irá indicando el camino siempre desde las celdas más altas a las más bajas. Luego aplicaremos algún tipo de algoritmo que simule la "inundación del terreno" y vaya marcando las celdas por las que discurriría el agua.

Los ríos y lagos aparecerán en las zonas donde la humedad supera un cierto umbral. Una vez establecidas estas zonas húmedas, será fácil asignar a cada celda un nivel de humedad decreciente según lo lejos que esté del agua. La caracterización de humedad va a ser clave para el siguiente punto.

Biomas

En Biología, es común agrupar los biomas según temperatura y precipitaciones.

Vamos a tomar prestado de la Biología el concepto de bioma, de una manera bastante laxa, en este caso para representar en diferentes colores o texturas distintas formas de vegetación (pradera, bosque, tundra, etc.)

Usando las elevaciones y los grados de humedad que hemos calculado, no es difícil hacer una correlación entre cada pareja (altura, humedad) y un color en el mapa. También es posible incluir representaciones más artísticas de cada bioma, aunque esto es más propio de la generación de paisajes que de simples mapas.

Añadiendo ruido

Celda con ruido (Amit Patel)
Después de todo lo explicado anteriormente, nuestro mapa parecerá más bien un conjunto de polígonos con colores que un verdadero terreno. Hay que darle alguna forma de irregularidad que lo haga más natural a la vista. Esto es lo que llamamos "ruido", y se hace mediante distintos algoritmos que incluyen alguna forma de aleatoriedad.

En el ejemplo de la imagen, se ha subdividido una diagonal y se han ido moviendo de su lugar los puntos de división de manera aleatoria. También es posible añadir ruido sin cambiar la forma, haciendo que los colores de celdas adyacentes se mezclen en los bordes.

Para saber más

Muchísima información interesante se puede obtener siguiendo a @redblobgames en Twitter. Tiene una demo online donde se pueden experimentar en tiempo real muchos de los conceptos que he introducido en este artículo.

El creador del Uncharted Atlas tiene un tutorial con mucha información sobre cómo está hecho ese bot.

En la Voronoi Wiki hay enlaces a multitud de artículos sobre el uso de este tipo de diagramas.

También es muy recomendable este fascinante generador online de mundos fractales.