Commit 46db6bdc authored by Adam Paquette's avatar Adam Paquette
Browse files

further implimentation of overlap/coverage and added tests

parent 4771cbf3
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
import warnings
import warnings
from collections import MutableMapping
from collections import MutableMapping
import json
import ogr


import numpy as np
import numpy as np
import pandas as pd
import pandas as pd
+0 −7
Original line number Original line Diff line number Diff line
import unittest
import unittest


from unittest.mock import Mock
from unittest.mock import Mock
from osgeo import ogr

from autocnet.cg import cg


import pandas as pd
import pandas as pd


@@ -48,7 +45,3 @@ class TestEdge(unittest.TestCase):
    def test_compute_fundamental_matrix(self):
    def test_compute_fundamental_matrix(self):
        with self.assertRaises(AttributeError):
        with self.assertRaises(AttributeError):
            self.edge.compute_fundamental_matrix()
            self.edge.compute_fundamental_matrix()

    def test_overlap(self):
        x = 0
        # apply mock arrays to both nodes on the edge
+7 −3
Original line number Original line Diff line number Diff line
@@ -78,6 +78,10 @@ class TestNode(unittest.TestCase):


        os.remove('node_test.hdf')
        os.remove('node_test.hdf')


    def test_overlap(self):
    def test_coverage(self):
        points = np.random.RandomState(12345)
        image = self.node.get_array()
        # apply mock array to node object
        self.node.extract_features(image, method='sift', extractor_parameters={'nfeatures': 10})

        coverage_percn = self.node.coverage()

        self.assertEqual(coverage_percn, 0.3806139557604381)
+30 −0
Original line number Original line Diff line number Diff line
import os
import os
import ogr


import unittest
import unittest
from unittest.mock import Mock


from autocnet.fileio import io_gdal
from autocnet.graph import edge
from autocnet.graph import node
from autocnet.examples import get_path
from autocnet.examples import get_path
from autocnet.fileio.io_controlnetwork import to_isis
from autocnet.fileio.io_controlnetwork import to_isis
from autocnet.fileio.io_controlnetwork import write_filelist
from autocnet.fileio.io_controlnetwork import write_filelist
@@ -105,3 +110,28 @@ class TestTwoImageMatching(unittest.TestCase):
            os.remove('TestTwoImageMatching.net')
            os.remove('TestTwoImageMatching.net')
            os.remove('fromlist.lis')
            os.remove('fromlist.lis')
        except: pass
        except: pass

    def test_edge_overlap(self):
        e = edge.Edge()
        e.weight = {}
        source = Mock(spec = node.Node)
        destination = Mock(spec = node.Node)
        e.destination = destination
        e.source = source
        geodata_s = Mock(spec = io_gdal.GeoDataset)
        geodata_d = Mock(spec = io_gdal.GeoDataset)
        source.geodata = geodata_s
        destination.geodata = geodata_d

        wkt1 = "POLYGON ((0 40, 40 40, 40 0, 0 0, 0 40))"
        wkt2 = "POLYGON ((20 60, 60 60, 60 20, 20 20, 20 60))"

        poly1 = ogr.CreateGeometryFromWkt(wkt1)
        poly2 = ogr.CreateGeometryFromWkt(wkt2)

        source.geodata.footprint = poly1
        destination.geodata.footprint = poly2

        e.overlap()
        self.assertEqual(e.weight['overlap_area'], 400)
        self.assertEqual(e.weight['overlap_percn'], 14.285714285714285)