diff --git a/measure.py b/measure.py
index 94b79a48f70a24ec938c09d275db6ff9d023b77f..5c897c6d8faa841f310cf210b669fdc44b6dddc8 100644
--- a/measure.py
+++ b/measure.py
@@ -1,20 +1,34 @@
 import numpy as np
 import overlap
+import logging
 
 from polygon_triangulate import polygon_triangulate, PlotTriangulation
 from tetrahedralize_triangles import tetrahedralize
 
+logging.basicConfig(filename='warnings.log', level=logging.DEBUG)
+
 def measure_volume(V_tet, T, origin, r):
 
     sphere = overlap.Sphere(origin, r)
     volume = 0.0
 
+    volumes = []
+
     for tet in T:
         vertices = V_tet[tet]
         overlap_tet = overlap.Tetrahedron(vertices)
         overlap_volume = overlap.overlap(sphere, overlap_tet)
+        volumes.append(overlap_volume)
+        if overlap_volume < 0:
+            print('Encountered negative volume overlap')
+            logging.warning('Encountered negative volume overlap')
         volume += overlap_volume
 
+    #import matplotlib.pyplot as plt
+    #plt.title(f'radius {r} total {volume}')
+    #plt.plot(np.arange(len(volumes)), volumes)
+    #plt.show()
+
     return volume
 
 def same_point(x, y):
@@ -28,6 +42,16 @@ def remove_duplicate_contour_points(P):
             return remove_duplicate_contour_points(np.delete(P, i, axis=0))
     return P
 
+def remove_line_triangles(P, F):
+    n = len(F)
+    for i in range(n-1, -1, -1):
+        PF = P[F[i]]
+        v1 = PF[0] - PF[1]
+        v2 = PF[1] - PF[2]
+        if np.isclose(np.abs(np.dot(v1/np.linalg.norm(v1),v2/np.linalg.norm(v2))),1):
+            F = np.delete(F, i, axis=0)
+    return F
+
 def measure_cumulative_volume(z, P, thickness, origin, R):
     '''
     Integration of the intersecting volume of a thick polygon and a sphere of increasing radius.
@@ -60,6 +84,13 @@ def measure_cumulative_volume(z, P, thickness, origin, R):
     z1 = z + thickness / 2
     _, V_tri, F = polygon_triangulate(P)
 
+    F = remove_line_triangles(V_tri, F)
+
+    #import matplotlib.pyplot as plt
+    #print(V_tri[:5,:])
+    #PlotTriangulation(V_tri, F)
+    #plt.show()
+
     V_tet, T = tetrahedralize(V_tri, F, z0, z1)
 
     mu = np.zeros(len(R))
@@ -123,4 +154,4 @@ def measure_cumulative_points(z, X, thickness, origin, R):
         s = h - d0
         mu[i] = np.sum(np.clip(s/thickness, 0, 1))
 
-    return mu
\ No newline at end of file
+    return mu
diff --git a/run.py b/run.py
index 847c1c184f05902100e8775e6d7aa78ab3e934a2..9ac24aa09545f9ee641666c6816a5970fb4778d2 100644
--- a/run.py
+++ b/run.py
@@ -78,17 +78,16 @@ def write_csv(path, R, dP, dV):
         for i0,i1,a,b,c,d,e,v in zip(R[:-1], R[1:], dP, dV, Dens, intdP, intdV, intDens):
             f.write(f'{i0},{a},{b},{c},,{i0},{i1},{d},{e},{v}\n')
 
-def run(base_dir):
+def run(base_dir, output_dir):
 
     R = np.arange(0, 3001, 125)
 
-    output_dir = 'output'
+    
     os.makedirs(output_dir, exist_ok=True)
 
     for experiment in tqdm(os.listdir(base_dir), desc='experiment'):
         for reading in os.listdir(os.path.join(base_dir, experiment)):
-            #if reading != '7566':
-            #    continue
+
             data_dir = os.path.join(base_dir, experiment, reading)
             origin, thickness = parse_params(data_dir)
             
@@ -116,4 +115,5 @@ def run(base_dir):
 
 if __name__ == '__main__':
     base_dir = 'data'
-    run(base_dir)
\ No newline at end of file
+    output_dir = 'output'
+    run(base_dir, output_dir)