public class MarshallSolarActivityFutureEstimation extends AbstractSelfFeedingLoader implements DataLoader, DTM2000InputParameters, NRLMSISE00InputParameters
The data are retrieved through the NASA Marshall Solar Activity Future Estimation (MSAFE) as estimates of monthly F10.7 Mean solar flux and Ap geomagnetic parameter. The data can be retrieved at the NASA Marshall Solar Activity website. Here Kp indices are deduced from Ap indexes, which in turn are tabulated equivalent of retrieved Ap values.
If several MSAFE files are available, some dates may appear in several files (for example August 2007 is in all files from the first one published in March 1999 to the February 2008 file). In this case, the data from the most recent file is used and the older ones are discarded. The date of the file is assumed to be 6 months after its first entry (which explains why the file having August 2007 as its first entry is the February 2008 file). This implies that MSAFE files must not be edited to change their time span, otherwise this would break the old entries overriding mechanism.
With these data, the getInstantFlux(AbsoluteDate)
and getMeanFlux(AbsoluteDate)
methods return the same values and the get24HoursKp(AbsoluteDate)
and getThreeHourlyKP(AbsoluteDate)
methods return the same values.
Conversion from Ap index values in the MSAFE file to Kp values used by atmosphere models is done using Jacchia's equation in [1].
With these data, the getAp(AbsoluteDate date)
method returns an array
of seven times the same daily Ap value, i.e. it is suited to be used only with
the NRLMSISE00
atmospheric
model where the switch #9 is set to 1.
Modifier and Type | Class and Description |
---|---|
static class |
MarshallSolarActivityFutureEstimation.StrengthLevel
Strength level of activity.
|
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_SUPPORTED_NAMES
Default regular expression for the supported name that work with all officially published files.
|
Constructor and Description |
---|
MarshallSolarActivityFutureEstimation(String supportedNames,
MarshallSolarActivityFutureEstimation.StrengthLevel strengthLevel)
Simple constructor.
|
MarshallSolarActivityFutureEstimation(String supportedNames,
MarshallSolarActivityFutureEstimation.StrengthLevel strengthLevel,
DataProvidersManager dataProvidersManager,
TimeScale utc)
Constructor that allows specifying the source of the MSAFE auxiliary data files.
|
Modifier and Type | Method and Description |
---|---|
double |
get24HoursKp(AbsoluteDate date)
The Kp index is derived from the Ap index.
|
double[] |
getAp(AbsoluteDate date)
Get the Ap geomagnetic indices.
|
double |
getAverageFlux(AbsoluteDate date)
Get the value of the 81 day average of F10.7 solar flux centered on current day.
|
double |
getDailyFlux(AbsoluteDate date)
Get the value of the daily F10.7 solar flux for previous day.
|
DateComponents |
getFileDate(AbsoluteDate date)
Get the date of the file from which data at the specified date comes from.
|
double |
getInstantFlux(AbsoluteDate date)
Get the value of the instantaneous solar flux.
|
AbsoluteDate |
getMaxDate()
Gets the available data range maximum date.
|
double |
getMeanFlux(AbsoluteDate date)
Get the value of the mean solar flux.
|
AbsoluteDate |
getMinDate()
Gets the available data range minimum date.
|
MarshallSolarActivityFutureEstimation.StrengthLevel |
getStrengthLevel()
Get the strength level for activity.
|
String |
getSupportedNames()
Get the supported names regular expression.
|
double |
getThreeHourlyKP(AbsoluteDate date)
Get the value of the 3 hours geomagnetic index.
|
void |
loadData(InputStream input,
String name)
Load data from a stream.
|
boolean |
stillAcceptsData()
Check if the loader still accepts new data.
|
feed, getDataProvidersManager, setSupportedNames
public static final String DEFAULT_SUPPORTED_NAMES
@DefaultDataContext public MarshallSolarActivityFutureEstimation(String supportedNames, MarshallSolarActivityFutureEstimation.StrengthLevel strengthLevel)
default data context
.
The original file names used by NASA Marshall space center are of the
form: may2019f10_prd.txt or Oct1999F10.TXT. So a recommended regular
expression for the supported name that work with all published files is:
DEFAULT_SUPPORTED_NAMES
.
supportedNames
- regular expression for supported files namesstrengthLevel
- selected strength level of activityMarshallSolarActivityFutureEstimation(String, StrengthLevel, DataProvidersManager, TimeScale)
public MarshallSolarActivityFutureEstimation(String supportedNames, MarshallSolarActivityFutureEstimation.StrengthLevel strengthLevel, DataProvidersManager dataProvidersManager, TimeScale utc)
supportedNames
- regular expression for supported files namesstrengthLevel
- selected strength level of activitydataProvidersManager
- provides access to auxiliary data files.utc
- UTC time scale.public MarshallSolarActivityFutureEstimation.StrengthLevel getStrengthLevel()
public String getSupportedNames()
AbstractSelfFeedingLoader
getSupportedNames
in class AbstractSelfFeedingLoader
DataProvidersManager.feed(String, DataLoader)
public AbsoluteDate getMinDate()
getMinDate
in interface DTM2000InputParameters
getMinDate
in interface NRLMSISE00InputParameters
public AbsoluteDate getMaxDate()
getMaxDate
in interface DTM2000InputParameters
getMaxDate
in interface NRLMSISE00InputParameters
public double getInstantFlux(AbsoluteDate date)
getInstantFlux
in interface DTM2000InputParameters
date
- the current datepublic double getMeanFlux(AbsoluteDate date)
getMeanFlux
in interface DTM2000InputParameters
date
- the current datepublic double getThreeHourlyKP(AbsoluteDate date)
getThreeHourlyKP
in interface DTM2000InputParameters
date
- the current datepublic DateComponents getFileDate(AbsoluteDate date)
If several MSAFE files are available, some dates may appear in several files (for example August 2007 is in all files from the first one published in March 1999 to the February 2008 file). In this case, the data from the most recent file is used and the older ones are discarded. The date of the file is assumed to be 6 months after its first entry (which explains why the file having August 2007 as its first entry is the February 2008 file). This implies that MSAFE files must not be edited to change their time span, otherwise this would break the old entries overriding mechanism.
date
- date of the solar activity datapublic double get24HoursKp(AbsoluteDate date)
The method used is explained on NOAA website. as follows:
The scale is 0 to 9 expressed in thirds of a unit, e.g. 5- is 4 2/3, 5 is 5 and 5+ is 5 1/3. The ap (equivalent range) index is derived from the Kp index as follows:
Kp | 0o | 0+ | 1- | 1o | 1+ | 2- | 2o | 2+ | 3- | 3o | 3+ | 4- | 4o | 4+ |
ap | 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 12 | 15 | 18 | 22 | 27 | 32 |
Kp | 5- | 5o | 5+ | 6- | 6o | 6+ | 7- | 7o | 7+ | 8- | 8o | 8+ | 9- | 9o |
ap | 39 | 48 | 56 | 67 | 80 | 94 | 111 | 132 | 154 | 179 | 207 | 236 | 300 | 400 |
get24HoursKp
in interface DTM2000InputParameters
date
- date of the Kp datapublic double getDailyFlux(AbsoluteDate date)
getDailyFlux
in interface NRLMSISE00InputParameters
date
- the current datepublic double getAverageFlux(AbsoluteDate date)
getAverageFlux
in interface NRLMSISE00InputParameters
date
- the current datepublic double[] getAp(AbsoluteDate date)
Ap indices are provided as an array such as:
getAp
in interface NRLMSISE00InputParameters
date
- the current datepublic void loadData(InputStream input, String name) throws IOException, ParseException, OrekitException
loadData
in interface DataLoader
input
- data input streamname
- name of the file (or zip entry)IOException
- if data can't be readParseException
- if data can't be parsed
or if some loader specific error occursOrekitException
public boolean stillAcceptsData()
This method is used to speed up data loading by interrupting crawling the data sets as soon as a loader has found the data it was waiting for. For loaders that can merge data from any number of sources (for example JPL ephemerides or Earth Orientation Parameters that are split among several files), this method should always return true to make sure no data is left over.
stillAcceptsData
in interface DataLoader
Copyright © 2002-2020 CS Group. All rights reserved.