pyopia

Python Ocean Particle Image Analysis

https://github.com/sintef/pyopia

Science Score: 44.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Python Ocean Particle Image Analysis

Basic Info
  • Host: GitHub
  • Owner: SINTEF
  • License: bsd-3-clause
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: https://pyopia.readthedocs.io
  • Size: 50.5 MB
Statistics
  • Stars: 14
  • Watchers: 5
  • Forks: 6
  • Open Issues: 33
  • Releases: 3
Created about 4 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

PyOPIA

A Python Ocean Particle Image Analysis toolbox

Quick tryout of PyOPIA

1) Install uv 2) Run PyOPIA classification tests on database particles bash uv run --python 3.12 --with git+https://github.com/SINTEF/pyopia --with tensorflow==2.16.2 --with keras==3.5.0 python -m pyopia.tests.test_classify

Documentation:

Jupyter Book Badge Documentation

pyopia.readthedocs.io

Current status:

  • Under development. See/regester issues, here

Development targets for PyOpia:

1) Allow nonfamiliar users to install and use PyOpia, and to contribute & commit code changes 2) Not hardware specific 3) Smaller dependency list than PySilCam -Eventual optional dependencies (e.g. for classification) 4) Can be imported by pysilcam or other hardware-specific tools 5) Work on a single-image basis (...primarily, with options for multiprocess to be considered later) 6) No use of settings/config files within the core code - pass arguments directly. Eventual use of settings/config files should be handled by high-level wrappers that provide arguments to functions. 7) Github workflows 8) Tests

Normal functions within PyOpia should:

1) take inputs 2) return new outputs 3) don't modify state of input 4) minimum possible disc IO during processing

Contributions

We welcome additions and improvements to the code! We request that you follow a few guidelines. These are in place to make sure the code improves over time.

  1. All code changes must be submitted as pull requests, either from a branch or a fork.
  2. Good documentation of the code is needed for PyOpia to succeed and so please include up-to-date docstrings as you make changes, so that the auto-build on readthedocs is complete and useful for users. (A version of the new docs will complie when you make a pull request and a link to this can be found in the pull request checks)
  3. All pull requests are required to pass all tests before merging. Please do not disable or remove tests just to make your branch pass the pull request.
  4. All pull requests must be reviewed by a person. The benefits from code review are plenty, but we like to emphasise that code reviews help spreading the awarenes of code changes. Please note that code reviews should be a pleasant experience, so be plesant, polite and remember that there is a human being with good intentions on the other side of the screen.
  5. All contributions are linted with flake8. We recommend that you run flake8 on your code while developing to fix any issues as you go. We recommend using autopep8 to autoformat your Python code (but please check the code behaviour is not affected by autoformatting before pushing). This makes flake8 happy, and makes it easier for us all to maintain a consistent and readable code base.

Docstrings

Use the NumPy style in docstrings. See style guide here

Installing

For users

Users are expected to be familiar with Python. Please refer to the recommended installation instructions provided on the documentation pages, here

For developers from source

