def test_read_gcp_list() -> None: text = """WGS84 13.400740745 52.519134104 12.0792090446 2335.0 1416.7 01.jpg 13.400740745 52.519134104 12.0792090446 2639.1 938.0 02.jpg 13.400502446 52.519251158 16.7021233002 766.0 1133.1 01.jpg """ fp = StringIO(text) images = ["01.jpg", "02.jpg"] exif = {i: {"width": 3000, "height": 2000} for i in images} points = io.read_gcp_list(fp, exif) assert len(points) == 2 a, b = (len(point.observations) for point in points) assert min(a, b) == 1 assert max(a, b) == 2
def load_ground_control_points(self) -> List[pymap.GroundControlPoint]: """Load ground control points.""" exif = {image: self.load_exif(image) for image in self.images()} gcp = [] if self.io_handler.isfile(self._gcp_list_file()): with self.io_handler.open_rt(self._gcp_list_file()) as fin: gcp = io.read_gcp_list(fin, exif) pcs = [] if self.io_handler.isfile(self._ground_control_points_file()): with self.io_handler.open_rt( self._ground_control_points_file()) as fin: pcs = io.read_ground_control_points(fin) return gcp + pcs
def test_read_gcp_list(): text = """WGS84 13.400740745 52.519134104 12.0792090446 2335.0 1416.7 01.jpg 13.400740745 52.519134104 12.0792090446 2639.1 938.0 02.jpg 13.400502446 52.519251158 16.7021233002 766.0 1133.1 01.jpg """ fp = StringIO(text) reference = geo.TopocentricConverter(52.51913, 13.4007, 0) images = ['01.jpg', '02.jpg'] exif = {i: {'width': 3000, 'height': 2000} for i in images} points = io.read_gcp_list(fp, reference, exif) assert len(points) == 2 a, b = (len(point.observations) for point in points) assert min(a, b) == 1 assert max(a, b) == 2
def load_ground_control_points(self): """Load ground control points. It uses reference_lla to convert the coordinates to topocentric reference frame. """ exif = {image: self.load_exif(image) for image in self.images()} reference = self.load_reference() gcp = [] if os.path.isfile(self._gcp_list_file()): with io.open_rt(self._gcp_list_file()) as fin: gcp = io.read_gcp_list(fin, reference, exif) pcs = [] if os.path.isfile(self._ground_control_points_file()): with io.open_rt(self._ground_control_points_file()) as fin: pcs = io.read_ground_control_points(fin, reference) return gcp + pcs
def _load_ground_control_points(self, reference): """Load ground control points. It might use reference to convert the coordinates to topocentric reference frame. If reference is None, it won't initialize topocentric data, thus allowing loading raw data only. """ exif = {image: self.load_exif(image) for image in self.images()} gcp = [] if os.path.isfile(self._gcp_list_file()): with io.open_rt(self._gcp_list_file()) as fin: gcp = io.read_gcp_list(fin, reference, exif) pcs = [] if os.path.isfile(self._ground_control_points_file()): with io.open_rt(self._ground_control_points_file()) as fin: pcs = io.read_ground_control_points(fin, reference) return gcp + pcs
def load_ground_control_points_impl( self, reference: Optional[geo.TopocentricConverter] ) -> List[pymap.GroundControlPoint]: """Load ground control points. It might use reference to convert the coordinates to topocentric reference frame. If reference is None, it won't initialize topocentric data, thus allowing loading raw data only. """ exif = {image: self.load_exif(image) for image in self.images()} gcp = [] if self.io_handler.isfile(self._gcp_list_file()): with self.io_handler.open_rt(self._gcp_list_file()) as fin: gcp = io.read_gcp_list(fin, reference, exif) pcs = [] if self.io_handler.isfile(self._ground_control_points_file()): with self.io_handler.open_rt(self._ground_control_points_file()) as fin: pcs = io.read_ground_control_points(fin, reference) return gcp + pcs