Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

semread

Leer datos del archivo de almanaque SEM

Desde R2022b

    Descripción

    [data,title] = semread(filename) lee datos del archivo de almanaque SEM (Modelo de efectividad del sistema) para la fecha especificada por filename y devuelve los parámetros de cada satélite asociado como un horario, también como título del almanaque.

    ejemplo

    [data,title] = semread(filename,GPSWeekEpoch=refdate) especifica la fecha de referencia a partir de la cual el archivo de almanaque SEM cuenta el número de semana GPS (Sistema de Posicionamiento Global).

    Ejemplos

    contraer todo

    Descargue el archivo de almanaque SEM del sitio web NAVCEN y analícelo. Especifique la fecha para la cual se descargará el archivo.

    d = datetime("today") - 2;

    Crea la URL.

    baseURL = "https://www.navcen.uscg.gov/sites/default/files/gps/almanac/";
    almanacType = "/sem/";
    almanacExtension = ".al3";
    url = baseURL + d.Year + almanacType + day(d,"dayofyear") + ...
          almanacExtension;

    Especifique el nombre del archivo.

    filename = "semalmanac" + "_" + d.Year + "-" + ...
               d.Month + "-" + d.Day + ".al3";
    

    Guarda el archivo.

    websave(filename,url);

    Obtenga los parámetros orbitales del archivo de almanaque SEM descargado.

    [data,title] = semread(filename)
    data=31×16 timetable
                Time            GPSWeekNumber    GPSTimeOfApplicability    PRNNumber    SVN    AverageURANumber        Eccentricity         InclinationOffset      RateOfRightAscension     SqrtOfSemiMajorAxis    GeographicLongitudeOfOrbitalPlane    ArgumentOfPerigee        MeanAnomaly        ZerothOrderClockCorrection    FirstOrderClockCorrection    SatelliteHealth    SatelliteConfiguration
        ____________________    _____________    ______________________    _________    ___    ________________    ____________________    ____________________    _____________________    ___________________    _________________________________    __________________    __________________    __________________________    _________________________    _______________    ______________________
    
        17-Jul-2022 17:03:42        2219                 61440                 1        63            0              0.0120391845703125      0.0144615173339844    -2.48837750405073e-09     5153.61865234375               0.51555073261261             0.297461271286011     0.881654858589172       0.000319480895996094         -7.27595761418343e-12             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                 2        61            1              0.0199451446533203       0.007476806640625    -2.53567122854292e-09     5154.81982421875              0.486109972000122            -0.446799159049988     0.925528883934021      -0.000651359558105469                             0             0                      9          
        17-Jul-2022 17:03:42        2219                 61440                 3        69            0             0.00439071655273438      0.0102882385253906    -2.56841303780675e-09     5153.53857421875              0.844612836837769             0.320030331611633     0.529847264289856      -0.000309944152832031         -1.09139364212751e-11             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                 4        74            0             0.00190067291259766     0.00612449645996094    -2.46654963120818e-09     5153.54736328125             -0.811291694641113            -0.953091979026794    -0.536049604415894       -0.00014495849609375          3.63797880709171e-12             0                     12          
        17-Jul-2022 17:03:42        2219                 61440                 5        50            0             0.00610446929931641     0.00614738464355469    -2.61570676229894e-09     5153.70166015625              0.831113338470459             0.338927388191223    -0.287315726280212      -8.96453857421875e-05                             0             0                     10          
        17-Jul-2022 17:03:42        2219                 61440                 6        67            0             0.00243806838989258      0.0142459869384766    -2.48473952524364e-09           5153.71875              0.512914299964905            -0.275499105453491     0.955711841583252        0.00038909912109375          1.45519152283669e-11             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                 7        48            0              0.0163321495056152     0.00248146057128906    -2.53567122854292e-09           5153.59375             -0.487354755401611            -0.716959476470947     0.676499962806702       0.000318527221679688                             0             0                     10          
        17-Jul-2022 17:03:42        2219                 61440                 8        72            0                0.00738525390625     0.00658035278320312    -2.48110154643655e-09          5153.515625              0.170664310455322            0.0531282424926758    -0.420778274536133         -7.62939453125e-05                             0             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                 9        68            0             0.00224971771240234     0.00393486022949219    -2.49565346166492e-09     5153.74755859375             -0.828534364700317             0.607595086097717     -0.25430428981781      -0.000318527221679688          3.63797880709171e-12             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                10        73            0             0.00771760940551758      0.0102214813232422    -2.56841303780675e-09     5153.63232421875              0.843742370605469            -0.797283291816711      0.24565315246582      -0.000494956970214844         -1.45519152283669e-11             0                     11          
        17-Jul-2022 17:03:42        2219                 61440                11        78            0            0.000565528869628906      0.0065765380859375    -2.57205101661384e-09      5153.5556640625              0.528360724449158             0.913978695869446    -0.423171401023865      -1.04904174804688e-05                             0             0                     12          
        17-Jul-2022 17:03:42        2219                 61440                12        58            0             0.00853252410888672     0.00836372375488281    -2.53567122854292e-09      5153.7099609375             -0.132869362831116             0.417471408843994     0.468230128288269      -0.000247955322265625         -7.27595761418343e-12             0                     10          
        17-Jul-2022 17:03:42        2219                 61440                13        43            0             0.00612878799438477     0.00843238830566406    -2.43380782194436e-09     5153.63427734375             -0.779114127159119             0.291950225830078    -0.548626184463501       0.000349998474121094          7.27595761418343e-12             0                      9          
        17-Jul-2022 17:03:42        2219                 61440                14        77            0             0.00212907791137695      0.0030670166015625    -2.58660293184221e-09      5153.5986328125             -0.143590927124023            -0.983529925346375      0.45069146156311      -0.000111579895019531                             0             0                     12          
        17-Jul-2022 17:03:42        2219                 61440                15        55            0              0.0142536163330078    -0.00369071960449219    -2.57205101661384e-09     5153.53564453125             -0.863561153411865             0.352016925811768    -0.718587875366211      -4.48226928710938e-05          3.63797880709171e-12             0                     10          
        17-Jul-2022 17:03:42        2219                 61440                16        56            0              0.0127029418945312     0.00832366943359375    -2.53567122854292e-09      5153.6240234375             -0.126978635787964             0.232561111450195    -0.108456969261169      -0.000515937805175781         -3.63797880709171e-12             0                      9          
          ⋮
    
    
    title = 
    'CURRENT.ALM'
    

    Leer datos de mensajes de navegación GPS de un archivo de almanaque SEM.

    gpsData = semread("semalmanac_2022-4-10.al3");

    Obtenga las posiciones, velocidades e ID de los satélites en el primer paso.

    t = gpsData.Time(1);
    [satPos,satVel,satID] = gnssconstellation(t,gpsData,GNSSFileType="SEM");

    Especifique una posición del receptor GNSS en coordenadas geodésicas (latitud, longitud y altitud).

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

    Obtenga los ángulos de visión de azimut y elevación de las posiciones de los satélites para la posición del receptor especificada. La salida isVis indica qué satélites son visibles. Encuentre el número total de satélites visibles usando nnz.

    [az,el,isVis] = lookangles(recPos,satPos);
    fprintf('%d satellites visible at %s.\n',nnz(isVis),t);
    9 satellites visible at 12-Apr-2022 16:50:54.
    

    Visualiza todos los satélites visibles.

    skyplot(az(isVis),el(isVis),satID(isVis))

    Figure contains an object of type skyplot.

    Leer datos de mensajes de navegación GPS de un archivo de almanaque SEM.

    gpsData = semread("semalmanac_2022-4-10.al3");

    Especifique la información de intervalos de tiempo relevante.

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

    Especifique una posición del receptor GNSS en coordenadas geodésicas (latitud, longitud y altitud).

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

    Obtenga los ángulos de visión de acimut y elevación para todas las posiciones de los satélites para la posición del receptor especificada.

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

    Marque todos los satélites debajo del horizonte como NaN para que no haya visibilidad.

    allEl(allEl < 0) = NaN;

    Visualiza las trayectorias de los satélites.

    figure
    skyplot(allAz,allEl,satID)

    Figure contains an object of type skyplot.

    Animar las trayectorias de los satélites.

    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.

    Argumentos de entrada

    contraer todo

    Nombre de archivo de almanaque SEM, especificado como una cadena escalar o un vector de caracteres. El nombre del archivo puede incluir una ruta absoluta, una ruta relativa o ninguna ruta. El nombre del archivo también puede incluir las extensiones del archivo.

    Ejemplo: "semalmanac_2022-1-18.al3"

    Ejemplo: "mydir/semalmanac_2022-1-18.al3"

    Ejemplo: "C:/mydir/semalmanac_2022-1-18.al3"

    Tipos de datos: char | string

    Fecha de referencia, especificada como una de estas cadenas válidas datetime que coinciden con las fechas de transferencia del número de semana GPS:

    • "06-Jan-1980"

    • "21-Aug-1999"

    • "06-Apr-2019"

    Estas fechas ocurren cada 1024 semanas, a partir del 6 de enero de 1980 a las 00:00 (UTC). El valor predeterminado es una cadena datetime que coincide con la fecha de transferencia del número de semana GPS más reciente antes del día actual.

    Ejemplo: GPSWeekEpoch="21-Aug-1999"

    Tipos de datos: char | string

    Argumentos de salida

    contraer todo

    Parámetros de cada satélite, devueltos como timetable con una fila para cada registro y una columna para cada parámetro en ese registro. Encuentre más información sobre la definición de parámetros del almanaque SEM, consulte la Tabla 40-II en ICD-GPS-240D [2].

    ParámetrosTipo de datosDescripción
    Timedatetime

    Hora del reloj GPS, calculada usando GPSWeekNumber y GPSTimeOfApplicability.

    GPSWeekNumberdouble

    Número de semana GPS, continuo, no mod(1024).

    GPSTimeOfApplicabilitydouble

    Número de segundos desde el inicio del número de semana GPS.

    PRNNumberdouble

    Número de ruido pseudoaleatorio del satélite.

    SVNdouble

    Número de referencia del vehículo espacial del satélite.

    AverageURANumberdouble

    Número URA promedio del satélite.

    Eccentricitydouble

    Excentricidad de la órbita.

    InclinationOffsetdouble

    Ángulo de inclinación desplazado de 54 grados, en semicírculos.

    RateOfRightAscensiondouble

    Tasa de cambio en la medida del ángulo de ascensión recta, en semicírculos por segundo.

    SqrtOfSemiMajorAxisdouble

    Raíz cuadrada del semieje mayor, en metros1/2.

    GeographicLongitudeOfOrbitalPlanedouble

    Longitud geográfica del plano orbital en la época semanal, en semicírculos.

    ArgumentOfPerigeedouble

    Ángulo desde el ecuador hasta el perigeo, en semicírculos.

    MeanAnomalydouble

    Ángulo de posición del satélite en su órbita respecto al perigeo, en semicírculos.

    ZerothOrderClockCorrectiondouble

    Término de corrección del reloj de orden cero del almanaque satelital, en segundos.

    FirstOrderClockCorrectiondouble

    Término de corrección del reloj de primer orden del almanaque satelital, en segundos por segundo.

    SatelliteHealthdouble

    Código de datos de salud del vehículo satelital.

    SatelliteConfigurationdouble

    Código de configuración del vehículo satélite.

    Título del almanaque, devuelto como un vector de caracteres.

    Sugerencias

    • Para descargar archivos de almanaque SEM del sitio web NAVCEN para la fecha actual, debe especificar una fecha 2 días antes de la fecha actual porque la hora de aplicabilidad del GPS es aproximadamente 70 horas más tarde que la hora de transmisión del conjunto de datos del almanaque. Consulte el ejemplo Leer datos de mensajes de navegación GPS del archivo SEM Almanac para obtener más detalles.

    Referencias

    [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.

    Historial de versiones

    Introducido en R2022b