diff --git a/laspy/header.py b/laspy/header.py index 34e64b1f..d634447e 100644 --- a/laspy/header.py +++ b/laspy/header.py @@ -464,21 +464,22 @@ def __len__(self): '''Return the size of the vlr object in bytes''' return self.rec_len_after_header + 54 - def pack(self, name, val): - '''Pack a VLR field into bytes.''' + def pack(self, name, val): spec = self.fmt.lookup[name] + if type(val)== bytes: + return val if spec.num == 1: return(struct.pack(spec.fmt, val)) - return(struct.pack(spec.fmt[0]+spec.fmt[1]*len(val), *val)) + return(struct.pack(spec.fmt[0]+spec.fmt[1]*len(val))) def to_byte_string(self): '''Pack the entire VLR into a byte string.''' if type(self.parsed_body) != type(None): self.pack_data() - out = (self.pack("reserved", self.reserved) + - self.pack("user_id", self.user_id) + - self.pack("record_id", self.record_id) + - self.pack("rec_len_after_header", self.rec_len_after_header) + + out = (self.pack("reserved", self.reserved) + + self.pack("user_id", self.user_id) + + self.pack("record_id", self.record_id) + + self.pack("rec_len_after_header", self.rec_len_after_header) + self.pack("description", self.description) + self.VLR_body) diff = (self.rec_len_after_header - len(self.VLR_body))