Install (uv)[https://docs.astral.sh/uv/getting-started/installation/]

  1. Navigate to the folder where you want to install pyopia using the 'cd' command.

If you use git: Download repository from github, and move into the new directory:

bash git clone https://github.com/SINTEF/pyopia.git cd pyopia

For the next steps, you need to be located in the PyOPIA root directory that contains the file 'pyproject.toml'.

  1. Install all requirements with

bash uv sync --all-extras

  1. (optional) Run local tests:

bash uv run pytest

Version numbering

The version number of PyOPIA is split into three sections: MAJOR.MINOR.PATCH

  • MAJOR: Changes in high-level pipeline use and/or data output that are not backwards-compatible.
  • MINOR: New features that are backwards-compatible.
  • PATCH: Backwards-compatible bug fixes or enhancements to existing functionality

Build docs locally

``` sphinx-apidoc -f -o docs/source docs/build --separate

sphinx-build -b html ./docs/ ./docs/build ```


License

PyOpia is licensed under the BSD3 license. See LICENSE. All contributors should be recognised & aknowledged.

Owner

  • Name: SINTEF
  • Login: SINTEF
  • Kind: organization
  • Location: Norway

Technology for a better society.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Davies
    given-names: Emlyn
  - family-names: Nimmo-Smith
    given-names: Alex
  - family-names: Nepstad
    given-names: Raymond
  - family-names: Nordam
    given-names: Tor
  - family-names: Brönner
    given-names: Ute
  - family-names: Steinvika
    given-names: Andreas
  - family-names: Sari
    given-names: Giering
  - family-names: Masoudi
    given-names: Mojtaba
  - family-names: Liu
    given-names: Zonghua
  - family-names: Hélaouët
    given-names: Pierre
  - family-names: Cursons
    given-names: Kairan
  - family-names: Rau
    given-names: Matthew
  - family-names: Song
    given-names: Yixuan
  - family-names: Mostaani
    given-names: Arsalan
  - family-names: Barstein
    given-names: Karoline
  - family-names: Buscombe
    given-names: Daniel
title: "PyOPIA: A Python Ocean Particle Image Analysis toolbox"
url: "https://pyopia.readthedocs.io"
repository-code: "https://github.com/sintef/pyopia"

GitHub Events

Total
  • Issues event: 12
  • Watch event: 4
  • Issue comment event: 14
  • Push event: 44
  • Pull request event: 12
  • Pull request review comment event: 6
  • Pull request review event: 20
  • Fork event: 2
  • Create event: 5
Last Year
  • Issues event: 12
  • Watch event: 4
  • Issue comment event: 14
  • Push event: 44
  • Pull request event: 12
  • Pull request review comment event: 6
  • Pull request review event: 20
  • Fork event: 2
  • Create event: 5

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 104
  • Total pull requests: 94
  • Average time to close issues: 3 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 7
  • Total pull request authors: 5
  • Average comments per issue: 1.03
  • Average comments per pull request: 0.65
  • Merged pull requests: 79
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 23
  • Pull requests: 11
  • Average time to close issues: 15 days
  • Average time to close pull requests: 8 days
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 1.57
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • emlynjdavies (89)
  • nepstad (29)
  • nordam (14)
  • animmosmith (10)
  • arsalanmstn (5)
  • sarigiering (1)
  • KaiCursons (1)
  • FrodeLeirvik (1)
Pull Request Authors
  • emlynjdavies (94)
  • nepstad (24)
  • animmosmith (17)
  • arsalanmstn (5)
  • nordam (2)
  • klarrieu (1)
  • dependabot[bot] (1)
  • sarigiering (1)
Top Labels
Issue Labels
bug (38) patch / enhancement (25) documentation (23) priority-high (22) enhancement (15) priority-low (9) dependencies (8) minor new feature (7) priority-medium (6) testing (3) new-feature (3) duplicate (2) question (2) wontfix (2) major new feature (1)
Pull Request Labels
bug (19) documentation (18) patch / enhancement (15) enhancement (10) dependencies (4) new-feature (4) testing (3) question (1) priority-high (1) minor new feature (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 155 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 58
  • Total maintainers: 1
pypi.org: pyopia

A Python Ocean Particle Image Analysis toolbox.

  • Versions: 58
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 155 Last month
Rankings
Dependent packages count: 7.3%
Average: 37.9%
Dependent repos count: 68.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/lint.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • py-actions/flake8 v2 composite
.github/workflows/version_check.yml actions
  • actions/checkout v2 composite
docs/requirements.txt pypi
  • docopt *
  • flake8 *
  • ipykernel >=6.19.4
  • jupyter_book *
  • myst-nb *
  • pytest-error-for-skips *
  • readthedocs-sphinx-search *
  • setuptools *
  • sphinx-copybutton *
  • sphinx-togglebutton *
  • sphinx_rtd_theme >=0.5.0
  • sphinxcontrib-napoleon >=0.7
pyproject.toml pypi
.github/workflows/build-and-test.yml actions
  • abatilo/actions-poetry v2 composite
  • actions/checkout v3 composite
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
.github/workflows/pypi.yml actions
  • abatilo/actions-poetry v2 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
environment.yml pypi