Commit a2bba204 authored by Kristin Berry's avatar Kristin Berry
Browse files

Merge pull request #40 from jlaura/offset_validation

Nodes and Edges to Classes
parents 5df0a1c8 1ee60f43
Loading
Loading
Loading
Loading
+0 −0

Empty file added.

autocnet/cg/cg.py

0 → 100644
+31 −0
Original line number Diff line number Diff line
import ogr
from scipy.spatial import ConvexHull

def convex_hull_ratio(points, ideal_area):
    """

    Parameters
    ----------
    points : ndarray
             (n, 2) array of point coordinates

    ideal_area : float
                 The total area that could be covered

    Returns
    -------
    ratio : float
            The ratio convex hull volume / ideal_area

    """
    hull = ConvexHull(points)
    return hull.volume / ideal_area


def overlapping_polygon_area(polys):
    intersection = ogr.CreateGeometryFromWkt(polys[0])
    for p in polys[1:]:
        geom = ogr.CreateGeometryFromWkt(p)
        intersection = intersection.Intersection(geom).ExportToWkt()

    area = intersection.GetArea()
 No newline at end of file
+0 −0

Empty file added.

+23 −0
Original line number Diff line number Diff line
import os
import sys
import unittest
sys.path.insert(0, os.path.abspath('..'))

import numpy as np

from autocnet.examples import get_path

from .. import cg


class TestArea(unittest.TestCase):

    def setUp(self):
        seed = np.random.RandomState(12345)
        self.pts = seed.rand(25,2)

    def test_area_single(self):
        total_area = 1.0
        ratio = cg.convex_hull_ratio(self.pts, total_area)

        self.assertAlmostEqual(0.7566490, ratio, 5)
+8 −0
Original line number Diff line number Diff line
@@ -206,6 +206,14 @@ class GeoDataset(object):

        return self._xy_extent

    @property
    def pixel_area(self):
        if not getattr(self, '_pixel_area', None):
            extent = self.xy_extent
            self._pixel_area = extent[1][0] * extent[1][1]

        return self._pixel_area

    @property
    def pixel_width(self):
        if not getattr(self, '_pixel_width', None):
Loading