Keywords: Abweichung der Tageslänge vom SI-Tag.svg de Abweichung der Tageslänge vom SI-basierten Tag 86'400 s 1962 “2016 täglich gleitendes 365-Tages-Mittel und kumulativ Zum Vergleich sind auch die UTC-Schaltsekunden verzeichnet own Daten IERS http //hpiers obspm fr/eoppc/eop/eopc04/eopc04 62-now …¡ …¦ …« 2016-12-31 File deviation of day length from SI day svg Time diagrams Images with Perl source code Erzeugung der Grafik Die Grafik ist mit folgendem Perl-Skript erzeugt worden <source lang perl> /usr/bin/perl -w use strict; use utf8; use POSIX; my y0 1962; my y y0; my m 1; my d 1; my scale 1 5e6; my cscale 300; my min -2400; my max 7500; my vr max - min; my dv 300; my ddv 5; my fs 224; my ls 1972 5 1973 1974 1975 1976 1977 1978 1979 1980 1981 5 1982 5 1983 5 1985 5 1988 1990 1991 1992 5 1993 5 1994 5 1996 1997 5 1999 2006 2009 2012 5 ; my ml 0 31 28 31 30 31 30 31 31 30 31 30 31 ; my data data py pv y ; while <> / \d+ \s+ \d+ \s+ \d+ \s+ \d+ \s+- \d+\ \d+ 3 \s+- \d+\ \d+ \s+- \d+\ \d+ 2 \s+\d+\ \d+ 6 \s /x or next; 1 y 2 m 3 d or die; push data 4 + 0; data y + 4; ++ d < m 2 y 4 ml m 29 or d 1 ++ m < 12 or m 1 ++ y; my s 0; for my y y0 y + 1 push y s; s + y 4 365 366; my hr y y+1- y0; binmode STDOUT utf8 ; print qq < xml version 1 0 encoding UTF-8 >\n ; print qq < DOCTYPE svg PUBLIC -//W3C//DTD SVG 1 1//EN ; print qq http //www w3 org/Graphics/SVG/1 1/DTD/svg11 dtd >\n ; print qq <svg version 1 1 xml lang de xmlns http //www w3 org/2000/svg ; printf qq - 1f - 1f 1f 1f >\n fs 4 + 5 fs 1 5 + 5 fs 8 + hr + 1 fs 4 + vr + 1; print qq <title>Abweichung der Tageslänge vom SI-basierten Tag</title>\n ; printf qq <rect x - 1f y - 1f width 100 height 100 fs 4 + 5 fs 1 5 + 5; print qq fff stroke none />\n ; print qq <g fill none stroke-width 16 ; print qq round stroke-linejoin round >\n ; print qq <g transform translate 0 max scale 1 -1 >\n ; my d1 0; my d2 0; my d3 0; my v1 v2 h1 h2 h3 ; for my y y0 y + 1 my d y 4 365 366; y 10 push v1 d1 d1 0 push v2 d2 d2 0 ; y 5 or push py d3 + d / 2 y ; d1 + d d2 + d d3 + d; d1 d2 d3 min; for my y ceil min / dv; y < max / dv; ++ y y ddv push h1 d1 d1 0 y push h2 d2 d2 0 push h3 d3 d3 0 push pv - y dv + floor 3 fs + 5 y dv ; d1 + dv d2 + dv d3 + dv; printf qq <path stroke e0e0e0 d M0 dh hr shift h1; printf m- hr dh hr _ for h1; print qq />\n ; printf qq <path stroke e0e0e0 d M d min v vr shift v1; printf m d - vr v vr _ for v1; print qq />\n ; printf qq <path stroke c0c0c0 d M0 dh hr shift h2; printf m- hr dh hr _ for h2; print qq />\n ; printf qq <path stroke c0c0c0 d M d min v vr shift v2; printf m d - vr v vr _ for v2; print qq />\n ; printf qq <path stroke 808080 d M0 dh hr shift h3; printf m- hr dh hr _ for h3; print qq />\n ; my data map floor _ scale + 5 data; printf qq <path stroke a0a0a0 stroke-width 8 d M 5 d data0; printf l1 d data _ - data _-1 for 1 data; print qq />\n ; my rm ; for my i 182 data - 182 my rm 0; rm + data _ for i - 182 i + 182; push rm floor rm / 365 scale + 5; printf qq <path stroke 008000 d M182 5 d rm0; printf l1 d rm _ - rm _-1 for 1 rm; print qq />\n ; my i0 y1972- y0; my s 0; my cum ; for my i reverse 1 i0 - 1 s - data i; push cum floor s cscale + 5; cum reverse cum; push cum s 0; for my i i0 data s + data i; push cum floor s cscale + 5; print qq <g fill e06060 > ; for my i 0 ls my t ls i; my y int t; my p y y- y0; y t or p + y 4 181 182; my v i + 5 cscale; print qq <circle cx p cy v r 32 /> ; print qq </g>\n ; printf qq <path stroke a00000 d M0 d cum0; printf l1 d cum _ - cum _-1 for 1 cum; print qq />\n ; print qq </g>\n ; print qq <g transform translate 0 max font-size fs ; print qq Arial sans-serif >\n ; printf qq <g transform translate 0 0f text-anchor middle fill 000 > - min + fs 1 5; printf qq <text x d > d</text> _ for py; print qq </g>\n ; printf qq <g transform translate 0f text-anchor end fill 008000 > - fs 8; printf qq <text y d > s\x 2009 ms</text> _->0 _->1 > 0 sprintf + 0f _->1 / scale 1000 _->1 < 0 sprintf \x 2212 0f - _->1 / scale 1000 ±0 for pv; print qq </g>\n ; printf qq <g transform translate 0f text-anchor start fill a00000 > hr + fs 8; printf qq <text y d > s\x 2009 s</text> _->0 _->1 > 0 sprintf + 0f _->1 / cscale _->1 < 0 sprintf \x 2212 0f - _->1 / cscale ±0 for pv; print qq </g>\n ; print qq <g transform translate 3918 500 >\n ; print qq <rect width 9331 height 1400 stroke 808080 fill fff ; print qq 5 />\n ; print qq <path stroke a0a0a0 d M282 5 250h731 /><text fill 808080 ; print qq 1193 y 317 >Tägliche Abweichung der ; print qq Tageslänge vom SI-basierten Tag 86'400\x 2009 s </text>\n ; print qq <path stroke 008000 d M282 5 550h731 /><text fill 008000 ; print qq 1193 y 617 >Gleitendes 365-Tage-Mittel der Abweichung</text>\n ; print qq <path stroke a00000 d M282 5 850h731 /><text fill a00000 ; print qq 1193 y 917 > ; print qq Kumulative Abweichung seit Einführung der Schaltsekunden</text>\n ; print qq <circle fill e06060 cx 648 cy 1150 r 32 /> ; print qq <text fill e06060 x 1193 y 1217 >UTC-Schaltsekunde</text>\n ; print qq </g>\n ; print qq </g>\n ; print qq </g>\n ; print qq </svg>\n ; </source> |