added argv support with class Arguments and Enum

This commit is contained in:
Sandro Zimmermann 2025-11-29 16:16:16 +01:00
parent 3bcbbdf544
commit c1a72b706d
9 changed files with 25098 additions and 2001 deletions

Binary file not shown.

View File

@ -15,7 +15,7 @@ FEATURES = ["points", "x", "y"]
def load_dataframe(): def load_dataframe():
try: try:
colum_list = FEATURES colum_list = FEATURES
df = pd.read_csv("data/shots.csv", usecols = colum_list).dropna() df = pd.read_csv("data/synthetic_data.csv", usecols = colum_list).dropna()
return df.abs() return df.abs()
except FileNotFoundError as error: except FileNotFoundError as error:
print(error) print(error)
@ -33,14 +33,11 @@ def calc_f1_score(y_true, y_pred):
tn = np.sum(np.multiply([i==False for i in y_pred], [not(j) for j in y_true])) tn = np.sum(np.multiply([i==False for i in y_pred], [not(j) for j in y_true]))
fp = np.sum(np.multiply([i==True for i in y_pred], [not(j) for j in y_true])) fp = np.sum(np.multiply([i==True for i in y_pred], [not(j) for j in y_true]))
fn = np.sum(np.multiply([i==False for i in y_pred], y_true)) fn = np.sum(np.multiply([i==False for i in y_pred], y_true))
'''print(tp)
print(fp)
precision = calc_precision(tp, fp) precision = calc_precision(tp, fp)
recall = calc_recall(tp, fn)''' recall = calc_recall(tp, fn)
if tp != 0 and fp != 0: '''if tp != 0 and fp != 0:
precision = calc_precision(tp, fp) precision = calc_precision(tp, fp)
else: else:
precision = 0 precision = 0
@ -48,7 +45,7 @@ def calc_f1_score(y_true, y_pred):
if tp != 0 and fn != 0: if tp != 0 and fn != 0:
recall = calc_recall(tp, fn) recall = calc_recall(tp, fn)
else: else:
recall = 0 recall = 0'''
if precision != 0 and recall != 0: if precision != 0 and recall != 0:
f1 = (2 * precision * recall) / (precision + recall) f1 = (2 * precision * recall) / (precision + recall)
@ -77,7 +74,6 @@ def main():
print(df.head()) print(df.head())
print(df.head().info()) print(df.head().info())
sns.countplot(x = df["points"]) sns.countplot(x = df["points"])
plt.show() plt.show()
@ -86,7 +82,6 @@ def main():
sns.scatterplot(x=df['x'], y=df['y'], hue=df['points']) sns.scatterplot(x=df['x'], y=df['y'], hue=df['points'])
plt.show() plt.show()
quit()
features = ["x", "y"] features = ["x", "y"]
X = df[features] X = df[features]

52
arguments.py Normal file
View File

@ -0,0 +1,52 @@
from enum import Enum
class Mode(Enum):
V = "v"
A = "a"
C = "c"
class Information(Enum):
DISABLED = False
ENABLED = True
class Graph(Enum):
DISABLED = False
ENABLED = True
class Arguments:
def __init__(self, file_path):
self.file_path = file_path
self.mode = None
self.information = None
self.graph = None
def get_file_path(self):
return self.file_path
def get_mode(self):
return self.mode
def set_mode(self, value):
try:
self.mode = Mode(value)
except ValueError:
raise ValueError(f"Invalid mode '{value}'. Allowed values: {[m.value for m in Mode]}")
def get_information(self):
return self.information
def set_information(self, value):
try:
self.information = Information(value)
except ValueError:
raise ValueError(f"Invalid information '{value}'. Allowed values: {[m.value for m in Information]}")
def get_graph(self):
return self.graph
def set_graph(self, value):
try:
self.graph = Graph(value)
except ValueError:
raise ValueError(f"Invalid graph '{value}'. Allowed values: {[m.value for m in Graph]}")

View File

