def __init__(self, dn, lat, lon, alt, user_ind=False): import numpy as np from get_apmsis import get_apmsis nan = float('nan') # record input: self.dn = dn self.lat = lat self.lon = lon self.alt = alt self.doy = self.dn.timetuple().tm_yday self.utc_sec = self.dn.hour*3600. + self.dn.minute*60. self.utc_hour = self.dn.hour self.slt_hour = np.mod(self.utc_sec/3600. + self.lon/15., 24) self.iyd = np.mod(self.dn.year,100)*1000 + self.doy # initialize variables: # --------------------- # for kp, ap function self.kp = nan self.ap = nan self.f107 = nan self.f107a = nan self.kp_daily = nan self.ap_daily = nan self.apmsis = [nan,]*7 self.dst = nan # for iri: self.ne = nan ions = ['O+', 'H+', 'HE+', 'O2+', 'NO+'] self.ni={} for ion in ions: self.ni[ion] = nan self.Ti = nan self.Te = nan self.Tn_iri = nan # for msis: self.Tn_msis = nan self.nn = {} for neutral in ['HE','O','N2','O2','AR','H','N','O_anomalous']: self.nn[neutral] = nan self.rho = nan # for hwm 93/07: self.u = nan self.v = nan self.hwm_version = nan # for igrf: self.Bx = nan self.By = nan self.Bz = nan self.B = nan self.dip = nan self.dec = nan # for run_airglow: self.ag6300 = nan if not user_ind: # call the indice models: self.get_indices() self.apmsis = get_apmsis(self.dn)
def __init__( self, dn, lat, lon, alt, user_ind=False, ): """ An instance of Point is the fundamental data object for running each climatological model. Instantation of a Point initializes member variables, and also grabs the corresponding geophysical indices. :param dn: datetime.datetime object :param lat: Latitude [degrees] :param lon: Longitude [degrees] :param alt: Altitude [km] :param user_ind: (optional) Boolean switch to calculate geophysical indices. If True, then it is up to the user to assign geophysical indices to the Point """ nan = float('nan') # Record input: self.dn = dn self.lat = lat self.lon = lon self.alt = alt # Error if date is too early if self.dn.year < 1932: raise ValueError('Date cannot be before 1932!') # Time variables: self.doy = self.dn.timetuple().tm_yday self.utc_sec = self.dn.hour * 3600. + self.dn.minute * 60. self.utc_hour = self.dn.hour self.slt_hour = np.mod(self.utc_sec / 3600. + self.lon / 15., 24) self.iyd = np.mod(self.dn.year, 100) * 1000 + self.doy # For kp, ap function self.kp = nan self.ap = nan self.f107 = nan self.f107a = nan self.f107p = nan # previous day's F10.7 self.kp_daily = nan self.ap_daily = nan self.apmsis = [ nan, ] * 7 self.dst = nan self.ae = nan # For iri: self.ne = nan ions = ['O+', 'H+', 'HE+', 'O2+', 'NO+'] self.ni = {} for ion in ions: self.ni[ion] = nan self.Ti = nan self.Te = nan self.Tn_iri = nan self.NmF2 = nan self.hmF2 = nan # For msis: self.Tn_msis = nan self.nn = {} for neutral in ['HE', 'O', 'N2', 'O2', 'AR', 'H', 'N', 'O_anomalous']: self.nn[neutral] = nan self.rho = nan # For hwm 93/07: self.u = nan self.v = nan self.hwm_version = nan # For igrf: self.Bx = nan self.By = nan self.Bz = nan self.B = nan self.dip = nan self.dec = nan # For run_airglow: self.ag6300 = nan self.ag7774 = nan # Flag for user indices: self.user_ind = user_ind if not self.user_ind: # Call the indice models: self.get_indices() self.apmsis = get_apmsis(self.dn)
def __init__(self, dn, lat, lon, alt, user_ind=False): import numpy as np from get_apmsis import get_apmsis nan = float('nan') # record input: self.dn = dn self.lat = lat self.lon = lon self.alt = alt self.doy = self.dn.timetuple().tm_yday self.utc_sec = self.dn.hour * 3600. + self.dn.minute * 60. self.utc_hour = self.dn.hour self.slt_hour = np.mod(self.utc_sec / 3600. + self.lon / 15., 24) self.iyd = np.mod(self.dn.year, 100) * 1000 + self.doy # initialize variables: # --------------------- # for kp, ap function self.kp = nan self.ap = nan self.f107 = nan self.f107a = nan self.kp_daily = nan self.ap_daily = nan self.apmsis = [ nan, ] * 7 self.dst = nan # for iri: self.ne = nan ions = ['O+', 'H+', 'HE+', 'O2+', 'NO+'] self.ni = {} for ion in ions: self.ni[ion] = nan self.Ti = nan self.Te = nan self.Tn_iri = nan # for msis: self.Tn_msis = nan self.nn = {} for neutral in ['HE', 'O', 'N2', 'O2', 'AR', 'H', 'N', 'O_anomalous']: self.nn[neutral] = nan self.rho = nan # for hwm 93/07: self.u = nan self.v = nan self.hwm_version = nan # for igrf: self.Bx = nan self.By = nan self.Bz = nan self.B = nan self.dip = nan self.dec = nan # for run_airglow: self.ag6300 = nan if not user_ind: # call the indice models: self.get_indices() self.apmsis = get_apmsis(self.dn)