flowtracks 1.5.1__tar.gz → 1.5.2.dev1__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 (567) hide show
  1. flowtracks-1.5.2.dev1/.github/workflows/python-package.yml +41 -0
  2. flowtracks-1.5.2.dev1/.github/workflows/python-publish.yml +99 -0
  3. flowtracks-1.5.2.dev1/.gitignore +14 -0
  4. flowtracks-1.5.2.dev1/CLAUDE.md +123 -0
  5. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/PKG-INFO +1 -1
  6. flowtracks-1.5.2.dev1/RELEASE.md +39 -0
  7. flowtracks-1.5.2.dev1/SPEEDUP_PLAN.md +547 -0
  8. flowtracks-1.5.2.dev1/WRITERS_PLAN.md +203 -0
  9. flowtracks-1.5.2.dev1/benchmarks/BASELINE.md +64 -0
  10. flowtracks-1.5.2.dev1/benchmarks/bench_interp.py +64 -0
  11. flowtracks-1.5.2.dev1/benchmarks/bench_io.py +85 -0
  12. flowtracks-1.5.2.dev1/benchmarks/bench_pairs.py +34 -0
  13. flowtracks-1.5.2.dev1/data/particles/xuap.10001 +62 -0
  14. flowtracks-1.5.2.dev1/data/particles/xuap.10002 +64 -0
  15. flowtracks-1.5.2.dev1/data/particles/xuap.10003 +65 -0
  16. flowtracks-1.5.2.dev1/data/particles/xuap.10004 +66 -0
  17. flowtracks-1.5.2.dev1/data/particles/xuap.10005 +64 -0
  18. flowtracks-1.5.2.dev1/data/particles/xuap.10006 +67 -0
  19. flowtracks-1.5.2.dev1/data/particles/xuap.10007 +66 -0
  20. flowtracks-1.5.2.dev1/data/particles/xuap.10008 +68 -0
  21. flowtracks-1.5.2.dev1/data/particles/xuap.10009 +69 -0
  22. flowtracks-1.5.2.dev1/data/particles/xuap.10010 +66 -0
  23. flowtracks-1.5.2.dev1/data/particles/xuap.10011 +67 -0
  24. flowtracks-1.5.2.dev1/data/particles/xuap.10012 +69 -0
  25. flowtracks-1.5.2.dev1/data/particles/xuap.10013 +67 -0
  26. flowtracks-1.5.2.dev1/data/particles/xuap.10014 +70 -0
  27. flowtracks-1.5.2.dev1/data/particles/xuap.10015 +66 -0
  28. flowtracks-1.5.2.dev1/data/particles/xuap.10016 +68 -0
  29. flowtracks-1.5.2.dev1/data/particles/xuap.10017 +68 -0
  30. flowtracks-1.5.2.dev1/data/particles/xuap.10018 +70 -0
  31. flowtracks-1.5.2.dev1/data/particles/xuap.10019 +69 -0
  32. flowtracks-1.5.2.dev1/data/particles/xuap.10020 +73 -0
  33. flowtracks-1.5.2.dev1/data/particles/xuap.10021 +73 -0
  34. flowtracks-1.5.2.dev1/data/particles/xuap.10022 +72 -0
  35. flowtracks-1.5.2.dev1/data/particles/xuap.10023 +72 -0
  36. flowtracks-1.5.2.dev1/data/particles/xuap.10024 +73 -0
  37. flowtracks-1.5.2.dev1/data/particles/xuap.10025 +72 -0
  38. flowtracks-1.5.2.dev1/data/particles/xuap.10026 +77 -0
  39. flowtracks-1.5.2.dev1/data/particles/xuap.10027 +74 -0
  40. flowtracks-1.5.2.dev1/data/particles/xuap.10028 +76 -0
  41. flowtracks-1.5.2.dev1/data/particles/xuap.10029 +74 -0
  42. flowtracks-1.5.2.dev1/data/particles/xuap.10030 +76 -0
  43. flowtracks-1.5.2.dev1/data/particles/xuap.10031 +79 -0
  44. flowtracks-1.5.2.dev1/data/particles/xuap.10032 +74 -0
  45. flowtracks-1.5.2.dev1/data/particles/xuap.10033 +75 -0
  46. flowtracks-1.5.2.dev1/data/particles/xuap.10034 +73 -0
  47. flowtracks-1.5.2.dev1/data/particles/xuap.10035 +73 -0
  48. flowtracks-1.5.2.dev1/data/particles/xuap.10036 +73 -0
  49. flowtracks-1.5.2.dev1/data/particles/xuap.10037 +77 -0
  50. flowtracks-1.5.2.dev1/data/particles/xuap.10038 +75 -0
  51. flowtracks-1.5.2.dev1/data/particles/xuap.10039 +75 -0
  52. flowtracks-1.5.2.dev1/data/particles/xuap.10040 +74 -0
  53. flowtracks-1.5.2.dev1/data/particles/xuap.10041 +75 -0
  54. flowtracks-1.5.2.dev1/data/particles/xuap.10042 +75 -0
  55. flowtracks-1.5.2.dev1/data/particles/xuap.10043 +74 -0
  56. flowtracks-1.5.2.dev1/data/particles/xuap.10044 +72 -0
  57. flowtracks-1.5.2.dev1/data/particles/xuap.10045 +73 -0
  58. flowtracks-1.5.2.dev1/data/particles/xuap.10046 +71 -0
  59. flowtracks-1.5.2.dev1/data/particles/xuap.10047 +71 -0
  60. flowtracks-1.5.2.dev1/data/particles/xuap.10048 +66 -0
  61. flowtracks-1.5.2.dev1/data/particles/xuap.10049 +70 -0
  62. flowtracks-1.5.2.dev1/data/particles/xuap.10050 +72 -0
  63. flowtracks-1.5.2.dev1/data/particles/xuap.10051 +68 -0
  64. flowtracks-1.5.2.dev1/data/particles/xuap.10052 +70 -0
  65. flowtracks-1.5.2.dev1/data/particles/xuap.10053 +69 -0
  66. flowtracks-1.5.2.dev1/data/particles/xuap.10054 +69 -0
  67. flowtracks-1.5.2.dev1/data/particles/xuap.10055 +66 -0
  68. flowtracks-1.5.2.dev1/data/particles/xuap.10056 +69 -0
  69. flowtracks-1.5.2.dev1/data/particles/xuap.10057 +71 -0
  70. flowtracks-1.5.2.dev1/data/particles/xuap.10058 +70 -0
  71. flowtracks-1.5.2.dev1/data/particles/xuap.10059 +73 -0
  72. flowtracks-1.5.2.dev1/data/particles/xuap.10060 +73 -0
  73. flowtracks-1.5.2.dev1/data/particles/xuap.10061 +72 -0
  74. flowtracks-1.5.2.dev1/data/particles/xuap.10062 +71 -0
  75. flowtracks-1.5.2.dev1/data/particles/xuap.10063 +73 -0
  76. flowtracks-1.5.2.dev1/data/particles/xuap.10064 +71 -0
  77. flowtracks-1.5.2.dev1/data/particles/xuap.10065 +72 -0
  78. flowtracks-1.5.2.dev1/data/particles/xuap.10066 +72 -0
  79. flowtracks-1.5.2.dev1/data/particles/xuap.10067 +73 -0
  80. flowtracks-1.5.2.dev1/data/particles/xuap.10068 +70 -0
  81. flowtracks-1.5.2.dev1/data/particles/xuap.10069 +71 -0
  82. flowtracks-1.5.2.dev1/data/particles/xuap.10070 +76 -0
  83. flowtracks-1.5.2.dev1/data/particles/xuap.10071 +74 -0
  84. flowtracks-1.5.2.dev1/data/particles/xuap.10072 +74 -0
  85. flowtracks-1.5.2.dev1/data/particles/xuap.10073 +75 -0
  86. flowtracks-1.5.2.dev1/data/particles/xuap.10074 +74 -0
  87. flowtracks-1.5.2.dev1/data/particles/xuap.10075 +73 -0
  88. flowtracks-1.5.2.dev1/data/particles/xuap.10076 +74 -0
  89. flowtracks-1.5.2.dev1/data/particles/xuap.10077 +74 -0
  90. flowtracks-1.5.2.dev1/data/particles/xuap.10078 +75 -0
  91. flowtracks-1.5.2.dev1/data/particles/xuap.10079 +74 -0
  92. flowtracks-1.5.2.dev1/data/particles/xuap.10080 +74 -0
  93. flowtracks-1.5.2.dev1/data/particles/xuap.10081 +70 -0
  94. flowtracks-1.5.2.dev1/data/particles/xuap.10082 +73 -0
  95. flowtracks-1.5.2.dev1/data/particles/xuap.10083 +73 -0
  96. flowtracks-1.5.2.dev1/data/particles/xuap.10084 +73 -0
  97. flowtracks-1.5.2.dev1/data/particles/xuap.10085 +75 -0
  98. flowtracks-1.5.2.dev1/data/particles/xuap.10086 +73 -0
  99. flowtracks-1.5.2.dev1/data/particles/xuap.10087 +73 -0
  100. flowtracks-1.5.2.dev1/data/particles/xuap.10088 +73 -0
  101. flowtracks-1.5.2.dev1/data/particles/xuap.10089 +73 -0
  102. flowtracks-1.5.2.dev1/data/particles/xuap.10090 +75 -0
  103. flowtracks-1.5.2.dev1/data/particles/xuap.10091 +73 -0
  104. flowtracks-1.5.2.dev1/data/particles/xuap.10092 +74 -0
  105. flowtracks-1.5.2.dev1/data/particles/xuap.10093 +75 -0
  106. flowtracks-1.5.2.dev1/data/particles/xuap.10094 +73 -0
  107. flowtracks-1.5.2.dev1/data/particles/xuap.10095 +75 -0
  108. flowtracks-1.5.2.dev1/data/particles/xuap.10096 +75 -0
  109. flowtracks-1.5.2.dev1/data/particles/xuap.10097 +73 -0
  110. flowtracks-1.5.2.dev1/data/particles/xuap.10098 +72 -0
  111. flowtracks-1.5.2.dev1/data/particles/xuap.10099 +73 -0
  112. flowtracks-1.5.2.dev1/data/particles/xuap.10100 +73 -0
  113. flowtracks-1.5.2.dev1/data/particles/xuap.10101 +74 -0
  114. flowtracks-1.5.2.dev1/data/particles/xuap.10102 +77 -0
  115. flowtracks-1.5.2.dev1/data/particles/xuap.10103 +75 -0
  116. flowtracks-1.5.2.dev1/data/particles/xuap.10104 +75 -0
  117. flowtracks-1.5.2.dev1/data/particles/xuap.10105 +76 -0
  118. flowtracks-1.5.2.dev1/data/particles/xuap.10106 +75 -0
  119. flowtracks-1.5.2.dev1/data/particles/xuap.10107 +76 -0
  120. flowtracks-1.5.2.dev1/data/particles/xuap.10108 +76 -0
  121. flowtracks-1.5.2.dev1/data/particles/xuap.10109 +77 -0
  122. flowtracks-1.5.2.dev1/data/particles/xuap.10110 +79 -0
  123. flowtracks-1.5.2.dev1/data/particles/xuap.10111 +78 -0
  124. flowtracks-1.5.2.dev1/data/particles/xuap.10112 +81 -0
  125. flowtracks-1.5.2.dev1/data/particles/xuap.10113 +81 -0
  126. flowtracks-1.5.2.dev1/data/particles/xuap.10114 +77 -0
  127. flowtracks-1.5.2.dev1/data/particles/xuap.10115 +79 -0
  128. flowtracks-1.5.2.dev1/data/particles/xuap.10116 +80 -0
  129. flowtracks-1.5.2.dev1/data/particles/xuap.10117 +81 -0
  130. flowtracks-1.5.2.dev1/data/particles/xuap.10118 +84 -0
  131. flowtracks-1.5.2.dev1/data/particles/xuap.10119 +82 -0
  132. flowtracks-1.5.2.dev1/data/particles/xuap.10120 +82 -0
  133. flowtracks-1.5.2.dev1/data/particles/xuap.10121 +86 -0
  134. flowtracks-1.5.2.dev1/data/particles/xuap.10122 +83 -0
  135. flowtracks-1.5.2.dev1/data/particles/xuap.10123 +86 -0
  136. flowtracks-1.5.2.dev1/data/particles/xuap.10124 +87 -0
  137. flowtracks-1.5.2.dev1/data/particles/xuap.10125 +87 -0
  138. flowtracks-1.5.2.dev1/data/particles/xuap.10126 +88 -0
  139. flowtracks-1.5.2.dev1/data/particles/xuap.10127 +92 -0
  140. flowtracks-1.5.2.dev1/data/particles/xuap.10128 +93 -0
  141. flowtracks-1.5.2.dev1/data/particles/xuap.10129 +92 -0
  142. flowtracks-1.5.2.dev1/data/particles/xuap.10130 +94 -0
  143. flowtracks-1.5.2.dev1/data/particles/xuap.10131 +89 -0
  144. flowtracks-1.5.2.dev1/data/particles/xuap.10132 +93 -0
  145. flowtracks-1.5.2.dev1/data/particles/xuap.10133 +94 -0
  146. flowtracks-1.5.2.dev1/data/particles/xuap.10134 +93 -0
  147. flowtracks-1.5.2.dev1/data/particles/xuap.10135 +93 -0
  148. flowtracks-1.5.2.dev1/data/particles/xuap.10136 +93 -0
  149. flowtracks-1.5.2.dev1/data/particles/xuap.10137 +94 -0
  150. flowtracks-1.5.2.dev1/data/particles/xuap.10138 +94 -0
  151. flowtracks-1.5.2.dev1/data/particles/xuap.10139 +96 -0
  152. flowtracks-1.5.2.dev1/data/particles/xuap.10140 +94 -0
  153. flowtracks-1.5.2.dev1/data/particles/xuap.10141 +96 -0
  154. flowtracks-1.5.2.dev1/data/particles/xuap.10142 +95 -0
  155. flowtracks-1.5.2.dev1/data/particles/xuap.10143 +94 -0
  156. flowtracks-1.5.2.dev1/data/particles/xuap.10144 +95 -0
  157. flowtracks-1.5.2.dev1/data/particles/xuap.10145 +95 -0
  158. flowtracks-1.5.2.dev1/data/particles/xuap.10146 +96 -0
  159. flowtracks-1.5.2.dev1/data/particles/xuap.10147 +95 -0
  160. flowtracks-1.5.2.dev1/data/particles/xuap.10148 +94 -0
  161. flowtracks-1.5.2.dev1/data/particles/xuap.10149 +93 -0
  162. flowtracks-1.5.2.dev1/data/particles/xuap.10150 +94 -0
  163. flowtracks-1.5.2.dev1/data/particles/xuap.10151 +92 -0
  164. flowtracks-1.5.2.dev1/data/particles/xuap.10152 +94 -0
  165. flowtracks-1.5.2.dev1/data/particles/xuap.10153 +94 -0
  166. flowtracks-1.5.2.dev1/data/particles/xuap.10154 +92 -0
  167. flowtracks-1.5.2.dev1/data/particles/xuap.10155 +93 -0
  168. flowtracks-1.5.2.dev1/data/particles/xuap.10156 +92 -0
  169. flowtracks-1.5.2.dev1/data/particles/xuap.10157 +92 -0
  170. flowtracks-1.5.2.dev1/data/particles/xuap.10158 +93 -0
  171. flowtracks-1.5.2.dev1/data/particles/xuap.10159 +91 -0
  172. flowtracks-1.5.2.dev1/data/particles/xuap.10160 +91 -0
  173. flowtracks-1.5.2.dev1/data/particles/xuap.10161 +90 -0
  174. flowtracks-1.5.2.dev1/data/particles/xuap.10162 +91 -0
  175. flowtracks-1.5.2.dev1/data/particles/xuap.10163 +90 -0
  176. flowtracks-1.5.2.dev1/data/particles/xuap.10164 +89 -0
  177. flowtracks-1.5.2.dev1/data/particles/xuap.10165 +90 -0
  178. flowtracks-1.5.2.dev1/data/particles/xuap.10166 +89 -0
  179. flowtracks-1.5.2.dev1/data/particles/xuap.10167 +84 -0
  180. flowtracks-1.5.2.dev1/data/particles/xuap.10168 +87 -0
  181. flowtracks-1.5.2.dev1/data/particles/xuap.10169 +88 -0
  182. flowtracks-1.5.2.dev1/data/particles/xuap.10170 +86 -0
  183. flowtracks-1.5.2.dev1/data/particles/xuap.10171 +87 -0
  184. flowtracks-1.5.2.dev1/data/particles/xuap.10172 +88 -0
  185. flowtracks-1.5.2.dev1/data/particles/xuap.10173 +86 -0
  186. flowtracks-1.5.2.dev1/data/particles/xuap.10174 +89 -0
  187. flowtracks-1.5.2.dev1/data/particles/xuap.10175 +86 -0
  188. flowtracks-1.5.2.dev1/data/particles/xuap.10176 +88 -0
  189. flowtracks-1.5.2.dev1/data/particles/xuap.10177 +88 -0
  190. flowtracks-1.5.2.dev1/data/particles/xuap.10178 +88 -0
  191. flowtracks-1.5.2.dev1/data/particles/xuap.10179 +88 -0
  192. flowtracks-1.5.2.dev1/data/particles/xuap.10180 +93 -0
  193. flowtracks-1.5.2.dev1/data/particles/xuap.10181 +87 -0
  194. flowtracks-1.5.2.dev1/data/particles/xuap.10182 +88 -0
  195. flowtracks-1.5.2.dev1/data/particles/xuap.10183 +86 -0
  196. flowtracks-1.5.2.dev1/data/particles/xuap.10184 +90 -0
  197. flowtracks-1.5.2.dev1/data/particles/xuap.10185 +90 -0
  198. flowtracks-1.5.2.dev1/data/particles/xuap.10186 +90 -0
  199. flowtracks-1.5.2.dev1/data/particles/xuap.10187 +90 -0
  200. flowtracks-1.5.2.dev1/data/particles/xuap.10188 +88 -0
  201. flowtracks-1.5.2.dev1/data/particles/xuap.10189 +89 -0
  202. flowtracks-1.5.2.dev1/data/particles/xuap.10190 +90 -0
  203. flowtracks-1.5.2.dev1/data/particles/xuap.10191 +87 -0
  204. flowtracks-1.5.2.dev1/data/particles/xuap.10192 +85 -0
  205. flowtracks-1.5.2.dev1/data/particles/xuap.10193 +86 -0
  206. flowtracks-1.5.2.dev1/data/particles/xuap.10194 +88 -0
  207. flowtracks-1.5.2.dev1/data/particles/xuap.10195 +85 -0
  208. flowtracks-1.5.2.dev1/data/particles/xuap.10196 +83 -0
  209. flowtracks-1.5.2.dev1/data/particles/xuap.10197 +84 -0
  210. flowtracks-1.5.2.dev1/data/particles/xuap.10198 +85 -0
  211. flowtracks-1.5.2.dev1/data/particles/xuap.10199 +87 -0
  212. flowtracks-1.5.2.dev1/data/particles/xuap.10200 +85 -0
  213. flowtracks-1.5.2.dev1/data/particles.h5 +0 -0
  214. flowtracks-1.5.2.dev1/data/readme.txt +26 -0
  215. flowtracks-1.5.2.dev1/data/seq_hdf.cfg +11 -0
  216. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10001 +806 -0
  217. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10002 +808 -0
  218. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10003 +842 -0
  219. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10004 +870 -0
  220. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10005 +858 -0
  221. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10006 +840 -0
  222. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10007 +861 -0
  223. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10008 +849 -0
  224. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10009 +851 -0
  225. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10010 +860 -0
  226. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10011 +837 -0
  227. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10012 +857 -0
  228. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10013 +862 -0
  229. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10014 +854 -0
  230. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10015 +838 -0
  231. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10016 +847 -0
  232. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10017 +856 -0
  233. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10018 +862 -0
  234. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10019 +850 -0
  235. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10020 +849 -0
  236. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10021 +838 -0
  237. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10022 +861 -0
  238. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10023 +869 -0
  239. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10024 +844 -0
  240. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10025 +837 -0
  241. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10026 +904 -0
  242. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10027 +784 -0
  243. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10028 +804 -0
  244. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10029 +817 -0
  245. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10030 +834 -0
  246. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10031 +831 -0
  247. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10032 +813 -0
  248. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10033 +832 -0
  249. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10034 +823 -0
  250. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10035 +855 -0
  251. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10036 +848 -0
  252. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10037 +843 -0
  253. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10038 +858 -0
  254. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10039 +838 -0
  255. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10040 +837 -0
  256. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10041 +837 -0
  257. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10042 +844 -0
  258. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10043 +848 -0
  259. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10044 +853 -0
  260. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10045 +846 -0
  261. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10046 +854 -0
  262. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10047 +844 -0
  263. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10048 +830 -0
  264. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10049 +833 -0
  265. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10050 +829 -0
  266. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10051 +853 -0
  267. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10052 +848 -0
  268. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10053 +841 -0
  269. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10054 +836 -0
  270. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10055 +824 -0
  271. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10056 +822 -0
  272. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10057 +830 -0
  273. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10058 +820 -0
  274. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10059 +831 -0
  275. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10060 +836 -0
  276. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10061 +830 -0
  277. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10062 +820 -0
  278. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10063 +850 -0
  279. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10064 +836 -0
  280. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10065 +806 -0
  281. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10066 +807 -0
  282. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10067 +823 -0
  283. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10068 +819 -0
  284. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10069 +830 -0
  285. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10070 +832 -0
  286. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10071 +831 -0
  287. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10072 +803 -0
  288. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10073 +826 -0
  289. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10074 +824 -0
  290. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10075 +819 -0
  291. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10076 +828 -0
  292. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10077 +843 -0
  293. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10078 +831 -0
  294. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10079 +833 -0
  295. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10080 +841 -0
  296. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10081 +833 -0
  297. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10082 +842 -0
  298. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10083 +837 -0
  299. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10084 +833 -0
  300. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10085 +832 -0
  301. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10086 +867 -0
  302. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10087 +840 -0
  303. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10088 +822 -0
  304. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10089 +822 -0
  305. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10090 +817 -0
  306. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10091 +821 -0
  307. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10092 +827 -0
  308. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10093 +826 -0
  309. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10094 +811 -0
  310. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10095 +815 -0
  311. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10096 +811 -0
  312. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10097 +838 -0
  313. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10098 +823 -0
  314. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10099 +826 -0
  315. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10100 +828 -0
  316. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10101 +828 -0
  317. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10102 +832 -0
  318. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10103 +839 -0
  319. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10104 +831 -0
  320. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10105 +814 -0
  321. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10106 +806 -0
  322. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10107 +818 -0
  323. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10108 +812 -0
  324. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10109 +812 -0
  325. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10110 +821 -0
  326. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10111 +830 -0
  327. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10112 +795 -0
  328. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10113 +829 -0
  329. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10114 +813 -0
  330. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10115 +828 -0
  331. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10116 +818 -0
  332. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10117 +814 -0
  333. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10118 +838 -0
  334. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10119 +829 -0
  335. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10120 +832 -0
  336. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10121 +818 -0
  337. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10122 +809 -0
  338. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10123 +799 -0
  339. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10124 +808 -0
  340. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10125 +812 -0
  341. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10126 +805 -0
  342. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10127 +806 -0
  343. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10128 +812 -0
  344. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10129 +814 -0
  345. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10130 +829 -0
  346. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10131 +814 -0
  347. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10132 +815 -0
  348. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10133 +829 -0
  349. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10134 +837 -0
  350. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10135 +826 -0
  351. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10136 +830 -0
  352. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10137 +799 -0
  353. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10138 +815 -0
  354. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10139 +796 -0
  355. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10140 +813 -0
  356. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10141 +823 -0
  357. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10142 +848 -0
  358. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10143 +815 -0
  359. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10144 +821 -0
  360. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10145 +826 -0
  361. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10146 +841 -0
  362. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10147 +832 -0
  363. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10148 +828 -0
  364. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10149 +832 -0
  365. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10150 +840 -0
  366. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10151 +842 -0
  367. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10152 +854 -0
  368. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10153 +827 -0
  369. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10154 +841 -0
  370. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10155 +839 -0
  371. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10156 +842 -0
  372. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10157 +819 -0
  373. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10158 +812 -0
  374. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10159 +822 -0
  375. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10160 +813 -0
  376. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10161 +820 -0
  377. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10162 +838 -0
  378. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10163 +841 -0
  379. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10164 +830 -0
  380. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10165 +814 -0
  381. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10166 +799 -0
  382. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10167 +826 -0
  383. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10168 +841 -0
  384. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10169 +792 -0
  385. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10170 +812 -0
  386. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10171 +820 -0
  387. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10172 +812 -0
  388. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10173 +808 -0
  389. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10174 +793 -0
  390. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10175 +825 -0
  391. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10176 +824 -0
  392. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10177 +799 -0
  393. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10178 +801 -0
  394. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10179 +812 -0
  395. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10180 +806 -0
  396. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10181 +793 -0
  397. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10182 +790 -0
  398. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10183 +791 -0
  399. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10184 +786 -0
  400. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10185 +781 -0
  401. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10186 +793 -0
  402. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10187 +788 -0
  403. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10188 +802 -0
  404. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10189 +806 -0
  405. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10190 +801 -0
  406. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10191 +802 -0
  407. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10192 +776 -0
  408. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10193 +797 -0
  409. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10194 +805 -0
  410. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10195 +787 -0
  411. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10196 +796 -0
  412. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10197 +797 -0
  413. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10198 +796 -0
  414. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10199 +791 -0
  415. flowtracks-1.5.2.dev1/data/tracers/ptv_is.10200 +798 -0
  416. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/0/0 +0 -0
  417. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/0/1 +0 -0
  418. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/1/0 +0 -0
  419. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/1/1 +0 -0
  420. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/2/0 +0 -0
  421. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/2/1 +0 -0
  422. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/3/0 +0 -0
  423. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/accel/c/3/1 +0 -0
  424. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/0/0 +0 -0
  425. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/0/1 +0 -0
  426. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/1/0 +0 -0
  427. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/1/1 +0 -0
  428. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/2/0 +0 -0
  429. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/2/1 +0 -0
  430. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/3/0 +0 -0
  431. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/pos/c/3/1 +0 -0
  432. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/time/c/0 +0 -0
  433. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/time/c/1 +0 -0
  434. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/time/c/2 +0 -0
  435. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/time/c/3 +0 -0
  436. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/trajid/c/0 +0 -0
  437. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/trajid/c/1 +0 -0
  438. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/trajid/c/2 +0 -0
  439. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/trajid/c/3 +0 -0
  440. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/0/0 +0 -0
  441. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/0/1 +0 -0
  442. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/1/0 +0 -0
  443. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/1/1 +0 -0
  444. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/2/0 +0 -0
  445. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/2/1 +0 -0
  446. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/3/0 +0 -0
  447. flowtracks-1.5.2.dev1/data/tracers.zarr/trajectories/vel/c/3/1 +0 -0
  448. flowtracks-1.5.2.dev1/doc/_static/hdf5_scene_analysis.html +4375 -0
  449. flowtracks-1.5.2.dev1/doc/_static/repeated_interpolation.html +1932 -0
  450. flowtracks-1.5.2.dev1/doc/an_scene.rst +6 -0
  451. flowtracks-1.5.2.dev1/doc/analysis.rst +6 -0
  452. flowtracks-1.5.2.dev1/doc/conf.py +279 -0
  453. flowtracks-1.5.2.dev1/doc/datastruct.rst +13 -0
  454. flowtracks-1.5.2.dev1/doc/graphics.rst +6 -0
  455. flowtracks-1.5.2.dev1/doc/index.rst +296 -0
  456. flowtracks-1.5.2.dev1/doc/interpolation.rst +7 -0
  457. flowtracks-1.5.2.dev1/doc/io.rst +7 -0
  458. flowtracks-1.5.2.dev1/doc/pairs.rst +6 -0
  459. flowtracks-1.5.2.dev1/doc/particle.rst +6 -0
  460. flowtracks-1.5.2.dev1/doc/repair.rst +55 -0
  461. flowtracks-1.5.2.dev1/doc/scene.rst +7 -0
  462. flowtracks-1.5.2.dev1/doc/sequence.rst +8 -0
  463. flowtracks-1.5.2.dev1/doc/smoothing.rst +6 -0
  464. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/__init__.py +5 -1
  465. flowtracks-1.5.2.dev1/flowtracks/_version.py +24 -0
  466. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks.egg-info/PKG-INFO +1 -1
  467. flowtracks-1.5.2.dev1/flowtracks.egg-info/SOURCES.txt +564 -0
  468. flowtracks-1.5.2.dev1/flowtracks.egg-info/scm_file_list.json +560 -0
  469. flowtracks-1.5.2.dev1/flowtracks.egg-info/scm_version.json +8 -0
  470. flowtracks-1.5.2.dev1/future_plan.md +79 -0
  471. flowtracks-1.5.2.dev1/peek_zarr.py +54 -0
  472. flowtracks-1.5.2.dev1/plotting_trajectories_using_postptv.ipynb +151 -0
  473. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/pyproject.toml +9 -3
  474. flowtracks-1.5.2.dev1/requriments.txt +14 -0
  475. flowtracks-1.5.2.dev1/scripts/convert_tracers_to_zarr.py +30 -0
  476. flowtracks-1.5.2.dev1/scripts/run_postptv_analysis.py +131 -0
  477. flowtracks-1.5.2.dev1/scripts/view_trajectories_3d.py +104 -0
  478. flowtracks-1.5.2.dev1/tests/conftest.py +30 -0
  479. flowtracks-1.5.2.dev1/tests/helpers.py +98 -0
  480. flowtracks-1.5.2.dev1/tests/testing_fodder/interpolant.cfg +5 -0
  481. flowtracks-1.5.2.dev1/tests/testing_fodder/ptvis/ptv_is.10001 +5 -0
  482. flowtracks-1.5.2.dev1/tests/testing_fodder/ptvis/ptv_is.10002 +5 -0
  483. flowtracks-1.5.2.dev1/tests/testing_fodder/ptvis/ptv_is.10003 +5 -0
  484. flowtracks-1.5.2.dev1/tests/testing_fodder/ptvis/ptv_is.10004 +4 -0
  485. flowtracks-1.5.2.dev1/tests/testing_fodder/sequence.cfg +11 -0
  486. flowtracks-1.5.2.dev1/tests/testing_fodder/three_trajects_simple.h5 +0 -0
  487. flowtracks-1.5.1/flowtracks.egg-info/SOURCES.txt +0 -83
  488. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/LICENSE.txt +0 -0
  489. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/README.md +0 -0
  490. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/batch_Lagrangian_to_Eulerian.py +0 -0
  491. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/hdf5_scene_analysis.ipynb +0 -0
  492. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/linking_trajectories.ipynb +0 -0
  493. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_dual_rig_trajectories.py +0 -0
  494. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_flowtracks.py +0 -0
  495. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_hdf5_vs_zarr_scene_analysis.py +0 -0
  496. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_linking_trajectories_zarr.py +0 -0
  497. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_phase_averaging_demo.py +0 -0
  498. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_phase_metrics.py +0 -0
  499. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_vtk_writers_preview.py +0 -0
  500. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/marimo_zarr_dashboard.py +0 -0
  501. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/repeated_interpolation.ipynb +0 -0
  502. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/run_pipeline.py +0 -0
  503. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/visualize_marimo.py +0 -0
  504. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/examples/visualize_results.py +0 -0
  505. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/an_scene.py +0 -0
  506. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/analysis.py +0 -0
  507. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/combine.py +0 -0
  508. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/eulerian.py +0 -0
  509. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/flux.py +0 -0
  510. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/format_docstrings.py +0 -0
  511. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/future_idea_xarray_dask_zarr.py +0 -0
  512. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/graphics.py +0 -0
  513. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/interpolation.py +0 -0
  514. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/io.py +0 -0
  515. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/nhist.py +0 -0
  516. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/pairs.py +0 -0
  517. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/particle.py +0 -0
  518. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/phase_average.py +0 -0
  519. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/pipeline.py +0 -0
  520. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/provenance.py +0 -0
  521. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/repair.py +0 -0
  522. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/scene.py +0 -0
  523. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/sequence.py +0 -0
  524. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/smoothing.py +0 -0
  525. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/stitching.py +0 -0
  526. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/trajectory.py +0 -0
  527. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/vortex.py +0 -0
  528. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/wall_shear.py +0 -0
  529. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/writers.py +0 -0
  530. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks/zarr_scene.py +0 -0
  531. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks.egg-info/dependency_links.txt +0 -0
  532. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks.egg-info/requires.txt +0 -0
  533. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/flowtracks.egg-info/top_level.txt +0 -0
  534. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/scripts/analyse_fhdf.py +0 -0
  535. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/setup.cfg +0 -0
  536. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/setup.py +0 -0
  537. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_analysis.py +0 -0
  538. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_binning_equivalence.py +0 -0
  539. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_derived_fields.py +0 -0
  540. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_eulerian_grid.py +0 -0
  541. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_eulerian_upgrades.py +0 -0
  542. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_flux.py +0 -0
  543. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_graphics_3d.py +0 -0
  544. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_idw_call.py +0 -0
  545. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_interp.py +0 -0
  546. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_io.py +0 -0
  547. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_nhist.py +0 -0
  548. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_phase_align_synthetic_sets.py +0 -0
  549. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_phase_average_xr.py +0 -0
  550. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_phase_shift_extraction_and_vtr_export.py +0 -0
  551. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_post_analysis_edge_cases.py +0 -0
  552. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_post_analysis_xr.py +0 -0
  553. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_provenance.py +0 -0
  554. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_repair.py +0 -0
  555. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_scene.py +0 -0
  556. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_sequence.py +0 -0
  557. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_smoothing.py +0 -0
  558. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_speedup_equivalence.py +0 -0
  559. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_stitching.py +0 -0
  560. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_streamlined_zarr_paraview.py +0 -0
  561. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_turbulent_statistics.py +0 -0
  562. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_vortex_and_wall_shear.py +0 -0
  563. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_writers.py +0 -0
  564. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_zarr_io.py +0 -0
  565. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_zarr_pipeline_end_to_end.py +0 -0
  566. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_zarr_scene.py +0 -0
  567. {flowtracks-1.5.1 → flowtracks-1.5.2.dev1}/tests/test_zarr_trajectories.py +0 -0
