Loading autocnet/graph/edge.py +3 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ from collections import defaultdict, MutableMapping, Counter import numpy as np import pandas as pd import networkx as nx import pyproj from scipy.spatial.distance import cdist from shapely.geometry import Point import sqlalchemy Loading @@ -19,7 +18,7 @@ from autocnet.matcher import subpixel as sp from autocnet.matcher import cpu_ring_matcher from autocnet.transformation import fundamental_matrix as fm from autocnet.transformation import homography as hm from autocnet.transformation import spatial from autocnet.transformation.spatial import reproject from autocnet.vis.graph_view import plot_edge, plot_node, plot_edge_decomposition, plot_matches from autocnet.cg import cg from autocnet.io.db.model import Images, Keypoints, Matches,\ Loading Loading @@ -239,7 +238,7 @@ class Edge(dict, MutableMapping): ic = csmapi.ImageCoord(coords[i][0], coords[i][1]) ground = camera.imageToGround(ic, 0) gnd[i] = [ground.x, ground.y, ground.z] lon, lat, alt = spatial.reproject(gnd.T, semimajor, semiminor, lon, lat, alt = reproject(gnd.T, semimajor, semiminor, 'geocent', 'latlon') if srid: geoms = [] Loading Loading @@ -975,13 +974,7 @@ class NetworkEdge(Edge): session.close() def get_overlapping_indices(self, kps): ecef = pyproj.Proj(proj='geocent', a=self.parent.config['spatial']['semimajor_rad'], b=self.parent.config['spatial']['semiminor_rad']) lla = pyproj.Proj(proj='longlat', a=self.parent.config['spatial']['semiminor_rad'], b=self.parent.config['spatial']['semimajor_rad']) lons, lats, alts = pyproj.transform(ecef, lla, kps.xm.values, kps.ym.values, kps.zm.values) lons, lats, alts = reproject([kps.xm.values, kps.ym.values, kps.zm.values], semi_major, semi_minor, 'geocent', 'latlon') points = [Point(lons[i], lats[i]) for i in range(len(lons))] mask = [i for i in range(len(points)) if self.intersection.contains(points[i])] return mask Loading autocnet/graph/network.py +3 −6 Original line number Diff line number Diff line Loading @@ -19,9 +19,6 @@ import shapely.wkt as swkt import shapely.wkb as swkb import shapely.ops import pyproj from plio.io.io_controlnetwork import to_isis, from_isis from plio.io import io_hdf, io_json from plio.utils import utils as io_utils Loading @@ -44,6 +41,7 @@ from autocnet.vis.graph_view import plot_graph, cluster_plot from autocnet.control import control from autocnet.spatial.overlap import compute_overlaps_sql from autocnet.spatial.isis import point_info from autocnet.transformation.spatial import reproject #np.warnings.filterwarnings('ignore') Loading Loading @@ -1822,8 +1820,6 @@ WHERE def place_points_from_cnet(self, cnet): semi_major, semi_minor = config["spatial"]["semimajor_rad"], config["spatial"]["semiminor_rad"] ecef = pyproj.Proj(proj='geocent', a=semi_major, b=semi_minor) lla = pyproj.Proj(proj='latlon', a=semi_major, b=semi_minor) if isinstance(cnet, str): cnet = from_isis(cnet) Loading Loading @@ -1854,7 +1850,8 @@ WHERE row = cnetpoint.iloc[0] x,y,z= row.adjustedX, row.adjustedY, row.adjustedZ lon, lat, alt = pyproj.transform(ecef, lla, x, y, z) lon, lat, alt = reproject([x, y, z], semi_major, semi_minor, 'geocent', 'latlon') point = Points(identifier=id, ignore=row.pointIgnore, Loading autocnet/io/db/tests/test_model.py +2 −2 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ def test_create_point(session, data): assert p == resp @pytest.mark.parametrize("data, expected", [ ({'pointtype':3, 'adjusted':Point(0,-1000000,0)}, Point(-90, 0)), ({'pointtype':3, 'adjusted':Point(0,-1000000,0)}, Point(270, 0)), ({'pointtype':3}, None) ]) def test_create_point_geom(session, data, expected): Loading @@ -139,7 +139,7 @@ def test_create_point_geom(session, data, expected): @pytest.mark.parametrize("data, new_adjusted, expected", [ ({'pointtype':3, 'adjusted':Point(0,-100000,0)}, None, None), ({'pointtype':3, 'adjusted':Point(0,-100000,0)}, Point(0,100000,0), Point(90, 0)), ({'pointtype':3}, Point(0,-100000,0), Point(-90, 0)) ({'pointtype':3}, Point(0,-100000,0), Point(270, 0)) ]) def test_update_point_geom(session, data, new_adjusted, expected): p = model.Points.create(session, **data) Loading autocnet/matcher/cross_instrument_matcher.py +0 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ from sqlalchemy.ext.declarative import declarative_base import geopandas as gpd import plio import pvl import pyproj import pysis from gdal import ogr Loading autocnet/spatial/overlap.py +4 −4 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from autocnet import config, dem, Session from autocnet.cg import cg as compgeom from autocnet.io.db.model import Images, Measures, Overlay, Points, JsonEncoder from autocnet.spatial import isis from autocnet.transformation.spatial import reproject from plurmy import Slurm import csmapi Loading Loading @@ -154,8 +154,6 @@ def place_points_in_overlap(nodes, geom, cam_type="csm", points = [] semi_major = config['spatial']['semimajor_rad'] semi_minor = config['spatial']['semiminor_rad'] ecef = pyproj.Proj(proj='geocent', a=semi_major, b=semi_minor) lla = pyproj.Proj(proj='latlon', a=semi_major, b=semi_minor) valid = compgeom.distribute_points_in_geom(geom, **distribute_points_kwargs) if not valid: warnings.warn('Failed to distribute points in overlap') Loading @@ -173,7 +171,9 @@ def place_points_in_overlap(nodes, geom, cam_type="csm", height = dem.read_array(1, [px, py, 1, 1])[0][0] # Get the BCEF coordinate from the lon, lat x, y, z = pyproj.transform(lla, ecef, lon, lat, height) x, y, z = reproject([lon, lat, height], semi_major, semi_minor, 'latlon', 'geocent') geom = shapely.geometry.Point(x, y, z) point = Points(apriori=geom, adjusted=geom, Loading Loading
autocnet/graph/edge.py +3 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ from collections import defaultdict, MutableMapping, Counter import numpy as np import pandas as pd import networkx as nx import pyproj from scipy.spatial.distance import cdist from shapely.geometry import Point import sqlalchemy Loading @@ -19,7 +18,7 @@ from autocnet.matcher import subpixel as sp from autocnet.matcher import cpu_ring_matcher from autocnet.transformation import fundamental_matrix as fm from autocnet.transformation import homography as hm from autocnet.transformation import spatial from autocnet.transformation.spatial import reproject from autocnet.vis.graph_view import plot_edge, plot_node, plot_edge_decomposition, plot_matches from autocnet.cg import cg from autocnet.io.db.model import Images, Keypoints, Matches,\ Loading Loading @@ -239,7 +238,7 @@ class Edge(dict, MutableMapping): ic = csmapi.ImageCoord(coords[i][0], coords[i][1]) ground = camera.imageToGround(ic, 0) gnd[i] = [ground.x, ground.y, ground.z] lon, lat, alt = spatial.reproject(gnd.T, semimajor, semiminor, lon, lat, alt = reproject(gnd.T, semimajor, semiminor, 'geocent', 'latlon') if srid: geoms = [] Loading Loading @@ -975,13 +974,7 @@ class NetworkEdge(Edge): session.close() def get_overlapping_indices(self, kps): ecef = pyproj.Proj(proj='geocent', a=self.parent.config['spatial']['semimajor_rad'], b=self.parent.config['spatial']['semiminor_rad']) lla = pyproj.Proj(proj='longlat', a=self.parent.config['spatial']['semiminor_rad'], b=self.parent.config['spatial']['semimajor_rad']) lons, lats, alts = pyproj.transform(ecef, lla, kps.xm.values, kps.ym.values, kps.zm.values) lons, lats, alts = reproject([kps.xm.values, kps.ym.values, kps.zm.values], semi_major, semi_minor, 'geocent', 'latlon') points = [Point(lons[i], lats[i]) for i in range(len(lons))] mask = [i for i in range(len(points)) if self.intersection.contains(points[i])] return mask Loading
autocnet/graph/network.py +3 −6 Original line number Diff line number Diff line Loading @@ -19,9 +19,6 @@ import shapely.wkt as swkt import shapely.wkb as swkb import shapely.ops import pyproj from plio.io.io_controlnetwork import to_isis, from_isis from plio.io import io_hdf, io_json from plio.utils import utils as io_utils Loading @@ -44,6 +41,7 @@ from autocnet.vis.graph_view import plot_graph, cluster_plot from autocnet.control import control from autocnet.spatial.overlap import compute_overlaps_sql from autocnet.spatial.isis import point_info from autocnet.transformation.spatial import reproject #np.warnings.filterwarnings('ignore') Loading Loading @@ -1822,8 +1820,6 @@ WHERE def place_points_from_cnet(self, cnet): semi_major, semi_minor = config["spatial"]["semimajor_rad"], config["spatial"]["semiminor_rad"] ecef = pyproj.Proj(proj='geocent', a=semi_major, b=semi_minor) lla = pyproj.Proj(proj='latlon', a=semi_major, b=semi_minor) if isinstance(cnet, str): cnet = from_isis(cnet) Loading Loading @@ -1854,7 +1850,8 @@ WHERE row = cnetpoint.iloc[0] x,y,z= row.adjustedX, row.adjustedY, row.adjustedZ lon, lat, alt = pyproj.transform(ecef, lla, x, y, z) lon, lat, alt = reproject([x, y, z], semi_major, semi_minor, 'geocent', 'latlon') point = Points(identifier=id, ignore=row.pointIgnore, Loading
autocnet/io/db/tests/test_model.py +2 −2 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ def test_create_point(session, data): assert p == resp @pytest.mark.parametrize("data, expected", [ ({'pointtype':3, 'adjusted':Point(0,-1000000,0)}, Point(-90, 0)), ({'pointtype':3, 'adjusted':Point(0,-1000000,0)}, Point(270, 0)), ({'pointtype':3}, None) ]) def test_create_point_geom(session, data, expected): Loading @@ -139,7 +139,7 @@ def test_create_point_geom(session, data, expected): @pytest.mark.parametrize("data, new_adjusted, expected", [ ({'pointtype':3, 'adjusted':Point(0,-100000,0)}, None, None), ({'pointtype':3, 'adjusted':Point(0,-100000,0)}, Point(0,100000,0), Point(90, 0)), ({'pointtype':3}, Point(0,-100000,0), Point(-90, 0)) ({'pointtype':3}, Point(0,-100000,0), Point(270, 0)) ]) def test_update_point_geom(session, data, new_adjusted, expected): p = model.Points.create(session, **data) Loading
autocnet/matcher/cross_instrument_matcher.py +0 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ from sqlalchemy.ext.declarative import declarative_base import geopandas as gpd import plio import pvl import pyproj import pysis from gdal import ogr Loading
autocnet/spatial/overlap.py +4 −4 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from autocnet import config, dem, Session from autocnet.cg import cg as compgeom from autocnet.io.db.model import Images, Measures, Overlay, Points, JsonEncoder from autocnet.spatial import isis from autocnet.transformation.spatial import reproject from plurmy import Slurm import csmapi Loading Loading @@ -154,8 +154,6 @@ def place_points_in_overlap(nodes, geom, cam_type="csm", points = [] semi_major = config['spatial']['semimajor_rad'] semi_minor = config['spatial']['semiminor_rad'] ecef = pyproj.Proj(proj='geocent', a=semi_major, b=semi_minor) lla = pyproj.Proj(proj='latlon', a=semi_major, b=semi_minor) valid = compgeom.distribute_points_in_geom(geom, **distribute_points_kwargs) if not valid: warnings.warn('Failed to distribute points in overlap') Loading @@ -173,7 +171,9 @@ def place_points_in_overlap(nodes, geom, cam_type="csm", height = dem.read_array(1, [px, py, 1, 1])[0][0] # Get the BCEF coordinate from the lon, lat x, y, z = pyproj.transform(lla, ecef, lon, lat, height) x, y, z = reproject([lon, lat, height], semi_major, semi_minor, 'latlon', 'geocent') geom = shapely.geometry.Point(x, y, z) point = Points(apriori=geom, adjusted=geom, Loading