-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathplot_events.py
More file actions
109 lines (89 loc) · 4.54 KB
/
plot_events.py
File metadata and controls
109 lines (89 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import sys
import glob
import os
import argparse
import configparser
from tools.data_tools import get_data_generator
from tools.plotting_tools import plot_feature_label, plot_categories
def argument_parser():
ap = argparse.ArgumentParser()
ap.add_argument("-e", "--events", required=True,
help="Choose number of events to run over.")
return vars(ap.parse_args())
def main():
args = argument_parser()
try:
NUM_EVENTS = int(args["events"])
print("Running over {} events.".format(NUM_EVENTS))
except ValueError:
print("\nError: Events should be an integer.")
print("Exiting!\n")
sys.exit(1)
config = configparser.ConfigParser()
config_path = os.path.join("configurations", "master_configuration.ini")
config.read(config_path)
print("\nReading info from configuration:")
IMAGE_WIDTH = int(config["DEFAULT"]["IMAGE_WIDTH"])
IMAGE_HEIGHT = int(config["DEFAULT"]["IMAGE_HEIGHT"])
IMAGE_DEPTH = int(config["DEFAULT"]["IMAGE_DEPTH"])
CLASS_NAMES = config["DEFAULT"]["CLASS_NAMES"].split()
FEATURE_FILE_TRAINING = config["DEFAULT"]["FEATURE_FILE_TRAINING"]
LABEL_FILE_TRAINING = config["DEFAULT"]["LABEL_FILE_TRAINING"]
FEATURE_FILE_VALIDATION = config["DEFAULT"]["FEATURE_FILE_VALIDATION"]
LABEL_FILE_VALIDATION = config["DEFAULT"]["LABEL_FILE_VALIDATION"]
FEATURE_FILE_TESTING = config["DEFAULT"]["FEATURE_FILE_TESTING"]
LABEL_FILE_TESTING = config["DEFAULT"]["LABEL_FILE_TESTING"]
print("IMAGE_WIDTH: {}".format(IMAGE_WIDTH))
print("IMAGE_HEIGHT: {}".format(IMAGE_HEIGHT))
print("IMAGE_DEPTH: {}".format(IMAGE_DEPTH))
print("CLASS_NAMES: {}".format(CLASS_NAMES))
print("FEATURE_FILE_TRAINING: {}".format(FEATURE_FILE_TRAINING))
print("LABEL_FILE_TRAINING: {}".format(LABEL_FILE_TRAINING))
print("FEATURE_FILE_VALIDATION: {}".format(FEATURE_FILE_VALIDATION))
print("LABEL_FILE_VALIDATION: {}".format(LABEL_FILE_VALIDATION))
print("FEATURE_FILE_TESTING: {}".format(FEATURE_FILE_TESTING))
print("LABEL_FILE_TESTING: {}\n".format(LABEL_FILE_TESTING))
print()
generator_training = get_data_generator(FEATURE_FILE_TRAINING, LABEL_FILE_TRAINING)
generator_validation = get_data_generator(FEATURE_FILE_VALIDATION, LABEL_FILE_VALIDATION)
generator_testing = get_data_generator(FEATURE_FILE_TESTING, LABEL_FILE_TESTING)
plot_path = os.path.join("plots", "events", "*.pdf")
files = glob.glob(plot_path)
for f in files:
os.remove(f)
count = 0
for X, y in generator_training:
if count >= NUM_EVENTS:
break
count += 1
feature_image = X.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
label_image = y.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
plot_feature_label_path = os.path.join("plots", "events", "feature_label_training_event_{}.pdf".format(count))
plot_feature_label(feature_image, label_image, 'Feature', 'Label', CLASS_NAMES, plot_feature_label_path)
plot_categories_path = os.path.join("plots", "events", "categories_training_event_{}.pdf".format(count))
plot_categories(feature_image, label_image, CLASS_NAMES, plot_categories_path)
count = 0
for X, y in generator_validation:
if count >= NUM_EVENTS:
break
count += 1
feature_image = X.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
label_image = y.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
plot_feature_label_path = os.path.join("plots", "events", "feature_label_validaiton_event_{}.pdf".format(count))
plot_feature_label(feature_image, label_image, 'Feature', 'Label', CLASS_NAMES, plot_feature_label_path)
plot_categories_path = os.path.join("plots", "events", "categories_validation_event_{}.pdf".format(count))
plot_categories(feature_image, label_image, CLASS_NAMES, plot_categories_path)
count = 0
for X, y in generator_testing:
if count >= NUM_EVENTS:
break
count += 1
feature_image = X.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
label_image = y.reshape(IMAGE_WIDTH, IMAGE_HEIGHT)
plot_feature_label_path = os.path.join("plots", "events", "feature_label_testing_event_{}.pdf".format(count))
plot_feature_label(feature_image, label_image, 'Feature', 'Label', CLASS_NAMES, plot_feature_label_path)
plot_categories_path = os.path.join("plots", "events", "categories_testing_event_{}.pdf".format(count))
plot_categories(feature_image, label_image, CLASS_NAMES, plot_categories_path)
print("\nDone! Plots are saved in \plots!\n")
if __name__ == "__main__":
main()