@@ -0,0 +1,41 @@
1
+ name: Python Package
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ tags:
7
+ - 'v*'
8
+ pull_request:
9
+ branches: [ master ]
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ python-version: ["3.11", "3.12", "3.13"]
19
+
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v4
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+ - name: Install dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ python -m pip install pytest numpy scipy tables vtk pyvista
30
+ python -m pip install -e .
31
+ - name: Test with pytest
32
+ run: |
33
+ pytest
34
+ - name: Lint (ruff)
35
+ run: |
36
+ python -m pip install ruff
37
+ ruff check .
38
+
39
+ # NOTE: this workflow never publishes. The single deploy path is
40
+ # python-publish.yml (release-event). Keeping publishing here as well
41
+ # would double-publish every release (and fail on file-name reuse).
@@ -0,0 +1,99 @@
1
+ # Publishes flowtracks to PyPI (trusted publishing, environment "pypi"):
2
+ #
3
+ # - every push to master -> a DEVELOPMENT release, X.Y.(Z+1).devN, N = commits
4
+ # since the last vX.Y.Z tag (setuptools-scm). pip and uv skip development
5
+ # releases unless asked for one (`pip install --pre`, or a requirement such
6
+ # as `flowtracks>=1.5.2.dev3`), so stable users are unaffected while
7
+ # downstream projects can pin the newest code;
8
+ # - a published GitHub release (tag vX.Y.Z) -> the stable X.Y.Z.
9
+ #
10
+ # Tests and ruff gate both. This is the only workflow that publishes.
11
+
12
+ name: Upload Python Package
13
+
14
+ on:
15
+ push:
16
+ branches: [master]
17
+ paths-ignore: ["**.md", "doc/**"]
18
+ release:
19
+ types: [published]
20
+ workflow_dispatch:
21
+
22
+ permissions:
23
+ contents: read
24
+
25
+ jobs:
26
+ test:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - uses: actions/setup-python@v5
31
+ with:
32
+ python-version: "3.12"
33
+ - name: Test and lint
34
+ run: |
35
+ python -m pip install --upgrade pip
36
+ python -m pip install pytest ruff tables vtk pyvista scikit-image
37
+ python -m pip install -e .
38
+ pytest -q
39
+ ruff check .
40
+
41
+ release-build:
42
+ runs-on: ubuntu-latest
43
+ needs: test
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+ with:
47
+ fetch-depth: 0 # setuptools-scm derives the version from tags
48
+
49
+ - uses: actions/setup-python@v5
50
+ with:
51
+ python-version: "3.x"
52
+
53
+ - name: Build release distributions
54
+ run: |
55
+ python -m pip install build
56
+ python -m build
57
+
58
+ - name: Check the version
59
+ run: |
60
+ VERSION=$(ls dist/*.whl | sed -E 's/.*flowtracks-([^-]+)-.*/\1/')
61
+ echo "Built version: $VERSION"
62
+ if [ "${{ github.event_name }}" = "release" ]; then
63
+ # a release must build exactly its tag's version (v1.2.2 -> 1.2.2)
64
+ if [ "$VERSION" != "${GITHUB_REF#refs/tags/v}" ]; then
65
+ echo "Error: tag ${GITHUB_REF#refs/tags/} builds $VERSION"; exit 1
66
+ fi
67
+ else
68
+ case "$VERSION" in *.dev*) ;; *) echo "Error: $VERSION is not a dev version"; exit 1 ;; esac
69
+ fi
70
+
71
+ - name: Upload distributions
72
+ uses: actions/upload-artifact@v4
73
+ with:
74
+ name: release-dists
75
+ path: dist/
76
+
77
+ pypi-publish:
78
+ runs-on: ubuntu-latest
79
+ needs:
80
+ - release-build
81
+ permissions:
82
+ # IMPORTANT: this permission is mandatory for trusted publishing
83
+ id-token: write
84
+ environment:
85
+ name: pypi
86
+ url: https://pypi.org/p/flowtracks
87
+
88
+ steps:
89
+ - name: Retrieve release distributions
90
+ uses: actions/download-artifact@v4
91
+ with:
92
+ name: release-dists
93
+ path: dist/
94
+
95
+ - name: Publish release distributions to PyPI
96
+ uses: pypa/gh-action-pypi-publish@release/v1
97
+ with:
98
+ packages-dir: dist/
99
+ skip-existing: true # a re-run of the same commit is not an error
@@ -0,0 +1,14 @@
1
+ *.pyc
2
+ .spyder*
3
+ # Ad-hoc local scripts and the figures they dump (never library output).
4
+ scratch*
5
+ build/*
6
+ MANIFEST
7
+ dist/*
8
+ flowtracks.egg-info/*
9
+ examples/.ipynb_checkpoints/*
10
+ doc/build/*
11
+ *.json
12
+ .pypi_token
13
+ uv.lock
14
+ flowtracks/_version.py
@@ -0,0 +1,123 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## What this is
6
+
7
+ `postptv` publishes as the **`flowtracks`** package: post-processing of 3D
8
+ Particle Tracking Velocimetry (3D-PTV) trajectory databases — reading
9
+ per-frame particle data, building trajectories, interpolating Lagrangian data
10
+ onto Eulerian grids, phase/ensemble averaging for periodic flows, smoothing,
11
+ stitching, and VTK export. It is one stage of a larger multi-repo pipeline;
12
+ see `~/projects/CLAUDE.md` for how this repo relates to `openptv2`,
13
+ `openptv-cloud`, `flowtracks_examples`, and `matlab_to_python_3dptv`.
14
+
15
+ ## Commands
16
+
17
+ Uses **uv**.
18
+
19
+ ```bash
20
+ uv sync --group dev # installs pytest, pytest-benchmark
21
+ uv run pytest # full suite (testpaths = tests/)
22
+ uv run pytest tests/test_scene.py::test_name -v # single test
23
+ uv run pytest tests/test_speedup_equivalence.py -v # perf-vectorization equivalence tests
24
+ uv run pytest --benchmark-only # pytest-benchmark suite (see .benchmarks/)
25
+ ```
26
+
27
+ No linter is configured in `pyproject.toml`; there is no build step (pure
28
+ Python, no Cython here — unlike `openptv2`).
29
+
30
+ ## Architecture
31
+
32
+ ### Two parallel data backends, one duck-typed interface
33
+
34
+ The library has two generations of "give me particle data" reader, and newer
35
+ code (`eulerian.py`, `phase_average.py`) is written to work against either:
36
+
37
+ - **`scene.py` (`Scene`)** — the original backend. Wraps a PyTables HDF5 file
38
+ with a `/particles` table plus a `/bounds` (or similar) trajectory-index
39
+ table. Frame/trajectory queries are built as PyTables `read_where()`
40
+ query strings via `gen_query_string()`.
41
+ - **`zarr_scene.py` (`ZarrScene`)** — a Zarr-backed counterpart with the same
42
+ public methods (duck-typed, not a subclass — the backing stores are too
43
+ different to share a base class). Reads a `trajectories/` group with
44
+ `pos`/`vel`/`time`/`trajid`(/`accel`) arrays. This layout is shared with
45
+ `openptv2`'s `storage.seal()` run-store output, so `ZarrScene` transparently
46
+ reads either a flowtracks-written Zarr export (`io.save_zarr_trajectories`)
47
+ or an openptv2 RunStore — no conversion step. `collect()`'s `where`
48
+ filtering is reimplemented in plain numpy instead of a query-string DSL,
49
+ since there's no query engine to target.
50
+
51
+ When touching either backend, check whether the change needs to be mirrored
52
+ in the other — callers like `eulerian.py`'s `scene.collect(...)` fast path
53
+ are written to accept both.
54
+
55
+ ### Trajectory data model
56
+
57
+ `trajectory.py` defines `ParticleSet` (the base class: an array of `pos`,
58
+ `velocity`, plus arbitrary per-timepoint keyword properties, each auto-getting
59
+ a getter/setter pair via `create_property`), and `Trajectory` /
60
+ `ParticleSnapshot` on top of it. `Frame` is a plain data-holder with
61
+ `.particles` / `.tracers` attributes.
62
+
63
+ ### I/O module (`io.py`)
64
+
65
+ Central entry points: `trajectories()` / `iter_trajectories()` for reading,
66
+ `save_trajectories()` (legacy NPZ-directory format) and
67
+ `save_particles_table()` (HDF5, the recommended format) for writing. Format is
68
+ inferred from the file name via `infer_format()`. Zarr save/read paths
69
+ (`save_zarr_trajectories`, `read_zarr_trajectories`) live alongside these.
70
+
71
+ ### xarray/YAML-recipe modules (newer, parallel implementation track)
72
+
73
+ `phase_average.py` and `eulerian.py` are **xarray re-expressions** of older
74
+ imperative scripts (`phase_average_fluctuations.py`,
75
+ `batch_Lagrangian_to_Eulerian.py`, `turbulent_statistics.py`,
76
+ `sample_vtkcode.py` — some of these live in `examples/`, not in the package).
77
+ They operate as pure `Dataset -> Dataset` stages driven by a YAML recipe, and
78
+ are meant to consolidate the domain math (often a one-liner) while making the
79
+ data contract (dims, coords, attrs) explicit and self-describing. When adding
80
+ post-processing logic, prefer extending these over the older imperative
81
+ scripts they replace.
82
+
83
+ ### `pipeline.py`
84
+
85
+ Thin per-stage wrapper functions (`ptv_is_to_lagrangian`,
86
+ `lagrangian_to_eulerian`, `phase_average_all_sets`, ...) — each one is
87
+ independently runnable and is the unit the cloud orchestrator (in
88
+ `openptv-cloud`) distributes across runs. Stages import their real logic from
89
+ the xr modules or `examples/` scripts; nothing is implemented twice here.
90
+
91
+ ### Other modules
92
+
93
+ - `stitching.py` — reconnects broken trajectory segments across short frame
94
+ gaps (linear-sum-assignment candidate matching).
95
+ - `smoothing.py`, `interpolation.py` — trajectory smoothing and RBF/IDW
96
+ interpolation onto grids.
97
+ - `analysis.py`, `combine.py`, `pairs.py` — trajectory-level statistics and
98
+ multi-run combination.
99
+ - `writers.py`, `graphics.py`, `nhist.py` — visualization/export helpers
100
+ (ParaView export goes through `writers.write_eulerian_series` /
101
+ `write_trajectories_vtp`; the legacy `vtk_export.py` module is removed).
102
+ - `an_scene.py` — an alternate/legacy scene analysis path; check before
103
+ extending whether logic belongs there or in `scene.py`/`zarr_scene.py`.
104
+
105
+ ### Performance work in flight
106
+
107
+ Several modules carry "vectorize X, verify equivalence" pairs: a vectorized
108
+ implementation plus a `tests/test_*_equivalence.py` test asserting it matches
109
+ the original loop-based output bit-for-bit (or within tolerance) on the same
110
+ inputs. `SPEEDUP_PLAN.md` and `future_plan.md` track the broader roadmap
111
+ (Zarr/xarray/Dask migration, turbulence statistics, RTS Kalman smoothing,
112
+ CLI, GPU hooks) — check these before assuming a described feature already
113
+ exists; several are aspirational, not built.
114
+
115
+ ## Notes
116
+
117
+ - Python ≥3.11. Some docstrings/comments still carry Python-2-era artifacts
118
+ (`from builtins import object`, `# from past.builtins import range`) —
119
+ harmless leftovers, not evidence the code needs to support Python 2.
120
+ - `examples/` contains runnable scripts and marimo/Jupyter notebooks that
121
+ exercise the pipeline end-to-end (`marimo_*`, `batch_Lagrangian_to_Eulerian.py`,
122
+ `run_pipeline.py`) — useful as real usage references when a docstring is
123
+ unclear.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowtracks
3
- Version: 1.5.1
3
+ Version: 1.5.2.dev1
4
4
  Summary: Library for handling 3D PTV trajectory databases and Lagrangian/Eulerian turbulence post-processing.
5
5
  Author-email: Yosef Meller <yosefm@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -0,0 +1,39 @@
1
+ # Release Process
2
+
3
+ Versions come from git tags ([setuptools-scm](https://setuptools-scm.readthedocs.io));
4
+ nothing in the source tree holds a version number.
5
+
6
+ ## Development releases (automatic)
7
+
8
+ Every push to `master` that passes the tests is published to PyPI as a
9
+ development release: `X.Y.(Z+1).devN`, where `vX.Y.Z` is the last tag and `N`
10
+ the number of commits since it (e.g. `1.5.2.dev3`).
11
+
12
+ `pip install flowtracks` and `uv add flowtracks` ignore development releases,
13
+ so users of the stable version never get them by accident. To use one:
14
+
15
+ ```bash
16
+ pip install --pre flowtracks # newest, including dev releases
17
+ pip install "flowtracks>=1.5.2.dev3" # at least this commit
18
+ ```
19
+
20
+ (uv accepts a dev release whenever the requirement itself names one, as in
21
+ the second line.)
22
+
23
+ ## Stable releases
24
+
25
+ We follow [Semantic Versioning](https://semver.org/): MAJOR for incompatible
26
+ API changes, MINOR for new backward-compatible functionality, PATCH for
27
+ backward-compatible bug fixes.
28
+
29
+ 1. Make sure `master` is pushed and its CI is green.
30
+ 2. Create the release on GitHub (this creates the tag):
31
+ ```bash
32
+ gh release create vX.Y.Z --title vX.Y.Z --notes "..."
33
+ ```
34
+ 3. `.github/workflows/python-publish.yml` runs the tests, builds `X.Y.Z` from
35
+ the tag (and fails if the tag and the built version differ) and publishes
36
+ it to PyPI via trusted publishing (GitHub environment `pypi`).
37
+
38
+ The installed version is `flowtracks.__version__` (written to
39
+ `flowtracks/_version.py` at build/install time; not in git).