Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

yumaread

Lire les données du fichier d'almanach YUMA

Depuis R2023a

    Description

    exemple

    data = yumaread(filename) lit les données du fichier d'almanach YUMA spécifié par filename et renvoie les paramètres de chaque satellite associé sous forme d'horaire.

    data = yumaread(filename,GPSWeekEpoch=refdate) spécifie la date de référence à partir de laquelle le fichier d'almanach YUMA compte le numéro de semaine du système de positionnement global (GPS).

    Exemples

    réduire tout

    Téléchargez le fichier d'almanach YUMA à partir du site Web NAVCEN et analysez-le. Spécifiez la date pour laquelle télécharger le fichier.

    d = datetime("today") - 2;

    Créez l'URL.

    baseURL = "https://www.navcen.uscg.gov/sites/default/files/gps/almanac/";
    almanacType = "/yuma/";
    almanacExtension = ".alm";
    url = baseURL + d.Year + almanacType + num2str(day(d,"dayofyear"),'%03d') + ...
          almanacExtension;

    Spécifiez un nom de fichier pour le fichier d'almanach enregistré.

    filename = "yumaAlmanac" + "_" + d.Year + "-" + ...
               d.Month + "-" + d.Day + ".alm";

    Enregistrez le fichier.

    websave(filename,url);

    Obtenez les paramètres orbitaux à partir du fichier d’almanach YUMA téléchargé.

    data = yumaread(filename)
    data=31×13 timetable
                Time            PRN    Health    Eccentricity    TimeOfApplicability    OrbitalInclination    RateOfRightAscen    SQRTA     RightAscenAtWeek    ArgumentOfPerigee    MeanAnom         Af0            Af1        Week
        ____________________    ___    ______    ____________    ___________________    __________________    ________________    ______    ________________    _________________    _________    ___________    ___________    ____
    
        27-Jan-2023 19:56:30     1       0          0.012259         5.0381e+05              0.98919            -7.6575e-09       5153.6         -1.7636             0.93699           -1.3324     0.00021935     -3.638e-12    2246
        27-Jan-2023 19:56:30     2       0          0.020082         5.0381e+05              0.96693            -7.8289e-09       5153.6           -1.86             -1.3346           -2.3153    -0.00062466      3.638e-12    2246
        27-Jan-2023 19:56:30     3       0          0.004446         5.0381e+05               0.9773            -7.8746e-09       5153.7        -0.73153              1.0233           -2.4793    -0.00036907      3.638e-12    2246
        27-Jan-2023 19:56:30     4       0         0.0022964         5.0381e+05              0.96264            -7.8975e-09       5153.7         0.34944             -3.0639           0.47758    -4.0054e-05      7.276e-12    2246
        27-Jan-2023 19:56:30     5       0         0.0057855         5.0381e+05               0.9643            -8.0232e-09       5153.5        -0.77652              1.1341            1.2373    -0.00011349              0    2246
        27-Jan-2023 19:56:30     6       0         0.0028877         5.0381e+05              0.98846            -7.6346e-09       5153.6         -1.7719            -0.86284           -1.0726     0.00056458      3.638e-12    2246
        27-Jan-2023 19:56:30     7       0          0.016655         5.0381e+05              0.95017            -7.8746e-09       5153.5          1.3653             -2.2286           -1.9321     0.00025177     -7.276e-12    2246
        27-Jan-2023 19:56:30     8       0         0.0082297         5.0381e+05              0.96065            -8.0803e-09       5153.6         -2.8518             0.20048           0.91139    -0.00010586     -3.638e-12    2246
        27-Jan-2023 19:56:30     9       0         0.0025482         5.0381e+05              0.95586            -7.9889e-09       5153.6         0.29373              1.9652            1.2322    -0.00022888      7.276e-12    2246
        27-Jan-2023 19:56:30    10       0         0.0084252         5.0381e+05              0.97706            -7.8746e-09       5153.6        -0.73421             -2.4529            2.8739    -2.1935e-05              0    2246
        27-Jan-2023 19:56:30    11       0        0.00078106         5.0381e+05              0.96453            -7.8746e-09       5153.7         -1.7278             -2.6895           0.14565    -8.8692e-05    -1.0914e-11    2246
        27-Jan-2023 19:56:30    12       0         0.0088811         5.0381e+05              0.96648            -8.0003e-09       5153.6            2.48              1.3307           -2.7255    -0.00033283     -3.638e-12    2246
        27-Jan-2023 19:56:30    13       0         0.0067534         5.0381e+05              0.96972            -7.8175e-09       5153.6         0.45204             0.94145           0.42546     0.00046635      7.276e-12    2246
        27-Jan-2023 19:56:30    14       0          0.002604         5.0381e+05              0.94981            -8.1489e-09       5153.6          2.4432             -3.0813           -2.6751    -4.0054e-05      7.276e-12    2246
        27-Jan-2023 19:56:30    15       0          0.014733         5.0381e+05              0.93207            -8.2861e-09       5153.6         0.17855              1.1759         -0.076497     8.5831e-06      3.638e-12    2246
        27-Jan-2023 19:56:30    16       0          0.013348         5.0381e+05              0.96625            -8.0003e-09       5153.7          2.4984             0.75825            1.7264    -0.00052261              0    2246
          ⋮
    
    

    Lisez les données des messages de navigation GPS et QZSS à partir d'un fichier d'almanach YUMA.

    gpsQzssData = yumaread("qg2022309.alm");

    Obtenez les positions, vitesses et identifiants des satellites à l'heure spécifiée.

    t = datetime(2022,11,10,8,12,00);
    [satPos,satVel,satID] = gnssconstellation(t,gpsQzssData,GNSSFileType="YUMA");

    Spécifiez la position d'un récepteur GNSS en coordonnées géodésiques (latitude, longitude et altitude).

    recPos = [35.67 139.73 50]; % Tokyo

    Obtenez les angles de visée en azimut et en élévation des positions des satellites pour la position du récepteur spécifiée. La sortie isVis indique quels satellites sont visibles. Trouvez le nombre total de satellites visibles en utilisant nnz.

    [az,el,isVis] = lookangles(recPos,satPos);
    fprintf('%d satellites visible at %s.\n',nnz(isVis),t);
    12 satellites visible at 10-Nov-2022 08:12:00.
    

    Spécifiez le PRN comme étiquette pour chaque point. Spécifiez les groupes catégoriels.

    prn = gpsQzssData.PRN;
    GPSPrn = (prn <= 32);
    group = categorical(GPSPrn,[true false],["GPS" "QZSS"]);

    Visualisez les satellites visibles. Montrez la légende.

    skyplot(az(isVis),el(isVis),satID(isVis),GroupData=group(isVis))
    legend("GPS","QZSS")

    Figure contains an object of type skyplot.

    Lisez un fichier d'almanach YUMA contenant des données GPS et QZSS, téléchargé à partir du site Web QZSS .

    filenameQG = "qg2022309.alm";
    dataQG = yumaread(filenameQG)
    dataQG=35×13 timetable
                Time            PRN    Health    Eccentricity    TimeOfApplicability    OrbitalInclination    RateOfRightAscen    SQRTA     RightAscenAtWeek    ArgumentOfPerigee    MeanAnom        Af0           Af1        Week
        ____________________    ___    ______    ____________    ___________________    __________________    ________________    ______    ________________    _________________    ________    ___________    __________    ____
    
        08-Nov-2022 16:50:54     1       0           0.01204         2.3347e+05              0.98919            -7.5089e-09       5153.6        -0.38418             0.94107          0.45277     0.00025463    -7.276e-12    2235
        08-Nov-2022 16:50:54     2       0           0.02012         2.3347e+05              0.96699            -7.7603e-09       5154.9        -0.47885             -1.3867         -0.44223    -0.00063896     3.638e-12    2235
        08-Nov-2022 16:50:54     3       0         0.0044513         2.3347e+05              0.97615            -7.5889e-09       5153.7         0.64757              1.0521         -0.66094    -0.00037193    -3.638e-12    2235
        08-Nov-2022 16:50:54     4       0         0.0021377         2.3347e+05              0.96147            -8.0232e-09       5153.7          1.7292             -3.1181           2.3566    -8.9645e-05     7.276e-12    2235
        08-Nov-2022 16:50:54     5       0         0.0059276         2.3347e+05               0.9632             -7.726e-09       5153.5         0.60365              1.1404           2.9734    -0.00010395             0    2235
        08-Nov-2022 16:50:54     6       0         0.0026011         2.3347e+05              0.98847            -7.5317e-09       5153.5        -0.39246            -0.91841            0.726     0.00051308    1.0914e-11    2235
        08-Nov-2022 16:50:54     7       0          0.016459         2.3347e+05              0.95087            -7.7375e-09       5153.6          2.7459             -2.2384         -0.16947     0.00028992    -3.638e-12    2235
        08-Nov-2022 16:50:54     8       0         0.0077338         2.3347e+05              0.96113            -8.3432e-09       5153.6         -1.4706             0.16515           2.7185    -9.2506e-05    -3.638e-12    2235
        08-Nov-2022 16:50:54     9       0         0.0026331         2.3347e+05              0.95461            -8.1032e-09       5153.7          1.6741              1.9245           3.0836     -0.0002718     7.276e-12    2235
        08-Nov-2022 16:50:54    10       0         0.0081372         2.3347e+05              0.97593            -7.5546e-09       5153.6         0.64487             -2.5026           -1.554    -1.1444e-05             0    2235
        08-Nov-2022 16:50:54    11       0        0.00080109         2.3347e+05               0.9645             -7.726e-09       5153.6        -0.34663             -2.9148            2.172    -3.7193e-05    -7.276e-12    2235
        08-Nov-2022 16:50:54    12       0         0.0085993         2.3347e+05              0.96761             -7.886e-09       5153.7         -2.4237              1.3193         -0.90595    -0.00030231    -3.638e-12    2235
        08-Nov-2022 16:50:54    13       0         0.0066509         2.3347e+05              0.96872            -7.9432e-09       5153.6          1.8313             0.95082           2.2082     0.00042057     7.276e-12    2235
        08-Nov-2022 16:50:54    14       0         0.0023918         2.3347e+05              0.95102            -8.0003e-09       5153.6         -2.4592             -3.0426          -0.9278    -8.5831e-05     3.638e-12    2235
        08-Nov-2022 16:50:54    15       0          0.014719         2.3347e+05               0.9307            -8.3661e-09       5153.6          1.5609               1.157           1.7184    -1.4305e-05     3.638e-12    2235
        08-Nov-2022 16:50:54    16       0          0.012957         2.3347e+05               0.9674            -7.9089e-09       5153.7         -2.4053             0.73788          -2.6905    -0.00052643             0    2235
          ⋮
    
    

    Extrayez les données GPS de l'horaire en fonction des PRN GPS valides entre 1 et 32.

    GPSdata = dataQG((dataQG.PRN >= 1 & dataQG.PRN <= 32),:)
    GPSdata=31×13 timetable
                Time            PRN    Health    Eccentricity    TimeOfApplicability    OrbitalInclination    RateOfRightAscen    SQRTA     RightAscenAtWeek    ArgumentOfPerigee    MeanAnom        Af0           Af1        Week
        ____________________    ___    ______    ____________    ___________________    __________________    ________________    ______    ________________    _________________    ________    ___________    __________    ____
    
        08-Nov-2022 16:50:54     1       0           0.01204         2.3347e+05              0.98919            -7.5089e-09       5153.6        -0.38418             0.94107          0.45277     0.00025463    -7.276e-12    2235
        08-Nov-2022 16:50:54     2       0           0.02012         2.3347e+05              0.96699            -7.7603e-09       5154.9        -0.47885             -1.3867         -0.44223    -0.00063896     3.638e-12    2235
        08-Nov-2022 16:50:54     3       0         0.0044513         2.3347e+05              0.97615            -7.5889e-09       5153.7         0.64757              1.0521         -0.66094    -0.00037193    -3.638e-12    2235
        08-Nov-2022 16:50:54     4       0         0.0021377         2.3347e+05              0.96147            -8.0232e-09       5153.7          1.7292             -3.1181           2.3566    -8.9645e-05     7.276e-12    2235
        08-Nov-2022 16:50:54     5       0         0.0059276         2.3347e+05               0.9632             -7.726e-09       5153.5         0.60365              1.1404           2.9734    -0.00010395             0    2235
        08-Nov-2022 16:50:54     6       0         0.0026011         2.3347e+05              0.98847            -7.5317e-09       5153.5        -0.39246            -0.91841            0.726     0.00051308    1.0914e-11    2235
        08-Nov-2022 16:50:54     7       0          0.016459         2.3347e+05              0.95087            -7.7375e-09       5153.6          2.7459             -2.2384         -0.16947     0.00028992    -3.638e-12    2235
        08-Nov-2022 16:50:54     8       0         0.0077338         2.3347e+05              0.96113            -8.3432e-09       5153.6         -1.4706             0.16515           2.7185    -9.2506e-05    -3.638e-12    2235
        08-Nov-2022 16:50:54     9       0         0.0026331         2.3347e+05              0.95461            -8.1032e-09       5153.7          1.6741              1.9245           3.0836     -0.0002718     7.276e-12    2235
        08-Nov-2022 16:50:54    10       0         0.0081372         2.3347e+05              0.97593            -7.5546e-09       5153.6         0.64487             -2.5026           -1.554    -1.1444e-05             0    2235
        08-Nov-2022 16:50:54    11       0        0.00080109         2.3347e+05               0.9645             -7.726e-09       5153.6        -0.34663             -2.9148            2.172    -3.7193e-05    -7.276e-12    2235
        08-Nov-2022 16:50:54    12       0         0.0085993         2.3347e+05              0.96761             -7.886e-09       5153.7         -2.4237              1.3193         -0.90595    -0.00030231    -3.638e-12    2235
        08-Nov-2022 16:50:54    13       0         0.0066509         2.3347e+05              0.96872            -7.9432e-09       5153.6          1.8313             0.95082           2.2082     0.00042057     7.276e-12    2235
        08-Nov-2022 16:50:54    14       0         0.0023918         2.3347e+05              0.95102            -8.0003e-09       5153.6         -2.4592             -3.0426          -0.9278    -8.5831e-05     3.638e-12    2235
        08-Nov-2022 16:50:54    15       0          0.014719         2.3347e+05               0.9307            -8.3661e-09       5153.6          1.5609               1.157           1.7184    -1.4305e-05     3.638e-12    2235
        08-Nov-2022 16:50:54    16       0          0.012957         2.3347e+05               0.9674            -7.9089e-09       5153.7         -2.4053             0.73788          -2.6905    -0.00052643             0    2235
          ⋮
    
    

    Extrayez les données QZSS du calendrier en fonction des PRN QZSS valides entre 193 et 202.

    QZSSData = dataQG((dataQG.PRN >= 193 & dataQG.PRN <= 202),:)
    QZSSData=4×13 timetable
                Time            PRN    Health    Eccentricity    TimeOfApplicability    OrbitalInclination    RateOfRightAscen    SQRTA     RightAscenAtWeek    ArgumentOfPerigee    MeanAnom        Af0        Af1    Week
        ____________________    ___    ______    ____________    ___________________    __________________    ________________    ______    ________________    _________________    ________    ___________    ___    ____
    
        08-Nov-2022 08:53:02    194      0          0.076374          2.048e+05               0.72544            -2.343e-09       6492.9         -2.4966             -1.5847           2.5734              0     0     2235
        08-Nov-2022 08:53:02    195      0          0.074928          2.048e+05               0.71092           -2.3772e-09       6493.5        -0.78221             -1.5662           0.8499    -3.8147e-06     0     2235
        08-Nov-2022 08:53:02    196      0          0.074762          2.048e+05               0.60598            -3.383e-09       6493.2         0.94933              -1.559         -0.93973     0.00011253     0     2235
        08-Nov-2022 08:53:02    199      0        0.00022411          2.048e+05             0.0011924            1.0286e-09       6493.4          3.1171             0.38448           1.0834              0     0     2235
    
    

    Lisez les données des messages de navigation GPS à partir d'un fichier d'almanach YUMA.

    gpsData = yumaread("yumaAlmanac_2022-9-27.alm");

    Utilisez l'horodatage GPS initial à partir des données de l'almanach pour déterminer les temps GPS absolus pour chaque pas de temps de 60 secondes sur 12 heures.

    startTime = gpsData.Time(1);
    numHours = 12;
    secondsPerHour = 3600;
    dt = 60;
    timeElapsed = 0:dt:(numHours*secondsPerHour);
    t = startTime + seconds(timeElapsed);

    Spécifiez la position d'un récepteur GNSS en coordonnées géodésiques (latitude, longitude et altitude).

    recPos = [42 -71 50]; % Natick, MA

    Obtenez les angles de visée en azimut et en élévation pour les positions de tous les satellites pour la position spécifiée du récepteur.

    numSats = numel(gpsData.PRN); % Number of satellites
    [allAz,allEl] = deal(NaN(numel(t),numSats));
    for i = 1:numel(t)
        [satPos,~,satID] = gnssconstellation(t(i),gpsData,GNSSFileType="YUMA");
        [az,el,vis] = lookangles(recPos,satPos);
        allAz(i,:) = az;
        allEl(i,:) = el;
    end

    Marquez tous les satellites sous l'horizon comme NaN pour aucune visibilité.

    allEl(allEl < 0) = NaN;

    Visualisez les trajectoires des satellites.

    figure
    skyplot(allAz,allEl,satID)

    Figure contains an object of type skyplot.

    Animez les trajectoires des satellites.

    figure
    sp = skyplot(allAz(1,:),allEl(1,:),satID);
    for i = 1:size(allAz,1)
        set(sp,AzimuthData=allAz(1:i,:),ElevationData=allEl(1:i,:))
        drawnow
    end

    Figure contains an object of type skyplot.

    Arguments d'entrée

    réduire tout

    Nom de fichier de l'almanach YUMA, spécifié sous forme de chaîne scalaire ou de vecteur de caractères. Vous pouvez spécifier un chemin relatif ou absolu, mais si vous spécifiez uniquement le nom du fichier lui-même, la fonction enregistre le fichier dans le répertoire de travail actuel. Le nom de fichier peut également inclure une extension de fichier.

    Exemple : "yumaAlmanac_2022-4-20.alm"

    Exemple : "mydir/yumaAlmanac_2022-4-20.alm"

    Exemple : "C:/mydir/yumaAlmanac_2022-4-20.alm"

    Types de données : char | string

    Date de référence, spécifiée comme l'une de ces chaînes datetime valides qui coïncident avec les dates de basculement du numéro de semaine GPS :

    • "06-Jan-1980"

    • "21-Aug-1999"

    • "06-Apr-2019"

    Ces dates se produisent toutes les 1024 semaines, à partir du 6 janvier 1980 à 00h00 (UTC). La valeur par défaut est une chaîne datetime qui coïncide avec la date de basculement du numéro de semaine GPS la plus récente avant le jour en cours.

    Exemple : GPSWeekEpoch="21-Aug-1999"

    Types de données : char | string

    Arguments de sortie

    réduire tout

    Paramètres de chaque satellite, renvoyés sous la forme d'un timetable avec une ligne pour chaque enregistrement et une colonne pour chaque paramètre de cet enregistrement.

    ParamètreType de donnéesDescription
    Timedatetime

    Temps GPS, calculé à l'aide de Week et TimeOfApplicability.

    PRNdouble

    Numéro de bruit pseudo-aléatoire du satellite.

    Healthdouble

    Code de données satellite sur la santé du véhicule.

    Eccentricitydouble

    Excentricité de l'orbite.

    TimeOfApplicabilitydouble

    Nombre de secondes depuis le début du numéro de semaine GPS.

    OrbitalInclinationdouble

    Angle d'inclinaison au temps de référence, en radians.

    RateOfRightAscendouble

    Taux de variation de la mesure de l'angle d'ascension droite, en radians par seconde.

    SQRTAdouble

    Racine carrée du demi-grand axe, en mètres1/2.

    RightAscenAtWeekdouble

    Longitude géographique du plan orbital à l'époque hebdomadaire, en radians.

    ArgumentOfPerigeedouble

    Angle de l'équateur au périgée, en radians.

    MeanAnomdouble

    Angle depuis la position du satellite sur son orbite par rapport au périgée, en radians.

    Af0double

    Terme de correction d'horloge d'ordre zéro de l'almanach satellite, en secondes.

    Af1double

    Terme de correction d'horloge de premier ordre de l'almanach satellite, en secondes par seconde.

    Weekdouble

    Numéro de semaine GPS, continu, pas mod(1024).

    Conseils

    Références

    [1] Science Applications International Corporation. NAVSTAR GPS Space Segment/Navigation User Interfaces. IS-GPS-200M. Los Angeles, CA: United States Space Force Space Systems Command, approved May 21, 2021. https://www.navcen.uscg.gov/sites/default/files/pdf/gps/IS_GPS_200M.pdf.

    [2] Science Applications International Corporation. NAVSTAR GPS Space Segment/Navigation User Interfaces. ICD-GPS-240D. Los Angeles, CA: United States Space Force Space Systems Command, approved May 21, 2021. https://www.navcen.uscg.gov/sites/default/files/pdf/gps/ICD_GPS_240D.pdf.

    [3] United States Coast Guard. "GPS Almanacs, NANUs, and OPS Advisories Archives." US Coast Guard Navigation Center. Accessed May 6, 2022. https://www.navcen.uscg.gov/archives.

    [4] Quasi-Zenith Satellite System(QZSS). "Satellite Positioning, Navigation and Timing Service." Accessed September 20, 2022. https://qzss.go.jp/en/technical/download/pdf/ps-is-qzss/is-qzss-pnt-004.pdf.

    [5] QZSS almanac archives, Quasi-Zenith Satellite System(QZSS). "QZSS (Quasi-Zenith Satellite System) - Cabinet Office (Japan)" Accessed September 20, 2022. https://sys.qzss.go.jp/dod/en/archives/pnt.html.

    Historique des versions

    Introduit dans R2023a