Browse Source

added files

bscheibel 4 years ago
parent
commit
66c2ef0bdb
2 changed files with 23 additions and 18 deletions
  1. 3 3
      clustering_precomputed_dbscan.py
  2. 20 15
      read_from_clustered_merged.py

+ 3 - 3
clustering_precomputed_dbscan.py

@@ -31,7 +31,7 @@ def get_average_xy(list_input):
                 ymax = float(blub[3])
             if float(blub[2]) > xmax:
                 xmax = float(blub[2])
-        if float(xmax)-float(xmin) > 1.5*(float(ymax)-float(ymin)):
+        if float(xmax)-float(xmin) > 1.3*(float(ymax)-float(ymin)):
             ausrichtung = 0 #horizontal
             #print("horizontal")
         if 1.5*(float(xmax)-float(xmin)) < float(ymax)-float(ymin):
@@ -102,7 +102,7 @@ def dist(rectangle1, rectangle2):
     return distance
 
 def clustering(distance_matrix):
-    db = DBSCAN(eps=4, min_samples=1, metric="precomputed").fit(dm)  ##3.93 until now, bei 5 shon mehr erkannt, 7 noch mehr erkannt aber auch schon zu viel; GV12 ist 4.5 gut für LH zu wenig
+    db = DBSCAN(eps=3, min_samples=1, metric="precomputed").fit(dm)  ##3.93 until now, bei 5 shon mehr erkannt, 7 noch mehr erkannt aber auch schon zu viel; GV12 ist 4.5 gut für LH zu wenig
     #db = OPTICS(min_samples=1,xi=0.1, metric="precomputed").fit(dm)
     labels = db.labels_
     # Number of clusters in labels
@@ -112,7 +112,7 @@ def clustering(distance_matrix):
     data_df = pandas.read_csv("/home/bscheibel/PycharmProjects/dxf_reader/temporary/list_to_csv_with_corner_points.csv",
                            sep=";")
     data_df["cluster"] = labels
-    data_df.groupby('cluster')['element'].apply(','.join).reset_index().to_csv("values_clusteredfrom_precomputed_dbscan.csv",sep=";", header=False, index=False)
+    data_df.groupby(['cluster','ausrichtung'])['element'].apply(','.join).reset_index().to_csv("values_clusteredfrom_precomputed_dbscan.csv",sep=";", header=False, index=False)
 
 
 #file = "/home/bscheibel/PycharmProjects/dxf_reader/drawings/5152166_Rev04.html"

+ 20 - 15
read_from_clustered_merged.py

@@ -1,34 +1,39 @@
 import csv
-import re
 
 with open("/home/bscheibel/PycharmProjects/dxf_reader/values_clusteredfrom_precomputed_dbscan.csv", "r") as f:
     reader = csv.reader(f, delimiter=";")
     reg_search = []
     for row in reader:
-        reg = r",\s*'\(*(\w*\W*.,*\d*)\)*'\]*\]"
-        #print(row[1])
-        row3 = row[1]
+        ausrichtung = row[1]
+        row3 = row[2]
         row3 = eval(row3)
+        element = ""
+        merged_elements = []
         for blub in row3:
-            #print(len(row3),row3)
+
+            #print(row3)
+
             if len(row3) == 1:
                 print(blub[4])
+                #print("blub")
             else:
 
                 if isinstance(blub[0],list):
+                    merged_elements += blub
+                    print(merged_elements)
+
+                    if int(ausrichtung) == 1:
+                        blub = sorted(merged_elements, key=lambda k: [float(k[3])],reverse=True)
+
                     for blubi in blub:
-                        print(blubi[4])
+                        element += blubi[4] + " "
+
                 else:
+                    element += blub[4] + " "
+
 
-                    print(blub[4])
+        #print(element)
 
 
         print("\n")
-"""      reg_search.append(re.findall(reg, row[1]))
-        #for reg in reg_search:
-    for reg in reg_search:
-            reg_new = reg
-            #print(reg_new)
-    ##print(data[labels == 0])"""
-
-####TO DO: beim auslesen nach x-Koordinaten sortieren
+