Fichier d’origine(Fichier SVG, nominalement de 600 × 480 pixels, taille : 583 kio)

Ce fichier et sa description proviennent de Wikimedia Commons.

Description

Description Cette image montre les différences UT1-TAI et UTC-TAI toutes deux exprimées en secondes. La partie rouge du graphique est une prédiction (valeurs futures) au moment où l'image a été produite.
Date
Source Travail personnel réalisé en utilisant les données du site https://maia.usno.navy.mil/ser7/finals.all
Auteur Daniel_Exb
Autorisation
(Réutilisation de ce fichier)
Public domain Moi, propriétaire des droits d’auteur sur cette œuvre, la place dans le domaine public. Ceci s'applique dans le monde entier.
Dans certains pays, ceci peut ne pas être possible ; dans ce cas :
J’accorde à toute personne le droit d’utiliser cette œuvre dans n’importe quel but, sans aucune condition, sauf celles requises par la loi.

Code source

2 fichiers sont utilisés:

  • plot_UT1-TAI_and_UTC-TAI.sh
#!/bin/bash -e
#
DATE="$(date '+%Y-%m-%d')"

[[ ! -d "$DATE" ]] && mkdir "$DATE"

cd "$DATE" || exit 1

##########################################################
# download the files
#
FILES="checksums.md5 checksums.sha512 finals.all readme.finals readme tai-utc.dat"

for FILE in $FILES; do
    [[ -f "$FILE" ]] && continue
    wget --no-verbose --show-progress "https://maia.usno.navy.mil/ser7/$FILE"
done

echo -n 'md5sum    ' && md5sum    --ignore-missing --check checksums.md5
echo -n 'sha512sum ' && sha512sum --ignore-missing --check checksums.sha512

##########################################################
# extract useful data
#
cut -c 1-2,3-4,5-6,8-15,58,59-68 --output-delimiter " " finals.all > finals-cut.txt

##########################################################
# compute UT1-UTC, UT1-TAI and UTC-TAI
#
LC_NUMERIC="C" awk 'BEGIN {
        if ((ARGV[1] != "tai-utc.dat") && (ARGV[2] != "finals-cut.txt")) {
            exit(1)
        }

        MONTHS["JAN"] =  1; MONTHS["FEB"] =  2; MONTHS["MAR"] =  3; MONTHS["APR"] =  4;
        MONTHS["MAY"] =  5; MONTHS["JUN"] =  6; MONTHS["JUL"] =  7; MONTHS["AUG"] =  8;
        MONTHS["SEP"] =  9; MONTHS["OCT"] = 10; MONTHS["NOV"] = 11; MONTHS["DEC"] = 12;
    }
    FILENAME == "tai-utc.dat" {
        # 1961 JAN  1 =JD 2437300.5  TAI-UTC=   1.4228180 S + (MJD - 37300.) X 0.001296 S
        # 1961 AUG  1 =JD 2437512.5  TAI-UTC=   1.3728180 S + (MJD - 37300.) X 0.001296 S
        # 1962 JAN  1 =JD 2437665.5  TAI-UTC=   1.8458580 S + (MJD - 37665.) X 0.0011232S
        # 1963 NOV  1 =JD 2438334.5  TAI-UTC=   1.9458580 S + (MJD - 37665.) X 0.0011232S
        # ...
        # 1968 FEB  1 =JD 2439887.5  TAI-UTC=   4.2131700 S + (MJD - 39126.) X 0.002592 S
        # 1972 JAN  1 =JD 2441317.5  TAI-UTC=  10.0       S + (MJD - 41317.) X 0.0      S
        # ...
        # 2009 JAN  1 =JD 2454832.5  TAI-UTC=  34.0       S + (MJD - 41317.) X 0.0      S
        # 2012 JUL  1 =JD 2456109.5  TAI-UTC=  35.0       S + (MJD - 41317.) X 0.0      S
        # 2015 JUL  1 =JD 2457204.5  TAI-UTC=  36.0       S + (MJD - 41317.) X 0.0      S
        # 2017 JAN  1 =JD 2457754.5  TAI-UTC=  37.0       S + (MJD - 41317.) X 0.0      S
        Y = $1
        M = MONTHS[$2]
        D = $3

        DTAI_history[Y][M][D] = $7

        # YYYY_MM_DD = sprintf("%4d-%02d-%02d", Y, M, D)
        # printf("%s %f\n", YYYY_MM_DD, DTAI_history[Y][M][D])
    }
    function get_dtai(y, m, d) {
        # printf("%4d-%02d-%02d\n", y, m, d)
        found = 0
        for (Y in DTAI_history) {
            # print(Y)
            for (M in DTAI_history[Y]) {
                # print(M)
                for (D in DTAI_history[Y][M]) {
                    # print(D)

                    if  (Y-y >  0)                              { found = 1; break; }
                    if ((Y-y >= 0) && (M-m >  0)              ) { found = 2; break; }
                    if ((Y-y >= 0) && (M-m >= 0) && (D-d >  0)) { found = 3; break; }

                    DTAI = DTAI_history[Y][M][D]
                    # print(y, m, d, Y, M, D, " DTAI = ", DTAI)

                    if ((Y-y == 0) && (M-m == 0) && (D-d == 0)) { found = 4; break; }
                }
                if (found) break
            }
            if (found) break
        }
        # print("FOUND = ", found)
        return DTAI
    }
    BEGINFILE { 
        if (FILENAME == "finals-cut.txt") {

            # OUTPUT file format
            #
            # # date      UT1-UTC    UT1-TAI     UTC-TAI   IERS (I) or Prediction (P) 
            # #           DUT1                             FLAG
            # 1973-01-02  0.8084178 -11.1915822 -12.000000 I
            # 1973-01-03  0.8056163 -11.1943837 -12.000000 I
            # 1973-01-04  0.8027895 -11.1972105 -12.000000 I
            # 1973-01-05  0.7998729 -11.2001271 -12.000000 I
            print("# date      UT1-UTC    UT1-TAI     UTC-TAI   IERS (I) or Prediction (P)")
            print("#           DUT1                             FLAG")

            #
            # 1973 is the first line in finals.all
            #
            for (y=1961; y<=1973; y++) {
                for (m=1; m<=12; m++) {
                    d = 1

                    DTAI = get_dtai(y, m, d)
                    printf("%4d-%02d-%02d  x.xxxxxxx  xx.xxxxxxx %10.6f I\n", y, m, d, -DTAI)
                }
            }
        }
    }
    FILENAME == "finals-cut.txt" {
        j = $4
        d = $3
        m = $2
        y = ( j <= 51543 ) ? 1900 + $1 : 2000 + $1

        FLAG = $5     # IERS (I) or Prediction (P)

        DUT1 = $6     # UT1 - UTC
        DTAI = get_dtai(y, m, d)

        printf("%4d-%02d-%02d %10.7f %10.7f %f %s\n", y, m, d, DUT1, DUT1-DTAI, -DTAI, FLAG)
    }
    END {
        # sanity check
        if (DTAI_history[1972][01][01] != 10.) {
            print("TAI - UTC shall be equal to 10 on January 1st, 1972")
            exit(1)
        }

        for (Y in DTAI_history) {
            for (M in DTAI_history[Y]) {
                for (D in DTAI_history[Y][M]) {
                #   print(Y"-"M"-"D" "DTAI_history[Y][M][D])
                }
            }
        }
    }

