Main Content

atmosnrlmsise00

Implement mathematical representation of 2001 United States Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Exosphere

Description

Syntax Using Default Arguments

[T rho] = atmosnrlmsise00(altitude,latitude,longitude,year,dayOfYear,UTseconds) implements the mathematical representation of the 2001 United States Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Exosphere (NRLMSISE-00) of the MSIS® class model. NRLMSISE-00 calculates the neutral atmosphere empirical model from the surface to lower exosphere (0 m to 1,000,000 m). Optionally, it performs this calculation including contributions from anomalous oxygen that can affect satellite drag above 500,000 m.

example

Syntaxes Using Specified Arguments

[T rho] = atmosnrlmsise00(___,localApparentSolarTime) specifies an array of m local apparent solar time (hours). Specify localApparentSolarTime after all other input arguments in previous syntaxes.

[T rho] = atmosnrlmsise00(___,f107Average,f107Daily,magneticIndex) specifies arrays of m 81-day average of F10.7 flux (centered on dayOfYear), m-by-1 daily F10.7 flux for previous day, and m-by-7 array of magnetic index information. Specify f107Average, f107Daily, and magneticIndex after all other input arguments in previous syntaxes. As a convenience, consider using the fluxSolarAndGeomagnetic function to specify the f107Average, f107Daily, and magneticIndex variables.

[T rho] = atmosnrlmsise00(___,flags) specifies an array of 23 flags to enable or disable particular variations for the outputs. Specify flags after all other input arguments in previous syntaxes.

[T rho] = atmosnrlmsise00(___,otype) specifies a character vector or string for total mass density output. Specify otype after all other input arguments in previous syntaxes.

[T rho] = atmosnrlmsise00(___,action) specifies an out-of-range input action. Specify action after all other input arguments in previous syntaxes.

example

Examples

collapse all

Calculate the temperatures, densities not including anomalous oxygen using the NRLMSISE-00 model at 10,000 m, 45 degrees latitude, -50 degrees longitude.

[T rho] = atmosnrlmsise00( 10000, 45, -50, 2007, 4, 0)
T = 1×2
103 ×

    1.0273    0.2212

rho = 1×9
1024 ×

    0.0000         0    6.6824    1.7927    0.0799    0.0000         0         0         0

Calculate the temperatures, densities not including anomalous oxygen using the NRLMSISE-00 model at 10,000 m, 45 degrees latitude, -50 degrees longitude and 25,000 m, 47 degrees latitude, -55 degrees longitude.

[T rho] = atmosnrlmsise00( [10000; 25000], [45; 47], ...
[-50; -55], [2007; 2007], [4; 4], [0; 0])
T = 2×2
103 ×

    1.0273    0.2212
    1.0273    0.2116

rho = 2×9
1024 ×

    0.0000         0    6.6824    1.7927    0.0799    0.0000         0         0         0
    0.0000         0    0.6347    0.1703    0.0076    0.0000         0         0         0

Calculate the temperatures, densities including anomalous oxygen using the NRLMSISE-00 model at 10,000 m, 45 degrees latitude, -50 degrees longitude. This calculation uses the date January 4, 2007 at 0 UT. It uses default values for flux, magnetic index data, and local solar time with out-of-range actions generating errors.

[T rho] = atmosnrlmsise00( 10000, 45, -50, 2007, ...
4, 0, 'Oxygen', 'Error')
T = 1×2
103 ×

    1.0273    0.2212

rho = 1×9
1024 ×

    0.0000         0    6.6824    1.7927    0.0799    0.0000         0         0         0

Calculate the temperatures and densities, including anomalous oxygen, using the NRLMSISE-00 model at 100,000 m, 45 degrees latitude, -50 degrees longitude. This calculation uses the date January 4, 2007 at 0 UT seconds. It utilizes the fluxSolarAndGeomagnetic function to define values for flux, magnetic index data, and default local solar time. The example specifies that the action for out-of-range input is to generate no message.

[f107a,f107,aph] = fluxSolarAndGeomagnetic(2007,4,0,'Celestrackdata.mat');
flags = ones(1,23);
flags(9) = -1;
[T rho] = atmosnrlmsise00( 100000, 45, -50, 2007, 4, 0, f107a, f107, ...  
aph, flags, 'Oxygen', 'None')
T = 1×2
103 ×

    1.0273    0.1918

rho = 1×9
1018 ×

    0.0001    0.4254    7.8246    1.9489    0.0806    0.0000    0.0000    0.0000    0.0000

Input Arguments

collapse all

Altitudes, specified as an m-by-1 array in meters.

Data Types: double

Geodetic latitudes, specified as an m-by-1 array in degrees.

Data Types: double

Geodetic longitudes, specified as an m-by-1 array in degrees.

Tip

The NRLMSISE-00 model uses UTseconds, localApparentSolarTime, and longitude independently. These arguments are not of equal importance for every situation. For the most physically realistic calculation, choose these three variables to be consistent by default:

 localApparentSolarTime = UTseconds/3600 + longitude/15

If available, you can include variations from this equation for localApparentSolarTime, but they are of minor importance.

Data Types: double

Year, specified as an m-by-1 array. This function ignores the value of year.

Data Types: double

Day or year, specified as an m-by-1 array. For more information, see day.

Data Types: double

Universal time (UT), specified as an m-by-1 array in seconds.

Tip

The NRLMSISE-00 model uses UTseconds, localApparentSolarTime, and longitude independently. These arguments are not of equal importance for every situation. For the most physically realistic calculation, choose these three variables to be consistent by default:

 localApparentSolarTime = UTseconds/3600 + longitude/15

If available, you can include variations from this equation for localApparentSolarTime, but they are of minor importance.

