Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

createfulltrace.py 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import os,sys
  2. sys.path.append('.')
  3. import modules.coordsi as csi
  4. import modules.wavacc as wav
  5. import numpy as np
  6. import pandas as pd
  7. import scipy as sp
  8. import csv
  9. def main(input):
  10. if len(input) != 2:
  11. print('Usage: python3 ./scripts/createkpi.py <parent path of interpolation csv>')
  12. sys.exit(1)
  13. root = input[1]
  14. handledir = './handletrace/'
  15. if not os.path.exists('./fulltrace'):
  16. try:
  17. os.makedirs('./fulltrace')
  18. except Exception as e:
  19. print(e)
  20. listdir = os.listdir(root)
  21. for index in listdir:
  22. try:
  23. filepath = os.path.join(root, index)
  24. print(filepath)
  25. filename = os.path.join(index)
  26. original_wave=[]
  27. with open(filepath, 'r') as f:
  28. reader = csv.reader(f)
  29. for row in reader:
  30. original_wave = row
  31. for x in range(0, len(original_wave)):
  32. original_wave[x] = float(original_wave[x])
  33. stroke = []
  34. threshold = 0.15
  35. s_start = 0
  36. s_end = 0
  37. for i in range(1, len(original_wave)-1):
  38. if original_wave[i] < -threshold and original_wave[i+1] > threshold:
  39. s_start = i
  40. elif original_wave[i] > threshold and original_wave[i+1] < -threshold:
  41. if s_start != 0:
  42. s_end = i
  43. if s_start != 0 and s_end != 0:
  44. stroke.append([s_start, s_end])
  45. s_start = 0
  46. s_end = 0
  47. df = pd.read_csv(os.path.join('./handletrace/', filename))
  48. df['status'] = 'idle'
  49. for i in stroke:
  50. #set df['status'] == 'in' when sroke[i][0] is same as index of df.
  51. df.loc[i[0]:i[0], 'status'] = 'in'
  52. ##set df['status'] == 'out' when sroke[i][1] is same as index of df.
  53. df.loc[i[1]:i[1], 'status'] = 'out'
  54. for frame in range(i[0]+1, i[1]):
  55. df.loc[frame:frame, 'status'] = 'suction'
  56. df.to_csv(os.path.join('./fulltrace/', index), index=False)
  57. except Exception as e:
  58. print(e)
  59. continue
  60. if __name__ == '__main__':
  61. try:
  62. main(sys.argv)
  63. except Exception as e:
  64. print(e)
  65. sys.exit(1)