Loading autocnet/fileio/io_utils.py +9 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,12 @@ def delete_dir(dir): Remove a directory """ shutil.rmtree(dir) def file_to_list(file): with open(file, 'r') as f: file_list = f.readlines() file_list = map(str.rstrip, file_list) file_list = filter(None, file_list) return file_list autocnet/graph/network.py +4 −7 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import pandas as pd import warnings from autocnet.fileio.io_gdal import GeoDataset from autocnet.fileio import io_utils from autocnet.fileio import io_hdf from autocnet.control.control import C from autocnet.fileio import io_json Loading Loading @@ -108,11 +109,8 @@ class CandidateGraph(nx.Graph): : object A Network graph object """ if not isinstance(filelist, list): with open(filelist, 'r') as f: filelist = f.readlines() filelist = map(str.rstrip, filelist) filelist = filter(None, filelist) if isinstance(filelist, str): filelist = io_utils.file_to_list(filelist) # TODO: Reject unsupported file formats + work with more file formats if basepath: Loading @@ -124,7 +122,6 @@ class CandidateGraph(nx.Graph): adjacency_dict = {} valid_datasets = [] # filter bad/malformed footprints for i in datasets: adjacency_dict[i.file_name] = [] Loading autocnet/graph/tests/test_network.py +22 −0 Original line number Diff line number Diff line Loading @@ -4,9 +4,16 @@ sys.path.insert(0, os.path.abspath('..')) import unittest from unittest.mock import patch from unittest.mock import PropertyMock from unittest.mock import MagicMock from osgeo import ogr import gdal import numpy as np from autocnet.examples import get_path from autocnet.fileio import io_gdal from .. import network Loading Loading @@ -100,6 +107,21 @@ class TestCandidateGraph(unittest.TestCase): def test_fromlist(self): mock_list = ['AS15-M-0295_SML.png', 'AS15-M-0296_SML.png', 'AS15-M-0297_SML.png', 'AS15-M-0298_SML.png', 'AS15-M-0299_SML.png', 'AS15-M-0300_SML.png'] good_poly = ogr.CreateGeometryFromWkt('POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))') bad_poly = ogr.CreateGeometryFromWkt('POLYGON ((9999 10, 40 40, 20 40, 10 20, 30 10))') with patch('autocnet.fileio.io_gdal.GeoDataset.footprint', new_callable=PropertyMock) as patch_fp: patch_fp.return_value = good_poly n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(n.number_of_nodes(), 6) self.assertEqual(n.number_of_edges(), 15) patch_fp.return_value = bad_poly n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(n.number_of_nodes(), 6) self.assertEqual(n.number_of_edges(), 0) n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(len(n.nodes()), 6) Loading Loading
autocnet/fileio/io_utils.py +9 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,12 @@ def delete_dir(dir): Remove a directory """ shutil.rmtree(dir) def file_to_list(file): with open(file, 'r') as f: file_list = f.readlines() file_list = map(str.rstrip, file_list) file_list = filter(None, file_list) return file_list
autocnet/graph/network.py +4 −7 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import pandas as pd import warnings from autocnet.fileio.io_gdal import GeoDataset from autocnet.fileio import io_utils from autocnet.fileio import io_hdf from autocnet.control.control import C from autocnet.fileio import io_json Loading Loading @@ -108,11 +109,8 @@ class CandidateGraph(nx.Graph): : object A Network graph object """ if not isinstance(filelist, list): with open(filelist, 'r') as f: filelist = f.readlines() filelist = map(str.rstrip, filelist) filelist = filter(None, filelist) if isinstance(filelist, str): filelist = io_utils.file_to_list(filelist) # TODO: Reject unsupported file formats + work with more file formats if basepath: Loading @@ -124,7 +122,6 @@ class CandidateGraph(nx.Graph): adjacency_dict = {} valid_datasets = [] # filter bad/malformed footprints for i in datasets: adjacency_dict[i.file_name] = [] Loading
autocnet/graph/tests/test_network.py +22 −0 Original line number Diff line number Diff line Loading @@ -4,9 +4,16 @@ sys.path.insert(0, os.path.abspath('..')) import unittest from unittest.mock import patch from unittest.mock import PropertyMock from unittest.mock import MagicMock from osgeo import ogr import gdal import numpy as np from autocnet.examples import get_path from autocnet.fileio import io_gdal from .. import network Loading Loading @@ -100,6 +107,21 @@ class TestCandidateGraph(unittest.TestCase): def test_fromlist(self): mock_list = ['AS15-M-0295_SML.png', 'AS15-M-0296_SML.png', 'AS15-M-0297_SML.png', 'AS15-M-0298_SML.png', 'AS15-M-0299_SML.png', 'AS15-M-0300_SML.png'] good_poly = ogr.CreateGeometryFromWkt('POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))') bad_poly = ogr.CreateGeometryFromWkt('POLYGON ((9999 10, 40 40, 20 40, 10 20, 30 10))') with patch('autocnet.fileio.io_gdal.GeoDataset.footprint', new_callable=PropertyMock) as patch_fp: patch_fp.return_value = good_poly n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(n.number_of_nodes(), 6) self.assertEqual(n.number_of_edges(), 15) patch_fp.return_value = bad_poly n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(n.number_of_nodes(), 6) self.assertEqual(n.number_of_edges(), 0) n = network.CandidateGraph.from_filelist(mock_list, get_path('Apollo15')) self.assertEqual(len(n.nodes()), 6) Loading