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 Diff line number Diff line
import warnings
from collections import MutableMapping
import json
import ogr

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

from unittest.mock import Mock
from osgeo import ogr

from autocnet.cg import cg

import pandas as pd

@@ -48,7 +45,3 @@ class TestEdge(unittest.TestCase):
    def test_compute_fundamental_matrix(self):
        with self.assertRaises(AttributeError):
            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 Diff line number Diff line
@@ -78,6 +78,10 @@ class TestNode(unittest.TestCase):

        os.remove('node_test.hdf')

    def test_overlap(self):
        points = np.random.RandomState(12345)
        # apply mock array to node object
    def test_coverage(self):
        image = self.node.get_array()
        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 Diff line number Diff line
import os
import ogr

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.fileio.io_controlnetwork import to_isis
from autocnet.fileio.io_controlnetwork import write_filelist
@@ -105,3 +110,28 @@ class TestTwoImageMatching(unittest.TestCase):
            os.remove('TestTwoImageMatching.net')
            os.remove('fromlist.lis')
        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)