fastmob 0.3.2__tar.gz → 0.3.4__tar.gz

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.
Files changed (335) hide show
  1. {fastmob-0.3.2 → fastmob-0.3.4}/Cargo.lock +2 -2
  2. fastmob-0.3.4/PKG-INFO +164 -0
  3. fastmob-0.3.4/README.md +123 -0
  4. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/base.py +2 -1
  5. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/flow_dataframe.py +2 -2
  6. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/locations_dataframe.py +16 -6
  7. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/positionfixes_dataframe.py +4 -4
  8. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/staypoints_dataframe.py +18 -10
  9. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/tours_dataframe.py +2 -2
  10. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/trajectory_dataframe.py +8 -8
  11. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/triplegs_dataframe.py +5 -5
  12. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/trips_dataframe.py +3 -3
  13. fastmob-0.3.4/fastmob/data/__init__.py +16 -0
  14. fastmob-0.3.4/fastmob/data/_remote.py +55 -0
  15. fastmob-0.3.4/fastmob/data/brightkite.py +77 -0
  16. fastmob-0.3.4/fastmob/data/datasets/__init__.py +1 -0
  17. fastmob-0.3.4/fastmob/data/geolife.py +74 -0
  18. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/load.py +1 -1
  19. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/integration/events.py +5 -1
  20. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/integration/poi.py +12 -4
  21. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/io/file.py +1 -1
  22. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/homes_per_location.py +4 -4
  23. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/interest_network.py +3 -3
  24. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/mean_square_displacement.py +3 -3
  25. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/od.py +6 -6
  26. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/random_location_entropy.py +3 -3
  27. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/stvd.py +10 -10
  28. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/uncorrelated_location_entropy.py +2 -2
  29. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/visits_per_location.py +2 -2
  30. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/visits_per_time_unit.py +3 -3
  31. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/compare.py +3 -3
  32. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/cpc.py +54 -3
  33. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/metrics.py +18 -2
  34. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/spatial.py +7 -3
  35. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/fitting/daily_location_lognormal.py +2 -2
  36. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/fitting/visitation_law.py +28 -10
  37. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/activity.py +30 -2
  38. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/distance_straight_line.py +3 -3
  39. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/diversity.py +2 -2
  40. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/entropy.py +4 -4
  41. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/frequency_rank.py +2 -2
  42. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/home_location.py +3 -3
  43. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/individual_mobility_network.py +3 -3
  44. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/jump_lengths.py +2 -6
  45. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/k_radius_of_gyration.py +2 -2
  46. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/location_frequency.py +3 -3
  47. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/max_distance_from_home.py +6 -6
  48. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/maximum_distance.py +3 -3
  49. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/mobility_profiling.py +8 -8
  50. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/motifs.py +19 -4
  51. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/network_distance.py +30 -19
  52. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/number_of_locations.py +2 -2
  53. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/number_of_visits.py +2 -2
  54. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/profile_classification.py +15 -3
  55. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/radius_of_gyration.py +3 -6
  56. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/random_entropy.py +2 -2
  57. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/real_entropy.py +2 -2
  58. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/recency_rank.py +2 -2
  59. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/regularity.py +2 -2
  60. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/uncorrelated_entropy.py +2 -2
  61. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/waiting_times.py +3 -3
  62. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/work_location.py +26 -5
  63. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/epr.py +35 -33
  64. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/geosim.py +6 -6
  65. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/gravity.py +7 -5
  66. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/markov_diary_generator.py +7 -7
  67. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/next_location.py +11 -11
  68. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/radiation.py +3 -3
  69. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/sts_epr.py +10 -10
  70. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/_nearest.py +6 -2
  71. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/builder.py +110 -4
  72. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/match.py +47 -3
  73. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/od_flow.py +6 -3
  74. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/road_graph.py +23 -6
  75. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/snap.py +4 -2
  76. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_activity.py +9 -3
  77. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_compress.py +7 -1
  78. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_filter.py +20 -2
  79. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_h3.py +7 -2
  80. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_segment.py +7 -1
  81. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_simplify.py +7 -1
  82. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_stay_locations.py +7 -1
  83. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_trajectory_od.py +17 -8
  84. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_transport_mode.py +6 -6
  85. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/cdr.py +1 -1
  86. fastmob-0.3.4/fastmob/privacy/frequency.py +396 -0
  87. fastmob-0.3.4/fastmob/privacy/location.py +248 -0
  88. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/social/contact_network.py +122 -12
  89. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/social/recast.py +106 -13
  90. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/tessellation/tilers.py +8 -0
  91. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/_distance.py +18 -3
  92. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/_interpolate.py +7 -1
  93. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/_interpolate_at.py +9 -3
  94. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/_shape_cluster.py +9 -3
  95. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/_smooth.py +8 -2
  96. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/utils/_common.py +12 -3
  97. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/vis.py +1 -1
  98. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/cpc.rs +5 -2
  99. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/Cargo.toml +1 -1
  100. {fastmob-0.3.2 → fastmob-0.3.4}/pyproject.toml +3 -2
  101. fastmob-0.3.2/PKG-INFO +0 -164
  102. fastmob-0.3.2/README.md +0 -123
  103. fastmob-0.3.2/fastmob/data/__init__.py +0 -7
  104. fastmob-0.3.2/fastmob/data/datasets/__init__.py +0 -1
  105. fastmob-0.3.2/fastmob/privacy/frequency.py +0 -166
  106. fastmob-0.3.2/fastmob/privacy/location.py +0 -105
  107. {fastmob-0.3.2 → fastmob-0.3.4}/Cargo.toml +0 -0
  108. {fastmob-0.3.2 → fastmob-0.3.4}/LICENSE +0 -0
  109. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/__init__.py +0 -0
  110. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/__init__.py +0 -0
  111. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/_hierarchy_common.py +0 -0
  112. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/core/dispatch.py +0 -0
  113. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/_frames.py +0 -0
  114. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/flow_foursquare_nyc/__init__.py +0 -0
  115. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/flow_foursquare_nyc/flow_foursquare_nyc.json +0 -0
  116. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/flow_foursquare_nyc/flow_foursquare_nyc.py +0 -0
  117. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/foursquare_nyc/__init__.py +0 -0
  118. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/foursquare_nyc/foursquare_nyc.json +0 -0
  119. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/foursquare_nyc/foursquare_nyc.py +0 -0
  120. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/nyc_boundaries/__init__.py +0 -0
  121. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/nyc_boundaries/nyc_boundaries.json +0 -0
  122. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/nyc_boundaries/nyc_boundaries.py +0 -0
  123. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/parking_san_francisco/__init__.py +0 -0
  124. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/parking_san_francisco/parking_san_francisco.json +0 -0
  125. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/parking_san_francisco/parking_san_francisco.py +0 -0
  126. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/taxi_san_francisco/__init__.py +0 -0
  127. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/taxi_san_francisco/taxi_san_francisco.json +0 -0
  128. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/data/datasets/taxi_san_francisco/taxi_san_francisco.py +0 -0
  129. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/integration/__init__.py +0 -0
  130. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/io/__init__.py +0 -0
  131. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/__init__.py +0 -0
  132. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/_common.py +0 -0
  133. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/collective/__init__.py +0 -0
  134. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/__init__.py +0 -0
  135. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/information.py +0 -0
  136. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/evaluation/regression.py +0 -0
  137. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/fitting/__init__.py +0 -0
  138. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/fitting/truncated_powerlaw.py +0 -0
  139. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/measures/individual/__init__.py +0 -0
  140. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/models/__init__.py +0 -0
  141. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/__init__.py +0 -0
  142. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/network/speeds.py +0 -0
  143. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/__init__.py +0 -0
  144. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/preprocessing/_cluster.py +0 -0
  145. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/privacy/__init__.py +0 -0
  146. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/privacy/_engine.py +0 -0
  147. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/social/__init__.py +0 -0
  148. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/tessellation/__init__.py +0 -0
  149. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/tessellation/_constants.py +0 -0
  150. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/tessellation/_utils.py +0 -0
  151. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/trajectory/__init__.py +0 -0
  152. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/utils/__init__.py +0 -0
  153. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/utils/_arrow_io.py +0 -0
  154. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob/utils/_profiling.py +0 -0
  155. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/Cargo.toml +0 -0
  156. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/LICENSE +0 -0
  157. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/LICENSE-APACHE-MOVETK +0 -0
  158. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/README.md +0 -0
  159. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/THIRD_PARTY_NOTICES.md +0 -0
  160. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/hierarchy/mod.rs +0 -0
  161. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/hierarchy/trips.rs +0 -0
  162. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/integration/events.rs +0 -0
  163. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/integration/mod.rs +0 -0
  164. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/lib.rs +0 -0
  165. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/collective/interest_network.rs +0 -0
  166. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/collective/mod.rs +0 -0
  167. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/collective/square_displacement.rs +0 -0
  168. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/collective/stvd.rs +0 -0
  169. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/collective/visitation_law.rs +0 -0
  170. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/jsd.rs +0 -0
  171. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/kl_divergence.rs +0 -0
  172. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/mod.rs +0 -0
  173. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/stvd_candidate_graph.rs +0 -0
  174. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/stvd_emd.rs +0 -0
  175. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/stvd_sparse_sinkhorn.rs +0 -0
  176. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/evaluation/wasserstein.rs +0 -0
  177. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/fitting/daily_location_lognormal.rs +0 -0
  178. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/fitting/mod.rs +0 -0
  179. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/fitting/truncated_powerlaw.rs +0 -0
  180. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/fitting/visitation_law.rs +0 -0
  181. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/activity.rs +0 -0
  182. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/diversity.rs +0 -0
  183. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/entropy.rs +0 -0
  184. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/home_location.rs +0 -0
  185. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/individual_mobility_network.rs +0 -0
  186. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/jump_lengths.rs +0 -0
  187. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/k_radius_of_gyration.rs +0 -0
  188. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/location_frequency.rs +0 -0
  189. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/max_distance_from_point.rs +0 -0
  190. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/maximum_distance.rs +0 -0
  191. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/mod.rs +0 -0
  192. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/motifs.rs +0 -0
  193. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/radius_of_gyration.rs +0 -0
  194. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/recency_rank.rs +0 -0
  195. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/spatial_counts.rs +0 -0
  196. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/time_ordering.rs +0 -0
  197. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/total_distance.rs +0 -0
  198. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/uncorrelated_entropy.rs +0 -0
  199. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/individual/waiting_times.rs +0 -0
  200. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/measures/mod.rs +0 -0
  201. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/distance.rs +0 -0
  202. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/ditras.rs +0 -0
  203. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/epr.rs +0 -0
  204. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/geosim.rs +0 -0
  205. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/markov_diary.rs +0 -0
  206. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/mod.rs +0 -0
  207. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/next_location.rs +0 -0
  208. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/od.rs +0 -0
  209. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/radiation.rs +0 -0
  210. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/shared.rs +0 -0
  211. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/social_graph.rs +0 -0
  212. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/models/sts_epr.rs +0 -0
  213. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/network/mod.rs +0 -0
  214. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/network/road_graph.rs +0 -0
  215. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/cdr.rs +0 -0
  216. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/clustering.rs +0 -0
  217. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/compress_traj.rs +0 -0
  218. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/expand_trajectory.rs +0 -0
  219. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/filter_traj.rs +0 -0
  220. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/h3.rs +0 -0
  221. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/h3_cluster.rs +0 -0
  222. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/mod.rs +0 -0
  223. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/outliers/greedy.rs +0 -0
  224. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/outliers/hampel.rs +0 -0
  225. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/outliers/mod.rs +0 -0
  226. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/outliers/zheng.rs +0 -0
  227. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/angle_change.rs +0 -0
  228. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/mod.rs +0 -0
  229. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/observation_gap.rs +0 -0
  230. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/speed.rs +0 -0
  231. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/stop.rs +0 -0
  232. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/segment/value_change.rs +0 -0
  233. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/chan_chin.rs +0 -0
  234. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/corridor.rs +0 -0
  235. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/distance_time_threshold.rs +0 -0
  236. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/douglas_peucker.rs +0 -0
  237. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/imai_iri.rs +0 -0
  238. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/mod.rs +0 -0
  239. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/simplify/top_down_time_ratio.rs +0 -0
  240. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/stay_locations.rs +0 -0
  241. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/stay_locations_rs.rs +0 -0
  242. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/preprocessing/trajectory_od.rs +0 -0
  243. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/privacy.rs +0 -0
  244. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/social/co_presence_network.rs +0 -0
  245. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/social/mod.rs +0 -0
  246. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/distance.rs +0 -0
  247. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/interpolate.rs +0 -0
  248. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/interpolate_at.rs +0 -0
  249. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/mod.rs +0 -0
  250. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/shape_cluster.rs +0 -0
  251. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/shape_signature.rs +0 -0
  252. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/trajectory/smooth.rs +0 -0
  253. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/utils/haversine.rs +0 -0
  254. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/utils/helpers.rs +0 -0
  255. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-core/src/utils/mod.rs +0 -0
  256. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/adapters/mod.rs +0 -0
  257. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/adapters/trajectory.rs +0 -0
  258. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/hierarchy_py.rs +0 -0
  259. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/integration/events_py.rs +0 -0
  260. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/integration/mod.rs +0 -0
  261. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/lib.rs +0 -0
  262. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/collective/interest_network.rs +0 -0
  263. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/collective/mod.rs +0 -0
  264. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/collective/square_displacement.rs +0 -0
  265. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/collective/stvd.rs +0 -0
  266. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/collective/visitation_law.rs +0 -0
  267. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/cpc.rs +0 -0
  268. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/jsd.rs +0 -0
  269. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/kl_divergence.rs +0 -0
  270. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/mod.rs +0 -0
  271. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/stvd_emd.rs +0 -0
  272. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/evaluation/wasserstein.rs +0 -0
  273. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/fitting/daily_location_lognormal.rs +0 -0
  274. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/fitting/mod.rs +0 -0
  275. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/fitting/truncated_powerlaw.rs +0 -0
  276. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/activity.rs +0 -0
  277. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/diversity.rs +0 -0
  278. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/entropy.rs +0 -0
  279. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/factorization.rs +0 -0
  280. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/home_location.rs +0 -0
  281. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/indexed_user_indices.rs +0 -0
  282. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/individual_mobility_network.rs +0 -0
  283. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/jump_lengths.rs +0 -0
  284. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/k_radius_of_gyration.rs +0 -0
  285. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/location_frequency.rs +0 -0
  286. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/max_distance_from_point.rs +0 -0
  287. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/maximum_distance.rs +0 -0
  288. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/mod.rs +0 -0
  289. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/motifs.rs +0 -0
  290. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/radius_of_gyration.rs +0 -0
  291. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/recency_rank.rs +0 -0
  292. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/spatial_counts.rs +0 -0
  293. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/time_ordering.rs +0 -0
  294. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/total_distance.rs +0 -0
  295. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/uncorrelated_entropy.rs +0 -0
  296. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/individual/waiting_times.rs +0 -0
  297. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/measures/mod.rs +0 -0
  298. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/distance.rs +0 -0
  299. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/ditras.rs +0 -0
  300. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/epr.rs +0 -0
  301. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/geosim.rs +0 -0
  302. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/markov_diary.rs +0 -0
  303. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/mod.rs +0 -0
  304. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/next_location_py.rs +0 -0
  305. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/od.rs +0 -0
  306. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/radiation.rs +0 -0
  307. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/social_graph.rs +0 -0
  308. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/models/sts_epr.rs +0 -0
  309. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/network/mod.rs +0 -0
  310. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/network/road_graph_py.rs +0 -0
  311. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/cdr.rs +0 -0
  312. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/clustering.rs +0 -0
  313. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/compress_traj_py.rs +0 -0
  314. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/expand_trajectory_py.rs +0 -0
  315. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/filter_traj_py.rs +0 -0
  316. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/h3_cluster_py.rs +0 -0
  317. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/h3_py.rs +0 -0
  318. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/mod.rs +0 -0
  319. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/outliers_traj_py.rs +0 -0
  320. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/segment_traj_py.rs +0 -0
  321. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/simplify_traj_py.rs +0 -0
  322. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/stay_locations_py.rs +0 -0
  323. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/preprocessing/trajectory_od_py.rs +0 -0
  324. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/privacy.rs +0 -0
  325. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/social/co_presence_network.rs +0 -0
  326. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/social/mod.rs +0 -0
  327. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/distance_py.rs +0 -0
  328. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/interpolate_at_py.rs +0 -0
  329. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/interpolate_py.rs +0 -0
  330. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/mod.rs +0 -0
  331. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/shape_cluster_py.rs +0 -0
  332. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/trajectory/smooth_py.rs +0 -0
  333. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/utils/haversine_py.rs +0 -0
  334. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/utils/mod.rs +0 -0
  335. {fastmob-0.3.2 → fastmob-0.3.4}/fastmob-py/src/utils/py_helpers.rs +0 -0
