Skip to content

Commit 3a8ffba

Browse files
authored
Merge pull request #378 from w-k-jones/3d_area_calculation
Implement area calculation for footprint of 3D objects
2 parents c00f118 + a5f126e commit 3a8ffba

24 files changed

+2575
-1701
lines changed

.github/workflows/check_formatting.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ jobs:
1919
shell: bash -l {0}
2020
run:
2121
mamba install --quiet --yes --file requirements.txt black &&
22-
black tobac --check --diff
22+
black --version &&
23+
black tobac --check --diff

doc/tobac.rst

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,26 @@ Submodules
77
tobac.analysis module
88
---------------------
99

10-
.. automodule:: tobac.analysis
10+
tobac.analysis.cell_analysis module
11+
---------------------
12+
13+
.. automodule:: tobac.analysis.cell_analysis
14+
:members:
15+
:undoc-members:
16+
:show-inheritance:
17+
18+
tobac.analysis.feature_analysis module
19+
---------------------
20+
21+
.. automodule:: tobac.analysis.feature_analysis
22+
:members:
23+
:undoc-members:
24+
:show-inheritance:
25+
26+
tobac.analysis.spatial module
27+
---------------------
28+
29+
.. automodule:: tobac.analysis.spatial
1130
:members:
1231
:undoc-members:
1332
:show-inheritance:
@@ -71,18 +90,26 @@ tobac.tracking module
7190
tobac.utils modules
7291
------------------
7392

74-
tobac.utils.general module
93+
tobac.utils.bulk_statistics module
7594
------------------
7695

77-
.. automodule:: tobac.utils.general
96+
.. automodule:: tobac.utils.bulk_statistics
7897
:members:
7998
:undoc-members:
8099
:show-inheritance:
81100

82-
tobac.utils.bulk_statistics module
101+
tobac.utils.decorators module
83102
------------------
84103

85-
.. automodule:: tobac.utils.bulk_statistics
104+
.. automodule:: tobac.utils.decorators
105+
:members:
106+
:undoc-members:
107+
:show-inheritance:
108+
109+
tobac.utils.general module
110+
------------------
111+
112+
.. automodule:: tobac.utils.general
86113
:members:
87114
:undoc-members:
88115
:show-inheritance:
@@ -95,6 +122,14 @@ tobac.utils.mask module
95122
:undoc-members:
96123
:show-inheritance:
97124

125+
tobac.utils.periodic_boundaries module
126+
------------------
127+
128+
.. automodule:: tobac.utils.periodic_boundaries
129+
:members:
130+
:undoc-members:
131+
:show-inheritance:
132+
98133

99134
tobac.wrapper module
100135
--------------------

examples/Basics/Idealized-Case-1_Tracking-of-a-Test-Blob-in-2D.ipynb

Lines changed: 96 additions & 393 deletions
Large diffs are not rendered by default.

setup.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from setuptools import setup
2-
31
"""
42
This code is from the python documentation and is
53
designed to read in the version number.
64
See: https://packaging.python.org/en/latest/guides/single-sourcing-package-version/
75
"""
6+
7+
from setuptools import setup
88
from pathlib import Path
99

1010

@@ -37,6 +37,14 @@ def get_requirements(requirements_filename):
3737
return requirements
3838

3939

40+
def get_packages(package_name):
41+
package = Path(package_name)
42+
packages = [
43+
str(path.parent).replace("/", ".") for path in package.rglob("__init__.py")
44+
]
45+
return packages
46+
47+
4048
PACKAGE_NAME = "tobac"
4149

4250
# See classifiers list at: https://pypi.org/classifiers/
@@ -86,7 +94,7 @@ def get_requirements(requirements_filename):
8694
"peter.marinescu@colostate.edu",
8795
],
8896
license="BSD-3-Clause License",
89-
packages=[PACKAGE_NAME, PACKAGE_NAME + ".utils", PACKAGE_NAME + ".utils.internal"],
97+
packages=get_packages(PACKAGE_NAME),
9098
install_requires=get_requirements("requirements.txt"),
9199
test_requires=["pytest"],
92100
zip_safe=False,

tobac/__init__.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,47 +29,53 @@
2929
plot_mask_cell_track_follow,
3030
plot_mask_cell_track_static,
3131
plot_mask_cell_track_static_timeseries,
32-
)
33-
from .plotting import (
3432
plot_lifetime_histogram,
3533
plot_lifetime_histogram_bar,
3634
plot_histogram_cellwise,
3735
plot_histogram_featurewise,
38-
)
39-
from .plotting import plot_mask_cell_track_3Dstatic, plot_mask_cell_track_2D3Dstatic
40-
from .plotting import (
36+
plot_mask_cell_track_3Dstatic,
37+
plot_mask_cell_track_2D3Dstatic,
4138
plot_mask_cell_individual_static,
4239
plot_mask_cell_individual_3Dstatic,
40+
animation_mask_field,
41+
make_map,
42+
map_tracks,
4343
)
44-
from .plotting import animation_mask_field
45-
from .plotting import make_map, map_tracks
46-
from .analysis import (
44+
from tobac.analysis.cell_analysis import (
4745
cell_statistics,
4846
cog_cell,
4947
lifetime_histogram,
50-
histogram_featurewise,
5148
histogram_cellwise,
52-
)
53-
from .analysis import calculate_velocity, calculate_distance, calculate_area
54-
from .analysis import calculate_nearestneighbordistance
55-
from .analysis import (
5649
velocity_histogram,
50+
calculate_overlap,
51+
)
52+
from tobac.analysis.feature_analysis import (
53+
histogram_featurewise,
54+
calculate_nearestneighbordistance,
5755
nearestneighbordistance_histogram,
5856
area_histogram,
5957
)
60-
from .analysis import calculate_overlap
61-
from .utils import (
58+
from tobac.analysis.spatial import (
59+
calculate_velocity,
60+
calculate_distance,
61+
calculate_area,
62+
)
63+
from .utils.mask import (
6264
mask_cell,
6365
mask_cell_surface,
6466
mask_cube_cell,
6567
mask_cube_untracked,
6668
mask_cube,
6769
column_mask_from2D,
70+
mask_features,
71+
mask_features_surface,
72+
mask_cube_features,
73+
)
74+
from .utils.general import (
6875
get_bounding_box,
76+
add_coordinates,
77+
get_spacings,
6978
)
70-
from .utils import mask_features, mask_features_surface, mask_cube_features
71-
72-
from .utils import add_coordinates, get_spacings
7379
from .feature_detection import feature_detection_multithreshold
7480
from .tracking import linking_trackpy
7581
from .wrapper import maketrack

0 commit comments

Comments
 (0)