Commit 00d92334 authored by Kaitlyn Lee's avatar Kaitlyn Lee Committed by GitHub
Browse files

Merge pull request #358 from Kelvinrr/dev

some fixes for demo.ipynb
parents 205ef66e 876a8ad7
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ from numbers import Number
import numpy as np
import tempfile

def point_info(cube_path, x, y, point_type):
def point_info(cube_path, x, y, point_type, allow_outside=False):
    """
    Use Isis's campt to get image/ground point info from an image

@@ -56,17 +56,21 @@ def point_info(cube_path, x, y, point_type):
        f.write("\n".join(["{}, {}".format(xval,yval) for xval,yval in zip(x, y)]))
        f.flush()
        try:
            pvlres = isis.campt(from_=cube_path, coordlist=f.name ,usecoordlist=True, coordtype=point_type)
            for r in pvlres:
                # convert all pixels to PLIO pixels from ISIS
                r[1]["Sample"] -= .5
                r[1]["Line"] -= .5

            pvlres = isis.campt(from_=cube_path, coordlist=f.name, allowoutside=allow_outside, usecoordlist=True, coordtype=point_type)
        except ProcessError as e:
            warn(f"CAMPT call failed, image: {cube_path}\n{e.stderr}")
            return

        pvlres = pvl.loads(pvlres)
        if len(x) > 1 and len(y) > 1:
            for r in pvlres:
                # convert all pixels to PLIO pixels from ISIS
                r[1]["Sample"] -= .5
                r[1]["Line"] -= .5
        else:
            pvlres["GroundPoint"]["Sample"] -= .5
            pvlres["GroundPoint"]["Line"] -= .5


    return pvlres

+2 −2
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ def place_points_in_overlaps(nodes, size_threshold=0.0007,
        overlaps = o.intersections
        if overlaps == None:
            continue
        overlapnodes = [nodes[id] for id in overlaps]
        overlapnodes = [nodes[id]["data"] for id in overlaps]
        points.extend(place_points_in_overlap(overlapnodes, o.geom, dem=dem,
                                              iterative_phase_kwargs=iterative_phase_kwargs,
                                              distribute_points_kwargs=distribute_points_kwargs))
@@ -212,7 +212,7 @@ def place_points_in_overlap(nodes, geom, dem=dem, cam_type="csm",
                dic = dest.camera.groundToImage(gnd)
                dline, dsample = dic.line, dic.samp
            if cam_type == "isis":
                dline, dsample = isis.groud_to_image(dest["image_path"], lat, lon)
                dline, dsample = isis.ground_to_image(dest["image_path"], lat, lon)

            dx, dy, _ = iterative_phase(ssample, sline, dsample, dline,
                                        source.geodata, dest.geodata,
+4 −2
Original line number Diff line number Diff line
@@ -2,8 +2,10 @@ import pytest
from unittest.mock import MagicMock, patch
from shapely.geometry import Polygon
from autocnet.spatial.overlap import place_points_in_overlap, place_points_in_overlaps
from autocnet.graph.node import Node
import csmapi


@patch('autocnet.spatial.overlap.iterative_phase', return_value=(0, 1, 2))
@patch('autocnet.cg.cg.distribute_points_in_geom', return_value=[(0, 0), (5, 5), (10, 10)])
def test_place_points_in_overlap(point_distributer, phase_matcher):
@@ -73,10 +75,10 @@ class MockOverlap():
     {'distribute_points_kwargs':{'ewpts_func':lambda:True}})
])
def test_place_points_in_overlaps(overlapper, dem, adder,iterativekwargs, distributekwargs):
    nodes = [{'id':0}, {'id':1}]
    nodes = [{"id": 0, "data": Node()}, {"id": 1, "data": Node()}]
    with patch('autocnet.spatial.overlap.place_points_in_overlap', return_value=[1,2,3]) as ppio:
        place_points_in_overlaps(nodes, iterative_phase_kwargs=iterativekwargs,distribute_points_kwargs=distributekwargs)
        ppio.assert_called_with(nodes,
        ppio.assert_called_with([Node(), Node()],
                                Polygon([(0,0),(0,5),(5,5),(5,0),(0,0)]),
                                dem=None,
                                iterative_phase_kwargs=iterativekwargs,