atmosnrlmsise00

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

Syntax

``````[T rho] = atmosnrlmsise00(altitude,latitude,longitude,year,dayOfYear,UTseconds)``````
``````[T rho] = atmosnrlmsise00(___,localApparentSolarTime)``````
``````[T rho] = atmosnrlmsise00(___,f107Average,f107Daily,magneticIndex)``````
``````[T rho] = atmosnrlmsise00(___,flags)``````
``````[T rho] = atmosnrlmsise00(___,otype)``````
``````[T rho] = atmosnrlmsise00(___,action)``````

Description

Syntax Using Default Arguments

example

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

Syntaxes Using Specified Arguments

example

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

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