@@ -1030,7 +1030,7 @@ dependencies = [
1030
1030
 
1031
1031
  [[package]]
1032
1032
  name = "fastmob-py"
1033
- version = "0.3.2"
1033
+ version = "0.3.4"
1034
1034
  dependencies = [
1035
1035
  "ahash",
1036
1036
  "arrow-array",
@@ -1061,7 +1061,7 @@ dependencies = [
1061
1061
 
1062
1062
  [[package]]
1063
1063
  name = "fastmob-vis"
1064
- version = "0.1.0"
1064
+ version = "0.1.1"
1065
1065
  dependencies = [
1066
1066
  "charming",
1067
1067
  "numpy",
fastmob-0.3.4/PKG-INFO ADDED
@@ -0,0 +1,164 @@
1
+ Metadata-Version: 2.4
2
+ Name: fastmob
3
+ Version: 0.3.4
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: Intended Audience :: Science/Research
7
+ Classifier: License :: OSI Approved :: BSD License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Rust
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: Implementation :: CPython
18
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
19
+ Classifier: Topic :: Scientific/Engineering :: GIS
20
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
21
+ Requires-Dist: narwhals>=1.0
22
+ Requires-Dist: numpy
23
+ Requires-Dist: pyarrow>=14
24
+ Requires-Dist: geopandas ; extra == 'geo'
25
+ Requires-Dist: shapely ; extra == 'geo'
26
+ Requires-Dist: pyproj ; extra == 'geo'
27
+ Requires-Dist: fastmob-vis>=0.1.1,<0.2 ; extra == 'vis'
28
+ Provides-Extra: geo
29
+ Provides-Extra: vis
30
+ License-File: LICENSE
31
+ Summary: High-performance mobility analysis with a Rust-accelerated core and backend-agnostic DataFrame API.
32
+ Author: Gustavo Henrique Bruno dos Santos
33
+ License-Expression: BSD-3-Clause
34
+ Requires-Python: >=3.9
35
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
36
+ Project-URL: Documentation, https://gefgu.github.io/fastmob/
37
+ Project-URL: Homepage, https://github.com/gefgu/fastmob
38
+ Project-URL: Issues, https://github.com/gefgu/fastmob/issues
39
+ Project-URL: Repository, https://github.com/gefgu/fastmob
40
+
41
+ <p align="center">
42
+ <img src="docs/src/assets/logo_filled.svg" alt="Fastkit-Mobility logo" width="280">
43
+ </p>
44
+
45
+ # Fastkit-Mobility
46
+
47
+ [![PyPI version](https://img.shields.io/pypi/v/fastmob)](https://pypi.org/project/fastmob/)
48
+ [![Total downloads](https://static.pepy.tech/badge/fastmob)](https://pepy.tech/projects/fastmob)
49
+ [![Python versions](https://img.shields.io/pypi/pyversions/fastmob)](https://pypi.org/project/fastmob/)
50
+ [![License](https://img.shields.io/pypi/l/fastmob)](LICENSE)
51
+
52
+ **Fastkit-Mobility** helps researchers turn location data into insights about how
53
+ people move. Clean GPS traces, find stops and trips, measure travel patterns,
54
+ and simulate mobility using familiar Python dataframes. Its Rust engine handles
55
+ compute-intensive work while you work with pandas or Polars.
56
+
57
+ [Get started](https://gefgu.github.io/fastmob/learn/) · [Explore the examples](https://gefgu.github.io/fastmob/learn/) · [API reference](https://gefgu.github.io/fastmob/reference/) · [Benchmarks](https://gefgu.github.io/fastmob/features/benchmarks/)
58
+
59
+
60
+ <p align="center">
61
+ <img src="docs/src/assets/images/home/home-geolife-staypoints-triplegs.png" alt="GPS fixes, detected stops and trips for one day of a GeoLife participant in Beijing" width="650">
62
+ </p>
63
+
64
+ One day of GeoLife GPS data: grey points are GPS fixes, gold circles are detected
65
+ stops (staypoints), and coloured lines show movement between them (triplegs). Follow the [complete GeoLife example](https://gefgu.github.io/fastmob/learn/notebooks/stay-point-detection-geolife/).
66
+
67
+ ## Try it
68
+
69
+ Install Fastkit-Mobility and pandas for this example (Python 3.9 or newer):
70
+
71
+ ```bash
72
+ pip install fastmob pandas
73
+ ```
74
+
75
+ Calculate each person's **radius of gyration**: a measure, in kilometres, of
76
+ how widely their observed locations spread around their centre of movement.
77
+
78
+ ```python
79
+ import pandas as pd
80
+ from fastmob import radius_of_gyration
81
+
82
+ df = pd.DataFrame({
83
+ "uid": ["alice"] * 3 + ["bob"] * 3,
84
+ "datetime": pd.to_datetime(["2020-01-01 08:00", "2020-01-01 09:00", "2020-01-01 10:00"] * 2),
85
+ "lat": [41.9, 42.0, 42.1, 40.7, 40.8, 41.0],
86
+ "lng": [12.5, 12.5, 12.6, -74.0, -74.0, -73.9],
87
+ })
88
+
89
+ print(radius_of_gyration(df))
90
+ ```
91
+
92
+ ```text
93
+ uid radius_of_gyration
94
+ 0 alice 9.878827
95
+ 1 bob 14.423721
96
+ ```
97
+
98
+ In this small example, Bob's observed locations are more spread out than
99
+ Alice's. Explore more [individual and collective measures](https://gefgu.github.io/fastmob/learn/individual-and-collective-measures/).
100
+
101
+ ## What can you study?
102
+
103
+ - **Clean and segment traces:** filter noisy GPS data and separate movement from stops. [Learn how](https://gefgu.github.io/fastmob/learn/clean-and-segment/).
104
+ - **Find stops and recurring places:** identify where people spend time and group repeated visits to locations. [Learn how](https://gefgu.github.io/fastmob/learn/staypoints-and-locations/).
105
+ - **Measure movement:** study individual ranges and travel patterns, or flows across a population. [Explore measures](https://gefgu.github.io/fastmob/learn/individual-and-collective-measures/).
106
+ - **Work with transport networks:** route and match GPS traces to road and rail networks. [Explore network analysis](https://gefgu.github.io/fastmob/learn/network-analysis/).
107
+ - **Model mobility:** generate synthetic trajectories or flows and compare models with observations. [Explore models](https://gefgu.github.io/fastmob/reference/models/).
108
+
109
+
110
+ ## Performance and compatibility
111
+
112
+ Fastkit-Mobility uses Rust for compute-intensive operations and supports pandas,
113
+ Polars and other eager dataframes through Narwhals. Many measure names and
114
+ signatures follow [scikit-mobility](https://github.com/scikit-mobility/scikit-mobility).
115
+
116
+ <p align="center">
117
+ <img src="docs/src/assets/images/home/home-benchmark-speedup.png" alt="Execution times for five mobility measures: Fastkit-Mobility with pandas compared with scikit-mobility on approximately four million Brightkite check-ins" width="800">
118
+ </p>
119
+
120
+ Average execution time for five measures on approximately 4 million time-sorted
121
+ Brightkite check-ins. Fastkit-Mobility uses pandas; the comparison is with
122
+ scikit-mobility. Times are averages of three runs on an Intel Core i7-10700 with
123
+ Python 3.12, and the chart uses a logarithmic scale. The scikit-mobility input
124
+ contained 3,999,891 rows and the Fastkit-Mobility input 4,000,000. Results depend
125
+ on the operation, data and environment. See the [raw benchmark record](https://github.com/gefgu/fastmob_benchmarks/blob/main/benchmarks/measures/results/py312_intel_core_i7_10700_16c_brightkite4M/measures_benchmarks.json)
126
+ and [more comparisons](https://gefgu.github.io/fastmob/features/benchmarks/).
127
+
128
+ For citing a specific software release, see the [citation guide](https://gefgu.github.io/fastmob/about/#cite-fastkit-mobility).
129
+
130
+ ## More resources
131
+
132
+ - [Guides and tutorials](https://gefgu.github.io/fastmob/learn/) · [API reference](https://gefgu.github.io/fastmob/reference/) · [Release notes](https://gefgu.github.io/fastmob/release_notes/)
133
+ - [Contributing and development setup](docs/CONTRIBUTING.md)
134
+ - [Report an issue](https://github.com/gefgu/fastmob/issues): include package versions, dataframe backend, a minimal example, expected behavior and the full error.
135
+
136
+ For a fastmob release, set the version in `fastmob-py/Cargo.toml`, run the
137
+ release checks, and tag the tested commit `fastmob-v<version>` (for example,
138
+ `fastmob-v0.3.4`). Push that tag to trigger the wheel builds and PyPI release.
139
+ Tags named only `v<version>` do not trigger the fastmob release workflow.
140
+
141
+ ## Status and support
142
+
143
+ Fastmob is actively developed. Please include versions, dataframe backend, a
144
+ minimal reproducible input, expected behavior, and the full error when opening
145
+ an issue.
146
+
147
+ ## Citation
148
+
149
+ If you use Fastkit-Mobility in research, please cite the
150
+ [NetMob 2026 paper](https://inria.hal.science/hal-05755990):
151
+
152
+ ```bibtex
153
+ @inproceedings{santos2026fastkit,
154
+ author = {Santos, Gustavo H. and Viana, Aline Carneiro and
155
+ Pappalardo, Luca and Silva, Thiago H.},
156
+ title = {Fastkit-Mobility: A High-Performance, DataFrame-Agnostic Library for Mobility Analysis},
157
+ booktitle = {NetMob 2026},
158
+ address = {Niter{\'o}i, Brazil},
159
+ year = {2026},
160
+ month = oct,
161
+ url = {https://inria.hal.science/hal-05755990}
162
+ }
163
+ ```
164
+
@@ -0,0 +1,123 @@
1
+ <p align="center">
2
+ <img src="docs/src/assets/logo_filled.svg" alt="Fastkit-Mobility logo" width="280">
3
+ </p>
4
+
5
+ # Fastkit-Mobility
6
+
7
+ [![PyPI version](https://img.shields.io/pypi/v/fastmob)](https://pypi.org/project/fastmob/)
8
+ [![Total downloads](https://static.pepy.tech/badge/fastmob)](https://pepy.tech/projects/fastmob)
9
+ [![Python versions](https://img.shields.io/pypi/pyversions/fastmob)](https://pypi.org/project/fastmob/)
10
+ [![License](https://img.shields.io/pypi/l/fastmob)](LICENSE)
11
+
12
+ **Fastkit-Mobility** helps researchers turn location data into insights about how
13
+ people move. Clean GPS traces, find stops and trips, measure travel patterns,
14
+ and simulate mobility using familiar Python dataframes. Its Rust engine handles
15
+ compute-intensive work while you work with pandas or Polars.
16
+
17
+ [Get started](https://gefgu.github.io/fastmob/learn/) · [Explore the examples](https://gefgu.github.io/fastmob/learn/) · [API reference](https://gefgu.github.io/fastmob/reference/) · [Benchmarks](https://gefgu.github.io/fastmob/features/benchmarks/)
18
+
19
+
20
+ <p align="center">
21
+ <img src="docs/src/assets/images/home/home-geolife-staypoints-triplegs.png" alt="GPS fixes, detected stops and trips for one day of a GeoLife participant in Beijing" width="650">
22
+ </p>
23
+
24
+ One day of GeoLife GPS data: grey points are GPS fixes, gold circles are detected
25
+ stops (staypoints), and coloured lines show movement between them (triplegs). Follow the [complete GeoLife example](https://gefgu.github.io/fastmob/learn/notebooks/stay-point-detection-geolife/).
26
+
27
+ ## Try it
28
+
29
+ Install Fastkit-Mobility and pandas for this example (Python 3.9 or newer):
30
+
31
+ ```bash
32
+ pip install fastmob pandas
33
+ ```
34
+
35
+ Calculate each person's **radius of gyration**: a measure, in kilometres, of
36
+ how widely their observed locations spread around their centre of movement.
37
+
38
+ ```python
39
+ import pandas as pd
40
+ from fastmob import radius_of_gyration
41
+
42
+ df = pd.DataFrame({
43
+ "uid": ["alice"] * 3 + ["bob"] * 3,
44
+ "datetime": pd.to_datetime(["2020-01-01 08:00", "2020-01-01 09:00", "2020-01-01 10:00"] * 2),
45
+ "lat": [41.9, 42.0, 42.1, 40.7, 40.8, 41.0],
46
+ "lng": [12.5, 12.5, 12.6, -74.0, -74.0, -73.9],
47
+ })
48
+
49
+ print(radius_of_gyration(df))
50
+ ```
51
+
52
+ ```text
53
+ uid radius_of_gyration
54
+ 0 alice 9.878827
55
+ 1 bob 14.423721
56
+ ```
57
+
58
+ In this small example, Bob's observed locations are more spread out than
59
+ Alice's. Explore more [individual and collective measures](https://gefgu.github.io/fastmob/learn/individual-and-collective-measures/).
60
+
61
+ ## What can you study?
62
+
63
+ - **Clean and segment traces:** filter noisy GPS data and separate movement from stops. [Learn how](https://gefgu.github.io/fastmob/learn/clean-and-segment/).
64
+ - **Find stops and recurring places:** identify where people spend time and group repeated visits to locations. [Learn how](https://gefgu.github.io/fastmob/learn/staypoints-and-locations/).
65
+ - **Measure movement:** study individual ranges and travel patterns, or flows across a population. [Explore measures](https://gefgu.github.io/fastmob/learn/individual-and-collective-measures/).
66
+ - **Work with transport networks:** route and match GPS traces to road and rail networks. [Explore network analysis](https://gefgu.github.io/fastmob/learn/network-analysis/).
67
+ - **Model mobility:** generate synthetic trajectories or flows and compare models with observations. [Explore models](https://gefgu.github.io/fastmob/reference/models/).
68
+
69
+
70
+ ## Performance and compatibility
71
+
72
+ Fastkit-Mobility uses Rust for compute-intensive operations and supports pandas,
73
+ Polars and other eager dataframes through Narwhals. Many measure names and
74
+ signatures follow [scikit-mobility](https://github.com/scikit-mobility/scikit-mobility).
75
+
76
+ <p align="center">
77
+ <img src="docs/src/assets/images/home/home-benchmark-speedup.png" alt="Execution times for five mobility measures: Fastkit-Mobility with pandas compared with scikit-mobility on approximately four million Brightkite check-ins" width="800">
78
+ </p>
79
+
80
+ Average execution time for five measures on approximately 4 million time-sorted
81
+ Brightkite check-ins. Fastkit-Mobility uses pandas; the comparison is with
82
+ scikit-mobility. Times are averages of three runs on an Intel Core i7-10700 with
83
+ Python 3.12, and the chart uses a logarithmic scale. The scikit-mobility input
84
+ contained 3,999,891 rows and the Fastkit-Mobility input 4,000,000. Results depend
85
+ on the operation, data and environment. See the [raw benchmark record](https://github.com/gefgu/fastmob_benchmarks/blob/main/benchmarks/measures/results/py312_intel_core_i7_10700_16c_brightkite4M/measures_benchmarks.json)
86
+ and [more comparisons](https://gefgu.github.io/fastmob/features/benchmarks/).
87
+
88
+ For citing a specific software release, see the [citation guide](https://gefgu.github.io/fastmob/about/#cite-fastkit-mobility).
89
+
90
+ ## More resources
91
+
92
+ - [Guides and tutorials](https://gefgu.github.io/fastmob/learn/) · [API reference](https://gefgu.github.io/fastmob/reference/) · [Release notes](https://gefgu.github.io/fastmob/release_notes/)
93
+ - [Contributing and development setup](docs/CONTRIBUTING.md)
94
+ - [Report an issue](https://github.com/gefgu/fastmob/issues): include package versions, dataframe backend, a minimal example, expected behavior and the full error.
95
+
96
+ For a fastmob release, set the version in `fastmob-py/Cargo.toml`, run the
97
+ release checks, and tag the tested commit `fastmob-v<version>` (for example,
98
+ `fastmob-v0.3.4`). Push that tag to trigger the wheel builds and PyPI release.
99
+ Tags named only `v<version>` do not trigger the fastmob release workflow.
100
+
101
+ ## Status and support
102
+
103
+ Fastmob is actively developed. Please include versions, dataframe backend, a
104
+ minimal reproducible input, expected behavior, and the full error when opening
105
+ an issue.
106
+
107
+ ## Citation
108
+
109
+ If you use Fastkit-Mobility in research, please cite the
110
+ [NetMob 2026 paper](https://inria.hal.science/hal-05755990):
111
+
112
+ ```bibtex
113
+ @inproceedings{santos2026fastkit,
114
+ author = {Santos, Gustavo H. and Viana, Aline Carneiro and
115
+ Pappalardo, Luca and Silva, Thiago H.},
116
+ title = {Fastkit-Mobility: A High-Performance, DataFrame-Agnostic Library for Mobility Analysis},
117
+ booktitle = {NetMob 2026},
118
+ address = {Niter{\'o}i, Brazil},
119
+ year = {2026},
120
+ month = oct,
121
+ url = {https://inria.hal.science/hal-05755990}
122
+ }
123
+ ```
@@ -47,6 +47,7 @@ class BaseDataFrame:
47
47
  return self.df.columns
48
48
 
49
49
  def to_native(self):
50
+ """Return the stored native dataframe (a PyArrow table for tables built by the library's own readers)."""
50
51
  return self.df
51
52
 
52
53
  def to_pandas(self):
@@ -60,7 +61,7 @@ class BaseDataFrame:
60
61
  def compare_to(self, other, value_col, *, group_col=None, metric=None):
61
62
  """Compare ``value_col`` against ``other``, optionally grouped by ``group_col``.
62
63
 
63
- See :func:`fastmob.measures.evaluation.compare.compare_to`.
64
+ See `fastmob.measures.evaluation.compare.compare_to`.
64
65
  """
65
66
  from fastmob.measures.evaluation.compare import compare_to as _compare_to
66
67
 
@@ -26,7 +26,7 @@ class FlowDataFrame(BaseDataFrame):
26
26
 
27
27
  Parameters
28
28
  ----------
29
- df : DataFrame-like, optional
29
+ df : dataframe, optional
30
30
  Source data. Accepted types: ``pandas.DataFrame``,
31
31
  ``polars.DataFrame``, any Narwhals-compatible eager frame, ``list``,
32
32
  ``numpy.ndarray``, or ``dict``.
@@ -333,7 +333,7 @@ class FlowDataFrame(BaseDataFrame):
333
333
  ):
334
334
  """Plot origin-destination flows on an interactive Folium map.
335
335
 
336
- Requires a tessellation to be attached (see :meth:`to_flowdataframe`).
336
+ Requires a tessellation to be attached (see `to_flowdataframe`).
337
337
 
338
338
  Parameters
339
339
  ----------
@@ -42,7 +42,7 @@ class Locations(BaseDataFrame):
42
42
 
43
43
  Parameters
44
44
  ----------
45
- df : DataFrame-like
45
+ df : dataframe
46
46
  Source data; any Narwhals-compatible eager backend.
47
47
  uid_col : str, optional
48
48
  User-ID column name for user-scoped locations. Must be ``None`` for
@@ -52,7 +52,11 @@ class Locations(BaseDataFrame):
52
52
  scheme : {"cluster", "h3", "external"}, optional
53
53
  Location-ID scheme. User locations default to ``"cluster"`` and
54
54
  global locations default to ``"external"``.
55
- location_id_col, center_lat_col, center_lng_col : str, optional
55
+ location_id_col : str, optional
56
+ Column name overrides.
57
+ center_lat_col : str, optional
58
+ Column name overrides.
59
+ center_lng_col : str, optional
56
60
  Column name overrides.
57
61
  validate : bool, optional
58
62
  When True (default), check that required columns are present.
@@ -120,9 +124,15 @@ class Locations(BaseDataFrame):
120
124
 
121
125
  Parameters
122
126
  ----------
123
- tessellation : DataFrame-like
127
+ tessellation : dataframe
124
128
  Tile table with IDs and centres or geometries.
125
- tile_id_col, lat_col, lng_col, geometry_col : str, optional
129
+ tile_id_col : str, optional
130
+ Source column names.
131
+ lat_col : str, optional
132
+ Source column names.
133
+ lng_col : str, optional
134
+ Source column names.
135
+ geometry_col : str, optional
126
136
  Source column names.
127
137
 
128
138
  Returns
@@ -194,11 +204,11 @@ class Locations(BaseDataFrame):
194
204
  def identify(self, staypoints: Any, method: str = "freq", **kwargs: Any) -> Locations:
195
205
  """Label each location as ``"home"``, ``"work"``, or ``"other"``.
196
206
 
197
- See :func:`fastmob.preprocessing.identify_locations`.
207
+ See `fastmob.preprocessing.identify_locations`.
198
208
 
199
209
  Parameters
200
210
  ----------
201
- staypoints : DataFrame-like or Staypoints
211
+ staypoints : dataframe or Staypoints
202
212
  Location-assigned visits.
203
213
  method : str, optional
204
214
  Purpose-identification method. Default is ``"freq"``.
@@ -36,7 +36,7 @@ class Positionfixes(TrajDataFrame):
36
36
  Parameters
37
37
  ----------
38
38
  **kwargs
39
- Forwarded to :func:`fastmob.preprocessing.stay_locations`
39
+ Forwarded to `fastmob.preprocessing.stay_locations`
40
40
  (``minutes_for_a_stop``, ``spatial_radius_km``, etc.).
41
41
 
42
42
  Returns
@@ -106,16 +106,16 @@ class Positionfixes(TrajDataFrame):
106
106
  ----------
107
107
  staypoints : Staypoints
108
108
  Staypoints previously generated from this same trajectory (ideally
109
- via :meth:`generate_staypoints`, so stop-detection parameters
109
+ via `generate_staypoints`, so stop-detection parameters
110
110
  match).
111
111
  gap_threshold_min : float, optional
112
112
  Reserved for future gap-based tripleg splitting; unused by the
113
113
  current ``"between_staypoints"`` method. Default ``15.0``.
114
114
  **stop_kwargs
115
115
  Stop-detection parameter overrides forwarded to
116
- :func:`fastmob.preprocessing.segment` (``stop_radius_km``,
116
+ `fastmob.preprocessing.segment` (``stop_radius_km``,
117
117
  ``minutes_for_a_stop``, ...). Defaults to the parameters recorded
118
- on ``staypoints`` (from :meth:`generate_staypoints`) when not
118
+ on ``staypoints`` (from `generate_staypoints`) when not
119
119
  given.
120
120
 
121
121
  Returns
@@ -34,9 +34,17 @@ class Staypoints(BaseDataFrame):
34
34
 
35
35
  Parameters
36
36
  ----------
37
- df : DataFrame-like
37
+ df : dataframe
38
38
  Source data; any Narwhals-compatible eager backend.
39
- uid_col, lat_col, lng_col, started_at_col, finished_at_col : str, optional
39
+ uid_col : str, optional
40
+ Explicit column name overrides; auto-detected when None.
41
+ lat_col : str, optional
42
+ Explicit column name overrides; auto-detected when None.
43
+ lng_col : str, optional
44
+ Explicit column name overrides; auto-detected when None.
45
+ started_at_col : str, optional
46
+ Explicit column name overrides; auto-detected when None.
47
+ finished_at_col : str, optional
40
48
  Explicit column name overrides; auto-detected when None.
41
49
  validate : bool, optional
42
50
  When True (default), check that required columns are present and
@@ -82,12 +90,12 @@ class Staypoints(BaseDataFrame):
82
90
 
83
91
  Existing instances are returned unchanged. Raw dataframe-like inputs
84
92
  are constructed with the same column detection and validation as
85
- :class:`Staypoints`, so measures can share one explicit boundary for
93
+ `Staypoints`, so measures can share one explicit boundary for
86
94
  accepting raw staypoint data.
87
95
 
88
96
  Parameters
89
97
  ----------
90
- value : Staypoints or DataFrame-like
98
+ value : Staypoints or dataframe
91
99
  Existing wrapper or raw interval table.
92
100
  **column_overrides
93
101
  Explicit column names, accepted only for a raw table.
@@ -117,7 +125,7 @@ class Staypoints(BaseDataFrame):
117
125
 
118
126
  Parameters
119
127
  ----------
120
- df : DataFrame-like
128
+ df : dataframe
121
129
  Staypoint interval table.
122
130
  started_at_col : str
123
131
  Start-time column.
@@ -193,7 +201,7 @@ class Staypoints(BaseDataFrame):
193
201
  def create_activity_flag(self, method: str = "time_threshold", time_threshold_min: float = 15.0) -> Staypoints:
194
202
  """Flag each staypoint as a genuine "activity" by dwell time.
195
203
 
196
- See :func:`fastmob.preprocessing.create_activity_flag`.
204
+ See `fastmob.preprocessing.create_activity_flag`.
197
205
 
198
206
  Parameters
199
207
  ----------
@@ -395,14 +403,14 @@ class Staypoints(BaseDataFrame):
395
403
  def build_stvd(self, locations: Locations, **kwargs: Any) -> Any:
396
404
  """Aggregate these staypoints against a global Locations catalogue into an STVD frame.
397
405
 
398
- See :func:`fastmob.measures.collective.build_stvd`.
406
+ See `fastmob.measures.collective.build_stvd`.
399
407
 
400
408
  Parameters
401
409
  ----------
402
410
  locations : Locations
403
411
  Global location catalogue.
404
412
  **kwargs
405
- Forwarded to :func:`fastmob.measures.collective.build_stvd`.
413
+ Forwarded to `fastmob.measures.collective.build_stvd`.
406
414
 
407
415
  Returns
408
416
  -------
@@ -420,7 +428,7 @@ class Staypoints(BaseDataFrame):
420
428
  def interest_network(self, locations: Locations) -> Any:
421
429
  """Return the collective interest network over global ``locations``.
422
430
 
423
- See :func:`fastmob.measures.collective.interest_network`.
431
+ See `fastmob.measures.collective.interest_network`.
424
432
 
425
433
  Returns
426
434
  -------
@@ -441,7 +449,7 @@ class Staypoints(BaseDataFrame):
441
449
  ) -> Any:
442
450
  """Compute one home-anchored mobility motif per user and day.
443
451
 
444
- See :func:`fastmob.measures.individual.motifs.daily_motifs_from_staypoints`.
452
+ See `fastmob.measures.individual.motifs.daily_motifs_from_staypoints`.
445
453
 
446
454
  Parameters
447
455
  ----------
@@ -38,7 +38,7 @@ class Tours(BaseDataFrame):
38
38
 
39
39
  Parameters
40
40
  ----------
41
- df : DataFrame-like
41
+ df : dataframe
42
42
  Source data; any Narwhals-compatible eager backend.
43
43
  uid_col : str, optional
44
44
  User-ID column name.
@@ -59,7 +59,7 @@ class Tours(BaseDataFrame):
59
59
  def from_trips(trips: Any, staypoints_with_location: Any) -> Tours:
60
60
  """Group consecutive trips into tours.
61
61
 
62
- See :meth:`fastmob.core.trips_dataframe.Trips.generate_tours`.
62
+ See `fastmob.core.trips_dataframe.Trips.generate_tours`.
63
63
 
64
64
  Parameters
65
65
  ----------
@@ -44,7 +44,7 @@ class TrajDataFrame(BaseDataFrame):
44
44
 
45
45
  Parameters
46
46
  ----------
47
- df : DataFrame-like
47
+ df : dataframe
48
48
  Source data. Accepted types: ``pandas.DataFrame``, ``polars.DataFrame``,
49
49
  any Narwhals-compatible eager frame, plain ``list``, ``numpy.ndarray``, or
50
50
  ``dict``.
@@ -302,13 +302,13 @@ class TrajDataFrame(BaseDataFrame):
302
302
  def work_location(self, **kwargs):
303
303
  """Infer the most-visited weekday daytime location for each user.
304
304
 
305
- Delegates to :func:`fastmob.measures.individual.work_location` using
305
+ Delegates to `fastmob.measures.individual.work_location` using
306
306
  this dataframe's resolved column metadata and sorted fast path.
307
307
 
308
308
  Parameters
309
309
  ----------
310
310
  **kwargs
311
- Forwarded to :func:`fastmob.measures.individual.work_location`.
311
+ Forwarded to `fastmob.measures.individual.work_location`.
312
312
 
313
313
  Returns
314
314
  -------
@@ -343,7 +343,7 @@ class TrajDataFrame(BaseDataFrame):
343
343
  before an interpolated point is inserted. Default ``3600.0``.
344
344
  **method_kwargs
345
345
  Method-specific parameters; see
346
- :func:`fastmob.trajectory.interpolate`.
346
+ `fastmob.trajectory.interpolate`.
347
347
 
348
348
  Returns
349
349
  -------
@@ -387,7 +387,7 @@ class TrajDataFrame(BaseDataFrame):
387
387
  def smooth(self, method: str = "kalman_cv", **method_kwargs) -> TrajDataFrame:
388
388
  """Smooth the trajectory's positions using a named algorithm.
389
389
 
390
- Unlike :meth:`interpolate`, row count and row order are unchanged --
390
+ Unlike `interpolate`, row count and row order are unchanged --
391
391
  every point's ``(lat, lng)`` is replaced with a denoised estimate at
392
392
  its original timestamp.
393
393
 
@@ -397,7 +397,7 @@ class TrajDataFrame(BaseDataFrame):
397
397
  Only ``"kalman_cv"`` is shipped currently. Default ``"kalman_cv"``.
398
398
  **method_kwargs
399
399
  Method-specific parameters; see
400
- :func:`fastmob.trajectory.smooth`.
400
+ `fastmob.trajectory.smooth`.
401
401
 
402
402
  Returns
403
403
  -------
@@ -491,7 +491,7 @@ class TrajDataFrame(BaseDataFrame):
491
491
  Default ``"dtw"``.
492
492
  **method_kwargs
493
493
  Method-specific parameters; see
494
- :func:`fastmob.trajectory.trajectory_distance`.
494
+ `fastmob.trajectory.trajectory_distance`.
495
495
 
496
496
  Returns
497
497
  -------
@@ -1018,7 +1018,7 @@ class TrajDataFrame(BaseDataFrame):
1018
1018
  """Plot detected stop locations on an interactive Folium map.
1019
1019
 
1020
1020
  Requires a TrajDataFrame with a ``leaving_datetime`` column
1021
- (output of :func:`fastmob.preprocessing.stay_locations`).
1021
+ (output of `fastmob.preprocessing.stay_locations`).
1022
1022
 
1023
1023
  Parameters
1024
1024
  ----------
@@ -55,7 +55,7 @@ class Triplegs(BaseDataFrame):
55
55
 
56
56
  Parameters
57
57
  ----------
58
- df : DataFrame-like
58
+ df : dataframe
59
59
  Source data; any Narwhals-compatible eager backend.
60
60
  uid_col : str, optional
61
61
  User-ID column name.
@@ -75,7 +75,7 @@ class Triplegs(BaseDataFrame):
75
75
  def predict_transport_mode(self, method: str = "simple-coarse", categories: dict | None = None) -> Triplegs:
76
76
  """Classify each tripleg's transport mode from its average speed.
77
77
 
78
- See :func:`fastmob.preprocessing.predict_transport_mode`.
78
+ See `fastmob.preprocessing.predict_transport_mode`.
79
79
 
80
80
  Parameters
81
81
  ----------
@@ -106,7 +106,7 @@ class Triplegs(BaseDataFrame):
106
106
  ) -> Any:
107
107
  """Aggregate this ``mode``-labeled table into a modal-split table.
108
108
 
109
- See :func:`fastmob.preprocessing.calculate_modal_split`.
109
+ See `fastmob.preprocessing.calculate_modal_split`.
110
110
 
111
111
  Returns
112
112
  -------
@@ -124,7 +124,7 @@ class Triplegs(BaseDataFrame):
124
124
  def generate_trips(self, staypoints: Any, gap_threshold_min: float = 15.0) -> Any:
125
125
  """Group consecutive triplegs into trips.
126
126
 
127
- See :meth:`fastmob.core.trips_dataframe.Trips.from_triplegs`.
127
+ See `fastmob.core.trips_dataframe.Trips.from_triplegs`.
128
128
 
129
129
  Examples
130
130
  --------
@@ -143,7 +143,7 @@ class Triplegs(BaseDataFrame):
143
143
  ) -> Triplegs:
144
144
  """Derive triplegs from positionfixes + already-generated staypoints.
145
145
 
146
- See :meth:`fastmob.core.positionfixes_dataframe.Positionfixes.generate_triplegs`.
146
+ See `fastmob.core.positionfixes_dataframe.Positionfixes.generate_triplegs`.
147
147
 
148
148
  Returns
149
149
  -------