@ -1,955 +0,0 @@
points,x,y
7,-2.5,-3.0
0,-11.0,-4.0
9,1.5,2.0
6,-3.5,4.5
10,0.5,-1.0
4,-6.5,1.0
8,2.5,1.5
0,12.5,6.5
10,0.0,-0.5
6,-4.5,3.5
7,-3.0,-3.5
6,5.0,0.0
0,-10.5,-4.0
7,-3.5,1.5
0,-10.5,-1.0
4,-1.0,-7.0
8,-1.0,2.5
8,2.5,-1.5
7,-1.5,4.0
6,-4.0,-3.0
6,-4.5,-1.0
7,4.0,-0.5
8,0.0,2.5
4,6.5,4.0
8,2.5,-1.5
7,-2.5,-2.5
7,-1.0,3.5
6,4.5,2.5
7,-4.0,0.0
7,-4.0,-2.5
9,2.5,-1.5
7,1.5,4.0
6,-5.0,-2.0
7,-3.0,-2.0
6,5.0,2.0
2,8.5,-3.5
8,-2.0,2.5
10,-0.5,-1.5
4,-7.5,1.0
8,-3.0,-0.5
8,-1.0,2.5
8,1.0,-3.0
10,-1.0,0.5
10,-1.0,0.5
9,-1.5,2.0
7,3.0,3.5
9,0.0,2.0
9,-1.5,2.0
9,-1.0,-1.5
6,4.5,-1.5
6,4.5,3.0
1,10.0,2.5
5,3.5,4.5
8,3.0,-1.5
9,1.5,0.5
0,10.5,8.0
7,-3.5,2.5
8,2.5,-2.0
3,-8.0,-3.5
4,7.0,2.0
8,1.5,2.5
6,3.5,4.0
4,-6.5,-3.5
5,4.0,5.0
8,1.5,3.0
6,2.5,-4.0
9,-2.0,-0.5
7,-4.0,-0.5
8,0.5,3.0
8,1.0,-3.0
4,6.0,4.0
6,-4.5,1.0
9,2.0,0.5
9,-2.0,-1.5
5,-5.0,3.5
5,3.5,-5.5
10,1.0,-1.0
9,3.0,1.0
8,-1.5,-2.5
3,7.5,4.0
10,-0.5,1.0
5,5.0,-3.0
10,-0.5,1.5
7,-2.0,3.5
9,0.0,2.0
8,-3.0,0.0
5,-5.5,-3.0
3,-8.0,2.5
7,3.5,3.5
7,1.5,-4.0
10,0.5,-1.0
8,3.5,1.0
10,1.0,0.5
5,-5.0,-3.0
9,-2.0,-0.5
7,-2.5,3.0
5,-2.5,6.0
10,-1.0,1.0
6,-1.5,-4.5
5,-5.5,-2.5
3,-6.0,6.0
7,-2.5,-3.5
4,2.0,6.5
7,-1.5,4.0
7,-2.5,3.0
6,-5.0,0.0
9,-1.5,-1.5
6,-4.5,-2.0
8,-1.0,-2.5
4,3.5,-6.0
5,4.0,5.5
10,-1.0,-1.0
5,3.0,6.0
5,-1.5,-5.5
6,-4.0,-3.0
5,-5.5,0.5
7,0.5,-4.0
3,-1.0,-7.5
10,-0.5,0.0
10,1.5,0.0
6,-4.5,-3.0
7,3.5,1.5
6,-4.0,-3.0
5,-5.0,-3.0
9,-1.5,-1.0
6,2.5,4.5
6,-1.5,-4.5
5,-2.5,-5.5
10,-0.5,0.0
6,4.0,-3.5
10,0.0,0.5
5,5.0,-4.0
9,-1.5,-1.5
7,-3.0,-3.0
5,-5.5,-4.0
0,10.0,3.5
9,-1.5,-1.0
9,-1.5,-2.0
7,-3.5,-2.0
8,-2.5,-0.5
6,-4.5,-1.5
4,-6.5,-1.0
5,-5.5,3.5
7,-2.0,-3.0
7,-2.5,-3.0
5,6.0,-1.0
8,-2.0,-2.5
7,2.0,-3.0
10,-1.0,-1.0
8,-3.0,-1.0
8,-2.5,-1.5
8,-1.5,-3.0
4,7.0,1.0
0,-16.0,-2.0
10,-1.0,0.5
7,3.0,2.5
9,-0.5,-2.5
7,3.5,-2.5
5,1.5,-5.5
0,8.5,9.0
7,-2.5,-3.0
7,-1.5,-4.0
7,-3.5,1.5
7,-2.0,-3.5
8,0.5,3.5
6,3.0,4.5
8,2.0,2.5
5,5.5,3.0
7,3.5,1.0
6,4.5,0.5
6,-1.5,-5.0
5,-5.5,-1.0
0,11.5,1.5
8,-3.0,-1.0
7,4.0,-1.0
4,4.5,-5.5
6,5.0,1.5
4,6.5,-1.5
6,2.5,-5.0
5,5.0,-4.5
6,5.0,2.5
6,-3.5,-4.0
10,1.5,1.5
6,-5.0,-1.0
7,-2.5,-3.0
6,-4.5,1.0
7,-3.5,1.0
7,4.0,1.5
10,0.5,0.5
3,7.5,1.0
6,-5.0,-1.5
10,1.5,0.0
8,-1.0,3.0
5,5.0,-3.5
10,0.5,0.5
5,5.5,-1.0
8,-1.5,-2.5
7,3.5,2.5
9,-2.0,-2.0
6,5.0,3.0
9,1.0,1.5
8,3.5,-1.5
10,-1.0,1.0
6,5.0,-1.0
9,-1.0,1.5
8,6.5,-1.0
6,-4.5,-2.0
5,3.5,5.0
7,-3.5,-2.0
7,-4.5,0.0
9,-0.5,2.0
8,-2.0,2.5
8,1.5,2.5
6,4.0,4.5
10,1.0,-1.5
8,0.5,3.5
4,7.0,2.0
4,-5.0,-4.5
8,-0.5,2.5
7,-3.5,-1.5
8,2.5,2.0
6,-5.0,-1.0
3,-7.5,-2.5
9,-1.0,1.5
9,1.5,2.0
7,-3.5,2.0
8,2.5,-0.5
5,-5.5,1.0
6,-4.5,2.0
8,-1.5,-3.0
9,-1.5,2.0
6,-4.5,2.5
9,0.0,2.0
8,-2.5,-2.0
8,-2.5,-1.5
6,-4.0,-2.5
5,-6.0,-1.5
9,-1.0,-2.0
8,1.5,2.5
7,-3.5,1.0
7,-3.5,2.0
8,3.0,1.5
9,-2.0,-1.0
10,-1.5,-1.0
6,2.5,4.0
8,2.5,1.5
9,-1.5,-2.0
7,1.5,-3.5
7,-3.5,-2.0
5,5.5,0.0
8,-2.5,-2.0
6,-5.0,0.5
7,-3.5,1.5
7,-3.5,-1.0
6,2.5,4.5
3,-4.5,-6.5
9,-1.5,-1.0
9,0.0,-2.0
7,-3.5,2.5
5,-5.0,-3.0
9,-1.0,-2.0
7,-3.0,3.5
10,0.0,-1.5
8,2.5,-2.0
9,1.5,1.5
8,3.0,1.5
10,-1.5,0.0
7,-2.5,-3.5
8,2.5,1.0
4,7.0,1.0
6,-1.0,-4.5
7,-2.0,-4.0
9,-1.5,-2.0
4,-7.0,-1.0
9,1.5,1.5
9,-2.0,-1.5
6,-4.0,3.0
10,0.5,0.5
7,-3.0,3.5
5,-5.5,2.5
8,-1.5,3.0
4,-6.0,5.5
9,1.0,2.0
9,2.5,1.5
4,-0.5,7.0
9,-2.0,0.5
8,-1.5,2.5
2,-8.0,4.0
10,0.0,0.5
9,1.5,1.0
7,2.5,3.0
5,-5.5,-2.0
3,-6.0,7.0
7,3.5,2.5
9,-1.0,2.0
3,7.5,3.0
2,-8.0,4.5
6,5.0,-2.5
4,-6.0,4.0
7,3.5,3.0
7,-4.0,-2.0
7,2.5,-4.0
9,-1.5,-1.5
7,-3.5,-3.0
7,-3.5,1.0
4,-7.0,-1.5
9,2.0,1.5
7,3.0,3.0
8,-2.0,2.5
5,4.0,5.0
8,2.5,1.5
8,0.5,-3.0
8,1.5,3.0
7,4.5,1.5
10,-1.0,-1.0
9,1.5,2.0
8,3.0,1.5
8,-2.5,-1.5
5,0.0,-5.5
8,2.5,-2.5
8,2.5,2.5
9,1.5,-1.5
9,1.5,1.5
9,1.5,1.5
7,-3.5,-1.0
4,-3.0,-6.5
10,-1.0,-1.0
7,-2.5,3.5
8,0.0,3.0
7,-1.0,-3.5
9,-1.5,0.0
8,2.5,-0.5
9,1.5,-1.5
8,1.5,-2.5
8,0.0,-2.5
8,-2.0,-2.5
9,-1.5,1.5
7,-2.5,3.5
9,0.0,-1.5
3,1.0,7.5
9,-1.5,0.0
6,-4.5,1.0
10,1.0,1.0
8,-1.0,3.0
10,1.0,0.0
9,0.0,2.0
10,0.5,0.5
10,0.5,1.0
8,-2.5,0.0
7,2.0,3.5
8,2.0,-3.0
8,-2.5,1.5
9,1.5,-1.5
8,-3.0,-2.0
5,3.0,5.5
6,-5.0,1.0
9,1.5,-3.5
7,3.5,0.0
7,-3.5,3.0
6,2.5,-4.5
7,-3.0,3.0
7,-3.5,2.5
10,0.0,-1.0
8,-1.5,3.0
8,-2.5,-2.5
7,-1.5,3.5
9,-1.5,0.5
7,2.5,3.5
5,-5.0,3.5
4,-5.5,-4.5
9,-1.5,0.5
8,1.5,2.5
9,2.0,0.0
5,-1.0,6.0
10,0.5,-1.0
8,2.5,2.5
7,3.5,0.0
7,-3.5,1.5
10,0.0,1.0
6,0.0,-4.5
8,1.5,2.5
8,0.0,-3.0
9,0.5,1.5
8,1.5,3.0
8,-1.5,-2.5
8,-0.5,2.5
9,1.5,1.5
6,4.0,3.5
8,3.0,-0.5
7,-3.5,-1.0
7,1.5,3.5
7,3.5,3.5
6,5.0,0.0
6,4.5,4.0
9,2.0,-1.5
8,2.0,3.0
10,0.5,0.5
7,1.5,4.0
8,1.5,2.5
8,0.0,2.5
8,-3.5,2.5
7,3.5,0.0
10,-1.0,1.0
10,1.0,-1.0
10,-1.0,-1.0
8,2.5,-0.5
8,-2.0,2.5
9,1.0,0.0
5,-2.5,5.5
10,0.5,1.0
7,2.5,3.0
8,-2.5,-2.5
8,-2.5,-2.5
4,2.0,6.5
9,1.5,-2.0
1,9.5,-3.5
8,2.5,-1.0
6,-3.5,3.5
8,-2.5,-2.0
6,-3.5,3.5
9,1.5,1.0
8,0.0,2.5
7,3.5,-3.5
5,1.5,-5.5
9,1.5,0.0
9,1.5,1.0
9,1.5,0.5
5,1.5,-5.5
10,0.5,0.0
9,-1.5,1.5
8,0.0,3.5
7,-3.5,3.0
10,0.0,-0.5
9,0.5,1.5
7,2.5,3.5
6,3.0,-4.5
9,2.0,-1.5
7,2.5,3.5
9,1.5,0.5
6,0.5,-4.5
7,-3.5,3.5
4,3.5,6.5
10,0.0,0.0
7,-1.5,-3.5
8,0.0,-3.0
6,-4.5,-3.0
8,0.0,3.0
6,1.5,-4.5
9,-1.5,1.0
7,-1.5,3.5
10,0.0,0.0
5,-2.0,-5.5
8,-2.5,-2.5
4,-4.5,-6.5
8,-2.5,-2.0
8,-2.5,-2.0
9,1.5,-1.5
8,-2.0,2.5
7,-3.5,-1.5
7,2.5,-3.5
8,2.5,-2.5
8,-3.0,1.0
10,-0.5,0.0
7,-3.5,1.0
10,0.0,0.5
10,-0.5,-0.5
9,0.0,2.0
6,-2.0,5.0
7,1.0,3.5
7,-2.5,-4.0
9,1.5,-1.0
7,-3.5,1.0
9,1.5,0.0
8,-2.5,2.5
8,-2.5,2.5
7,-3.5,-3.5
7,3.5,-2.0
9,0.0,-1.5
8,-2.5,0.0
7,-2.5,4.0
9,1.0,1.5
8,1.0,2.5
9,-0.5,1.5
8,-2.5,-2.5
9,-0.5,-2.0
6,-2.5,4.5
10,0.5,-0.5
10,0.5,-0.5
8,-2.5,-2.0
7,2.5,3.5
7,0.0,4.0
6,-4.5,0.0
8,-0.5,-2.5
8,-0.5,-2.5
9,0.0,2.5
7,-0.5,3.5
10,0.0,-0.5
7,-2.0,-3.5
9,-1.5,2.0
8,-2.5,2.0
10,-1.0,0.0
8,-2.5,-2.5
9,2.0,0.0
7,-2.0,3.5
8,-2.5,-1.0
6,-4.5,-3.0
9,-1.5,-1.5
7,3.5,2.5
10,-0.5,0.0
8,1.5,2.5
8,-2.0,-2.5
6,-0.5,-6.0
9,2.0,-1.5
9,-1.0,-1.5
9,0.0,1.5
8,1.0,3.0
9,1.5,0.5
8,1.5,0.5
8,-2.5,2.0
7,-3.5,-4.0
10,0.0,0.0
7,-3.0,-2.5
10,1.5,0.5
9,-2.0,-1.5
7,1.0,4.0
6,-2.5,4.5
7,2.5,1.5
8,-3.0,2.5
8,-2.5,2.0
6,4.0,-3.5
9,-1.5,2.0
8,-2.5,1.0
10,0.0,0.5
9,1.5,2.0
10,0.0,-0.5
8,3.0,1.5
6,-4.5,-2.0
7,-2.5,-2.5
10,-1.5,0.5
7,3.5,1.5
9,-1.5,1.5
8,2.0,2.0
9,-1.0,2.0
7,0.0,3.5
10,-1.0,0.0
9,-2.5,-1.0
10,-0.5,-0.5
9,-1.5,-1.5
9,-2.0,-1.0
9,-1.0,-2.0
9,-1.0,-1.5
8,2.5,1.5
10,1.0,0.0
10,1.0,-1.0
9,2.0,1.0
8,-0.5,2.5
9,1.0,1.0
8,3.0,0.0
10,0.5,0.5
9,-1.0,2.0
9,-1.5,0.0
9,2.0,0.0
9,1.0,2.0
9,2.0,1.0
10,0.5,-1.0
9,-1.0,1.0
7,-1.0,-2.0
9,-1.0,-2.0
7,2.0,3.0
6,-4.0,3.0
8,0.0,-3.0
8,1.0,-3.0
7,-3.5,2.0
9,-2.5,-1.0
5,-5.0,-1.0
9,2.0,-1.5
7,-3.5,0.0
8,-0.5,-3.5
9,1.0,-1.5
8,2.5,0.0
7,-4.5,-1.0
9,0.0,-2.0
8,-2.5,-1.5
7,-4.0,-1.0
6,-3.0,-5.5
5,-5.0,-3.5
9,0.0,1.5
7,4.0,2.5
6,-4.0,-2.5
7,1.0,-3.5
8,-2.5,-1.0
8,-2.0,-3.0
8,0.0,3.0
7,4.0,1.0
9,-1.0,1.0
8,2.0,2.0
9,1.0,1.0
5,-3.5,-4.5
9,-0.5,-2.0
8,-1.0,-3.5
9,0.0,2.0
8,-1.5,-2.5
5,-5.0,-4.0
7,4.0,-1.5
9,0.5,-2.0
8,-3.0,0.5
9,1.5,-1.5
9,1.5,-1.5
8,-3.5,1.0
8,2.5,-2.5
7,-2.5,-3.0
3,-7.0,-2.5
10,0.0,-1.5
8,-1.0,-3.5
10,-1.0,1.0
8,-2.5,-1.5
10,1.0,1.0
7,4.0,0.0
10,0.0,0.0
4,-3.0,-6.5
10,-1.0,-1.5
7,4.0,-0.5
10,0.0,-1.5
8,-2.5,-1.0
10,1.5,0.0
6,-5.0,1.5
8,-2.0,2.0
7,2.5,-3.5
9,1.5,-1.5
7,-2.0,-3.0
9,-2.0,-0.5
9,-1.0,-2.0
8,1.0,-3.0
8,1.5,-3.0
9,2.0,0.0
8,2.0,-3.0
10,-0.5,0.0
8,2.0,1.0
9,2.0,1.0
8,-1.5,-3.0
7,2.0,-3.5
8,3.5,-2.0
9,0.0,-2.0
7,1.5,-3.5
5,6.0,-1.0
4,5.0,-5.5
5,0.0,6.0
8,0.0,3.0
6,5.0,1.0
5,5.5,-2.5
9,2.0,0.0
9,2.0,0.0
10,0.5,-0.5
9,2.5,1.0
9,0.0,2.0
6,-1.0,4.5
10,0.0,0.0
7,3.5,-3.0
9,2.5,1.0
7,1.0,-3.5
10,-1.5,0.0
8,3.5,-1.0
8,0.0,2.5
7,4.0,-1.5
10,1.0,-0.5
9,-1.5,-2.0
10,-1.5,-1.0
9,-1.0,-1.5
10,1.5,-1.0
9,1.0,-1.5
8,-3.0,-1.0
9,2.0,0.0
9,-1.5,1.0
8,3.5,-1.5
9,1.0,-1.5
6,1.0,-4.5
9,2.0,1.0
7,4.0,2.0
7,4.0,-1.0
7,4.0,-2.5
10,1.0,-1.5
8,-3.0,-1.5
9,0.5,-1.5
9,-2.0,1.0
8,-1.0,1.5
9,1.0,3.0
10,-1.0,0.0
9,-1.0,-2.0
8,0.0,-3.0
8,-3.0,-1.5
9,-2.5,0.5
8,-2.0,-2.0
7,-4.5,-1.0
10,0.0,0.0
7,-4.0,-3.0
10,0.5,-0.5
9,-1.5,1.0
8,-1.5,-2.5
9,-1.0,2.0
7,-3.0,-2.5
9,-1.0,2.5
10,1.5,0.0
7,4.0,1.0
7,4.0,2.0
10,1.0,-1.0
9,1.5,-1.5
9,-2.0,1.0
10,-1.0,0.5
8,-2.0,2.0
9,1.0,1.5
9,-1.0,1.5
8,-3.5,-1.5
7,-3.0,2.5
8,1.5,-2.5
9,-1.5,1.5
7,-2.5,3.5
9,-1.0,2.0
8,2.5,2.0
9,-1.0,1.5
10,1.5,-1.0
7,3.5,-2.5
9,0.5,2.0
10,0.0,0.0
8,1.5,-3.0
9,1.5,-2.0
4,7.0,1.5
10,-1.0,0.0
8,2.5,-1.5
8,2.5,0.0
7,3.0,-2.0
8,1.5,3.0
7,0.0,3.5
9,0.0,2.0
8,-0.5,2.5
10,0.0,-1.5
9,0.0,-2.0
7,-3.0,2.5
9,-1.0,-2.0
10,-0.5,-1.5
8,-1.5,-2.5
9,-1.0,1.5
9,1.5,2.0
9,-1.5,1.0
9,-2.0,0.0
10,0.0,1.0
10,-1.0,1.0
9,0.0,1.5
9,2.0,0.0
10,-0.5,-0.5
8,-2.0,-2.0
10,1.0,1.0
10,1.0,-1.0
8,1.0,-2.5
8,-2.0,-2.0
10,0.0,-0.5
6,2.0,-4.5
8,-2.0,-2.5
7,4.0,-2.0
10,1.5,-1.0
8,2.5,-1.5
9,1.0,1.5
6,-4.5,-1.0
9,1.5,-1.5
9,1.0,-2.0
10,1.0,1.0
6,-5.0,-1.5
6,-4.0,-3.0
7,-3.0,-1.5
10,1.5,0.5
7,4.0,-1.5
9,-2.0,-1.5
8,1.0,-2.5
9,1.0,2.0
6,-1.5,-4.5
5,-2.5,-5.5
6,-5.0,2.0
10,0.0,0.0
9,-1.5,0.5
10,0.0,0.0
6,4.0,-3.0
10,-1.0,-1.0
9,1.5,-2.0
8,1.5,-2.5
6,-1.0,-4.5
6,5.5,-1.5
9,1.0,-2.0
3,6.0,-4.5
3,3.0,-5.5
10,1.0,-1.0
5,2.5,-5.0
9,1.5,2.0
5,5.0,-3.0
8,-3.0,-1.0
5,5.0,-3.0
9,1.5,-2.0
9,2.0,-1.5
8,1.5,-2.5
7,3.0,-2.0
8,-3.0,-0.5
7,2.0,-3.0
10,1.0,0.5
7,3.0,1.5
10,-1.0,-0.5
6,3.5,-2.5
10,1.0,-1.0
8,2.0,-2.0
9,1.5,-1.0
9,1.5,-2.5
6,4.0,-2.0
6,3.0,-4.0
9,1.5,1.5
9,-1.5,-1.5
9,1.0,-2.0
6,3.5,-3.5
10,1.0,-0.5
9,2.0,-0.5
9,-1.0,2.0
6,4.0,2.5
7,1.0,1.5
6,5.0,1.0
5,0.0,5.5
5,-3.0,4.5
8,2.5,1.5
8,-1.0,2.5
9,1.0,2.0
8,-0.5,2.5
10,1.0,1.0
8,3.0,-1.5
9,2.0,-1.0
7,3.0,1.5
9,-1.5,-1.5
7,3.0,2.0
9,-1.0,1.5
7,3.5,1.0
8,3.0,1.0
5,6.0,2.5
9,1.0,1.5
7,2.5,3.0
8,3.0,0.0
8,3.0,-1.5
10,-1.0,0.5
7,-3.5,1.0
9,2.0,-1.0
8,-2.5,0.5
9,-2.0,1.5
9,-2.0,-1.5
9,0.0,2.0
9,-1.5,0.0
8,0.0,3.0
9,-2.0,-1.0
8,1.5,1.0
5,4.5,3.5
9,-2.0,2.0
7,4.0,2.0
10,0.0,-1.5
9,2.0,0.0
10,1.0,-1.5
8,3.0,1.5
10,0.0,0.0
8,2.0,-3.0
9,2.0,-1.5
5,6.5,-1.0
10,-0.5,0.5
9,1.5,1.5
8,1.5,-3.0
3,8.5,1.5
5,4.5,1.5
6,-5.5,1.0
5,-5.5,-1.5
9,-1.5,0.0
8,2.0,-1.5
7,3.5,-1.5
7,-1.0,3.0
9,-1.5,1.0
10,1.5,-1.0
9,2.0,-1.0
9,-1.5,0.0
9,1.5,-1.5
7,2.0,3.0
7,-3.0,-3.0
8,0.0,3.0
8,-2.0,2.0
8,2.0,2.5
7,3.5,0.0
9,-1.5,1.5
5,5.5,3.0
9,-2.0,1.0
6,4.5,1.0
9,1.0,2.0
7,-3.5,0.0
9,1.5,1.5
6,3.5,3.0
8,2.5,-1.5
7,3.5,-1.0
8,-3.0,0.0
8,-2.0,2.5
10,0.0,0.0
8,-3.0,-1.5
9,1.5,-1.5
7,3.0,1.0
9,-1.5,0.5
7,2.0,-3.5
9,0.0,2.0
8,2.5,1.5
10,0.0,1.0
8,3.0,-2.0
9,0.0,-2.0
9,1.5,0.5
8,2.5,-1.5
6,4.5,2.5
8,2.0,-1.5
6,4.5,-2.0
9,0.0,2.0
5,6.0,-1.0
10,0.0,-1.0
8,3.0,-1.5
9,1.5,0.5
8,2.0,1.0
8,2.0,-2.0
7,3.0,-2.0
10,1.0,-1.0
5,5.5,0.0
10,0.0,1.0
7,2.5,-3.0
10,1.0,-1.0
8,2.5,-2.5
8,-1.5,2.5
7,4.0,0.0
8,3.0,1.5
7,3.5,-1.0
10,0.0,1.0
7,3.5,0.5
9,2.0,1.0
9,1.5,-2.0
10,-0.5,0.0
10,1.0,-1.0
9,2.0,1.0
7,-0.5,-3.5
6,-4.5,1.0
9,2.0,-1.0
9,1.0,2.5
6,1.5,-4.5
10,1.0,-1.0
8,-2.0,2.0
10,-1.0,0.5
9,3.0,-1.0
7,-1.5,3.5
8,2.5,1.5
9,1.5,1.0
8,-1.0,-3.0
7,3.5,1.5
7,-3.5,2.0
5,-3.0,0.0
8,1.5,2.0
1 points x y
2 7 -2.5 -3.0
3 0 -11.0 -4.0
4 9 1.5 2.0
5 6 -3.5 4.5
6 10 0.5 -1.0
7 4 -6.5 1.0
8 8 2.5 1.5
9 0 12.5 6.5
10 10 0.0 -0.5
11 6 -4.5 3.5
12 7 -3.0 -3.5
13 6 5.0 0.0
14 0 -10.5 -4.0
15 7 -3.5 1.5
16 0 -10.5 -1.0
17 4 -1.0 -7.0
18 8 -1.0 2.5
19 8 2.5 -1.5
20 7 -1.5 4.0
21 6 -4.0 -3.0
22 6 -4.5 -1.0
23 7 4.0 -0.5
24 8 0.0 2.5
25 4 6.5 4.0
26 8 2.5 -1.5
27 7 -2.5 -2.5
28 7 -1.0 3.5
29 6 4.5 2.5
30 7 -4.0 0.0
31 7 -4.0 -2.5
32 9 2.5 -1.5
33 7 1.5 4.0
34 6 -5.0 -2.0
35 7 -3.0 -2.0
36 6 5.0 2.0
37 2 8.5 -3.5
38 8 -2.0 2.5
39 10 -0.5 -1.5
40 4 -7.5 1.0
41 8 -3.0 -0.5
42 8 -1.0 2.5
43 8 1.0 -3.0
44 10 -1.0 0.5
45 10 -1.0 0.5
46 9 -1.5 2.0
47 7 3.0 3.5
48 9 0.0 2.0
49 9 -1.5 2.0
50 9 -1.0 -1.5
51 6 4.5 -1.5
52 6 4.5 3.0
53 1 10.0 2.5
54 5 3.5 4.5
55 8 3.0 -1.5
56 9 1.5 0.5
57 0 10.5 8.0
58 7 -3.5 2.5
59 8 2.5 -2.0
60 3 -8.0 -3.5
61 4 7.0 2.0
62 8 1.5 2.5
63 6 3.5 4.0
64 4 -6.5 -3.5
65 5 4.0 5.0
66 8 1.5 3.0
67 6 2.5 -4.0
68 9 -2.0 -0.5
69 7 -4.0 -0.5
70 8 0.5 3.0
71 8 1.0 -3.0
72 4 6.0 4.0
73 6 -4.5 1.0
74 9 2.0 0.5
75 9 -2.0 -1.5
76 5 -5.0 3.5
77 5 3.5 -5.5
78 10 1.0 -1.0
79 9 3.0 1.0
80 8 -1.5 -2.5
81 3 7.5 4.0
82 10 -0.5 1.0
83 5 5.0 -3.0
84 10 -0.5 1.5
85 7 -2.0 3.5
86 9 0.0 2.0
87 8 -3.0 0.0
88 5 -5.5 -3.0
89 3 -8.0 2.5
90 7 3.5 3.5
91 7 1.5 -4.0
92 10 0.5 -1.0
93 8 3.5 1.0
94 10 1.0 0.5
95 5 -5.0 -3.0
96 9 -2.0 -0.5
97 7 -2.5 3.0
98 5 -2.5 6.0
99 10 -1.0 1.0
100 6 -1.5 -4.5
101 5 -5.5 -2.5
102 3 -6.0 6.0
103 7 -2.5 -3.5
104 4 2.0 6.5
105 7 -1.5 4.0
106 7 -2.5 3.0
107 6 -5.0 0.0
108 9 -1.5 -1.5
109 6 -4.5 -2.0
110 8 -1.0 -2.5
111 4 3.5 -6.0
112 5 4.0 5.5
113 10 -1.0 -1.0
114 5 3.0 6.0
115 5 -1.5 -5.5
116 6 -4.0 -3.0
117 5 -5.5 0.5
118 7 0.5 -4.0
119 3 -1.0 -7.5
120 10 -0.5 0.0
121 10 1.5 0.0
122 6 -4.5 -3.0
123 7 3.5 1.5
124 6 -4.0 -3.0
125 5 -5.0 -3.0
126 9 -1.5 -1.0
127 6 2.5 4.5
128 6 -1.5 -4.5
129 5 -2.5 -5.5
130 10 -0.5 0.0
131 6 4.0 -3.5
132 10 0.0 0.5
133 5 5.0 -4.0
134 9 -1.5 -1.5
135 7 -3.0 -3.0
136 5 -5.5 -4.0
137 0 10.0 3.5
138 9 -1.5 -1.0
139 9 -1.5 -2.0
140 7 -3.5 -2.0
141 8 -2.5 -0.5
142 6 -4.5 -1.5
143 4 -6.5 -1.0
144 5 -5.5 3.5
145 7 -2.0 -3.0
146 7 -2.5 -3.0
147 5 6.0 -1.0
148 8 -2.0 -2.5
149 7 2.0 -3.0
150 10 -1.0 -1.0
151 8 -3.0 -1.0
152 8 -2.5 -1.5
153 8 -1.5 -3.0
154 4 7.0 1.0
155 0 -16.0 -2.0
156 10 -1.0 0.5
157 7 3.0 2.5
158 9 -0.5 -2.5
159 7 3.5 -2.5
160 5 1.5 -5.5
161 0 8.5 9.0
162 7 -2.5 -3.0
163 7 -1.5 -4.0
164 7 -3.5 1.5
165 7 -2.0 -3.5
166 8 0.5 3.5
167 6 3.0 4.5
168 8 2.0 2.5
169 5 5.5 3.0
170 7 3.5 1.0
171 6 4.5 0.5
172 6 -1.5 -5.0
173 5 -5.5 -1.0
174 0 11.5 1.5
175 8 -3.0 -1.0
176 7 4.0 -1.0
177 4 4.5 -5.5
178 6 5.0 1.5
179 4 6.5 -1.5
180 6 2.5 -5.0
181 5 5.0 -4.5
182 6 5.0 2.5
183 6 -3.5 -4.0
184 10 1.5 1.5
185 6 -5.0 -1.0
186 7 -2.5 -3.0
187 6 -4.5 1.0
188 7 -3.5 1.0
189 7 4.0 1.5
190 10 0.5 0.5
191 3 7.5 1.0
192 6 -5.0 -1.5
193 10 1.5 0.0
194 8 -1.0 3.0
195 5 5.0 -3.5
196 10 0.5 0.5
197 5 5.5 -1.0
198 8 -1.5 -2.5
199 7 3.5 2.5
200 9 -2.0 -2.0
201 6 5.0 3.0
202 9 1.0 1.5
203 8 3.5 -1.5
204 10 -1.0 1.0
205 6 5.0 -1.0
206 9 -1.0 1.5
207 8 6.5 -1.0
208 6 -4.5 -2.0
209 5 3.5 5.0
210 7 -3.5 -2.0
211 7 -4.5 0.0
212 9 -0.5 2.0
213 8 -2.0 2.5
214 8 1.5 2.5
215 6 4.0 4.5
216 10 1.0 -1.5
217 8 0.5 3.5
218 4 7.0 2.0
219 4 -5.0 -4.5
220 8 -0.5 2.5
221 7 -3.5 -1.5
222 8 2.5 2.0
223 6 -5.0 -1.0
224 3 -7.5 -2.5
225 9 -1.0 1.5
226 9 1.5 2.0
227 7 -3.5 2.0
228 8 2.5 -0.5
229 5 -5.5 1.0
230 6 -4.5 2.0
231 8 -1.5 -3.0
232 9 -1.5 2.0
233 6 -4.5 2.5
234 9 0.0 2.0
235 8 -2.5 -2.0
236 8 -2.5 -1.5
237 6 -4.0 -2.5
238 5 -6.0 -1.5
239 9 -1.0 -2.0
240 8 1.5 2.5
241 7 -3.5 1.0
242 7 -3.5 2.0
243 8 3.0 1.5
244 9 -2.0 -1.0
245 10 -1.5 -1.0
246 6 2.5 4.0
247 8 2.5 1.5
248 9 -1.5 -2.0
249 7 1.5 -3.5
250 7 -3.5 -2.0
251 5 5.5 0.0
252 8 -2.5 -2.0
253 6 -5.0 0.5
254 7 -3.5 1.5
255 7 -3.5 -1.0
256 6 2.5 4.5
257 3 -4.5 -6.5
258 9 -1.5 -1.0
259 9 0.0 -2.0
260 7 -3.5 2.5
261 5 -5.0 -3.0
262 9 -1.0 -2.0
263 7 -3.0 3.5
264 10 0.0 -1.5
265 8 2.5 -2.0
266 9 1.5 1.5
267 8 3.0 1.5
268 10 -1.5 0.0
269 7 -2.5 -3.5
270 8 2.5 1.0
271 4 7.0 1.0
272 6 -1.0 -4.5
273 7 -2.0 -4.0
274 9 -1.5 -2.0
275 4 -7.0 -1.0
276 9 1.5 1.5
277 9 -2.0 -1.5
278 6 -4.0 3.0
279 10 0.5 0.5
280 7 -3.0 3.5
281 5 -5.5 2.5
282 8 -1.5 3.0
283 4 -6.0 5.5
284 9 1.0 2.0
285 9 2.5 1.5
286 4 -0.5 7.0
287 9 -2.0 0.5
288 8 -1.5 2.5
289 2 -8.0 4.0
290 10 0.0 0.5
291 9 1.5 1.0
292 7 2.5 3.0
293 5 -5.5 -2.0
294 3 -6.0 7.0
295 7 3.5 2.5
296 9 -1.0 2.0
297 3 7.5 3.0
298 2 -8.0 4.5
299 6 5.0 -2.5
300 4 -6.0 4.0
301 7 3.5 3.0
302 7 -4.0 -2.0
303 7 2.5 -4.0
304 9 -1.5 -1.5
305 7 -3.5 -3.0
306 7 -3.5 1.0
307 4 -7.0 -1.5
308 9 2.0 1.5
309 7 3.0 3.0
310 8 -2.0 2.5
311 5 4.0 5.0
312 8 2.5 1.5
313 8 0.5 -3.0
314 8 1.5 3.0
315 7 4.5 1.5
316 10 -1.0 -1.0
317 9 1.5 2.0
318 8 3.0 1.5
319 8 -2.5 -1.5
320 5 0.0 -5.5
321 8 2.5 -2.5
322 8 2.5 2.5
323 9 1.5 -1.5
324 9 1.5 1.5
325 9 1.5 1.5
326 7 -3.5 -1.0
327 4 -3.0 -6.5
328 10 -1.0 -1.0
329 7 -2.5 3.5
330 8 0.0 3.0
331 7 -1.0 -3.5
332 9 -1.5 0.0
333 8 2.5 -0.5
334 9 1.5 -1.5
335 8 1.5 -2.5
336 8 0.0 -2.5
337 8 -2.0 -2.5
338 9 -1.5 1.5
339 7 -2.5 3.5
340 9 0.0 -1.5
341 3 1.0 7.5
342 9 -1.5 0.0
343 6 -4.5 1.0
344 10 1.0 1.0
345 8 -1.0 3.0
346 10 1.0 0.0
347 9 0.0 2.0
348 10 0.5 0.5
349 10 0.5 1.0
350 8 -2.5 0.0
351 7 2.0 3.5
352 8 2.0 -3.0
353 8 -2.5 1.5
354 9 1.5 -1.5
355 8 -3.0 -2.0
356 5 3.0 5.5
357 6 -5.0 1.0
358 9 1.5 -3.5
359 7 3.5 0.0
360 7 -3.5 3.0
361 6 2.5 -4.5
362 7 -3.0 3.0
363 7 -3.5 2.5
364 10 0.0 -1.0
365 8 -1.5 3.0
366 8 -2.5 -2.5
367 7 -1.5 3.5
368 9 -1.5 0.5
369 7 2.5 3.5
370 5 -5.0 3.5
371 4 -5.5 -4.5
372 9 -1.5 0.5
373 8 1.5 2.5
374 9 2.0 0.0
375 5 -1.0 6.0
376 10 0.5 -1.0
377 8 2.5 2.5
378 7 3.5 0.0
379 7 -3.5 1.5
380 10 0.0 1.0
381 6 0.0 -4.5
382 8 1.5 2.5
383 8 0.0 -3.0
384 9 0.5 1.5
385 8 1.5 3.0
386 8 -1.5 -2.5
387 8 -0.5 2.5
388 9 1.5 1.5
389 6 4.0 3.5
390 8 3.0 -0.5
391 7 -3.5 -1.0
392 7 1.5 3.5
393 7 3.5 3.5
394 6 5.0 0.0
395 6 4.5 4.0
396 9 2.0 -1.5
397 8 2.0 3.0
398 10 0.5 0.5
399 7 1.5 4.0
400 8 1.5 2.5
401 8 0.0 2.5
402 8 -3.5 2.5
403 7 3.5 0.0
404 10 -1.0 1.0
405 10 1.0 -1.0
406 10 -1.0 -1.0
407 8 2.5 -0.5
408 8 -2.0 2.5
409 9 1.0 0.0
410 5 -2.5 5.5
411 10 0.5 1.0
412 7 2.5 3.0
413 8 -2.5 -2.5
414 8 -2.5 -2.5
415 4 2.0 6.5
416 9 1.5 -2.0
417 1 9.5 -3.5
418 8 2.5 -1.0
419 6 -3.5 3.5
420 8 -2.5 -2.0
421 6 -3.5 3.5
422 9 1.5 1.0
423 8 0.0 2.5
424 7 3.5 -3.5
425 5 1.5 -5.5
426 9 1.5 0.0
427 9 1.5 1.0
428 9 1.5 0.5
429 5 1.5 -5.5
430 10 0.5 0.0
431 9 -1.5 1.5
432 8 0.0 3.5
433 7 -3.5 3.0
434 10 0.0 -0.5
435 9 0.5 1.5
436 7 2.5 3.5
437 6 3.0 -4.5
438 9 2.0 -1.5
439 7 2.5 3.5
440 9 1.5 0.5
441 6 0.5 -4.5
442 7 -3.5 3.5
443 4 3.5 6.5
444 10 0.0 0.0
445 7 -1.5 -3.5
446 8 0.0 -3.0
447 6 -4.5 -3.0
448 8 0.0 3.0
449 6 1.5 -4.5
450 9 -1.5 1.0
451 7 -1.5 3.5
452 10 0.0 0.0
453 5 -2.0 -5.5
454 8 -2.5 -2.5
455 4 -4.5 -6.5
456 8 -2.5 -2.0
457 8 -2.5 -2.0
458 9 1.5 -1.5
459 8 -2.0 2.5
460 7 -3.5 -1.5
461 7 2.5 -3.5
462 8 2.5 -2.5
463 8 -3.0 1.0
464 10 -0.5 0.0
465 7 -3.5 1.0
466 10 0.0 0.5
467 10 -0.5 -0.5
468 9 0.0 2.0
469 6 -2.0 5.0
470 7 1.0 3.5
471 7 -2.5 -4.0
472 9 1.5 -1.0
473 7 -3.5 1.0
474 9 1.5 0.0
475 8 -2.5 2.5
476 8 -2.5 2.5
477 7 -3.5 -3.5
478 7 3.5 -2.0
479 9 0.0 -1.5
480 8 -2.5 0.0
481 7 -2.5 4.0
482 9 1.0 1.5
483 8 1.0 2.5
484 9 -0.5 1.5
485 8 -2.5 -2.5
486 9 -0.5 -2.0
487 6 -2.5 4.5
488 10 0.5 -0.5
489 10 0.5 -0.5
490 8 -2.5 -2.0
491 7 2.5 3.5
492 7 0.0 4.0
493 6 -4.5 0.0
494 8 -0.5 -2.5
495 8 -0.5 -2.5
496 9 0.0 2.5
497 7 -0.5 3.5
498 10 0.0 -0.5
499 7 -2.0 -3.5
500 9 -1.5 2.0
501 8 -2.5 2.0
502 10 -1.0 0.0
503 8 -2.5 -2.5
504 9 2.0 0.0
505 7 -2.0 3.5
506 8 -2.5 -1.0
507 6 -4.5 -3.0
508 9 -1.5 -1.5
509 7 3.5 2.5
510 10 -0.5 0.0
511 8 1.5 2.5
512 8 -2.0 -2.5
513 6 -0.5 -6.0
514 9 2.0 -1.5
515 9 -1.0 -1.5
516 9 0.0 1.5
517 8 1.0 3.0
518 9 1.5 0.5
519 8 1.5 0.5
520 8 -2.5 2.0
521 7 -3.5 -4.0
522 10 0.0 0.0
523 7 -3.0 -2.5
524 10 1.5 0.5
525 9 -2.0 -1.5
526 7 1.0 4.0
527 6 -2.5 4.5
528 7 2.5 1.5
529 8 -3.0 2.5
530 8 -2.5 2.0
531 6 4.0 -3.5
532 9 -1.5 2.0
533 8 -2.5 1.0
534 10 0.0 0.5
535 9 1.5 2.0
536 10 0.0 -0.5
537 8 3.0 1.5
538 6 -4.5 -2.0
539 7 -2.5 -2.5
540 10 -1.5 0.5
541 7 3.5 1.5
542 9 -1.5 1.5
543 8 2.0 2.0
544 9 -1.0 2.0
545 7 0.0 3.5
546 10 -1.0 0.0
547 9 -2.5 -1.0
548 10 -0.5 -0.5
549 9 -1.5 -1.5
550 9 -2.0 -1.0
551 9 -1.0 -2.0
552 9 -1.0 -1.5
553 8 2.5 1.5
554 10 1.0 0.0
555 10 1.0 -1.0
556 9 2.0 1.0
557 8 -0.5 2.5
558 9 1.0 1.0
559 8 3.0 0.0
560 10 0.5 0.5
561 9 -1.0 2.0
562 9 -1.5 0.0
563 9 2.0 0.0
564 9 1.0 2.0
565 9 2.0 1.0
566 10 0.5 -1.0
567 9 -1.0 1.0
568 7 -1.0 -2.0
569 9 -1.0 -2.0
570 7 2.0 3.0
571 6 -4.0 3.0
572 8 0.0 -3.0
573 8 1.0 -3.0
574 7 -3.5 2.0
575 9 -2.5 -1.0
576 5 -5.0 -1.0
577 9 2.0 -1.5
578 7 -3.5 0.0
579 8 -0.5 -3.5
580 9 1.0 -1.5
581 8 2.5 0.0
582 7 -4.5 -1.0
583 9 0.0 -2.0
584 8 -2.5 -1.5
585 7 -4.0 -1.0
586 6 -3.0 -5.5
587 5 -5.0 -3.5
588 9 0.0 1.5
589 7 4.0 2.5
590 6 -4.0 -2.5
591 7 1.0 -3.5
592 8 -2.5 -1.0
593 8 -2.0 -3.0
594 8 0.0 3.0
595 7 4.0 1.0
596 9 -1.0 1.0
597 8 2.0 2.0
598 9 1.0 1.0
599 5 -3.5 -4.5
600 9 -0.5 -2.0
601 8 -1.0 -3.5
602 9 0.0 2.0
603 8 -1.5 -2.5
604 5 -5.0 -4.0
605 7 4.0 -1.5
606 9 0.5 -2.0
607 8 -3.0 0.5
608 9 1.5 -1.5
609 9 1.5 -1.5
610 8 -3.5 1.0
611 8 2.5 -2.5
612 7 -2.5 -3.0
613 3 -7.0 -2.5
614 10 0.0 -1.5
615 8 -1.0 -3.5
616 10 -1.0 1.0
617 8 -2.5 -1.5
618 10 1.0 1.0
619 7 4.0 0.0
620 10 0.0 0.0
621 4 -3.0 -6.5
622 10 -1.0 -1.5
623 7 4.0 -0.5
624 10 0.0 -1.5
625 8 -2.5 -1.0
626 10 1.5 0.0
627 6 -5.0 1.5
628 8 -2.0 2.0
629 7 2.5 -3.5
630 9 1.5 -1.5
631 7 -2.0 -3.0
632 9 -2.0 -0.5
633 9 -1.0 -2.0
634 8 1.0 -3.0
635 8 1.5 -3.0
636 9 2.0 0.0
637 8 2.0 -3.0
638 10 -0.5 0.0
639 8 2.0 1.0
640 9 2.0 1.0
641 8 -1.5 -3.0
642 7 2.0 -3.5
643 8 3.5 -2.0
644 9 0.0 -2.0
645 7 1.5 -3.5
646 5 6.0 -1.0
647 4 5.0 -5.5
648 5 0.0 6.0
649 8 0.0 3.0
650 6 5.0 1.0
651 5 5.5 -2.5
652 9 2.0 0.0
653 9 2.0 0.0
654 10 0.5 -0.5
655 9 2.5 1.0
656 9 0.0 2.0
657 6 -1.0 4.5
658 10 0.0 0.0
659 7 3.5 -3.0
660 9 2.5 1.0
661 7 1.0 -3.5
662 10 -1.5 0.0
663 8 3.5 -1.0
664 8 0.0 2.5
665 7 4.0 -1.5
666 10 1.0 -0.5
667 9 -1.5 -2.0
668 10 -1.5 -1.0
669 9 -1.0 -1.5
670 10 1.5 -1.0
671 9 1.0 -1.5
672 8 -3.0 -1.0
673 9 2.0 0.0
674 9 -1.5 1.0
675 8 3.5 -1.5
676 9 1.0 -1.5
677 6 1.0 -4.5
678 9 2.0 1.0
679 7 4.0 2.0
680 7 4.0 -1.0
681 7 4.0 -2.5
682 10 1.0 -1.5
683 8 -3.0 -1.5
684 9 0.5 -1.5
685 9 -2.0 1.0
686 8 -1.0 1.5
687 9 1.0 3.0
688 10 -1.0 0.0
689 9 -1.0 -2.0
690 8 0.0 -3.0
691 8 -3.0 -1.5
692 9 -2.5 0.5
693 8 -2.0 -2.0
694 7 -4.5 -1.0
695 10 0.0 0.0
696 7 -4.0 -3.0
697 10 0.5 -0.5
698 9 -1.5 1.0
699 8 -1.5 -2.5
700 9 -1.0 2.0
701 7 -3.0 -2.5
702 9 -1.0 2.5
703 10 1.5 0.0
704 7 4.0 1.0
705 7 4.0 2.0
706 10 1.0 -1.0
707 9 1.5 -1.5
708 9 -2.0 1.0
709 10 -1.0 0.5
710 8 -2.0 2.0
711 9 1.0 1.5
712 9 -1.0 1.5
713 8 -3.5 -1.5
714 7 -3.0 2.5
715 8 1.5 -2.5
716 9 -1.5 1.5
717 7 -2.5 3.5
718 9 -1.0 2.0
719 8 2.5 2.0
720 9 -1.0 1.5
721 10 1.5 -1.0
722 7 3.5 -2.5
723 9 0.5 2.0
724 10 0.0 0.0
725 8 1.5 -3.0
726 9 1.5 -2.0
727 4 7.0 1.5
728 10 -1.0 0.0
729 8 2.5 -1.5
730 8 2.5 0.0
731 7 3.0 -2.0
732 8 1.5 3.0
733 7 0.0 3.5
734 9 0.0 2.0
735 8 -0.5 2.5
736 10 0.0 -1.5
737 9 0.0 -2.0
738 7 -3.0 2.5
739 9 -1.0 -2.0
740 10 -0.5 -1.5
741 8 -1.5 -2.5
742 9 -1.0 1.5
743 9 1.5 2.0
744 9 -1.5 1.0
745 9 -2.0 0.0
746 10 0.0 1.0
747 10 -1.0 1.0
748 9 0.0 1.5
749 9 2.0 0.0
750 10 -0.5 -0.5
751 8 -2.0 -2.0
752 10 1.0 1.0
753 10 1.0 -1.0
754 8 1.0 -2.5
755 8 -2.0 -2.0
756 10 0.0 -0.5
757 6 2.0 -4.5
758 8 -2.0 -2.5
759 7 4.0 -2.0
760 10 1.5 -1.0
761 8 2.5 -1.5
762 9 1.0 1.5
763 6 -4.5 -1.0
764 9 1.5 -1.5
765 9 1.0 -2.0
766 10 1.0 1.0
767 6 -5.0 -1.5
768 6 -4.0 -3.0
769 7 -3.0 -1.5
770 10 1.5 0.5
771 7 4.0 -1.5
772 9 -2.0 -1.5
773 8 1.0 -2.5
774 9 1.0 2.0
775 6 -1.5 -4.5
776 5 -2.5 -5.5
777 6 -5.0 2.0
778 10 0.0 0.0
779 9 -1.5 0.5
780 10 0.0 0.0
781 6 4.0 -3.0
782 10 -1.0 -1.0
783 9 1.5 -2.0
784 8 1.5 -2.5
785 6 -1.0 -4.5
786 6 5.5 -1.5
787 9 1.0 -2.0
788 3 6.0 -4.5
789 3 3.0 -5.5
790 10 1.0 -1.0
791 5 2.5 -5.0
792 9 1.5 2.0
793 5 5.0 -3.0
794 8 -3.0 -1.0
795 5 5.0 -3.0
796 9 1.5 -2.0
797 9 2.0 -1.5
798 8 1.5 -2.5
799 7 3.0 -2.0
800 8 -3.0 -0.5
801 7 2.0 -3.0
802 10 1.0 0.5
803 7 3.0 1.5
804 10 -1.0 -0.5
805 6 3.5 -2.5
806 10 1.0 -1.0
807 8 2.0 -2.0
808 9 1.5 -1.0
809 9 1.5 -2.5
810 6 4.0 -2.0
811 6 3.0 -4.0
812 9 1.5 1.5
813 9 -1.5 -1.5
814 9 1.0 -2.0
815 6 3.5 -3.5
816 10 1.0 -0.5
817 9 2.0 -0.5
818 9 -1.0 2.0
819 6 4.0 2.5
820 7 1.0 1.5
821 6 5.0 1.0
822 5 0.0 5.5
823 5 -3.0 4.5
824 8 2.5 1.5
825 8 -1.0 2.5
826 9 1.0 2.0
827 8 -0.5 2.5
828 10 1.0 1.0
829 8 3.0 -1.5
830 9 2.0 -1.0
831 7 3.0 1.5
832 9 -1.5 -1.5
833 7 3.0 2.0
834 9 -1.0 1.5
835 7 3.5 1.0
836 8 3.0 1.0
837 5 6.0 2.5
838 9 1.0 1.5
839 7 2.5 3.0
840 8 3.0 0.0
841 8 3.0 -1.5
842 10 -1.0 0.5
843 7 -3.5 1.0
844 9 2.0 -1.0
845 8 -2.5 0.5
846 9 -2.0 1.5
847 9 -2.0 -1.5
848 9 0.0 2.0
849 9 -1.5 0.0
850 8 0.0 3.0
851 9 -2.0 -1.0
852 8 1.5 1.0
853 5 4.5 3.5
854 9 -2.0 2.0
855 7 4.0 2.0
856 10 0.0 -1.5
857 9 2.0 0.0
858 10 1.0 -1.5
859 8 3.0 1.5
860 10 0.0 0.0
861 8 2.0 -3.0
862 9 2.0 -1.5
863 5 6.5 -1.0
864 10 -0.5 0.5
865 9 1.5 1.5
866 8 1.5 -3.0
867 3 8.5 1.5
868 5 4.5 1.5
869 6 -5.5 1.0
870 5 -5.5 -1.5
871 9 -1.5 0.0
872 8 2.0 -1.5
873 7 3.5 -1.5
874 7 -1.0 3.0
875 9 -1.5 1.0
876 10 1.5 -1.0
877 9 2.0 -1.0
878 9 -1.5 0.0
879 9 1.5 -1.5
880 7 2.0 3.0
881 7 -3.0 -3.0
882 8 0.0 3.0
883 8 -2.0 2.0
884 8 2.0 2.5
885 7 3.5 0.0
886 9 -1.5 1.5
887 5 5.5 3.0
888 9 -2.0 1.0
889 6 4.5 1.0
890 9 1.0 2.0
891 7 -3.5 0.0
892 9 1.5 1.5
893 6 3.5 3.0
894 8 2.5 -1.5
895 7 3.5 -1.0
896 8 -3.0 0.0
897 8 -2.0 2.5
898 10 0.0 0.0
899 8 -3.0 -1.5
900 9 1.5 -1.5
901 7 3.0 1.0
902 9 -1.5 0.5
903 7 2.0 -3.5
904 9 0.0 2.0
905 8 2.5 1.5
906 10 0.0 1.0
907 8 3.0 -2.0
908 9 0.0 -2.0
909 9 1.5 0.5
910 8 2.5 -1.5
911 6 4.5 2.5
912 8 2.0 -1.5
913 6 4.5 -2.0
914 9 0.0 2.0
915 5 6.0 -1.0
916 10 0.0 -1.0
917 8 3.0 -1.5
918 9 1.5 0.5
919 8 2.0 1.0
920 8 2.0 -2.0
921 7 3.0 -2.0
922 10 1.0 -1.0
923 5 5.5 0.0
924 10 0.0 1.0
925 7 2.5 -3.0
926 10 1.0 -1.0
927 8 2.5 -2.5
928 8 -1.5 2.5
929 7 4.0 0.0
930 8 3.0 1.5
931 7 3.5 -1.0
932 10 0.0 1.0
933 7 3.5 0.5
934 9 2.0 1.0
935 9 1.5 -2.0
936 10 -0.5 0.0
937 10 1.0 -1.0
938 9 2.0 1.0
939 7 -0.5 -3.5
940 6 -4.5 1.0
941 9 2.0 -1.0
942 9 1.0 2.5
943 6 1.5 -4.5
944 10 1.0 -1.0
945 8 -2.0 2.0
946 10 -1.0 0.5
947 9 3.0 -1.0
948 7 -1.5 3.5
949 8 2.5 1.5
950 9 1.5 1.0
951 8 -1.0 -3.0
952 7 3.5 1.5
953 7 -3.5 2.0
954 5 -3.0 0.0
955 8 1.5 2.0

