flowtracks 1.5.1__tar.gz → 1.5.2.dev2__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.
- flowtracks-1.5.2.dev2/.github/workflows/python-package.yml +41 -0
- flowtracks-1.5.2.dev2/.github/workflows/python-publish.yml +99 -0
- flowtracks-1.5.2.dev2/.gitignore +14 -0
- flowtracks-1.5.2.dev2/CLAUDE.md +123 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/PKG-INFO +1 -1
- flowtracks-1.5.2.dev2/RELEASE.md +39 -0
- flowtracks-1.5.2.dev2/SPEEDUP_PLAN.md +547 -0
- flowtracks-1.5.2.dev2/WRITERS_PLAN.md +203 -0
- flowtracks-1.5.2.dev2/benchmarks/BASELINE.md +64 -0
- flowtracks-1.5.2.dev2/benchmarks/bench_interp.py +64 -0
- flowtracks-1.5.2.dev2/benchmarks/bench_io.py +85 -0
- flowtracks-1.5.2.dev2/benchmarks/bench_pairs.py +34 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10001 +62 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10002 +64 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10003 +65 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10004 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10005 +64 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10006 +67 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10007 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10008 +68 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10009 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10010 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10011 +67 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10012 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10013 +67 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10014 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10015 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10016 +68 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10017 +68 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10018 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10019 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10020 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10021 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10022 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10023 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10024 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10025 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10026 +77 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10027 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10028 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10029 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10030 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10031 +79 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10032 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10033 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10034 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10035 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10036 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10037 +77 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10038 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10039 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10040 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10041 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10042 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10043 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10044 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10045 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10046 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10047 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10048 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10049 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10050 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10051 +68 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10052 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10053 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10054 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10055 +66 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10056 +69 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10057 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10058 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10059 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10060 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10061 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10062 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10063 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10064 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10065 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10066 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10067 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10068 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10069 +71 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10070 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10071 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10072 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10073 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10074 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10075 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10076 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10077 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10078 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10079 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10080 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10081 +70 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10082 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10083 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10084 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10085 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10086 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10087 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10088 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10089 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10090 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10091 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10092 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10093 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10094 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10095 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10096 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10097 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10098 +72 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10099 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10100 +73 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10101 +74 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10102 +77 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10103 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10104 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10105 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10106 +75 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10107 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10108 +76 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10109 +77 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10110 +79 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10111 +78 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10112 +81 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10113 +81 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10114 +77 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10115 +79 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10116 +80 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10117 +81 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10118 +84 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10119 +82 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10120 +82 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10121 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10122 +83 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10123 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10124 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10125 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10126 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10127 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10128 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10129 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10130 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10131 +89 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10132 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10133 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10134 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10135 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10136 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10137 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10138 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10139 +96 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10140 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10141 +96 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10142 +95 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10143 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10144 +95 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10145 +95 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10146 +96 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10147 +95 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10148 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10149 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10150 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10151 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10152 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10153 +94 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10154 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10155 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10156 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10157 +92 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10158 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10159 +91 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10160 +91 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10161 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10162 +91 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10163 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10164 +89 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10165 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10166 +89 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10167 +84 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10168 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10169 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10170 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10171 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10172 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10173 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10174 +89 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10175 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10176 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10177 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10178 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10179 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10180 +93 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10181 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10182 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10183 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10184 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10185 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10186 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10187 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10188 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10189 +89 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10190 +90 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10191 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10192 +85 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10193 +86 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10194 +88 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10195 +85 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10196 +83 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10197 +84 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10198 +85 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10199 +87 -0
- flowtracks-1.5.2.dev2/data/particles/xuap.10200 +85 -0
- flowtracks-1.5.2.dev2/data/particles.h5 +0 -0
- flowtracks-1.5.2.dev2/data/readme.txt +26 -0
- flowtracks-1.5.2.dev2/data/seq_hdf.cfg +11 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10001 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10002 +808 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10003 +842 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10004 +870 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10005 +858 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10006 +840 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10007 +861 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10008 +849 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10009 +851 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10010 +860 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10011 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10012 +857 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10013 +862 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10014 +854 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10015 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10016 +847 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10017 +856 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10018 +862 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10019 +850 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10020 +849 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10021 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10022 +861 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10023 +869 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10024 +844 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10025 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10026 +904 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10027 +784 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10028 +804 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10029 +817 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10030 +834 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10031 +831 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10032 +813 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10033 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10034 +823 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10035 +855 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10036 +848 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10037 +843 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10038 +858 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10039 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10040 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10041 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10042 +844 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10043 +848 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10044 +853 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10045 +846 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10046 +854 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10047 +844 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10048 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10049 +833 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10050 +829 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10051 +853 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10052 +848 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10053 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10054 +836 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10055 +824 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10056 +822 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10057 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10058 +820 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10059 +831 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10060 +836 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10061 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10062 +820 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10063 +850 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10064 +836 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10065 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10066 +807 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10067 +823 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10068 +819 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10069 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10070 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10071 +831 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10072 +803 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10073 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10074 +824 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10075 +819 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10076 +828 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10077 +843 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10078 +831 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10079 +833 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10080 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10081 +833 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10082 +842 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10083 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10084 +833 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10085 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10086 +867 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10087 +840 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10088 +822 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10089 +822 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10090 +817 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10091 +821 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10092 +827 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10093 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10094 +811 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10095 +815 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10096 +811 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10097 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10098 +823 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10099 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10100 +828 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10101 +828 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10102 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10103 +839 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10104 +831 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10105 +814 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10106 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10107 +818 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10108 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10109 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10110 +821 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10111 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10112 +795 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10113 +829 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10114 +813 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10115 +828 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10116 +818 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10117 +814 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10118 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10119 +829 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10120 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10121 +818 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10122 +809 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10123 +799 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10124 +808 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10125 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10126 +805 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10127 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10128 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10129 +814 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10130 +829 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10131 +814 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10132 +815 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10133 +829 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10134 +837 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10135 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10136 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10137 +799 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10138 +815 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10139 +796 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10140 +813 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10141 +823 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10142 +848 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10143 +815 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10144 +821 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10145 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10146 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10147 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10148 +828 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10149 +832 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10150 +840 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10151 +842 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10152 +854 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10153 +827 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10154 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10155 +839 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10156 +842 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10157 +819 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10158 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10159 +822 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10160 +813 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10161 +820 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10162 +838 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10163 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10164 +830 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10165 +814 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10166 +799 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10167 +826 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10168 +841 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10169 +792 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10170 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10171 +820 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10172 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10173 +808 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10174 +793 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10175 +825 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10176 +824 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10177 +799 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10178 +801 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10179 +812 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10180 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10181 +793 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10182 +790 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10183 +791 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10184 +786 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10185 +781 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10186 +793 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10187 +788 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10188 +802 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10189 +806 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10190 +801 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10191 +802 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10192 +776 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10193 +797 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10194 +805 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10195 +787 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10196 +796 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10197 +797 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10198 +796 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10199 +791 -0
- flowtracks-1.5.2.dev2/data/tracers/ptv_is.10200 +798 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/0/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/0/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/1/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/1/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/2/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/2/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/3/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/accel/c/3/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/0/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/0/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/1/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/1/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/2/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/2/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/3/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/pos/c/3/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/time/c/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/time/c/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/time/c/2 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/time/c/3 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/trajid/c/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/trajid/c/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/trajid/c/2 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/trajid/c/3 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/0/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/0/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/1/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/1/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/2/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/2/1 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/3/0 +0 -0
- flowtracks-1.5.2.dev2/data/tracers.zarr/trajectories/vel/c/3/1 +0 -0
- flowtracks-1.5.2.dev2/doc/_static/hdf5_scene_analysis.html +4375 -0
- flowtracks-1.5.2.dev2/doc/_static/repeated_interpolation.html +1932 -0
- flowtracks-1.5.2.dev2/doc/an_scene.rst +6 -0
- flowtracks-1.5.2.dev2/doc/analysis.rst +6 -0
- flowtracks-1.5.2.dev2/doc/conf.py +279 -0
- flowtracks-1.5.2.dev2/doc/datastruct.rst +13 -0
- flowtracks-1.5.2.dev2/doc/graphics.rst +6 -0
- flowtracks-1.5.2.dev2/doc/index.rst +296 -0
- flowtracks-1.5.2.dev2/doc/interpolation.rst +7 -0
- flowtracks-1.5.2.dev2/doc/io.rst +7 -0
- flowtracks-1.5.2.dev2/doc/pairs.rst +6 -0
- flowtracks-1.5.2.dev2/doc/particle.rst +6 -0
- flowtracks-1.5.2.dev2/doc/repair.rst +55 -0
- flowtracks-1.5.2.dev2/doc/scene.rst +7 -0
- flowtracks-1.5.2.dev2/doc/sequence.rst +8 -0
- flowtracks-1.5.2.dev2/doc/smoothing.rst +6 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/__init__.py +5 -1
- flowtracks-1.5.2.dev2/flowtracks/_version.py +24 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/smoothing.py +6 -1
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks.egg-info/PKG-INFO +1 -1
- flowtracks-1.5.2.dev2/flowtracks.egg-info/SOURCES.txt +564 -0
- flowtracks-1.5.2.dev2/flowtracks.egg-info/scm_file_list.json +560 -0
- flowtracks-1.5.2.dev2/flowtracks.egg-info/scm_version.json +8 -0
- flowtracks-1.5.2.dev2/future_plan.md +79 -0
- flowtracks-1.5.2.dev2/peek_zarr.py +54 -0
- flowtracks-1.5.2.dev2/plotting_trajectories_using_postptv.ipynb +151 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/pyproject.toml +9 -3
- flowtracks-1.5.2.dev2/requriments.txt +14 -0
- flowtracks-1.5.2.dev2/scripts/convert_tracers_to_zarr.py +30 -0
- flowtracks-1.5.2.dev2/scripts/run_postptv_analysis.py +131 -0
- flowtracks-1.5.2.dev2/scripts/view_trajectories_3d.py +104 -0
- flowtracks-1.5.2.dev2/tests/conftest.py +30 -0
- flowtracks-1.5.2.dev2/tests/helpers.py +98 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_smoothing.py +10 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/interpolant.cfg +5 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/ptvis/ptv_is.10001 +5 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/ptvis/ptv_is.10002 +5 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/ptvis/ptv_is.10003 +5 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/ptvis/ptv_is.10004 +4 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/sequence.cfg +11 -0
- flowtracks-1.5.2.dev2/tests/testing_fodder/three_trajects_simple.h5 +0 -0
- flowtracks-1.5.1/flowtracks.egg-info/SOURCES.txt +0 -83
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/LICENSE.txt +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/README.md +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/batch_Lagrangian_to_Eulerian.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/hdf5_scene_analysis.ipynb +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/linking_trajectories.ipynb +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_dual_rig_trajectories.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_flowtracks.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_hdf5_vs_zarr_scene_analysis.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_linking_trajectories_zarr.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_phase_averaging_demo.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_phase_metrics.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_vtk_writers_preview.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/marimo_zarr_dashboard.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/repeated_interpolation.ipynb +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/run_pipeline.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/visualize_marimo.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/examples/visualize_results.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/an_scene.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/analysis.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/combine.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/eulerian.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/flux.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/format_docstrings.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/future_idea_xarray_dask_zarr.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/graphics.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/interpolation.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/io.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/nhist.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/pairs.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/particle.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/phase_average.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/pipeline.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/provenance.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/repair.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/scene.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/sequence.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/stitching.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/trajectory.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/vortex.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/wall_shear.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/writers.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks/zarr_scene.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks.egg-info/dependency_links.txt +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks.egg-info/requires.txt +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/flowtracks.egg-info/top_level.txt +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/scripts/analyse_fhdf.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/setup.cfg +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/setup.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_analysis.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_binning_equivalence.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_derived_fields.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_eulerian_grid.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_eulerian_upgrades.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_flux.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_graphics_3d.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_idw_call.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_interp.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_io.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_nhist.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_phase_align_synthetic_sets.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_phase_average_xr.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_phase_shift_extraction_and_vtr_export.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_post_analysis_edge_cases.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_post_analysis_xr.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_provenance.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_repair.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_scene.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_sequence.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_speedup_equivalence.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_stitching.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_streamlined_zarr_paraview.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_turbulent_statistics.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_vortex_and_wall_shear.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_writers.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_zarr_io.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_zarr_pipeline_end_to_end.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/tests/test_zarr_scene.py +0 -0
- {flowtracks-1.5.1 → flowtracks-1.5.2.dev2}/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.
|
|
3
|
+
Version: 1.5.2.dev2
|
|
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).
|