Как добавить данные в пользовательское измерение при сохранении файла laspy (.las) в python?
Хорошо, более подробно: я читаю стандартный файл .las с атрибутами X, Y, Z,Я. Затем я делаю некоторые вычисления и хочу сохранить результат в виде файла .las с атрибутами X, Y, Z, I и дополнительным новым измерением «my_dim». Пока я знаю имя нового измерения, нет проблем с определением и добавлением к нему данных:
header = laspy.header.Header(point_format=2)
with laspy.file.File(FILEPATH, mode="w", header=header) as f:
f.define_new_dimension(name="my_dim", data_type=5, description="My new dimension")
f.my_dim = ...
...
Однако я хочу инкапсулировать процесс сохранения в свою собственную функцию и предоставить дополнительные измерения, какпараметр extra_dims
(в виде списка диктовок, например [{"name": "my_dim", data_type: 5, ...}]
. Теперь я все еще могу определить новое измерение на основе параметра, но добавить данные невозможно. Вот фрагмент:
def save(extra_dims):
header = ...
with laspy...:
for dim in extra_dims:
f.define_new_dimension(name = dim["name"], data_type = ...
# Assign X,Y,Z,I
...
Для добавления данных f[dim["name"]] = ...
не работает (как и f.dim["name"]
, очевидно), я получаю только
TypeError: 'File' object does not support item assignment
У кого-нибудь есть идеи, как решить эту проблему, т.е. добавить данные в атрибутчье имя «скрыто» в параметре?