VEL_IFD = [] VEL = [] RHO = [] for f in range(df['Frame'].min(),df['Frame'].max()): meanV01 = [] meanV02 = [] density = [] for i in df[df['Frame'] == f]['PersID'].iteritems(): polygons_mA = [] polygons_op = [] polygons_ip = [] # measurement area poly_ma = df['measurementArea'][i[0]].strip() # original polygon poly_op = df['polygon_iterator'][i[0]].strip() # intersected polygon poly_ip = df['v'][i[0]].strip() exec("p_mA = %s"%poly_ma) exec("p_op = %s"%poly_op) exec("p_ip = %s"%poly_ip) pmA = locals()['p_mA'] pop = locals()['p_op'] pip = locals()['p_ip'] polygons_mA.append(pmA) polygons_op.append(pop) polygons_ip.append(pip) Poly_mA = np.array(polygons_mA[0]) / 10000 Poly_op = np.array(polygons_op[0]) / 10000 Poly_ip = np.array(polygons_ip[0]) / 10000 # individual calculation # velocity # jupedsim: meanV+=Velocity[temp]*area(v[0]); vel = df['vel'][i[0]] * Polygon(polygons_ip[0]).area() meanV01.append(vel) meanV02.append(df['vel'][i[0]]) # density # jupedsim: density+=area(v[0])/area(polygon_iterator); density_ratio = Polygon(polygons_ip[0]).area() / Polygon(polygons_op[0]).area() density.append(density_ratio) # calculation # velocity mV1 = np.array(meanV01) mV2 = np.array(meanV02) # jpsreport: meanV/area(measureArea); meanV1 = mV1.sum() / Polygon(polygons_mA[0]).area() meanV2 = mV2.mean() # jpsreport: density = density/(area(measureArea)*CMtoM*CMtoM); rho = np.array(density) rho_mA = rho.sum() / (Polygon(polygons_mA[0]).area() * CMtoM * CMtoM) RHO.append(rho_mA) VEL.append(meanV2) VEL_IFD.append(meanV1) print('mean velocity IFD: {0:.3f} m/s'.format(meanV1)) print('mean velocity: {0:.3f} m/s'.format(meanV2)) print('mean density: {0:.3f} P/m2'.format(rho_mA))