1 /* Copyright 2002-2022 CS GROUP 2 * Licensed to CS GROUP (CS) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * CS licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.orekit.models.earth.atmosphere; 18 19 import java.io.Serializable; 20 21 import org.orekit.time.AbsoluteDate; 22 23 24 /** Container for solar activity data, compatible with NRLMSISE-00 atmosphere model. 25 * <p> 26 * This model needs daily and average F10.7 solar fluxes and 27 * A<sub>p</sub> geomagnetic indices to compute the local density. 28 * 29 * @author Pascal Parraud 30 */ 31 public interface NRLMSISE00InputParameters extends Serializable { 32 33 /** Gets the available data range minimum date. 34 * @return the minimum date. 35 */ 36 AbsoluteDate getMinDate(); 37 38 /** Gets the available data range maximum date. 39 * @return the maximum date. 40 */ 41 AbsoluteDate getMaxDate(); 42 43 /** Get the value of the daily F10.7 solar flux for previous day. 44 * @param date the current date 45 * @return the daily F10.7 flux for previous day 46 */ 47 double getDailyFlux(AbsoluteDate date); 48 49 /** Get the value of the 81 day average of F10.7 solar flux centered on current day. 50 * @param date the current date 51 * @return the 81 day average of F10.7 solar flux centered on current day 52 */ 53 double getAverageFlux(AbsoluteDate date); 54 55 /** Get the A<sub>p</sub> geomagnetic indices. 56 * <p> 57 * A<sub>p</sub> indices are provided as an array such as: 58 * <ul> 59 * <li>0 → daily A<sub>p</sub></li> 60 * <li>1 → 3 hr A<sub>p</sub> index for current time</li> 61 * <li>2 → 3 hr A<sub>p</sub> index for 3 hrs before current time</li> 62 * <li>3 → 3 hr A<sub>p</sub> index for 6 hrs before current time</li> 63 * <li>4 → 3 hr A<sub>p</sub> index for 9 hrs before current time</li> 64 * <li>5 → Average of eight 3 hr A<sub>p</sub> indices from 12 to 33 hrs 65 * prior to current time</li> 66 * <li>6 → Average of eight 3 hr A<sub>p</sub> indices from 36 to 57 hrs 67 * prior to current time</li> 68 * </ul> 69 * @param date the current date 70 * @return the array of A<sub>p</sub> indices 71 */ 72 double[] getAp(AbsoluteDate date); 73 74 }