semread
Descripción
Ejemplos
Leer datos de mensajes de navegación GPS del archivo SEM Almanac
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'
Ver posiciones de satélite desde el archivo de almanaque SEM para la posición del receptor
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))
Trazar trayectorias de satélites a lo largo del tiempo a partir del archivo SEM Almanac
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)
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
Argumentos de entrada
filename
— Nombre del archivo del almanaque SEM
escalar de cadena | vector de caracteres
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
refdate
— Fecha de referencia
"06-Jan-1980"
| "21-Aug-1999"
| "06-Apr-2019"
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
data
— Parámetros de cada satélite.
calendario
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ámetros | Tipo de datos | Descripción |
---|---|---|
Time | datetime | Hora del reloj GPS, calculada usando |
GPSWeekNumber | double | Número de semana GPS, continuo, no |
GPSTimeOfApplicability | double | Número de segundos desde el inicio del número de semana GPS. |
PRNNumber | double | Número de ruido pseudoaleatorio del satélite. |
SVN | double | Número de referencia del vehículo espacial del satélite. |
AverageURANumber | double | Número URA promedio del satélite. |
Eccentricity | double | Excentricidad de la órbita. |
InclinationOffset | double | Ángulo de inclinación desplazado de 54 grados, en semicírculos. |
RateOfRightAscension | double | Tasa de cambio en la medida del ángulo de ascensión recta, en semicírculos por segundo. |
SqrtOfSemiMajorAxis | double | Raíz cuadrada del semieje mayor, en metros1/2. |
GeographicLongitudeOfOrbitalPlane | double | Longitud geográfica del plano orbital en la época semanal, en semicírculos. |
ArgumentOfPerigee | double | Ángulo desde el ecuador hasta el perigeo, en semicírculos. |
MeanAnomaly | double | Ángulo de posición del satélite en su órbita respecto al perigeo, en semicírculos. |
ZerothOrderClockCorrection | double | Término de corrección del reloj de orden cero del almanaque satelital, en segundos. |
FirstOrderClockCorrection | double | Término de corrección del reloj de primer orden del almanaque satelital, en segundos por segundo. |
SatelliteHealth | double | Código de datos de salud del vehículo satelital. |
SatelliteConfiguration | double | Código de configuración del vehículo satélite. |
title
— Título del almanaque
vector de caracteres
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
Consulte también
rinexread
| yumaread
| gnssconstellation
| skyplot
| lookangles
| websave
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)