Exemplo n.º 1
0
def apply_transform(features_DC,
                    features_IC,
                    output_labels=None,
                    energy_factor=100.,
                    track_factor=200.,
                    transform="MaxAbs",
                    transform_output=True):
    from scaler_transformations import TransformData, new_transform
    static_stats = [25., 4000., 4000., 4000., 2000.]
    low_stat_DC = static_stats
    high_stat_DC = static_stats
    low_stat_IC = static_stats
    high_stat_IC = static_stats
    input_transform_factors = np.array([high_stat_DC, high_stat_IC])

    features_DC = new_transform(features_DC)
    features_DC = TransformData(features_DC,
                                low_stats=low_stat_DC,
                                high_stats=high_stat_DC,
                                scaler=transform)
    features_IC = new_transform(features_IC)
    features_IC = TransformData(features_IC,
                                low_stats=low_stat_IC,
                                high_stats=high_stat_IC,
                                scaler=transform)

    output_label_names = np.array([
        "Energy", "Zenith", "Azimuth", "Time", "X", "Y", "Z", "Track",
        "IsTrack", "Flavor", "IsAntineutrino", "IsCC"
    ])
    output_names = np.array(output_label_names)
    output_transform_factors = np.ones((len(output_names)))
    if transform_output:

        # switch track and azimuth positions
        track = np.copy(output_labels[:, 7])
        azimuth = np.copy(output_labels[:, 2])

        #Make changes to output_labels array
        output_labels[:,
                      0] = output_labels[:, 0] / float(energy_factor)  #energy
        output_labels[:, 1] = np.cos(output_labels[:, 1])  #cos zenith
        output_labels[:,
                      2] = track / float(track_factor)  #MAKE TRACK THIRD INPUT
        output_labels[:, 7] = azimuth  #MOVE AZIMUTH TO WHERE TRACK WAS

        #Track changes in output arrarys
        output_label_names[1] = "Cosine Zenith"
        output_label_names[2] = "Track"
        output_label_names[7] = "Azimuth"
        output_transform_factors[0] = energy_factor
        output_transform_factors[2] = track_factor

        return features_DC, features_IC, output_labels, output_label_names, input_transform_factors, output_transform_factors
Exemplo n.º 2
0
def apply_transform(features_DC, features_IC, labels=None, energy_factor=100., track_factor=200.,transform="MaxAbs"):
    from scaler_transformations import TransformData, new_transform
    static_stats = [25., 4000., 4000., 4000., 2000.]
    low_stat_DC = static_stats
    high_stat_DC = static_stats
    low_stat_IC = static_stats
    high_stat_IC = static_stats

    features_DC = new_transform(features_DC)
    features_DC = TransformData(features_DC, low_stats=low_stat_DC, high_stats=high_stat_DC, scaler=transform)
    features_IC = new_transform(features_IC)
    features_IC = TransformData(features_IC, low_stats=low_stat_IC, high_stats=high_stat_IC, scaler=transform)

    return features_DC, features_IC
Exemplo n.º 3
0
    full_reco=full_reco, full_initial_stats=full_initial_stats,\
    full_num_pulses=full_num_pulses,full_weights=full_weights,use_old_reco_flag=use_old_reco)

# Check that it follows the usual energy and CC cuts
over_emax = full_labels[:, 0] > emax
under_emin = full_labels[:, 0] < emin
assert sum(over_emax) == 0, "Have events greater than emax in final sample"
assert sum(under_emin) == 0, "Have events less than emin in final sample"
if cut_name == "CC":
    isCC = full_labels[:, 11] == 1
    assert sum(isCC) == full_labels.shape[0], "Have NC events in data"

#Transform Input Data
from scaler_transformations import TransformData, new_transform

full_features_DC = new_transform(full_features_DC)
full_features_DC = TransformData(full_features_DC,
                                 low_stats=low_stat_DC,
                                 high_stats=high_stat_DC,
                                 scaler=transform)
print("Finished DC")

full_features_IC = new_transform(full_features_IC)
full_features_IC = TransformData(full_features_IC,
                                 low_stats=low_stat_IC,
                                 high_stats=high_stat_IC,
                                 scaler=transform)
print("Finished IC")

print("Finished transforming the data using %s Scaler" % transform)
Exemplo n.º 4
0
if shuffle:
    print("Starting shuffle...")
    from handle_data import Shuffler

    features_DC, features_IC, labels, \
    old_reco, initial_stats, num_pulses = \
    Shuffler(features_DC,features_IC,labels, \
    old_reco, initial_stats, num_pulses, use_old_reco_flag=use_old_reco)

    print("Finished shuffling...")

#Transform Input Data
print("Starting transformation of input features...")
from scaler_transformations import TransformData, new_transform

features_DC_partial_transform = new_transform(features_DC)
del features_DC
features_DC_full_transform = TransformData(features_DC_partial_transform,
                                           low_stats=low_stat_DC,
                                           high_stats=high_stat_DC,
                                           scaler=transform)
del features_DC_partial_transform
print("Finished DC")

features_IC_partial_transform = new_transform(features_IC)
del features_IC
features_IC_full_transform = TransformData(features_IC_partial_transform,
                                           low_stats=low_stat_IC,
                                           high_stats=high_stat_IC,
                                           scaler=transform)
del features_IC_partial_transform