|
@@ -12,13 +12,13 @@ def cluster(file_in, file_out):
|
|
# #############################################################################
|
|
# #############################################################################
|
|
data_df = pandas.read_csv("/home/bscheibel/PycharmProjects/dxf_reader/temporary/list_to_csv_with_avg_points.csv", sep=";")
|
|
data_df = pandas.read_csv("/home/bscheibel/PycharmProjects/dxf_reader/temporary/list_to_csv_with_avg_points.csv", sep=";")
|
|
data_df.head(3)
|
|
data_df.head(3)
|
|
- data = data_df[["xavg_elem","yavg_elem"]]
|
|
|
|
|
|
+ data = data_df[["xavg_elem","yavg_elem","ausrichtung"]]
|
|
print(data)
|
|
print(data)
|
|
data = StandardScaler().fit_transform(data)
|
|
data = StandardScaler().fit_transform(data)
|
|
|
|
|
|
# #############################################################################
|
|
# #############################################################################
|
|
# Compute DBSCAN
|
|
# Compute DBSCAN
|
|
- db = DBSCAN(eps=0.1, min_samples=1).fit(data)
|
|
|
|
|
|
+ db = DBSCAN(eps=0.06, min_samples=1).fit(data)
|
|
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
|
|
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
|
|
core_samples_mask[db.core_sample_indices_] = True
|
|
core_samples_mask[db.core_sample_indices_] = True
|
|
labels = db.labels_
|
|
labels = db.labels_
|
|
@@ -62,28 +62,45 @@ def cluster(file_in, file_out):
|
|
|
|
|
|
#print(data_df.head(3))
|
|
#print(data_df.head(3))
|
|
#data_df.to_csv("values_clusteredfromPDF_GV12.csv")
|
|
#data_df.to_csv("values_clusteredfromPDF_GV12.csv")
|
|
- data_df.groupby('cluster')['element'].apply(' '.join).reset_index().to_csv("values_clusteredfromHTML_layout_LH.csv", delimiter=";")
|
|
|
|
|
|
+ data_df.groupby('cluster')['element'].apply(' '.join).reset_index().to_csv("values_clusteredfromHTML_layout_LH.csv",sep=";")
|
|
|
|
|
|
|
|
|
|
def get_average_xy(list_input):
|
|
def get_average_xy(list_input):
|
|
csv_name = "temporary/list_to_csv_with_avg_points.csv"
|
|
csv_name = "temporary/list_to_csv_with_avg_points.csv"
|
|
new_list = []
|
|
new_list = []
|
|
- resultFile = open(csv_name, 'a')
|
|
|
|
|
|
+ resultFile = open(csv_name, 'w')
|
|
wr = csv.writer(resultFile, delimiter=";")
|
|
wr = csv.writer(resultFile, delimiter=";")
|
|
- wr.writerow(["element", "xavg_elem","yavg_elem"])
|
|
|
|
|
|
+ wr.writerow(["element", "xavg_elem","yavg_elem", "ausrichtung"])
|
|
for element in list_input:
|
|
for element in list_input:
|
|
xavg_elem = 0
|
|
xavg_elem = 0
|
|
yavg_elem = 0
|
|
yavg_elem = 0
|
|
|
|
+ y_min = 1000000
|
|
|
|
+ y_max = 0
|
|
|
|
+ x_min = 1000000
|
|
|
|
+ x_max = 0
|
|
for blub in element:
|
|
for blub in element:
|
|
xavg_elem += (float(blub[0]) + float(blub[2]))/2
|
|
xavg_elem += (float(blub[0]) + float(blub[2]))/2
|
|
yavg_elem += (float(blub[1]) + float(blub[3]))/2
|
|
yavg_elem += (float(blub[1]) + float(blub[3]))/2
|
|
|
|
+ if float(blub[1]) < y_min:
|
|
|
|
+ y_min = float(blub[1])
|
|
|
|
+ print("y_min:",y_min)
|
|
|
|
+ if float(blub[0]) < x_min:
|
|
|
|
+ x_min = float(blub[0])
|
|
|
|
+ if float(blub[3]) > y_max:
|
|
|
|
+ y_max = float(blub[3])
|
|
|
|
+ if float(blub[2]) > x_max:
|
|
|
|
+ x_max = float(blub[2])
|
|
|
|
+ if x_max-x_min > y_max-y_min:
|
|
|
|
+ ausrichtung = 0
|
|
|
|
+ else:
|
|
|
|
+ ausrichtung = 1
|
|
xavg_elem = xavg_elem/len(element)
|
|
xavg_elem = xavg_elem/len(element)
|
|
#print(xavg_elem)
|
|
#print(xavg_elem)
|
|
yavg_elem = yavg_elem/len(element)
|
|
yavg_elem = yavg_elem/len(element)
|
|
#element.extend([xavg_elem, yavg_elem])
|
|
#element.extend([xavg_elem, yavg_elem])
|
|
#print(element)
|
|
#print(element)
|
|
#new_list.append(element)
|
|
#new_list.append(element)
|
|
- wr.writerow([element,xavg_elem,yavg_elem])
|
|
|
|
|
|
+ wr.writerow([element,xavg_elem,yavg_elem, ausrichtung])
|
|
|
|
|
|
resultFile.close()
|
|
resultFile.close()
|
|
#print(new_list)
|
|
#print(new_list)
|
|
@@ -91,6 +108,8 @@ def get_average_xy(list_input):
|
|
|
|
|
|
|
|
|
|
#cluster(33,33)
|
|
#cluster(33,33)
|
|
-#result = order_bounding_boxes_in_each_block.get_bound_box()
|
|
|
|
-#get_average_xy(result)
|
|
|
|
|
|
+file = "/home/bscheibel/PycharmProjects/dxf_reader/drawings/5152166_Rev04.html"
|
|
|
|
+#file = "/home/bscheibel/PycharmProjects/dxf_reader/drawings/5129275_Rev01-GV12.html"
|
|
|
|
+result = order_bounding_boxes_in_each_block.get_bound_box(file)
|
|
|
|
+get_average_xy(result)
|
|
cluster(33,33)
|
|
cluster(33,33)
|