mapillary-tools 0.14.5__py3-none-any.whl → 0.14.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mapillary_tools/__init__.py +6 -1
- mapillary_tools/api_v4.py +5 -0
- mapillary_tools/authenticate.py +5 -1
- mapillary_tools/blackvue_parser.py +138 -20
- mapillary_tools/camm/camm_builder.py +5 -1
- mapillary_tools/camm/camm_parser.py +5 -0
- mapillary_tools/commands/__init__.py +5 -0
- mapillary_tools/commands/__main__.py +5 -0
- mapillary_tools/commands/authenticate.py +5 -0
- mapillary_tools/commands/process.py +12 -0
- mapillary_tools/commands/process_and_upload.py +5 -1
- mapillary_tools/commands/sample_video.py +5 -0
- mapillary_tools/commands/upload.py +5 -0
- mapillary_tools/commands/video_process.py +5 -0
- mapillary_tools/commands/video_process_and_upload.py +5 -1
- mapillary_tools/commands/zip.py +5 -0
- mapillary_tools/config.py +5 -0
- mapillary_tools/constants.py +13 -1
- mapillary_tools/exceptions.py +9 -0
- mapillary_tools/exif_read.py +89 -0
- mapillary_tools/exif_write.py +17 -0
- mapillary_tools/exiftool_read.py +89 -0
- mapillary_tools/exiftool_read_video.py +56 -0
- mapillary_tools/exiftool_runner.py +5 -0
- mapillary_tools/ffmpeg.py +5 -0
- mapillary_tools/geo.py +91 -31
- mapillary_tools/geotag/__init__.py +4 -0
- mapillary_tools/geotag/base.py +5 -0
- mapillary_tools/geotag/factory.py +5 -0
- mapillary_tools/geotag/geotag_images_from_exif.py +5 -0
- mapillary_tools/geotag/geotag_images_from_exiftool.py +5 -0
- mapillary_tools/geotag/geotag_images_from_gpx.py +5 -0
- mapillary_tools/geotag/geotag_images_from_gpx_file.py +5 -0
- mapillary_tools/geotag/geotag_images_from_nmea_file.py +5 -0
- mapillary_tools/geotag/geotag_images_from_video.py +6 -0
- mapillary_tools/geotag/geotag_videos_from_exiftool.py +5 -0
- mapillary_tools/geotag/geotag_videos_from_gpx.py +5 -0
- mapillary_tools/geotag/geotag_videos_from_video.py +5 -0
- mapillary_tools/geotag/image_extractors/base.py +5 -0
- mapillary_tools/geotag/image_extractors/exif.py +6 -0
- mapillary_tools/geotag/image_extractors/exiftool.py +5 -0
- mapillary_tools/geotag/options.py +5 -0
- mapillary_tools/geotag/utils.py +5 -0
- mapillary_tools/geotag/video_extractors/base.py +5 -0
- mapillary_tools/geotag/video_extractors/exiftool.py +7 -0
- mapillary_tools/geotag/video_extractors/gpx.py +5 -0
- mapillary_tools/geotag/video_extractors/native.py +5 -0
- mapillary_tools/gpmf/gpmf_gps_filter.py +5 -0
- mapillary_tools/gpmf/gpmf_parser.py +5 -0
- mapillary_tools/gpmf/gps_filter.py +5 -0
- mapillary_tools/history.py +5 -0
- mapillary_tools/http.py +5 -1
- mapillary_tools/ipc.py +5 -0
- mapillary_tools/mp4/__init__.py +4 -0
- mapillary_tools/mp4/construct_mp4_parser.py +5 -0
- mapillary_tools/mp4/io_utils.py +5 -0
- mapillary_tools/mp4/mp4_sample_parser.py +20 -1
- mapillary_tools/mp4/simple_mp4_builder.py +5 -0
- mapillary_tools/mp4/simple_mp4_parser.py +5 -0
- mapillary_tools/process_geotag_properties.py +5 -0
- mapillary_tools/process_sequence_properties.py +213 -31
- mapillary_tools/sample_video.py +13 -1
- mapillary_tools/serializer/description.py +13 -0
- mapillary_tools/serializer/gpx.py +5 -1
- mapillary_tools/store.py +5 -0
- mapillary_tools/telemetry.py +108 -0
- mapillary_tools/types.py +6 -0
- mapillary_tools/upload.py +5 -0
- mapillary_tools/upload_api_v4.py +5 -0
- mapillary_tools/uploader.py +9 -0
- mapillary_tools/utils.py +16 -1
- {mapillary_tools-0.14.5.dist-info → mapillary_tools-0.14.6.dist-info}/METADATA +8 -1
- mapillary_tools-0.14.6.dist-info/RECORD +77 -0
- {mapillary_tools-0.14.5.dist-info → mapillary_tools-0.14.6.dist-info}/WHEEL +1 -1
- mapillary_tools-0.14.5.dist-info/RECORD +0 -77
- {mapillary_tools-0.14.5.dist-info → mapillary_tools-0.14.6.dist-info}/entry_points.txt +0 -0
- {mapillary_tools-0.14.5.dist-info → mapillary_tools-0.14.6.dist-info}/licenses/LICENSE +0 -0
- {mapillary_tools-0.14.5.dist-info → mapillary_tools-0.14.6.dist-info}/top_level.txt +0 -0
mapillary_tools/telemetry.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import dataclasses
|
|
@@ -32,6 +37,57 @@ class GPSPoint(TimestampedMeasurement, Point):
|
|
|
32
37
|
precision: float | None
|
|
33
38
|
ground_speed: float | None
|
|
34
39
|
|
|
40
|
+
def get_gps_epoch_time(self) -> float | None:
|
|
41
|
+
"""Return the GPS epoch time if valid, otherwise None."""
|
|
42
|
+
if self.epoch_time is not None and self.epoch_time > 0:
|
|
43
|
+
return self.epoch_time
|
|
44
|
+
return None
|
|
45
|
+
|
|
46
|
+
def interpolate_with(self, other: Point, t: float) -> Point:
|
|
47
|
+
"""Create a new interpolated GPSPoint using this and other point at time t."""
|
|
48
|
+
base = super().interpolate_with(other, t)
|
|
49
|
+
if not isinstance(other, GPSPoint):
|
|
50
|
+
return base
|
|
51
|
+
|
|
52
|
+
# Interpolate GPSPoint-specific fields
|
|
53
|
+
weight = self._calculate_weight_for_interpolation(other, t)
|
|
54
|
+
epoch_time: float | None
|
|
55
|
+
if (
|
|
56
|
+
self.epoch_time is not None
|
|
57
|
+
and other.epoch_time is not None
|
|
58
|
+
and self.epoch_time > 0
|
|
59
|
+
and other.epoch_time > 0
|
|
60
|
+
):
|
|
61
|
+
epoch_time = self.epoch_time + (other.epoch_time - self.epoch_time) * weight
|
|
62
|
+
else:
|
|
63
|
+
epoch_time = None
|
|
64
|
+
|
|
65
|
+
precision: float | None
|
|
66
|
+
if self.precision is not None and other.precision is not None:
|
|
67
|
+
precision = self.precision + (other.precision - self.precision) * weight
|
|
68
|
+
else:
|
|
69
|
+
precision = None
|
|
70
|
+
|
|
71
|
+
ground_speed: float | None
|
|
72
|
+
if self.ground_speed is not None and other.ground_speed is not None:
|
|
73
|
+
ground_speed = (
|
|
74
|
+
self.ground_speed + (other.ground_speed - self.ground_speed) * weight
|
|
75
|
+
)
|
|
76
|
+
else:
|
|
77
|
+
ground_speed = None
|
|
78
|
+
|
|
79
|
+
return GPSPoint(
|
|
80
|
+
time=base.time,
|
|
81
|
+
lat=base.lat,
|
|
82
|
+
lon=base.lon,
|
|
83
|
+
alt=base.alt,
|
|
84
|
+
angle=base.angle,
|
|
85
|
+
epoch_time=epoch_time,
|
|
86
|
+
fix=self.fix, # Use start point's fix value
|
|
87
|
+
precision=precision,
|
|
88
|
+
ground_speed=ground_speed,
|
|
89
|
+
)
|
|
90
|
+
|
|
35
91
|
|
|
36
92
|
@dataclasses.dataclass
|
|
37
93
|
class CAMMGPSPoint(TimestampedMeasurement, Point):
|
|
@@ -44,6 +100,58 @@ class CAMMGPSPoint(TimestampedMeasurement, Point):
|
|
|
44
100
|
velocity_up: float
|
|
45
101
|
speed_accuracy: float
|
|
46
102
|
|
|
103
|
+
def get_gps_epoch_time(self) -> float | None:
|
|
104
|
+
"""Return the GPS epoch time if valid, otherwise None."""
|
|
105
|
+
if self.time_gps_epoch > 0:
|
|
106
|
+
return self.time_gps_epoch
|
|
107
|
+
return None
|
|
108
|
+
|
|
109
|
+
def interpolate_with(self, other: Point, t: float) -> Point:
|
|
110
|
+
"""Create a new interpolated CAMMGPSPoint using this and other point at time t."""
|
|
111
|
+
base = super().interpolate_with(other, t)
|
|
112
|
+
if not isinstance(other, CAMMGPSPoint):
|
|
113
|
+
return base
|
|
114
|
+
|
|
115
|
+
# Interpolate all CAMM-specific fields
|
|
116
|
+
weight = self._calculate_weight_for_interpolation(other, t)
|
|
117
|
+
time_gps_epoch = (
|
|
118
|
+
self.time_gps_epoch + (other.time_gps_epoch - self.time_gps_epoch) * weight
|
|
119
|
+
)
|
|
120
|
+
horizontal_accuracy = (
|
|
121
|
+
self.horizontal_accuracy
|
|
122
|
+
+ (other.horizontal_accuracy - self.horizontal_accuracy) * weight
|
|
123
|
+
)
|
|
124
|
+
vertical_accuracy = (
|
|
125
|
+
self.vertical_accuracy
|
|
126
|
+
+ (other.vertical_accuracy - self.vertical_accuracy) * weight
|
|
127
|
+
)
|
|
128
|
+
velocity_east = (
|
|
129
|
+
self.velocity_east + (other.velocity_east - self.velocity_east) * weight
|
|
130
|
+
)
|
|
131
|
+
velocity_north = (
|
|
132
|
+
self.velocity_north + (other.velocity_north - self.velocity_north) * weight
|
|
133
|
+
)
|
|
134
|
+
velocity_up = self.velocity_up + (other.velocity_up - self.velocity_up) * weight
|
|
135
|
+
speed_accuracy = (
|
|
136
|
+
self.speed_accuracy + (other.speed_accuracy - self.speed_accuracy) * weight
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
return CAMMGPSPoint(
|
|
140
|
+
time=base.time,
|
|
141
|
+
lat=base.lat,
|
|
142
|
+
lon=base.lon,
|
|
143
|
+
alt=base.alt,
|
|
144
|
+
angle=base.angle,
|
|
145
|
+
time_gps_epoch=time_gps_epoch,
|
|
146
|
+
gps_fix_type=self.gps_fix_type, # Use start point's fix type
|
|
147
|
+
horizontal_accuracy=horizontal_accuracy,
|
|
148
|
+
vertical_accuracy=vertical_accuracy,
|
|
149
|
+
velocity_east=velocity_east,
|
|
150
|
+
velocity_north=velocity_north,
|
|
151
|
+
velocity_up=velocity_up,
|
|
152
|
+
speed_accuracy=speed_accuracy,
|
|
153
|
+
)
|
|
154
|
+
|
|
47
155
|
|
|
48
156
|
@dataclasses.dataclass(order=True)
|
|
49
157
|
class GyroscopeData(TimestampedMeasurement):
|
mapillary_tools/types.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import abc
|
|
@@ -72,6 +77,7 @@ class VideoMetadata:
|
|
|
72
77
|
make: str | None = None
|
|
73
78
|
model: str | None = None
|
|
74
79
|
filesize: int | None = None
|
|
80
|
+
camera_uuid: str | None = None
|
|
75
81
|
|
|
76
82
|
def update_md5sum(self) -> None:
|
|
77
83
|
if self.md5sum is None:
|
mapillary_tools/upload.py
CHANGED
mapillary_tools/upload_api_v4.py
CHANGED
mapillary_tools/uploader.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import concurrent.futures
|
|
@@ -797,6 +802,10 @@ class CachedImageUploader:
|
|
|
797
802
|
raise ExifError(
|
|
798
803
|
f"Failed to dump EXIF bytes: {ex}", metadata.filename
|
|
799
804
|
) from ex
|
|
805
|
+
except ValueError as ex:
|
|
806
|
+
raise ExifError(
|
|
807
|
+
f"Failed to dump EXIF bytes: {ex}", metadata.filename
|
|
808
|
+
) from ex
|
|
800
809
|
|
|
801
810
|
# Thread-safe
|
|
802
811
|
def _get_cached_file_handle(self, key: str) -> str | None:
|
mapillary_tools/utils.py
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import concurrent.futures
|
|
4
|
-
|
|
5
9
|
import hashlib
|
|
6
10
|
import logging
|
|
7
11
|
import os
|
|
@@ -55,6 +59,17 @@ def is_video_file(path: Path) -> bool:
|
|
|
55
59
|
)
|
|
56
60
|
|
|
57
61
|
|
|
62
|
+
def sanitize_serial(s: str | None) -> str | None:
|
|
63
|
+
"""
|
|
64
|
+
Sanitize a serial number by removing all non-alphanumeric characters.
|
|
65
|
+
Returns None if the input is None or if the result is empty after cleaning.
|
|
66
|
+
"""
|
|
67
|
+
if s is None:
|
|
68
|
+
return None
|
|
69
|
+
cleaned = "".join(c for c in s if c.isalnum())
|
|
70
|
+
return cleaned if cleaned else None
|
|
71
|
+
|
|
72
|
+
|
|
58
73
|
def iterate_files(
|
|
59
74
|
root: Path, recursive: bool = False, follow_hidden_dirs: bool = False
|
|
60
75
|
) -> T.Generator[Path, None, None]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mapillary_tools
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.6
|
|
4
4
|
Summary: Mapillary Image/Video Import Pipeline
|
|
5
5
|
Author-email: Mapillary <support@mapillary.com>
|
|
6
6
|
License: BSD
|
|
@@ -34,6 +34,13 @@ Requires-Dist: tqdm<5.0,>=4.0
|
|
|
34
34
|
Requires-Dist: typing-extensions>=4.12.2
|
|
35
35
|
Dynamic: license-file
|
|
36
36
|
|
|
37
|
+
<!--
|
|
38
|
+
Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
39
|
+
|
|
40
|
+
This source code is licensed under the BSD license found in the
|
|
41
|
+
LICENSE file in the root directory of this source tree.
|
|
42
|
+
-->
|
|
43
|
+
|
|
37
44
|
<p align="center">
|
|
38
45
|
<a href="https://github.com/mapillary/mapillary_tools/">
|
|
39
46
|
<img src="https://raw.githubusercontent.com/mapillary/mapillary_tools/main/docs/images/logo.png">
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
mapillary_tools/__init__.py,sha256=T25Q4iuSoSjqHWYvfcGjMLNihNfE6lJGVDna0AFibZ4,199
|
|
2
|
+
mapillary_tools/api_v4.py,sha256=YpDyzQDp4iLovYqZ0xjErDZskeO90sLdsu6pbD646Qo,5044
|
|
3
|
+
mapillary_tools/authenticate.py,sha256=QFG1-Co_mbd16A2I9XKLE38n3Ut7Axgs0oqwlcvShVs,11921
|
|
4
|
+
mapillary_tools/blackvue_parser.py,sha256=eKMCTULG-0AUWCuNVxouP0w1hxLqTdhrugLROt1AkUI,11002
|
|
5
|
+
mapillary_tools/config.py,sha256=TsCNYTgYFX-5NozUirx-0Yc1sUhVbnbksDMYKRfAUdg,3601
|
|
6
|
+
mapillary_tools/constants.py,sha256=RRps4Va519MvHYzWEgG6Cj9I5M1EsGrkGOF35nbUW-4,6783
|
|
7
|
+
mapillary_tools/exceptions.py,sha256=yKwkLyNaIAbtdj0HhuwTTRZyw6tNL83ON0AKYno3YxE,2729
|
|
8
|
+
mapillary_tools/exif_read.py,sha256=hfbjZn8erXW299gLn5Vzg767zYbRynDCLnGFeVde3PA,34902
|
|
9
|
+
mapillary_tools/exif_write.py,sha256=_KLvO09RqDoLeJXldesjQ_9lBpsiKsQy3Sxj7hVFr6E,10668
|
|
10
|
+
mapillary_tools/exiftool_read.py,sha256=gt7Z3sJTcRK19ocdrDVzIPc2plDg0vQ1N3VcbCrhtfw,19431
|
|
11
|
+
mapillary_tools/exiftool_read_video.py,sha256=uzdlBtT-aGoKsTulF99BdShQKIBOFPXK6iKVjvCNPhY,18180
|
|
12
|
+
mapillary_tools/exiftool_runner.py,sha256=UUP-GxmFFp8Hx7NccvjUT59EdfGM-guV8jl6O4Zimik,1838
|
|
13
|
+
mapillary_tools/ffmpeg.py,sha256=YUfeu64fZTB82ft0ppAnQLgo0gS5faLvx38Rj8D6yks,23088
|
|
14
|
+
mapillary_tools/geo.py,sha256=JsD0ohunIji7aAPsJWKY_z-eohhjRpZNoJBl02RWM_k,13228
|
|
15
|
+
mapillary_tools/history.py,sha256=dPDu-PjVf9FpGAZgK1-vpqpSx6BVuVI2e3kh8Xh1LI4,6467
|
|
16
|
+
mapillary_tools/http.py,sha256=5BrGimzF3tS_aV7bBxeeQDBsr7qWiIJ_Jh6VkgTsm-8,6590
|
|
17
|
+
mapillary_tools/ipc.py,sha256=My5y9AHrddtiK909vBX7HmTPy3l95a7yanpjx4MxPp8,1269
|
|
18
|
+
mapillary_tools/process_geotag_properties.py,sha256=6SwZhR8_4mNSrRM7GE7fnFPiRWVoURrdX4_NBRsGxAI,14385
|
|
19
|
+
mapillary_tools/process_sequence_properties.py,sha256=77o3VWTUPjp_jUw2WtBMCgfv6Ncu2dcdaXLCrv3_RGU,31136
|
|
20
|
+
mapillary_tools/sample_video.py,sha256=GLgV-rrzpi8YLEPpYj0tWu6ggsXrMbmFQd_TGRRGAZQ,14453
|
|
21
|
+
mapillary_tools/store.py,sha256=fqeALcDhax_ZXJkDdKRDjTk2ZznlVk1Lx6ycWx-KmW0,4257
|
|
22
|
+
mapillary_tools/telemetry.py,sha256=ceMqMqTLcOBXb88eoQ94ApEeVQvk9iwvEzGSESj90oQ,5632
|
|
23
|
+
mapillary_tools/types.py,sha256=3MQADphbMu8nsQJxXmMyMAf0XUeDDjbFTR0y-Rg3JEk,6124
|
|
24
|
+
mapillary_tools/upload.py,sha256=gC80pgiTiTlk7FQzbbmn05JVc4i7_PJ608y9fw5WWig,24227
|
|
25
|
+
mapillary_tools/upload_api_v4.py,sha256=dNbKqgmSareVtuGYS3q7-dMaHx7ykExB4y05du92p78,7524
|
|
26
|
+
mapillary_tools/uploader.py,sha256=3jOHKkFwHTM7syrMOvTxI2Ukq30KOe-x0nHePmXt6mg,46970
|
|
27
|
+
mapillary_tools/utils.py,sha256=NEEb3IEDK3LNMHF7DYTULYxTR_zGsxPgPI4r_ewrrgU,8654
|
|
28
|
+
mapillary_tools/camm/camm_builder.py,sha256=7bfkiTG1AW-Q-ln44S1yDHJUhwWpWSmkWR6kfRgc1mE,9390
|
|
29
|
+
mapillary_tools/camm/camm_parser.py,sha256=9jWc_lqt4rtnFIW05Kz5dQftaEyyBhLRVSimuJgZtIc,18223
|
|
30
|
+
mapillary_tools/commands/__init__.py,sha256=OnLpb0AbvxEhHIMOflnm9tvI34DsThoSBQckix6jNN8,351
|
|
31
|
+
mapillary_tools/commands/__main__.py,sha256=JdYrrhpmFo8rExeXQr12wirymg7ynZgIJZY3pvolzys,5015
|
|
32
|
+
mapillary_tools/commands/authenticate.py,sha256=i1-BigjrzcvNG-M_uHDgfJg8pidSYIq5mpsvyl_x-7s,1524
|
|
33
|
+
mapillary_tools/commands/process.py,sha256=qfQ2y88hSIIGIyWwLOybx3kLw5CtBD3zP8HZ9-6i0IQ,10187
|
|
34
|
+
mapillary_tools/commands/process_and_upload.py,sha256=gcodOJDE2Krml-vqxztWZowW2NZTjwXVUx7ZD3UgqKw,1220
|
|
35
|
+
mapillary_tools/commands/sample_video.py,sha256=fMbfmelUZ_YkQZ02rLPlxDNbMKerJ5ygLj_9EhOyJh4,3433
|
|
36
|
+
mapillary_tools/commands/upload.py,sha256=F4uo8ta8A-w71c_p_6_h1XqJiAlxmyqFwErh5CZkcZ8,3280
|
|
37
|
+
mapillary_tools/commands/video_process.py,sha256=jwdxeRs86DHL0H_TmCfP1H0pwh7G4E5jxLR9pXEPtzY,1070
|
|
38
|
+
mapillary_tools/commands/video_process_and_upload.py,sha256=-aHA-ZccBtKir93um_v1gd73svSLzPn-uDpRh32ZGAc,1267
|
|
39
|
+
mapillary_tools/commands/zip.py,sha256=cPhVw5vWDYYzLqHNNX8xUHuq_D5TP7xEXDfHPGEb3ZA,1171
|
|
40
|
+
mapillary_tools/geotag/__init__.py,sha256=T6ERU4GCbpsXvJ8PSz2ZfS1oM4Fo_zxMlQ8qgfod7g8,179
|
|
41
|
+
mapillary_tools/geotag/base.py,sha256=OvwBG7ivAyjh3UL47llISj_VOSdosqL1o-BbDprEHLA,5346
|
|
42
|
+
mapillary_tools/geotag/factory.py,sha256=26HnskiZCK9cXyYP2Oh2WWVgC4-ltz3lY2VIYWHEQzU,10451
|
|
43
|
+
mapillary_tools/geotag/geotag_images_from_exif.py,sha256=VQQPyCgvGn68H6NiBPdbtF7Q0ZJ_y6jNDI89vw_GBc4,788
|
|
44
|
+
mapillary_tools/geotag/geotag_images_from_exiftool.py,sha256=Ics6ZioO-tEobIr8htJa4lOTkN_wKrweGgGUL6vNJgo,5887
|
|
45
|
+
mapillary_tools/geotag/geotag_images_from_gpx.py,sha256=44S5D3v-cyAE69gdmesQ1YfiS1pSC0lMwTJOQT650FE,6493
|
|
46
|
+
mapillary_tools/geotag/geotag_images_from_gpx_file.py,sha256=eu9jqv8KqGYWIuv8x-mTmkJkIc_7rmFTL4V-9isV_UY,1301
|
|
47
|
+
mapillary_tools/geotag/geotag_images_from_nmea_file.py,sha256=3SwQGrciZgnQN6SXLsCKuBY6kPNUP74UAz2txNHJ06o,1777
|
|
48
|
+
mapillary_tools/geotag/geotag_images_from_video.py,sha256=AkDvG7wF3F1ctBr7OVjlYd173isSbzhG5RFA_sPi-l0,4663
|
|
49
|
+
mapillary_tools/geotag/geotag_videos_from_exiftool.py,sha256=-lCXmJERMkt53HZUUZhuEKMUxJ4BzDmyOYeXM2kO214,5525
|
|
50
|
+
mapillary_tools/geotag/geotag_videos_from_gpx.py,sha256=KXiV4mV0gLangoFzf1crLWjeHO-_UZ4TknXKt-4x0yc,1833
|
|
51
|
+
mapillary_tools/geotag/geotag_videos_from_video.py,sha256=W6kC90l1uvQyOQd7B9zf8pcvfVeCTM2yXbc9ZyC2GVA,1043
|
|
52
|
+
mapillary_tools/geotag/options.py,sha256=7SurJ2tmJ1-O7qM2sMN8yRPMfUEcogOmDGL-cg6_xwE,5346
|
|
53
|
+
mapillary_tools/geotag/utils.py,sha256=7wkY-aUnU_rgu7TQxYMftZg_awkTz9-_e6gILtqNRz4,1768
|
|
54
|
+
mapillary_tools/geotag/image_extractors/base.py,sha256=8cTGSW3622j3U8wTm5SeQPQ9FWIEIxJRK45K-Zp7rjw,538
|
|
55
|
+
mapillary_tools/geotag/image_extractors/exif.py,sha256=3-7Jm7zjYLoYxalkVEXBzMPuelIp-CB8bXIz9eSgeVE,2317
|
|
56
|
+
mapillary_tools/geotag/image_extractors/exiftool.py,sha256=ZnCtnn02PkSz1fQ2VkCKfU9eX7xgu3iaiWbklhyJZbg,677
|
|
57
|
+
mapillary_tools/geotag/video_extractors/base.py,sha256=mxNeIOsgJePBxqr7tSKZujLBcbIUDWUsRTGu3WfagDA,530
|
|
58
|
+
mapillary_tools/geotag/video_extractors/exiftool.py,sha256=w_s7PEyBVc5cmo8pVknwQKKNg3B6ZPXscJFaCYUDKk4,2571
|
|
59
|
+
mapillary_tools/geotag/video_extractors/gpx.py,sha256=Qmqu__6LAA7kZ6M1CKbxExe2Utz9r4hcOQZhhRFL1jg,4003
|
|
60
|
+
mapillary_tools/geotag/video_extractors/native.py,sha256=o1HZzJ_HR8ZAcIWgGHUUawUnha4DWorNAeo_dFXj-tw,5966
|
|
61
|
+
mapillary_tools/gpmf/gpmf_gps_filter.py,sha256=Rl0klukhonY_R5sACdX4lP3p17VYrZbpgbzMa0vl9fY,2935
|
|
62
|
+
mapillary_tools/gpmf/gpmf_parser.py,sha256=_U9fqnoeRwTXpsmoa4NdT4g_eor0HE8k6qfwP3JZ1eg,24850
|
|
63
|
+
mapillary_tools/gpmf/gps_filter.py,sha256=2QgVR0X-d1oNTZa4FFwQ_qYeNyPHnT98vPeOuNToKoI,3976
|
|
64
|
+
mapillary_tools/mp4/__init__.py,sha256=T6ERU4GCbpsXvJ8PSz2ZfS1oM4Fo_zxMlQ8qgfod7g8,179
|
|
65
|
+
mapillary_tools/mp4/construct_mp4_parser.py,sha256=9EEEZbYWTrRQvSNAVwDpkDoRxluqhk7w2mQDlHA-xg4,17466
|
|
66
|
+
mapillary_tools/mp4/io_utils.py,sha256=KNx_6r-QZQKuOX25bAVIc9bWGPqLS2eCU6mfia7s4xY,5596
|
|
67
|
+
mapillary_tools/mp4/mp4_sample_parser.py,sha256=RwIumnR1pVh1sCuBZmBVwxxyWeZyrpPWK2fKMeFK8Hc,12432
|
|
68
|
+
mapillary_tools/mp4/simple_mp4_builder.py,sha256=GTct-yPgf92_yGZ5-quAtGqbF9Tamw07dIzDYSnpedU,12914
|
|
69
|
+
mapillary_tools/mp4/simple_mp4_parser.py,sha256=83bKqEL3Mza40dprVu_sFDNu82pcylHpCVcIk-K3NgQ,6495
|
|
70
|
+
mapillary_tools/serializer/description.py,sha256=U6mrVmFrWxVXeA_XCSnuHF83d6TQg5y_Zyn2kvFqDdE,19159
|
|
71
|
+
mapillary_tools/serializer/gpx.py,sha256=PE0OeM4X98MCxOtribAPO3u8pl6VOzhX5AOqGF27eQA,4562
|
|
72
|
+
mapillary_tools-0.14.6.dist-info/licenses/LICENSE,sha256=l2D8cKfFmmJq_wcVq_JElPJrlvWQOzNWx7gMLINucxc,1292
|
|
73
|
+
mapillary_tools-0.14.6.dist-info/METADATA,sha256=ooPi6cTqKIQvJ1rShPSNkvQfHnWXPaWayYWD5fE6KsQ,22382
|
|
74
|
+
mapillary_tools-0.14.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
75
|
+
mapillary_tools-0.14.6.dist-info/entry_points.txt,sha256=A3f3LP-BO_P-U8Y29QfpT4jx6Mjk3sXjTi2Yew4bvj8,75
|
|
76
|
+
mapillary_tools-0.14.6.dist-info/top_level.txt,sha256=FbDkMgOrt1S70ho1WSBrOwzKOSkJFDwwqFOoY5-527s,16
|
|
77
|
+
mapillary_tools-0.14.6.dist-info/RECORD,,
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
mapillary_tools/__init__.py,sha256=QPwHkhbn32xwJH7B6GBDJs1faHBKSuZUsKugKUv8LXk,19
|
|
2
|
-
mapillary_tools/api_v4.py,sha256=bckAU_atUs0pSuqySeY4W0Rs011a21ClJHo_mbbcXXw,4864
|
|
3
|
-
mapillary_tools/authenticate.py,sha256=mmaOwjQ444DcX4lRw2ms3naBg5Y_xwIJAIWeVdsQfqM,11742
|
|
4
|
-
mapillary_tools/blackvue_parser.py,sha256=ea2JtU9MWU6yB0bQlF970_Of0bJVofSTRq1P30WKW-0,5623
|
|
5
|
-
mapillary_tools/config.py,sha256=LDxQoL2StjLGPefCN0y67nhIDN3xSE6Qn8G-tWC-oGA,3421
|
|
6
|
-
mapillary_tools/constants.py,sha256=fk5HBczTBGyDOKQy-grzlf0SafiGwggdF8Ota13Rk0k,6235
|
|
7
|
-
mapillary_tools/exceptions.py,sha256=uxTgBEfXgGxT0XNGRIAZ5mjtdqsCYfP6gnaXAK_ewBM,2483
|
|
8
|
-
mapillary_tools/exif_read.py,sha256=nAbZDYAIBx3g4n6QIGKXX3s-A3SkfuvZQBInDrXMlKk,32220
|
|
9
|
-
mapillary_tools/exif_write.py,sha256=XX-DZiWDClk50Pbq7qyn-7mzaGxfFqEsx-kHFfQzAN0,9932
|
|
10
|
-
mapillary_tools/exiftool_read.py,sha256=5uatYE9mgbg2d9NAnPfX22nSRBjXhJ9ayMqNMd4QwGM,15779
|
|
11
|
-
mapillary_tools/exiftool_read_video.py,sha256=23O_bjUOVq6j7i3xMz6fY-XIEsjinsCejK_0nrbFyOM,16084
|
|
12
|
-
mapillary_tools/exiftool_runner.py,sha256=g4gSyqeh3D6EnMJ-c3s-RnO2EP_jD354Qkaz0Y-4D04,1658
|
|
13
|
-
mapillary_tools/ffmpeg.py,sha256=akpvvsjAR-Iiv-hOrUoJvPM9vUU3JqMQ5HJL1_NgwB8,22908
|
|
14
|
-
mapillary_tools/geo.py,sha256=mWaESfDf_zHmyvnt5aVFro4FGrjiULNsuZ6HfGUWvSA,11009
|
|
15
|
-
mapillary_tools/history.py,sha256=MoJVp2D-JUPoORDvNhGt-2dgBstPLZ4nyPToIuqIAg4,6287
|
|
16
|
-
mapillary_tools/http.py,sha256=-df_oGyImO2AOmPnXcKMcztlL4LOZLArE6ki81NMGUA,6411
|
|
17
|
-
mapillary_tools/ipc.py,sha256=DwWQb9hNshx0bg0Fo5NjY0mXjs-FkbR6tIQmjMgMtmg,1089
|
|
18
|
-
mapillary_tools/process_geotag_properties.py,sha256=3EaVvjfKB-O38OjopBcxeEdP6qI5IPIxqmO6isjcXKM,14205
|
|
19
|
-
mapillary_tools/process_sequence_properties.py,sha256=n4VjQHrgVjksIr3WoBviRhrQIBBDHGXMClolfyz6tu4,24057
|
|
20
|
-
mapillary_tools/sample_video.py,sha256=pKSj1Vc8e5p1XGjykBuKY9XieTOskc-9L3F4L407jDM,13935
|
|
21
|
-
mapillary_tools/store.py,sha256=dA1D0afDvhVm0MYEI1yA5FfqjQM5etYK4pcfMc4nKAU,4077
|
|
22
|
-
mapillary_tools/telemetry.py,sha256=lL6qQbtOZft4DZZrCNK3njlwHT_30zLyYS_YRN5pgHY,1568
|
|
23
|
-
mapillary_tools/types.py,sha256=pIU2wcxiOUWT5Pd05pgNzY9EVEDlwoldtlF2IIYYvE0,5909
|
|
24
|
-
mapillary_tools/upload.py,sha256=XejAgmVW4Y33MiQ2g-shvHZA_zXTekEsOUHUHNx2AE4,24047
|
|
25
|
-
mapillary_tools/upload_api_v4.py,sha256=VgOf7RhfUuzmlSBUp5CpekKIJ0xQrC0r-r0Ds9-wU4I,7344
|
|
26
|
-
mapillary_tools/uploader.py,sha256=T2BNlncuFibg5RJ7c2qweUXDAg6-zYc-rdgbV_JEKDU,46636
|
|
27
|
-
mapillary_tools/utils.py,sha256=jKId-E1n1rfuFOjMIIRgkvm6CxkvFWvfg6rqjsoa_6g,8124
|
|
28
|
-
mapillary_tools/camm/camm_builder.py,sha256=ub6Z9ijep8zAo1NOlU51Gxk95kQ2vfN58YgVCLmNMRk,9211
|
|
29
|
-
mapillary_tools/camm/camm_parser.py,sha256=aNHP65hNXYQBWBTfhaj_S5XYzmAHhjwcAfGhbm83__o,18043
|
|
30
|
-
mapillary_tools/commands/__init__.py,sha256=41CFrPLGlG3566uhxssEF3TGAtSpADFPPcDMHbViU0E,171
|
|
31
|
-
mapillary_tools/commands/__main__.py,sha256=W4jMlCA1jekytKA9MMn3mhKie2jgRhc00ylOY2lCxiw,4835
|
|
32
|
-
mapillary_tools/commands/authenticate.py,sha256=yqtpHMYzkyBrrchj6MARxB0ywUTfqCEOPkMbkyaO9Ks,1344
|
|
33
|
-
mapillary_tools/commands/process.py,sha256=Japc6_P0B_8HzoM8_82P3_YAiyBBaQZXS9TZF46pbMM,9771
|
|
34
|
-
mapillary_tools/commands/process_and_upload.py,sha256=-RB_86a5xKfQ7Ye79dh6yyJQpZg2xnJZAWOJsUNbUtQ,1041
|
|
35
|
-
mapillary_tools/commands/sample_video.py,sha256=jtnrZrsqqv5eYV1chNTas7RhfbeKBqbAUDUNRFjF01w,3253
|
|
36
|
-
mapillary_tools/commands/upload.py,sha256=Z06YJ_mZKiBQ1zLojGf6I5t1X4YBcK19sHD-9C0gdXM,3100
|
|
37
|
-
mapillary_tools/commands/video_process.py,sha256=-wQeeIwWXPmy81HQHam5A0huMLRHknkEFa_V1OwElU4,890
|
|
38
|
-
mapillary_tools/commands/video_process_and_upload.py,sha256=hOyq9L9TuD0JcqFSOOxdCdgsBA1iJ6fu1TtDbsUr8sI,1088
|
|
39
|
-
mapillary_tools/commands/zip.py,sha256=DVQuMLpbstwiy5o4pU_fBvM6eORuFjLeySd80AhHKU0,991
|
|
40
|
-
mapillary_tools/geotag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
mapillary_tools/geotag/base.py,sha256=GVKorhJcTivvakcUfPzR6KMzRoIK1pxknDlLDqY2XUk,5166
|
|
42
|
-
mapillary_tools/geotag/factory.py,sha256=6CNQRTr9HTmOA65Iz09CVlGJCGdzOeS0sx5QZO_DXPY,10271
|
|
43
|
-
mapillary_tools/geotag/geotag_images_from_exif.py,sha256=a5fDOp4tlEoVNwrOCJBrvSPzu1LbyxL4RNrNDD0tPP0,608
|
|
44
|
-
mapillary_tools/geotag/geotag_images_from_exiftool.py,sha256=T_IOWgvieqCpfDUdma7K3qmAilme-wdjYrD4lSOdAM4,5707
|
|
45
|
-
mapillary_tools/geotag/geotag_images_from_gpx.py,sha256=EyhJjpP1L_DPRCX926aKeTvuxFxD-eWVCWgELp0-pzY,6313
|
|
46
|
-
mapillary_tools/geotag/geotag_images_from_gpx_file.py,sha256=HYQkwak32YBDuRrTNiIZOmE3iImCRc22HWWb485WRS4,1121
|
|
47
|
-
mapillary_tools/geotag/geotag_images_from_nmea_file.py,sha256=J8xj6ch9bMPRubJtsRGeb3sb9LyB0ZYy65NPEOVkUe8,1597
|
|
48
|
-
mapillary_tools/geotag/geotag_images_from_video.py,sha256=3NV3-NfSkxT0n_n8Ajqjab24x29H2vL98DpwJqnIvT8,4411
|
|
49
|
-
mapillary_tools/geotag/geotag_videos_from_exiftool.py,sha256=Splhtv21JvrbFPVuKycf5wen0wOJ0zqOWk8d4aSw-ys,5345
|
|
50
|
-
mapillary_tools/geotag/geotag_videos_from_gpx.py,sha256=IoV7asxl7dojF1lftvohm1jK_LboFg_mBz25GiV_CsY,1653
|
|
51
|
-
mapillary_tools/geotag/geotag_videos_from_video.py,sha256=T8XS4lVF2Wz4eDXNi5Vt076M5dxjxJXibVrWhqVvErs,863
|
|
52
|
-
mapillary_tools/geotag/options.py,sha256=AgINCSBlxT9Etfu05zuzunWgcCHVWdFjWVL7oBduL4g,5166
|
|
53
|
-
mapillary_tools/geotag/utils.py,sha256=tixXiN3uda2HuMnuXVu4xapgoSzZ86kNlJJQ66QERk0,1588
|
|
54
|
-
mapillary_tools/geotag/image_extractors/base.py,sha256=XoNrLCbJtd-MN-snbhv6zyr6zBfJRoJkntV0ptrh6qg,358
|
|
55
|
-
mapillary_tools/geotag/image_extractors/exif.py,sha256=cCUegbFqWxjAP4oOP1nZmwoJISWeKgjGO8h_t7nucHs,2079
|
|
56
|
-
mapillary_tools/geotag/image_extractors/exiftool.py,sha256=zokJmf-D2rPvASRJs3dZzEu7j82igpMOr4SE6Z1nsVg,497
|
|
57
|
-
mapillary_tools/geotag/video_extractors/base.py,sha256=KxyKxoh_mV-XBnJq3dSzNEt2rQqZAKjmS3GazsdYbnc,350
|
|
58
|
-
mapillary_tools/geotag/video_extractors/exiftool.py,sha256=mH9arsWBaArYhNMxnrRpoEa3YrMjSpCiZaz-baJRMCo,2305
|
|
59
|
-
mapillary_tools/geotag/video_extractors/gpx.py,sha256=1JDuGLgp3wpaAqfq3ln4DMsVt820dK5HZ3VfJnok98c,3823
|
|
60
|
-
mapillary_tools/geotag/video_extractors/native.py,sha256=_xmTQ6nrvdwkadMmIxrhw6rvGTGwQVmrdSkYLhhV1SM,5786
|
|
61
|
-
mapillary_tools/gpmf/gpmf_gps_filter.py,sha256=7cg8wEjC1DrujKY76FZguXsaPqTRkG9-t32OeuOJQIc,2755
|
|
62
|
-
mapillary_tools/gpmf/gpmf_parser.py,sha256=uOVXkwJxC3Y2YfTdzUDpt7Bh0pdVqa5u0WUuv7pEJEs,24670
|
|
63
|
-
mapillary_tools/gpmf/gps_filter.py,sha256=zhXkuvr0Dd1bxGTYBwvk6P7xasY_RLuWjHaX7CdBayc,3796
|
|
64
|
-
mapillary_tools/mp4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
mapillary_tools/mp4/construct_mp4_parser.py,sha256=jS8fOgSByqieXA6C5ZqobaI0bK17U_YAkiWEUK_8j4E,17286
|
|
66
|
-
mapillary_tools/mp4/io_utils.py,sha256=KZaJTlgFS27Oh3pcA5MKXYFoCifqgFaEZJyU6lb1jc4,5416
|
|
67
|
-
mapillary_tools/mp4/mp4_sample_parser.py,sha256=0ILTq8M6mXFTI3agKgljpvO9uYa7HXGUGZpdHT8a6ac,11547
|
|
68
|
-
mapillary_tools/mp4/simple_mp4_builder.py,sha256=9TUGk1hzI6mQFN1P30jwHL3dCYz3Zz7rsm8UBvMAqMc,12734
|
|
69
|
-
mapillary_tools/mp4/simple_mp4_parser.py,sha256=g3vvPhBoNu7anhVzC5_XQCV7IwfRWro1vJ6d6GyDkHE,6315
|
|
70
|
-
mapillary_tools/serializer/description.py,sha256=ECnQxC-1LOgkAKE5qFi9Y2KuCeH8KPUjjNFDiwebjvo,18647
|
|
71
|
-
mapillary_tools/serializer/gpx.py,sha256=_xx6gHjaWHrlXaUpB5GGBrbRKzbExFyIzWWAH-CvksI,4383
|
|
72
|
-
mapillary_tools-0.14.5.dist-info/licenses/LICENSE,sha256=l2D8cKfFmmJq_wcVq_JElPJrlvWQOzNWx7gMLINucxc,1292
|
|
73
|
-
mapillary_tools-0.14.5.dist-info/METADATA,sha256=DId1oYdgfsgoOtZyp7J3Nnu5TyIY6aaGpGsPGuCWv9k,22200
|
|
74
|
-
mapillary_tools-0.14.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
75
|
-
mapillary_tools-0.14.5.dist-info/entry_points.txt,sha256=A3f3LP-BO_P-U8Y29QfpT4jx6Mjk3sXjTi2Yew4bvj8,75
|
|
76
|
-
mapillary_tools-0.14.5.dist-info/top_level.txt,sha256=FbDkMgOrt1S70ho1WSBrOwzKOSkJFDwwqFOoY5-527s,16
|
|
77
|
-
mapillary_tools-0.14.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|