' tai-utc.dat finals-cut.txt > time_history.txt

head -10 time_history.txt
echo '...'

##########################################################
# make two distinct outputs
#
grep -E '^#|I' time_history.txt > time_history_iers.txt
grep -E '^#|P' time_history.txt > time_history_pred.txt

##########################################################
# plot the data UT1-TAI and UTC-TAI
#
gnuplot ../plot_UT1-TAI_and_UTC-TAI.gnuplot

eog --fullscreen UT1-TAI_and_UTC-TAI.svg

##########################################################
# FINISHED
#
echo 'Finished, check the files "time_history.txt" and "UT1-TAI_and_UTC-TAI.svg"'
  • plot_UT1-TAI_and_UTC-TAI.gnuplot
set xdata time
set timefmt "%Y-%m-%d"
set format x "%Y"
set xrange ["1961-01-01":"2025-01-01"]
set yrange [-40:0]
set grid lt 3 lc 0
set terminal svg font "Arial,16"
set style line 1 lc rgb 'dark-green' lt 1
set style line 2 lc rgb 'green'      lt 1
set style line 3 lc rgb 'dark-red'   lt 1
set style line 4 lc rgb 'red'        lt 1
set key
set title 'UT1-TAI and UTC-TAI (source: https://maia.usno.navy.mil/ser7/)'
set ylabel 'Difference from TAI (seconds)'
set output 'UT1-TAI_and_UTC-TAI.svg'

plot 'time_history_iers.txt' using 1:3 with lines linestyle 1 title 'Measured UT1-TAI'  , \
     'time_history_iers.txt' using 1:4 with lines linestyle 2 title 'UTC-TAI'           , \
     'time_history_pred.txt' using 1:3 with lines linestyle 3 title 'Predicted UT1-TAI'

set output

Légendes

Cette image montre les différences UT1-TAI et UTC-TAI toutes deux exprimées en secondes. La partie rouge du graphique est une prédiction (valeurs futures) au moment où l'image a été produite.

Éléments décrits dans ce fichier

dépeint

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel5 octobre 2023 à 19:17Vignette pour la version du 5 octobre 2023 à 19:17600 × 480 (583 kio)Daniel exbMaintenant, le graphe commence au 1er janvier 1961, pour montrer le décalage entre UTC et TAI
5 octobre 2023 à 00:30Vignette pour la version du 5 octobre 2023 à 00:30600 × 480 (580 kio)Daniel exb{{Information |Description=Cette image montre les différences UT1-TAI et UTC-TAI toutes deux exprimées en secondes. La partie rouge du graphique est une prédiction (valeurs futures) au moment où l'image a été produite. |Source=Travail personnel réalisé en utilisant les données du site https://maia.usno.navy.mil/ser7/finals.all |Date=2023-10-05 |Author=Daniel_Exb |Permission=Utilisation libre |other_versions= }}

Les 2 pages suivantes utilisent ce fichier :

Métadonnées