У меня есть следующий фрагмент кода.
fw = open(os.path.join(result_folder, 'motor_commands.txt'),'w')
np.set_printoptions(precision=3)
for positioner in positioner_grid.positioners[1:]:
simplejson.dump(('Positioner ' + str(positioner.ident)), fw)
fw.write('\n')
array = np.array(positioner.motor1.position_array) * 180/math.pi
array = np.round(array, decimals=4)
simplejson.dump(array.tolist(), fw)
fw.write('\n')
array = np.array(positioner.motor2.position_array) * 180/math.pi
array = np.round(array, decimals=4)
simplejson.dump(array.tolist(), fw)
fw.write('\n \n')
fw.close()
Его выводом является motor_commands.txt
, чья компоновка (например, для 2 позиционеров) выглядит следующим образом (следующие символические записи являются действительными числами):
"Positioner 1"
[P11, P12, P13]
[Q11, Q12, Q13]
"Positioner 2"
[P21, P22, P23]
[Q21, Q22, Q23]
Учитывая заданную переменную dt
, мне нужно сгенерировать другой файл с именем trajectories.yaml
, формат которого должен быть таким:
1:
alpha: [[P11,0*dt],[P12,1*dt],[P13,2*dt]]
beta: [[Q11,0*dt],[Q12,1*dt],[Q13,2*dt]]
2:
alpha: [[P21,0*dt],[P22,1*dt],[P23,2*dt]]
beta: [[Q21,0*dt],[Q22,1*dt],[Q23,2*dt]]
Итак, здесьэто то, что я до сих пор пытался сгенерировать макет выше.
tw = open(os.path.join(result_folder, 'trajectories.yaml'), 'w')
for positioner in positioner_grid.positioners[1:]:
simplejson.dump((str(positioner.ident) + ':'), tw)
tw.write('\n')
simplejson.dump(('alpha: '), tw)
position1 = []
for i in range(1, len(positioner.motor1.position_array)):
temp = [positioner.motor1.position_array[i] * 180 / math.pi, (i-1) * dt]
position1.append(temp)
simplejson.dump(array[position1].tolist(), tw)
tw.write('\n')
simplejson.dump(('beta: '), tw)
position2 = []
for i in range(1, len(positioner.motor2.position_array)):
temp = [positioner.motor2.position_array[i] * 180 / math.pi, (i-1) * dt]
position2.append(temp)
simplejson.dump(array[position2].tolist(), tw)
tw.write('\n')
tw.close()
Но выдается следующая ошибка:
'numpy.ndarray' object is not callable Files are not properly selected.
и мой trajectories.yaml
файл не генерируется правильно:
"1:"
"alpha: "
Что я делаю не так, пожалуйста?