def _gti_dirint_gte_90_kt_prime(aoi, solar_zenith, solar_azimuth, times,
                                kt_prime):
    """
    Determine kt' values to be used in GTI-DIRINT AOI >= 90 deg case.
    See Marion 2015 Section 2.2.

    For AOI >= 90 deg: average of the kt_prime values for 65 < AOI < 80
    in each day's morning and afternoon. Morning and afternoon are treated
    separately.

    For AOI < 90 deg: NaN.

    See gti_dirint signature for parameter details.

    Returns
    -------
    kt_prime_gte_90 : Series
        Index is `times`.
    """
    # kt_prime values from DIRINT calculation for AOI < 90 case
    # set the kt_prime from sunrise to AOI=90 to be equal to
    # the kt_prime for 65 < AOI < 80 during the morning.
    # similar for the afternoon. repeat for every day.
    aoi_gte_90 = aoi >= 90
    aoi_65_80 = (aoi > 65) & (aoi < 80)
    zenith_lt_90 = solar_zenith < 90
    morning = solar_azimuth < 180
    afternoon = solar_azimuth > 180
    aoi_65_80_morning = aoi_65_80 & morning
    aoi_65_80_afternoon = aoi_65_80 & afternoon
    zenith_lt_90_aoi_gte_90_morning = zenith_lt_90 & aoi_gte_90 & morning
    zenith_lt_90_aoi_gte_90_afternoon = zenith_lt_90 & aoi_gte_90 & afternoon

    kt_prime_gte_90 = []
    for date, data in kt_prime.groupby(times.date):
        kt_prime_am_avg = data[aoi_65_80_morning].mean()
        kt_prime_pm_avg = data[aoi_65_80_afternoon].mean()

        kt_prime_by_date = pd.Series(np.nan, index=data.index)
        kt_prime_by_date[zenith_lt_90_aoi_gte_90_morning] = kt_prime_am_avg
        kt_prime_by_date[zenith_lt_90_aoi_gte_90_afternoon] = kt_prime_pm_avg
        kt_prime_gte_90.append(kt_prime_by_date)
    kt_prime_gte_90 = pd.concat(kt_prime_gte_90)

    return kt_prime_gte_90
def _gti_dirint_gte_90_kt_prime ( aoi , solar_zenith , solar_azimuth , times , kt_prime ) : aoi_gte_90 = aoi >= 90 aoi_65_80 = ( aoi > 65 ) & ( aoi < 80 ) zenith_lt_90 = solar_zenith < 90 morning = solar_azimuth < 180 afternoon = solar_azimuth > 180 aoi_65_80_morning = aoi_65_80 & morning aoi_65_80_afternoon = aoi_65_80 & afternoon zenith_lt_90_aoi_gte_90_morning = zenith_lt_90 & aoi_gte_90 & morning zenith_lt_90_aoi_gte_90_afternoon = zenith_lt_90 & aoi_gte_90 & afternoon kt_prime_gte_90 = [ ] for date , data in kt_prime . groupby ( times . date ) : kt_prime_am_avg = data [ aoi_65_80_morning ] . mean ( ) kt_prime_pm_avg = data [ aoi_65_80_afternoon ] . mean ( ) kt_prime_by_date = pd . Series ( np . nan , index = data . index ) kt_prime_by_date [ zenith_lt_90_aoi_gte_90_morning ] = kt_prime_am_avg kt_prime_by_date [ zenith_lt_90_aoi_gte_90_afternoon ] = kt_prime_pm_avg kt_prime_gte_90 . append ( kt_prime_by_date ) kt_prime_gte_90 = pd . concat ( kt_prime_gte_90 ) return kt_prime_gte_90
Determine kt' values to be used in GTI-DIRINT AOI >= 90 deg case.
    See Marion 2015 Section 2.2.

    For AOI >= 90 deg: average of the kt_prime values for 65 < AOI < 80
    in each day's morning and afternoon. Morning and afternoon are treated
    separately.

    For AOI < 90 deg: NaN.

    See gti_dirint signature for parameter details.

    Returns
    -------
    kt_prime_gte_90 : Series
        Index is `times`.