Binary file not shown.

File diff suppressed because it is too large Load Diff

25001
data/synthetic_shots.csv Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +1,26 @@
# generate points and x, y coordinates based on this rules '''--------------------------------------------------
# 1. points possible: 0 to 10 Script randomly generates coordinates from (-10, -10)
# 2. possible points for x, y range to (10, 10), with step 0.5.
# 2a. 10 (0,0) (1.5, 1.5) Then applies points from 0 to 10 to the coordinates.
# 2.b 9 (1.5,0) (1.5, 1.5)
# 2.c 8 (0,0) (1.5, 1.5)
# 2.d 7 (0,0) (1.5, 1.5)
# 2.e 6 (0,0) (1.5, 1.5)
# 2.f 5 (0,0) (1.5, 1.5)
# 2.g 4 (0,0) (1.5, 1.5)
# 2.h 3 (0,0) (1.5, 1.5)
# 2.i 2 (0,0) (1.5, 1.5)
# 2.j 1 (0,0) (1.5, 1.5)
# 2.j 0 (0,0) (1.5, 1.5)
Points value is determined by circle area.
Export the dataset to "data/synthetic_shots.csv"
---------------------------------------------------'''
import sys
import pandas as pd import pandas as pd
import numpy as np import numpy as np
import csv import csv
FEATURES = ["points", "x", "y"] args = sys.argv[1:]
if not args:
print("Usage: python3 generate_synthetic_shots.py <number of generated shots>")
sys.exit(1)
n = int(args[0])
# Area circle # Area circle
A10 = 1.5 ** 2 * np.pi A10 = 1.5 ** 2 * np.pi
@ -31,21 +34,9 @@ A3 = 8.5 ** 2 * np.pi
A2 = 9.5 ** 2 * np.pi A2 = 9.5 ** 2 * np.pi
A1 = 10.5 ** 2 * np.pi A1 = 10.5 ** 2 * np.pi
'''print(A10) possible_values = np.linspace(-10, 10, 41) # fromn -10 to 10 with step 0.5
print(A9)
print(A8)
print(A7)
print(A6)
print(A5)
print(A4)
print(A3)
print(A2)
print(A1)
print("")'''
possible_values = np.linspace(-10, 10, 41) # frin -10 to 10 with step 0.5 xy = [(np.random.choice(possible_values), np.random.choice(possible_values)) for _ in range(n)]
xy = [(np.random.choice(possible_values), np.random.choice(possible_values)) for _ in range(1000)]
dataset = [] dataset = []
@ -77,9 +68,8 @@ for i in xy:
elif A > A1: elif A > A1:
dataset.append([0, i[0], i[1]]) dataset.append([0, i[0], i[1]])
#print(dataset) with open('data/synthetic_shots.csv', 'w', newline='') as csvfile:
with open('data/synthetic_data.csv', 'w', newline='') as csvfile:
fieldnames = ['points', 'x', 'y'] fieldnames = ['points', 'x', 'y']
writer = csv.writer(csvfile) writer = csv.writer(csvfile)
writer.writerow(fieldnames)
writer.writerows(dataset) writer.writerows(dataset)

23
main.py
View File

@ -1,3 +1,5 @@
import sys
from arguments import Arguments
import pandas as pd import pandas as pd
import numpy as np import numpy as np
import seaborn as sns import seaborn as sns
@ -9,14 +11,27 @@ from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import LabelEncoder from sklearn.preprocessing import LabelEncoder
if not sys.argv[1:]:
print("Usage: python3 main.py <path to csv> <mode vector [v] (default) or absolut [a] or cartesian [c]> <optional information [true]> <optional graphs [true]>")
sys.exit(1)
args = Arguments(sys.argv[1])
args.set_mode(sys.argv[2])
try:
args.set_information(sys.argv[3])
args.set_graph(sys.argv[4])
except IndexError:
args.set_information(False)
args.set_graph(False)
FEATURES = ["points", "x", "y"] FEATURES = ["points", "x", "y"]
# create dataframe from csv and drop any row with null values # create dataframe from csv and drop any row with null values
def load_dataframe(): def load_dataframe(file_path):
try: try:
colum_list = FEATURES colum_list = FEATURES
#df = pd.read_csv("data/shots.csv", usecols = colum_list).dropna() df = pd.read_csv(file_path, usecols = colum_list).dropna()
df = pd.read_csv("data/synthetic_data.csv", usecols = colum_list).dropna()
return df return df
except FileNotFoundError as error: except FileNotFoundError as error:
print(error) print(error)
@ -73,7 +88,7 @@ def get_score_from_cli():
return None return None
def main(): def main():
df = load_dataframe() df = load_dataframe(args.get_file_path())
print(df.describe()) print(df.describe())
#print(df.head()) #print(df.head())
#print(df.head().info()) #print(df.head().info())