extract_stats.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # main imports
  2. import os, sys
  3. import argparse
  4. import json
  5. def main():
  6. """
  7. main function which is ran when launching script
  8. """
  9. parser = argparse.ArgumentParser(description="Extract scenes data and save thresholds into .csv")
  10. parser.add_argument('--file', type=str, help='image to convert', required=True)
  11. parser.add_argument('--output', type=str, help='output csv filename', required=True)
  12. args = parser.parse_args()
  13. p_file = args.file
  14. p_output = args.output
  15. f = open(p_file)
  16. json_data = json.load(f)
  17. dict_data = {}
  18. for element in json_data:
  19. scene = element['msg']['sceneName']
  20. if scene not in dict_data:
  21. dict_data[scene] = {}
  22. extracts = element['msg']['extracts']
  23. for extract in extracts:
  24. if extract['index'] not in dict_data[scene]:
  25. dict_data[scene][extract['index']] = (extract['quality'], 1)
  26. else:
  27. dict_data[scene][extract['index']] = (dict_data[scene][extract['index']][0] + extract['quality'], dict_data[scene][extract['index']][1] + 1)
  28. output_file = open(p_output, 'w')
  29. for scene in dict_data:
  30. output_file.write(scene + ';')
  31. for extract in dict_data[scene]:
  32. thresholds_data = dict_data[scene][extract]
  33. output_file.write(str(int(thresholds_data[0] / thresholds_data[1])) + ';')
  34. output_file.write('\n')
  35. if __name__ == "__main__":
  36. main()