Skip to content

Commit

Permalink
refactor(preprocessing): rename ImageDataset as `ExperimentVideoDat…
Browse files Browse the repository at this point in the history
…aset`
  • Loading branch information
ruancomelli committed Oct 1, 2022
1 parent f471356 commit 17098ec
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 29 deletions.
6 changes: 3 additions & 3 deletions boiling_learning/preprocessing/cases.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Optional

from boiling_learning.preprocessing.experiment_video import ExperimentVideo
from boiling_learning.preprocessing.experiment_video_dataset import ImageDataset
from boiling_learning.preprocessing.experiment_video_dataset import ExperimentVideoDataset
from boiling_learning.utils.pathutils import PathLike, resolve


class Case(ImageDataset):
class Case(ExperimentVideoDataset):
def __init__(
self,
path: PathLike,
Expand Down Expand Up @@ -47,7 +47,7 @@ def set_video_data_from_file(
self,
data_path: Optional[PathLike] = None,
remove_absent: bool = False,
keys: ImageDataset.VideoDataKeys = ImageDataset.VideoDataKeys(),
keys: ExperimentVideoDataset.VideoDataKeys = ExperimentVideoDataset.VideoDataKeys(),
) -> None:
super().set_video_data_from_file(
data_path or self.video_data_path,
Expand Down
16 changes: 8 additions & 8 deletions boiling_learning/preprocessing/experiment_video_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from boiling_learning.utils.pathutils import PathLike, resolve


class ImageDataset(KeyedSet[str, ExperimentVideo]):
class ExperimentVideoDataset(KeyedSet[str, ExperimentVideo]):
@dataclass(frozen=True)
class VideoDataKeys(ExperimentVideo.VideoDataKeys):
name: str = 'name'
Expand All @@ -36,11 +36,11 @@ def name(self) -> str:
@classmethod
def make_union(
cls,
*others: ImageDataset,
*others: ExperimentVideoDataset,
namer: Callable[[List[str]], str] = '+'.join,
) -> ImageDataset:
) -> ExperimentVideoDataset:
name = namer([other.name for other in others])
image_dataset = ImageDataset(name)
image_dataset = ExperimentVideoDataset(name)
image_dataset.update(*others)
return image_dataset

Expand Down Expand Up @@ -92,13 +92,13 @@ def set_video_data_from_file(
self.set_video_data(video_data, remove_absent=remove_absent)


@json.encode.instance(ImageDataset)
def _encode_image_dataset(obj: ImageDataset) -> List[json.JSONDataType]:
@json.encode.instance(ExperimentVideoDataset)
def _encode_image_dataset(obj: ExperimentVideoDataset) -> List[json.JSONDataType]:
return json.serialize(sorted(obj, key=_get_experiment_video_name))


@describe.instance(ImageDataset)
def _describe_image_dataset(obj: ImageDataset) -> List[Path]:
@describe.instance(ExperimentVideoDataset)
def _describe_image_dataset(obj: ExperimentVideoDataset) -> List[Path]:
return describe(sorted(obj, key=_get_experiment_video_name))


Expand Down
8 changes: 4 additions & 4 deletions boiling_learning/scripts/interact_frames.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# from ipywidgets import interact, widgets
# from skimage.transform import downscale_local_mean as downscale

# from boiling_learning.preprocessing.image_datasets import ImageDataset
# from boiling_learning.preprocessing.image_datasets import ExperimentVideoDataset
# from boiling_learning.preprocessing.experiment_video import ExperimentVideo

# try:
Expand Down Expand Up @@ -34,7 +34,7 @@


# def _interact_dataset_frames(
# datasets: Tuple[ImageDataset, ...], imshow: Callable[[np.ndarray], Any]
# datasets: Tuple[ExperimentVideoDataset, ...], imshow: Callable[[np.ndarray], Any]
# ) -> None:
# datasets_options = [(dataset.name, dataset) for dataset in datasets]
# default_dataset = datasets_options[0][1]
Expand Down Expand Up @@ -74,7 +74,7 @@

# experiment_videos_widget.observe(update_max_index, 'value')

# def show_frames(dataset: ImageDataset, ev: ExperimentVideo, idx: int) -> None:
# def show_frames(dataset: ExperimentVideoDataset, ev: ExperimentVideo, idx: int) -> None:
# imshow(ev[idx])

# interact(
Expand All @@ -85,7 +85,7 @@
# )


# def main(datasets: Iterable[ImageDataset], colab_backend: bool = False) -> None:
# def main(datasets: Iterable[ExperimentVideoDataset], colab_backend: bool = False) -> None:
# datasets = tuple(datasets)

# imshow = (
Expand Down
8 changes: 4 additions & 4 deletions boiling_learning/scripts/load_dataset_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
from loguru import logger

from boiling_learning.preprocessing.experiment_video import ExperimentVideo
from boiling_learning.preprocessing.experiment_video_dataset import ImageDataset
from boiling_learning.preprocessing.experiment_video_dataset import ExperimentVideoDataset
from boiling_learning.utils.pathutils import PathLike, resolve


def main(datapath: PathLike) -> List[ImageDataset]:
def main(datapath: PathLike) -> List[ExperimentVideoDataset]:
logger.info(f'Loading cases from {datapath}')

datapath = resolve(datapath)

datasets: List[ImageDataset] = []
datasets: List[ExperimentVideoDataset] = []
for casedir in datapath.iterdir():
logger.debug(f'Searching for subcases in {casedir}')
if not casedir.is_dir():
Expand All @@ -27,7 +27,7 @@ def main(datapath: PathLike) -> List[ImageDataset]:

subcase = subcasedir.name

dataset = ImageDataset(f'{case}:{subcase}')
dataset = ExperimentVideoDataset(f'{case}:{subcase}')
for testdir in subcasedir.iterdir():
logger.debug(f'Searching for videos in {testdir}')

Expand Down
16 changes: 10 additions & 6 deletions boiling_learning/scripts/set_condensation_datasets_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from loguru import logger

from boiling_learning.preprocessing.experiment_video import ExperimentVideo
from boiling_learning.preprocessing.experiment_video_dataset import ImageDataset
from boiling_learning.preprocessing.experiment_video_dataset import ExperimentVideoDataset
from boiling_learning.preprocessing.video import Video
from boiling_learning.scripts.utils.setting_data import check_experiment_video_dataframe_indices
from boiling_learning.utils.frozendicts import frozendict
Expand All @@ -23,7 +23,9 @@
_TIMEDELTA_PATTERN = re.compile(r'(?P<h>\d{2}):(?P<min>\d{2}):(?P<s>\d{2})')


def main(datasets: Iterable[ImageDataset], dataspecpath: PathLike) -> Tuple[ImageDataset, ...]:
def main(
datasets: Iterable[ExperimentVideoDataset], dataspecpath: PathLike
) -> Tuple[ExperimentVideoDataset, ...]:
logger.info('Setting condensation data')

datasets = tuple(datasets)
Expand Down Expand Up @@ -110,7 +112,7 @@ def _parse_timedelta(s: Optional[str]) -> Optional[timedelta]:
return timedelta(hours=int(m['h']), minutes=int(m['min']), seconds=int(m['s']))


def _make_dataframe(dataset: ImageDataset) -> None:
def _make_dataframe(dataset: ExperimentVideoDataset) -> None:
missing: List[ExperimentVideo] = []
for ev in dataset:
try:
Expand All @@ -131,8 +133,10 @@ def _make_dataframe(dataset: ImageDataset) -> None:
ev.save_df(overwrite=False)


def _group_datasets(datasets: Iterable[ImageDataset]) -> Tuple[ImageDataset, ...]:
datasets_dict: Dict[str, ImageDataset] = {}
def _group_datasets(
datasets: Iterable[ExperimentVideoDataset],
) -> Tuple[ExperimentVideoDataset, ...]:
datasets_dict: Dict[str, ExperimentVideoDataset] = {}
for dataset in datasets:
logger.debug(f'Reading condensation dataset {dataset.name}')

Expand All @@ -145,7 +149,7 @@ def _group_datasets(datasets: Iterable[ImageDataset]) -> Tuple[ImageDataset, ...
dataset_name = f'{case}:{subcase}'

if dataset_name not in datasets_dict:
datasets_dict[dataset_name] = ImageDataset(dataset_name)
datasets_dict[dataset_name] = ExperimentVideoDataset(dataset_name)

datasets_dict[dataset_name].add(ev)

Expand Down
8 changes: 4 additions & 4 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
strategy_scope,
)
from boiling_learning.preprocessing.experiment_video import ExperimentVideo
from boiling_learning.preprocessing.experiment_video_dataset import ImageDataset
from boiling_learning.preprocessing.experiment_video_dataset import ExperimentVideoDataset
from boiling_learning.preprocessing.hdf5 import get_frame_from_hdf5, video_to_hdf5
from boiling_learning.preprocessing.transformers import DictTransformer, Transformer
from boiling_learning.preprocessing.video import PimsVideo, VideoFrame
Expand Down Expand Up @@ -180,7 +180,7 @@ def items(self) -> ItemsView[str, Any]:
fps_cache_path=Path('.cache', 'fps'),
end_frame_index_cache_path=Path('.cache', 'end_frame_index'),
)
condensation_datasets_merged_all = ImageDataset.make_union(*condensation_datasets_merged)
condensation_datasets_merged_all = ExperimentVideoDataset.make_union(*condensation_datasets_merged)

boiling_preprocessors, boiling_augmentors = make_boiling_processors.main(
direct_visualization=True,
Expand Down Expand Up @@ -253,15 +253,15 @@ def sliceable_dataset_from_video_and_transformers(

@dataclass(frozen=True)
class GetImageDatasetParams:
image_dataset: ImageDataset
image_dataset: ExperimentVideoDataset
transformers: List[Transformer[VideoFrame, VideoFrame]]
splits: DatasetSplits
target: Optional[str] = None
dataset_size: Optional[Union[int, Fraction]] = None


def _get_image_dataset(
image_dataset: ImageDataset,
image_dataset: ExperimentVideoDataset,
transformers: List[Transformer[VideoFrame, VideoFrame]],
splits: DatasetSplits,
dataset_size: Optional[Union[int, Fraction]] = None,
Expand Down

0 comments on commit 17098ec

Please sign in to comment.