Loading .travis.yml +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ install: - source activate test-env # Install the non-conda packages if required, requirements.txt duplicates are ignored - conda install -c https://conda.binstar.org/menpo opencv3=3.0.0 - conda install -c https://conda.anaconda.org/jlaura opencv3=3.0.0 - conda install -c osgeo proj4 - pip install -r requirements.txt - pip install coverage Loading autocnet/control/control.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ class CSeries(pd.Series): """ @property def _constructor(self): return CustomSeries # pragma: no cover return CSeries # pragma: no cover class C(pd.DataFrame): Loading Loading @@ -66,7 +66,7 @@ class C(pd.DataFrame): @property def n(self): if not getattr(self, '_n', None): self._n = len(self.index.levels[0]) self._n = len(self['pid'].unique()) return self._n @property Loading autocnet/control/tests/test_control.py +8 −14 Original line number Diff line number Diff line Loading @@ -14,26 +14,20 @@ from autocnet.control import control class TestC(unittest.TestCase): def setUp(self): ids = ['pt1','pt1', 'pt1', 'pt2', 'pt2'] ptype = [2,2,2,2,2] serials = ['a', 'b', 'c', 'b', 'c'] mtype = [2,2,2,2,2] x = list(range(10)) y = list(range(10)) pid = [1,2,3,4,1,2,3,4,1,2] nid = [1,2,1,2,1,2,1,2,1,2] multi_index = pd.MultiIndex.from_tuples(list(zip(ids, ptype, serials, mtype)), names=['Id', 'Type', 'Serial Number', 'Measure Type']) data = np.array([x, y, pid, nid]).T columns = ['Random Number'] self.data_length = 5 data = np.random.randn(self.data_length) self.C = control.C(data, index=multi_index, columns=columns) self.C = control.C(data, columns=['x', 'y', 'pid', 'nid']) def test_n_point(self): self.assertEqual(self.C.n,2) self.assertEqual(self.C.n,4) def test_n_measures(self): self.assertEqual(self.C.m, self.data_length) self.assertEqual(self.C.m, 10) def test_modified_date(self): self.assertEqual(self.C.modifieddate, 'Not modified') Loading autocnet/fileio/io_controlnetwork.py +12 −20 Original line number Diff line number Diff line import sys import pvl import numpy as np from autocnet.fileio import ControlNetFileV0002_pb2 as cnf from autocnet.control.control import POINT_TYPE, MEASURE_TYPE #TODO: Protobuf3 should be a conditional import, if availble use it, otherwise bail Loading @@ -11,7 +9,6 @@ VERSION = 2 HEADERSTARTBYTE = 65536 DEFAULTUSERNAME = 'AutoControlNetGeneration' FREEPOINT = 2 def to_isis(path, C, mode='w', version=VERSION, headerstartbyte=HEADERSTARTBYTE, Loading Loading @@ -135,32 +132,27 @@ class IsisStore(object): """ point_sizes = [] point_messages = [] for point_id in cnet.index.levels[0]: print(cnet) for pid, point in cnet.groupby('pid'): # Instantiate the proto spec point_spec = cnf.ControlPointFileEntryV0002() # Get the subset of the dataframe point = cnet.loc[point_id] try: point_spec.id = point_id point_spec.id = pid except: point_spec.id = str(point_id) point_spec.type = FREEPOINT # Hard coded to free point_spec.id = str(pid) point_spec.type = POINT_TYPE # A single extend call is cheaper than many add calls to pack points measure_iterable = [] for name, measure in point.iterrows(): print(point) for name, row in point.iterrows(): measure_spec = point_spec.Measure() serial_number = name[1] mtype = name[2] measure_spec.serialnumber = serial_number measure_spec.type = mtype measure_spec.sample = measure.x measure_spec.line = measure.y measure_spec.serialnumber = row.nid measure_spec.type = MEASURE_TYPE measure_spec.sample = row.x measure_spec.line = row.y measure_iterable.append(measure_spec) point_spec.measures.extend(measure_iterable) Loading autocnet/fileio/tests/test_io_controlnetwork.py +14 −13 Original line number Diff line number Diff line Loading @@ -29,21 +29,22 @@ class TestWriteIsisControlNetwork(unittest.TestCase): 300: '1971-07-31T01:26:17.923'} self.serials = ['APOLLO15/METRIC/{}'.format(i) for i in serial_times.values()] ids = ['pt1','pt1', 'pt1', 'pt2', 'pt2'] ptype = [2, 2, 2, 2, 2] x = list(range(5)) y = list(range(5)) pid = [0,0,1,1,1] idx = pid serials = [self.serials[0], self.serials[1], self.serials[2], self.serials[2], self.serials[3]] mtype = [2, 2, 2, 2, 2] multi_index = pd.MultiIndex.from_tuples(list(zip(ids, ptype, serials, mtype)), names=['Id', 'Type', 'Serial Number', 'Measure Type']) columns = ['x', 'y'] columns = ['x', 'y', 'idx', 'pid', 'nid'] self.data_length = 5 data = np.random.random((self.data_length, 2)) data = [x,y, idx, pid, serials] self.creation_time = strftime("%Y-%m-%d %H:%M:%S", gmtime()) cnet = C(data, index=multi_index, columns=columns) cnet = C(data, index=columns).T io_controlnetwork.to_isis('test.net', cnet, mode='wb', targetname='Moon') Loading @@ -68,18 +69,18 @@ class TestWriteIsisControlNetwork(unittest.TestCase): self.assertEqual('Not modified', header_protocol.lastModified) #Repeating self.assertEqual([199, 135], header_protocol.pointMessageSizes) self.assertEqual([133, 197], header_protocol.pointMessageSizes) def test_create_point(self): with open('test.net', 'rb') as f: with open('test.net', 'rb') as f: f.seek(self.point_start_byte) for i, length in enumerate([199, 135]): for i, length in enumerate([133, 197]): point_protocol = cnf.ControlPointFileEntryV0002() raw_point = f.read(length) point_protocol.ParseFromString(raw_point) self.assertEqual('pt{}'.format(i+1), point_protocol.id) self.assertEqual(str(i), point_protocol.id) self.assertEqual(2, point_protocol.type) for m in point_protocol.measures: self.assertTrue(m.serialnumber in self.serials) Loading @@ -95,7 +96,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase): self.assertEqual(5, mpoints) points_bytes = find_in_dict(pvl_header, 'PointsBytes') self.assertEqual(334, points_bytes) self.assertEqual(330, points_bytes) points_start_byte = find_in_dict(pvl_header, 'PointsStartByte') self.assertEqual(65621, points_start_byte) Loading Loading
.travis.yml +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ install: - source activate test-env # Install the non-conda packages if required, requirements.txt duplicates are ignored - conda install -c https://conda.binstar.org/menpo opencv3=3.0.0 - conda install -c https://conda.anaconda.org/jlaura opencv3=3.0.0 - conda install -c osgeo proj4 - pip install -r requirements.txt - pip install coverage Loading
autocnet/control/control.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ class CSeries(pd.Series): """ @property def _constructor(self): return CustomSeries # pragma: no cover return CSeries # pragma: no cover class C(pd.DataFrame): Loading Loading @@ -66,7 +66,7 @@ class C(pd.DataFrame): @property def n(self): if not getattr(self, '_n', None): self._n = len(self.index.levels[0]) self._n = len(self['pid'].unique()) return self._n @property Loading
autocnet/control/tests/test_control.py +8 −14 Original line number Diff line number Diff line Loading @@ -14,26 +14,20 @@ from autocnet.control import control class TestC(unittest.TestCase): def setUp(self): ids = ['pt1','pt1', 'pt1', 'pt2', 'pt2'] ptype = [2,2,2,2,2] serials = ['a', 'b', 'c', 'b', 'c'] mtype = [2,2,2,2,2] x = list(range(10)) y = list(range(10)) pid = [1,2,3,4,1,2,3,4,1,2] nid = [1,2,1,2,1,2,1,2,1,2] multi_index = pd.MultiIndex.from_tuples(list(zip(ids, ptype, serials, mtype)), names=['Id', 'Type', 'Serial Number', 'Measure Type']) data = np.array([x, y, pid, nid]).T columns = ['Random Number'] self.data_length = 5 data = np.random.randn(self.data_length) self.C = control.C(data, index=multi_index, columns=columns) self.C = control.C(data, columns=['x', 'y', 'pid', 'nid']) def test_n_point(self): self.assertEqual(self.C.n,2) self.assertEqual(self.C.n,4) def test_n_measures(self): self.assertEqual(self.C.m, self.data_length) self.assertEqual(self.C.m, 10) def test_modified_date(self): self.assertEqual(self.C.modifieddate, 'Not modified') Loading
autocnet/fileio/io_controlnetwork.py +12 −20 Original line number Diff line number Diff line import sys import pvl import numpy as np from autocnet.fileio import ControlNetFileV0002_pb2 as cnf from autocnet.control.control import POINT_TYPE, MEASURE_TYPE #TODO: Protobuf3 should be a conditional import, if availble use it, otherwise bail Loading @@ -11,7 +9,6 @@ VERSION = 2 HEADERSTARTBYTE = 65536 DEFAULTUSERNAME = 'AutoControlNetGeneration' FREEPOINT = 2 def to_isis(path, C, mode='w', version=VERSION, headerstartbyte=HEADERSTARTBYTE, Loading Loading @@ -135,32 +132,27 @@ class IsisStore(object): """ point_sizes = [] point_messages = [] for point_id in cnet.index.levels[0]: print(cnet) for pid, point in cnet.groupby('pid'): # Instantiate the proto spec point_spec = cnf.ControlPointFileEntryV0002() # Get the subset of the dataframe point = cnet.loc[point_id] try: point_spec.id = point_id point_spec.id = pid except: point_spec.id = str(point_id) point_spec.type = FREEPOINT # Hard coded to free point_spec.id = str(pid) point_spec.type = POINT_TYPE # A single extend call is cheaper than many add calls to pack points measure_iterable = [] for name, measure in point.iterrows(): print(point) for name, row in point.iterrows(): measure_spec = point_spec.Measure() serial_number = name[1] mtype = name[2] measure_spec.serialnumber = serial_number measure_spec.type = mtype measure_spec.sample = measure.x measure_spec.line = measure.y measure_spec.serialnumber = row.nid measure_spec.type = MEASURE_TYPE measure_spec.sample = row.x measure_spec.line = row.y measure_iterable.append(measure_spec) point_spec.measures.extend(measure_iterable) Loading
autocnet/fileio/tests/test_io_controlnetwork.py +14 −13 Original line number Diff line number Diff line Loading @@ -29,21 +29,22 @@ class TestWriteIsisControlNetwork(unittest.TestCase): 300: '1971-07-31T01:26:17.923'} self.serials = ['APOLLO15/METRIC/{}'.format(i) for i in serial_times.values()] ids = ['pt1','pt1', 'pt1', 'pt2', 'pt2'] ptype = [2, 2, 2, 2, 2] x = list(range(5)) y = list(range(5)) pid = [0,0,1,1,1] idx = pid serials = [self.serials[0], self.serials[1], self.serials[2], self.serials[2], self.serials[3]] mtype = [2, 2, 2, 2, 2] multi_index = pd.MultiIndex.from_tuples(list(zip(ids, ptype, serials, mtype)), names=['Id', 'Type', 'Serial Number', 'Measure Type']) columns = ['x', 'y'] columns = ['x', 'y', 'idx', 'pid', 'nid'] self.data_length = 5 data = np.random.random((self.data_length, 2)) data = [x,y, idx, pid, serials] self.creation_time = strftime("%Y-%m-%d %H:%M:%S", gmtime()) cnet = C(data, index=multi_index, columns=columns) cnet = C(data, index=columns).T io_controlnetwork.to_isis('test.net', cnet, mode='wb', targetname='Moon') Loading @@ -68,18 +69,18 @@ class TestWriteIsisControlNetwork(unittest.TestCase): self.assertEqual('Not modified', header_protocol.lastModified) #Repeating self.assertEqual([199, 135], header_protocol.pointMessageSizes) self.assertEqual([133, 197], header_protocol.pointMessageSizes) def test_create_point(self): with open('test.net', 'rb') as f: with open('test.net', 'rb') as f: f.seek(self.point_start_byte) for i, length in enumerate([199, 135]): for i, length in enumerate([133, 197]): point_protocol = cnf.ControlPointFileEntryV0002() raw_point = f.read(length) point_protocol.ParseFromString(raw_point) self.assertEqual('pt{}'.format(i+1), point_protocol.id) self.assertEqual(str(i), point_protocol.id) self.assertEqual(2, point_protocol.type) for m in point_protocol.measures: self.assertTrue(m.serialnumber in self.serials) Loading @@ -95,7 +96,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase): self.assertEqual(5, mpoints) points_bytes = find_in_dict(pvl_header, 'PointsBytes') self.assertEqual(334, points_bytes) self.assertEqual(330, points_bytes) points_start_byte = find_in_dict(pvl_header, 'PointsStartByte') self.assertEqual(65621, points_start_byte) Loading