Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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)