Skip to content

Commit

Permalink
Relax requirement for extra dimensions to have lower case names
Browse files Browse the repository at this point in the history
  • Loading branch information
Brown committed Nov 13, 2019
1 parent 52c9ad9 commit c97ffa5
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
4 changes: 2 additions & 2 deletions laspy/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ def get_dimension(self, name):
return(self._get_dimension(spec))
except KeyError:
raise laspy.util.LaspyException("Dimension: " + str(name) +
" not found.")
" not found. Existing dimensions: " + ", ".join(self.point_format.lookup.keys()))

def _get_dimension(self, spec):
return(self.data_provider._pmap["point"][spec.name])
Expand Down Expand Up @@ -1268,7 +1268,7 @@ def set_dimension(self, name,new_dim):
return(self._set_dimension(spec, new_dim))
except KeyError:
raise laspy.util.LaspyException("Dimension: " + str(name) +
"not found.")
" not found. Existing dimensions: " + ", ".join(self.point_format.lookup.keys()))

def _set_dimension(self, spec, value):
self.data_provider._pmap["point"][spec.name] = value
Expand Down
2 changes: 1 addition & 1 deletion laspy/header.py
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,7 @@ def setup_extra_bytes_spec(self, VLR_body):
self.add_extra_dim(new_rec)

def add_extra_dim(self, new_rec):
new_name = new_rec.name.decode().replace("\x00", "").replace(" ", "_").lower()
new_name = new_rec.name.decode().replace("\x00", "").replace(" ", "_")
self.__dict__[new_name] = new_rec
self.extra_dimensions.append(new_rec)

Expand Down
2 changes: 1 addition & 1 deletion laspy/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ def etree(self):


def translate_extra_spec(self, extra_dim):
name = extra_dim.name.decode().replace("\x00", "").replace(" ", "_").lower()
name = extra_dim.name.decode().replace("\x00", "").replace(" ", "_")
if extra_dim.data_type == 0:
fmt = "ctypes.c_ubyte"
num = extra_dim.options
Expand Down
17 changes: 14 additions & 3 deletions laspytest/test_laspy.py
Original file line number Diff line number Diff line change
Expand Up @@ -771,11 +771,11 @@ def test_vlr_defined_dimensions(self):
"""Testingi multiple v1.4 VLR defined dimensions (LL API)"""
new_header = self.File1.header.copy()
# Test basic numeric dimension
new_dim_record1 = header.ExtraBytesStruct(name = "Test Dimension 1234", data_type = 5)
new_dim_record1 = header.ExtraBytesStruct(name = "test dimension 1234", data_type = 5)
# Test string dimension (len 3)
new_dim_record2 = header.ExtraBytesStruct(name = "Test Dimension 5678", data_type = 22)
new_dim_record2 = header.ExtraBytesStruct(name = "test dimension 5678", data_type = 22)
# Test integer array dimension (len 3)
new_dim_record3 = header.ExtraBytesStruct(name = "Test Dimension 9", data_type = 26)
new_dim_record3 = header.ExtraBytesStruct(name = "test dimension 9", data_type = 26)
new_VLR_rec = header.VLR(user_id = "LASF_Spec", record_id = 4,
VLR_body = (new_dim_record1.to_byte_string() + new_dim_record2.to_byte_string() + new_dim_record3.to_byte_string()))
new_header.data_record_length += (19)
Expand Down Expand Up @@ -860,6 +860,17 @@ def test_vlr_defined_dimensions2(self):
self.assertEqual(File2.test_dimension2[123], 0)
File2.close(ignore_header_changes = True)

def test_vlr_defined_dimensions3(self):
"""Testing VLR defined dimensions (HL API)"""
File2 = File.File(self.output_tempfile, mode = "w", header = self.File1.header)
File2.define_new_dimension("Test_Dimension", 5, "This is a test.")

File2.X = self.File1.X
self.assertEqual(File2.Test_Dimension[500], 0)
File2.close(ignore_header_changes = True)



def tearDown(self):
self.File1.close()
really_remove(self.tempfile)
Expand Down

0 comments on commit c97ffa5

Please sign in to comment.