Name | pyopenrivercam JSON |
Version |
0.7.1
JSON |
| download |
home_page | None |
Summary | pyorc: free and open-source image-based surface velocity and discharge. |
upload_time | 2024-12-16 16:25:45 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<figure>
<img src="https://raw.githubusercontent.com/localdevices/pyorc/main/docs/_static/orc_logo_color.svg"
width=100 align="right">
</figure>
<br>
# pyOpenRiverCam
[](https://pypi.org/project/pyopenrivercam)
[](https://anaconda.org/conda-forge/pyopenrivercam)
[](https://codecov.io/gh/localdevices/pyorc)
[](https://localdevices.github.io/pyorc/latest)
[](https://mybinder.org/v2/gh/localdevices/pyorc.git/main?labpath=examples)
[](https://github.com/localdevices/pyorc/blob/main/LICENSE)
**pyorc**, short for "pyOpenRiverCam" is a fully Open Source library for performing image-based river flow analysis. It is the underlying library for
computations on the fully open software stack OpenRiverCam. **pyorc** can only be successful if the underlying methods
are made available openly for all. Currently **pyorc** implements Large-scale Particle Image Velocimetry (LSPIV) based
flow analysis using the OpenPIV library and reprojections and image pre-processing with OpenCV. We wish to extend this
to Large-scale Particle Tracking Velocimetry (LSPTV) and Space-Time Image Velocimetry (STIV) for conditions that are less favourable for LSPIV using open
libraries or extensions to this code.

Image: Example of pyorc velocimetry over Ngwerere river at the Zambezi Road crossing - Lusaka, Zambia.
Current capabilities are:
* Reading of frames and reprojection to surface
* Velocimetry estimation at user-defined resolution
* Discharge estimation over provided cross-section
* Plotting of velocimetry results and cross-section flows in camera, geographical and orthoprojected perspectives.
We use the well-known **xarray** data models and computation pipelines (with dask) throughout the entire library to
guarantee an easy interoperability with other tools and methods, and allow for lazy computing.
We are seeking funding for the following frequently requested functionalities:
* Exports to simple text formats and GIS-compatible layers
* Exports to augmented reality videos
* Implementation of additional processing algorithms (STIV and LSPTV)
* Implementation of several optical methods for reading water levels
* Improved nighttime / poor weather conditions processing through learning approaches
If you wish to fund this or other work on features, please contact us at info@rainbowsensing.com.
> **_note:_** For instructions how to get Anaconda (with lots of pre-installed libraries) or Miniconda (light weight) installed, please go to https://docs.conda.io/projects/conda/en/latest/
> **_manual:_** Please go to https://localdevices.github.io/pyorc for the latest documentation
> **_compatibility:_** At this moment **pyorc** works with any video compatible with OpenCV as long as it has proper metadata.
## Installation
You need a python environment. We recommend using the Miniforge project. Download
the latest miniforge installer from https://github.com/conda-forge/miniforge and follow the installation instructions
before continuing installing **pyorc**.
### virtual environment
To get started with **pyorc**, we recommend to set up a python virtual environment. This ensures that installed libraries
**pyorc** will not conflict with other libraries or library versions which you may need for other projects.
Setting up a virtual environment can be done with:
```shell
python -m venv pyorc_env
```
this creates a new folder `pyorc_env` on your disk which contains your virtual environment.
After activating the environment, any package you install will be installed in this environment only.
Activating in Unix/Linux is done as follows:
```shell
source pyorc_env/bin/activate
```
In Windows, the activation script is in a different folder. Type the following to activate the environment.
```shell
pyorc_env\Scripts\activate
```
### Installation for direct use
If you simply want to add **pyorc** to an existing python installation or virtual environment, then follow these
instructions.
First activate the environment you want **pyorc** to be installed in (if you don't care about virtual environments, then
simply skip this step). See the above sub-section for information. You can simply install pyorc with all its
dependencies as follows:
```shell
pip install pyopenrivercam[extra]
```
The `[extra]` section ensures that also geographical plotting is supported, which we recommend especially for the
set up of a camera configuration.
### Upgrading from pypi with pip
Did you read about a new version and you want to upgrade? Simply activate your virtual environment, type
```shell
pip install --upgrade pyopenrivercam[extra]
```
and then enjoy the latest features.
### installation with mamba package manager
If you use `mamba` as a package manager, then the steps are the same, except for the installation step, which is:
```shell
mamba install pyopenrivercam
```
### Installation from latest code base
To install **pyorc** from scratch in a new virtual environment from the code base, go through these steps. Logical cases
when you wish to install from the code base are when you wish to have the very latest non-released version.
First, clone the code with `git` and move into the cloned folder.
```
git clone https://github.com/localdevices/pyorc.git
cd pyorc
```
Set up a virtual environment with all dependencies as follows:
```
conda env create -f envs/pyorc-dev.yml
conda activate pyorc-dev
```
then install **pyorc** from the code base as follows:
```
pip install .
```
> **_note:_** **pyorc** is now installed in a virtual environment called `pyorc-dev`. This means that if you wish to run
python with **pyorc**. You need to always first activate this environment before running python (or jupyter). This is
done with the following command:
```
conda activate pyorc-dev
```
### Installation from latest code base as developer
Clone the repository with ssh and move into the cloned folder.
```
git clone git@github.com:localdevices/pyorc.git
cd pyorc
```
Setup a virtual developers environment and install the package as follows:
```
conda env create -f envs/pyorc-dev.yml
conda activate pyorc-dev
pip install -e .
```
## Using pyorc
To use **pyorc**, you can use the API for processing. A command-line interface is forthcoming pending funding.
A manual is also still in the making.
## Acknowledgement
The first development of pyorc has been supported by the World Meteorological Organisation - HydroHub.
## License
**pyorc** is licensed under AGPL Version 3 (see [LICENSE](./LICENSE) file).
**pyorc** uses the following important libraries and software with said licenses.
| Package | Version | License |
|------------|---------|------------------------------------|
| ffpiv | 0.1.2 | AGPLv3 |
| numpy | 1.26.4 | BSD License |
| opencv2 | 4.10.0 | MIT License |
| openpiv | 0.25.3 | GPLv3 |
| matplotlib | 3.9.2 | Python Software Foundation License |
| geopandas | 1.0.1 | BSD License |
| pandas | 2.2.2 | BSD License |
Project organisation
--------------------
.
├── CHANGELOG.md <- Version-based changelog documentation
├── README.md <- This file
├── LICENSE <- License file containing AGPLv3.0 license terms
├── TRADEMARK.md <- Trademark guidelines
├── pyproject.toml <- setup pipeline compatible with pip
├── environment.yml <- YML-file for setting up a conda environment with dependencies
├── docs <- Sphinx documentation source code
├── ... <- Sphinx source code files
├── examples <- Jupyter notebooks with examples how to use the API
├── ... <- individual notebooks and folder with example data files
├── pyorc <- pyorc library
├── ... <- pyorc functions and API files
├── tests <- pytest suite
├── ... <- pytest functions on API level
Raw data
{
"_id": null,
"home_page": null,
"name": "pyopenrivercam",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Hessel Winsemius <winsemius@rainbowsensing.com>",
"download_url": "https://files.pythonhosted.org/packages/35/81/71d0f5427e98b54aee74e2b8a743296f114d4f34ccef2c33864ccfb79f0c/pyopenrivercam-0.7.1.tar.gz",
"platform": null,
"description": "<figure>\n <img src=\"https://raw.githubusercontent.com/localdevices/pyorc/main/docs/_static/orc_logo_color.svg\"\nwidth=100 align=\"right\">\n</figure>\n<br>\n\n# pyOpenRiverCam\n\n[](https://pypi.org/project/pyopenrivercam)\n[](https://anaconda.org/conda-forge/pyopenrivercam)\n[](https://codecov.io/gh/localdevices/pyorc)\n[](https://localdevices.github.io/pyorc/latest)\n[](https://mybinder.org/v2/gh/localdevices/pyorc.git/main?labpath=examples)\n[](https://github.com/localdevices/pyorc/blob/main/LICENSE)\n\n**pyorc**, short for \"pyOpenRiverCam\" is a fully Open Source library for performing image-based river flow analysis. It is the underlying library for\ncomputations on the fully open software stack OpenRiverCam. **pyorc** can only be successful if the underlying methods\nare made available openly for all. Currently **pyorc** implements Large-scale Particle Image Velocimetry (LSPIV) based\nflow analysis using the OpenPIV library and reprojections and image pre-processing with OpenCV. We wish to extend this\nto Large-scale Particle Tracking Velocimetry (LSPTV) and Space-Time Image Velocimetry (STIV) for conditions that are less favourable for LSPIV using open\nlibraries or extensions to this code.\n\n\nImage: Example of pyorc velocimetry over Ngwerere river at the Zambezi Road crossing - Lusaka, Zambia.\n\nCurrent capabilities are:\n* Reading of frames and reprojection to surface\n* Velocimetry estimation at user-defined resolution\n* Discharge estimation over provided cross-section\n* Plotting of velocimetry results and cross-section flows in camera, geographical and orthoprojected perspectives.\n\nWe use the well-known **xarray** data models and computation pipelines (with dask) throughout the entire library to\nguarantee an easy interoperability with other tools and methods, and allow for lazy computing.\n\nWe are seeking funding for the following frequently requested functionalities:\n* Exports to simple text formats and GIS-compatible layers\n* Exports to augmented reality videos\n* Implementation of additional processing algorithms (STIV and LSPTV)\n* Implementation of several optical methods for reading water levels\n* Improved nighttime / poor weather conditions processing through learning approaches\n\nIf you wish to fund this or other work on features, please contact us at info@rainbowsensing.com.\n\n> **_note:_** For instructions how to get Anaconda (with lots of pre-installed libraries) or Miniconda (light weight) installed, please go to https://docs.conda.io/projects/conda/en/latest/\n\n> **_manual:_** Please go to https://localdevices.github.io/pyorc for the latest documentation\n\n> **_compatibility:_** At this moment **pyorc** works with any video compatible with OpenCV as long as it has proper metadata.\n\n## Installation\nYou need a python environment. We recommend using the Miniforge project. Download\nthe latest miniforge installer from https://github.com/conda-forge/miniforge and follow the installation instructions\nbefore continuing installing **pyorc**.\n\n### virtual environment\nTo get started with **pyorc**, we recommend to set up a python virtual environment. This ensures that installed libraries\n**pyorc** will not conflict with other libraries or library versions which you may need for other projects.\n\nSetting up a virtual environment can be done with:\n```shell\npython -m venv pyorc_env\n```\nthis creates a new folder `pyorc_env` on your disk which contains your virtual environment.\nAfter activating the environment, any package you install will be installed in this environment only.\nActivating in Unix/Linux is done as follows:\n\n```shell\nsource pyorc_env/bin/activate\n```\nIn Windows, the activation script is in a different folder. Type the following to activate the environment.\n```shell\npyorc_env\\Scripts\\activate\n```\n\n### Installation for direct use\n\nIf you simply want to add **pyorc** to an existing python installation or virtual environment, then follow these\ninstructions.\n\nFirst activate the environment you want **pyorc** to be installed in (if you don't care about virtual environments, then\nsimply skip this step). See the above sub-section for information. You can simply install pyorc with all its\ndependencies as follows:\n\n```shell\npip install pyopenrivercam[extra]\n```\nThe `[extra]` section ensures that also geographical plotting is supported, which we recommend especially for the\nset up of a camera configuration.\n\n### Upgrading from pypi with pip\n\nDid you read about a new version and you want to upgrade? Simply activate your virtual environment, type\n\n```shell\npip install --upgrade pyopenrivercam[extra]\n```\n\nand then enjoy the latest features.\n\n### installation with mamba package manager\n\nIf you use `mamba` as a package manager, then the steps are the same, except for the installation step, which is:\n\n```shell\nmamba install pyopenrivercam\n```\n\n### Installation from latest code base\n\nTo install **pyorc** from scratch in a new virtual environment from the code base, go through these steps. Logical cases\nwhen you wish to install from the code base are when you wish to have the very latest non-released version.\n\nFirst, clone the code with `git` and move into the cloned folder.\n\n```\ngit clone https://github.com/localdevices/pyorc.git\ncd pyorc\n```\n\nSet up a virtual environment with all dependencies as follows:\n```\nconda env create -f envs/pyorc-dev.yml\nconda activate pyorc-dev\n```\nthen install **pyorc** from the code base as follows:\n```\npip install .\n```\n> **_note:_** **pyorc** is now installed in a virtual environment called `pyorc-dev`. This means that if you wish to run\npython with **pyorc**. You need to always first activate this environment before running python (or jupyter). This is\ndone with the following command:\n```\nconda activate pyorc-dev\n```\n### Installation from latest code base as developer\n\nClone the repository with ssh and move into the cloned folder.\n\n```\ngit clone git@github.com:localdevices/pyorc.git\ncd pyorc\n```\n\nSetup a virtual developers environment and install the package as follows:\n```\nconda env create -f envs/pyorc-dev.yml\nconda activate pyorc-dev\npip install -e .\n```\n\n## Using pyorc\nTo use **pyorc**, you can use the API for processing. A command-line interface is forthcoming pending funding.\nA manual is also still in the making.\n\n## Acknowledgement\nThe first development of pyorc has been supported by the World Meteorological Organisation - HydroHub.\n\n## License\n**pyorc** is licensed under AGPL Version 3 (see [LICENSE](./LICENSE) file).\n\n**pyorc** uses the following important libraries and software with said licenses.\n\n| Package | Version | License |\n|------------|---------|------------------------------------|\n| ffpiv | 0.1.2 | AGPLv3 |\n| numpy | 1.26.4 | BSD License |\n| opencv2 | 4.10.0 | MIT License |\n| openpiv | 0.25.3 | GPLv3 |\n| matplotlib | 3.9.2 | Python Software Foundation License |\n| geopandas | 1.0.1 | BSD License |\n| pandas | 2.2.2 | BSD License |\n\nProject organisation\n--------------------\n\n .\n \u251c\u2500\u2500 CHANGELOG.md <- Version-based changelog documentation\n \u251c\u2500\u2500 README.md <- This file\n \u251c\u2500\u2500 LICENSE <- License file containing AGPLv3.0 license terms\n \u251c\u2500\u2500 TRADEMARK.md <- Trademark guidelines\n \u251c\u2500\u2500 pyproject.toml <- setup pipeline compatible with pip\n \u251c\u2500\u2500 environment.yml <- YML-file for setting up a conda environment with dependencies\n \u251c\u2500\u2500 docs <- Sphinx documentation source code\n \u251c\u2500\u2500 ... <- Sphinx source code files\n \u251c\u2500\u2500 examples <- Jupyter notebooks with examples how to use the API\n \u251c\u2500\u2500 ... <- individual notebooks and folder with example data files\n \u251c\u2500\u2500 pyorc <- pyorc library\n \u251c\u2500\u2500 ... <- pyorc functions and API files\n \u251c\u2500\u2500 tests <- pytest suite\n \u251c\u2500\u2500 ... <- pytest functions on API level\n\n",
"bugtrack_url": null,
"license": null,
"summary": "pyorc: free and open-source image-based surface velocity and discharge.",
"version": "0.7.1",
"project_urls": {
"Source": "https://github.com/localdevices/pyorc"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6db2b83fd286aaa8d0c0e7a330b2ebeb1421d5771632ad58c5d734d09b810564",
"md5": "0103d4b29d69b53474b9e285c503aaa4",
"sha256": "b29fece3c86580a72f89b4da0e8044ec0e91a50a87fb7879f436ee724c6f04bc"
},
"downloads": -1,
"filename": "pyopenrivercam-0.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0103d4b29d69b53474b9e285c503aaa4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 117611,
"upload_time": "2024-12-16T16:25:40",
"upload_time_iso_8601": "2024-12-16T16:25:40.227571Z",
"url": "https://files.pythonhosted.org/packages/6d/b2/b83fd286aaa8d0c0e7a330b2ebeb1421d5771632ad58c5d734d09b810564/pyopenrivercam-0.7.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "358171d0f5427e98b54aee74e2b8a743296f114d4f34ccef2c33864ccfb79f0c",
"md5": "581a3fef7a515ebe474b0e7b1bfcae3d",
"sha256": "5a07bdd1a7428680d3209d6d81f02536e61869a927c8d22b3f8631a3b2b2c274"
},
"downloads": -1,
"filename": "pyopenrivercam-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "581a3fef7a515ebe474b0e7b1bfcae3d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 37295235,
"upload_time": "2024-12-16T16:25:45",
"upload_time_iso_8601": "2024-12-16T16:25:45.269266Z",
"url": "https://files.pythonhosted.org/packages/35/81/71d0f5427e98b54aee74e2b8a743296f114d4f34ccef2c33864ccfb79f0c/pyopenrivercam-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-16 16:25:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "localdevices",
"github_project": "pyorc",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyopenrivercam"
}