Data Types: double

Local apparent solar times, specified as an m-by-1 array in hours.

Tip

The NRLMSISE-00 model uses UTseconds, localApparentSolarTime, and longitude independently. These arguments are not of equal importance for every situation. For the most physically realistic calculation, choose these three variables to be consistent by default:

 localApparentSolarTime = UTseconds/3600 + longitude/15

If available, you can include variations from this equation for localApparentSolarTime, but they are of minor importance.

Data Types: double

81 day average of F10.7 flux, centered on day of year (dayOfYear), specified as an m-by-1 array or 150. The effects of f107Average are not large or established below 80,000 m.

These f107Average values correspond to the 10.7 cm radio flux at the actual distance of the Earth from the Sun. The f107Average values do not correspond to the radio flux at 1 AU. The following site provides both classes of values: https://www.ngdc.noaa.gov/stp/space-weather/solar-data/solar-features/solar-radio/noontime-flux/penticton/

For limitations, see Limitations.

Dependencies

If you specify f107Average, you must also specify f107Daily and magneticIndex.

Data Types: string

Daily F10.7 flux for previous day, specified as an m-by-1 array or 150. The effects of f107Daily are not large or established below 80,000 m.

These f107Daily values correspond to the 10.7 cm radio flux at the actual distance of the Earth from the Sun. The f107Daily values do not correspond to the radio flux at 1 AU. The following site provides both classes of values: https://www.ngdc.noaa.gov/stp/space-weather/solar-data/solar-features/solar-radio/noontime-flux/penticton/

For limitations, see Limitations.

Dependencies

If you specify f107Daily, you must also specify f107Average and magneticIndex.

Data Types: string

Magnetic index information, specified as an m-by-7 array. This information consists of:

  • Daily magnetic index (AP)

  • 3-hour AP for current time

  • 3-hour AP for 3 hours before current time

  • 3-hour AP for 6 hours before current time

  • 3-hour AP for 9 hours before current time

  • Average of eight 3-hour AP indices from 12 to 33 hours before current time

  • Average of eight 3-hour AP indices from 36 to 57 hours before current time

The effects of daily magnetic index are not large or established below 80,000 m. As a result, the function sets the default value to 4. It sets all other indices to 0 by default. For limitations, see Limitations.

Dependencies

If you specify magneticIndex, you must also specify f107Average and f107Daily.

Data Types: double

Output variations, specified as a m-by-1 array. If the flags array length, m, is 23 and you have not specified all available inputs, this function assumes that flags is set.

The flags enable or disable particular variations for the outputs.

FieldDescription
Flags(1)

F10.7 effect on mean

Flags(2)

Independent of time

Flags(3)

Symmetrical annual

Flags(4)

Symmetrical semiannual

Flags(5)

Asymmetrical annual

Flags(6)

Asymmetrical semiannual

Flags(7)

Diurnal

Flags(8)

Semidiurnal

Flags(9)

Daily AP. If you set this field to -1, the function uses the entire matrix of magnetic index information (APH) instead of APH(:,1).

Flags(10)

All UT seconds, longitudinal effects

Flags(11)

Longitudinal

Flags(12)

UT seconds and mixed UT seconds, longitudinal

Flags(13)

Mixed AP, UT seconds, longitudinal

Flags(14)

Terdiurnal

Flags(15)

Departures from diffusive equilibrium

Flags(16)

All exospheric temperature variations

Flags(17)

All variations from 120,000 meter temperature (TLB)

Flags(18)

All lower thermosphere (TN1) temperature variations

Flags(19)

All 120,000 meter gradient (S) variations

Flags(20)

All upper stratosphere (TN2) temperature variations

Flags(21)

All variations from 120,000 meter values (ZLB)

Flags(22)

All lower mesosphere temperature (TN3) variations

Flags(23)

Turbopause scale height variations

Data Types: string

Total mass density output, specified as one of these values.

'Oxygen'

Total mass density outputs include anomalous oxygen number density.

'NoOxygen'

Total mass density outputs do not include anomalous oxygen number density.

Data Types: string

Action for out-of-range input, specified as:

  • 'Error' — Displays warning and indicates that the input is out of range.

  • 'Warning' — Displays error and indicates that the input is out of range.

  • 'None' — Does not display warning or error.

Data Types: char | string

Output Arguments

collapse all

Temperatures, returned as an N-by-2 array in kelvin. The first column of the array is exospheric temperatures. The second column of the array is temperatures at altitude.

Densities (kg/m3 or 1/m3) in selected density units, returned as an N-by-9 array in selected density units. The column order is:

  • Density of He, in 1/m3

  • Density of O, in 1/m3

  • Density of N2, in 1/m3

  • Density of O2, in 1/m3

  • Density of Ar, in 1/m3

  • Total mass density, in kg/m3

  • Density of H, in 1/m3

  • Density of N, in 1/m3

  • Anomalous oxygen number density, in 1/m3

density(6), total mass density, is the sum of the mass densities of He, O, N2, O2, Ar, H, and N. Optionally, density(6) can include the mass density of anomalous oxygen making density(6), the effective total mass density for drag.

Limitations

  • This function has the limitations of the NRLMSISE-00 model. For more information, see the NRLMSISE-00 model documentation.

  • If array length, m, is 23 and all available inputs are not specified, the function assumes that flags is set.

  • f107Average and f107Daily values that generate the model correspond to the 10.7 cm radio flux at the actual distance of the Earth from the Sun rather than the radio flux at 1 AU. This site provides both classes of values: https://www.ngdc.noaa.gov/stp/space-weather/solar-data/solar-features/solar-radio/noontime-flux/penticton/.

Version History

Introduced in R2007b