boilercv

Computer vision routines suitable for nucleate pool boiling bubble analysis

https://github.com/softboiler/boilercv

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Computer vision routines suitable for nucleate pool boiling bubble analysis

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 2
  • Open Issues: 6
  • Releases: 11
Created over 3 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Security

README.md

boilercv

DOI All Contributors

Computer vision routines suitable for nucleate pool boiling bubble analysis. See the documentation for more detail, including a Binder for running code live. Click the "launch binder" badge above and you will be able to run the notebooks in docs/experiments in your browser with different parameters, and even create your own notebooks.

Example

Overlay of the external contours detected in one frame of a high-speed video. Represents output from the "fill" step of the data process.

Bubbles highlighted with different colors

Overview

The data process graph shows the data process, and allows for individual steps in the process to be defined indpendently as Python scripts, Jupyter notebooks, or even in other languages like Matlab. The process is defined in dvc.yaml as as series of "stages". Each stage has dependencies and outputs. This structure allows the data process graph to be constructed, directly from the dvc.yaml file. This separates the concerns of data management, process development, and pipeline orchestration. This project reflects the application of data science best practices to modern engineering wokflows.

Usage

If you would like to adopt this approach to processing your own data, you may clone this repository and begin swapping logic for your own, or use a similar architecture for your data processing. To run a working example with some actual data from this study, perform the following steps:

  1. Clone this repository and open it in your terminal or IDE (e.g. git clone https://github.com/softboiler/boilercv.git boilercv).
  2. Navigate to the clone directory in a terminal window (e.g. cd boilercv).
  3. Create a Python 3.10 virtual environment (e.g. py -3.11 -m venv .venv on Windows w/ Python 3.11 installed from python.org).
  4. Activate the virtual environment (e.g. .venv/scripts/activate on Windows).
  5. Run pip install --editable . to install boilercv package in an editable fashion. This step may take awhile.
  6. Delete the top-level data directory, then copy the cloud folder inside tests/data to the root directory. Rename it to data.
  7. Copy the local folder from tests/data to ~/.local where ~ is your user/home folder (e.g. C:/Users/<you>/.local on Windows). Rename it to boilercv.
  8. Run dvc repro to execute the data process up to that stage.

The data process should run the following stages: contours, fill, filled_preview, binarized_preview and gray_preview. You may inspect the actual code that runs during these stages in src/boilercv/stages, e.g. contours.py contains the logic for the contours stage. This example happens to use Python scripts, but you could define a stage in dvc.yaml that instead runs Matlab scripts, or any arbitrary action. This approach allows for the data process to be reliably reproduced over time, and for the process to be easily modified and extended in a collaborative effort.

There are other details of this process, such as the hosting of data in the data folder in a Google Cloud Bucket (alternatively it can be hosted on Google Drive), and more. This has to do with the need to store data (especially large datasets) outside of the repository, and access it in an authenticated fashion.

Project information

Contributors

Blake Naccarato
Blake Naccarato

💻
asennain
asennain

📖

Owner

  • Name: softboiler
  • Login: softboiler
  • Kind: organization
  • Location: United States of America

Softboiled software for boiling and thermal science.

Citation (CITATION.cff)

cff-version: "1.2.0"
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Naccarato"
    given-names: "Blake"
    orcid: "https://orcid.org/0000-0003-4851-4724"
  - family-names: "Kim"
    given-names: "Kwang"
    orcid: "https://orcid.org/0000-0003-2134-4964"
title: "boilercv"
doi: "10.5281/zenodo.7826527"
date-released: 2023-04-13
url: "https://github.com/softboiler/boilercv"

GitHub Events

Total
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 3
  • Push event: 43
  • Pull request event: 8
  • Create event: 4
Last Year
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 3
  • Push event: 43
  • Pull request event: 8
  • Create event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Total issue authors: 0
  • Total pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.25
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 0
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.25
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • blakeNaccarato (20)
  • renovate[bot] (1)
Pull Request Authors
  • renovate[bot] (27)
  • blakeNaccarato (12)
  • pre-commit-ci[bot] (3)
  • allcontributors[bot] (2)
Top Labels
Issue Labels
internal (12) enhancement (8) infrastructure (4) bug (4) documentation (2)
Pull Request Labels
dependencies (26) deps (1) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 23 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 10
  • Total maintainers: 1
pypi.org: boilercv

Computer vision routines suitable for nucleate pool boiling bubble analysis

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 23 Last month
Rankings
Dependent packages count: 7.1%
Average: 18.7%
Dependent repos count: 30.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/changerelease.yml actions
  • dropseed/changerelease v1.6.0 composite
pyproject.toml pypi
  • CMasher @git+https://github.com/1313e/CMasher@18d50f4deddf2410a4c51475890329d445fd7e1b
  • boilercine @git+https://github.com/blakeNaccarato/boilercine@main
  • boilercore >=0.0.0
  • colorcet >=3.0.1
  • dulwich >=0.21.5
  • dvc >=3.10.1
  • imageio [pyav]>=2.31.1
  • ipykernel >=6.25.0
  • loguru >=0.7.0
  • matplotlib >=3.7.2
  • nbconvert >=7.7.3
  • nbformat >=5.9.2
  • nbqa >=1.7.0
  • numba >=0.57.1
  • numpy >=1.24.4,<1.25
  • opencv-contrib-python >=4.8.0.74
  • pandas [hdf5,performance]>=2.0.2
  • pillow >=10.0.0
  • ploomber-engine >=0.0.30
  • pyarrow >=12.0.1
  • pydantic >=1.10.12,<2
  • pyjanitor >=0.25.0
  • pyqtgraph >=0.13.3
  • pyside6 >=6.5.2
  • pytz >=2023.3
  • ruamel.yaml >=0.17.32
  • scikit-image >=0.21.0
  • scipy >=1.11.1
  • seaborn >=0.12.2
  • sparklines >=0.4.2
  • sympy >=1.12
  • tqdm >=4.66.1
  • trackpy >=0.6.1
  • xarray [accel,io,parallel]>=2023.7.0
tests/pyproject.toml pypi
.github/workflows/release.yml actions
  • blakeNaccarato/copier-python-workflow-setup v0.2.3 composite
  • dropseed/changerelease v1.6.0 composite
requirements.txt pypi
.github/workflows/ci.yml actions
  • actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
  • actions/download-artifact c850b930e6ba138125429b7e5c93fc707a7f8427 composite
  • actions/setup-python 0a5c61591373683505ea898e09a3ea4f39ef2b9c composite
  • actions/upload-artifact 5d5d22a31266ced268874388b861e4b58bb5c2f3 composite
  • codecov/codecov-action 54bcd8715eee62d40e33596ef5e8f0f48dbbccab composite
  • dorny/paths-filter de90cc6fb38fc0963ad72b210f1f284cd68cea36 composite
  • stefanzweifel/git-auto-commit-action 8756aa072ef5b4a080af5dc8fef36c5d586e521d composite
.github/workflows/contrib.yml actions
  • actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
  • actions/setup-python 0a5c61591373683505ea898e09a3ea4f39ef2b9c composite
.github/workflows/high.yml actions
  • actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
  • actions/setup-python 0a5c61591373683505ea898e09a3ea4f39ef2b9c composite
requirements/dev.in pypi
requirements/nodeps.in pypi
requirements/uv.in pypi
  • uv ==0.1.21
docs/pyproject.toml pypi
  • geopandas ==0.14.3
  • linkify-it-py ==2.0.3
  • myst-nb ==1.0.0
  • nbformat ==5.9.2
  • shapely ==2.0.3
  • sphinx-autobuild ==2024.2.4
  • sphinx-autodoc2 ==0.5.0
  • sphinx-book-theme ==1.1.2
  • sphinx-design ==0.5.0
  • sphinx-thebe ==0.3.1
  • sphinx-tippy ==0.4.1
  • sphinx-togglebutton ==0.3.2
  • sphinxcontrib-bibtex ==2.6.2
  • sphinxcontrib-mermaid ==0.9.2
  • trackpy ==0.6.1
pipeline/pyproject.toml pypi
  • boilercine @ git+https://github.com/blakeNaccarato/boilercine@046ee0146394bebf5693fe0c18bbcea3d3e64fe5
  • cmasher >=1.7.2
  • colorcet >=3.0.1
  • dvc >=3.33.3
  • imageio [pyav]>=2.31.1
  • loguru >=0.7.0
  • matplotlib >=3.7.2
  • numpy >=1.24.4
  • opencv-python-headless >=4.9.0.80
  • pandas [hdf5,performance]>=2.0.2
  • ploomber-engine >=0.0.30
  • pyarrow >=14.0.1
  • pydantic >=2
  • pyqtgraph >=0.13.3
  • pyside6 >=6.5.2
  • ruamel.yaml >=0.17.32
  • scikit-image >=0.21.0
  • scipy >=1.11.1
  • seaborn >=0.12.2
  • sparklines >=0.4.2
  • tqdm >=4.66.1
  • xarray [accel,io,parallel]>=2023.7.0
requirements/dvc.in pypi
  • dvc ==3.49.0
requirements/install.in pypi
  • zstandard ==0.22.0
scripts/pyproject.toml pypi
  • cyclopts ==2.5.0
requirements/override.txt pypi