# PyPendentDrop
Python library (with graphical and command line interfaces) to measure surface tension from images of pendent drops.
* Package on [PyPI](https://pypi.org/project/pypendentdrop/)
* Documentation on [ReadTheDocs](https://pypendentdrop.readthedocs.io)
* Source code on [GitHub](https://github.com/Moryavendil/pypendentdrop)
## Installation
Simply use
pip install pypendentdrop[full]
or, if you only want to use the command-line version (resp. the graphical version), you can replace `[full]` by `[cli]` (resp. `[gui]`). Use no option to download a minimal working version of the library.
## Using PyPendentDrop
### Graphical interface
To launch the gui version, use the command
ppt-gui
Use the relevant fields to provide an image, the pixel density of your image and the relevant physical parameters (density contrast, acceleration of gravity). Buttons allow you to estimate the parameters coarsely and to optimize this estimation. You can manually change and/or fix the values of the parameters.
### Command-line
To use the command-line version, use
ppt-cli
Use the `-h` (help) option to list the availables options and the `-v` (verbose) option to display more information as the program goes.
### In a python script
In the import section of your script, write
import pypendentdrop as ppd
and you can then use the functions defined in the library. An example script `examplescript.py` is provided on the GitHub repository.
<!-- ## How it works
### The pendent drop method
[...] see scientific litterature
### PyPendentDrop
The main steps of measuring the surface tension of a liquid using the pendent drop method are
1. Select an image (if possible a high quality, high contrast image of a symmetric drop) using `ppd.import_image(filename)`
*Optionally:* select the Region Of Interest in your image
2. Choose a threshold for your image (or use `ppd.best_threshold(image)` to find it for you)
3. Detect the contour of the drop using `ppd.detect_main_contour(image, threshold)`
4. Specify the pixel density (or pixel size) of the image
5. Obtain a coarse estimation of the parameters of the drop (tip position, angle of gravity, radius at apex, capillar length of liquid) using `ppd.estimate_parameters(image, contour, pixeldensity)`
*Optionally:* set some of the parameters yourself if the automatically-estimated parameters are not accurate enough
6. Fit the drop profile using the estimated parameters as initial condition using `ppd.optimize_profile(contour, estimated_parameters)`
7. Knowing the density contrast (density difference between the fluids times gravity acceleration), compute the surface tension. -->
## Contact
Contact me at `pypendentdrop@protonmail.com`
Raw data
{
"_id": null,
"home_page": null,
"name": "pypendentdrop",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "analysis, drop, image, measure, pendant, pendent, surface, tension",
"author": null,
"author_email": "G2L <GDoubleL@proton.me>",
"download_url": "https://files.pythonhosted.org/packages/59/e4/bf10fcde307576fe01516cd4f087a5e6d239700c266e0e3b75f2d2e0c494/pypendentdrop-0.0.2.tar.gz",
"platform": null,
"description": "# PyPendentDrop\n\nPython library (with graphical and command line interfaces) to measure surface tension from images of pendent drops.\n\n* Package on [PyPI](https://pypi.org/project/pypendentdrop/)\n* Documentation on [ReadTheDocs](https://pypendentdrop.readthedocs.io)\n* Source code on [GitHub](https://github.com/Moryavendil/pypendentdrop)\n\n\n## Installation\n\nSimply use\n\n pip install pypendentdrop[full]\n\nor, if you only want to use the command-line version (resp. the graphical version), you can replace `[full]` by `[cli]` (resp. `[gui]`). Use no option to download a minimal working version of the library.\n\n## Using PyPendentDrop\n\n### Graphical interface\n\nTo launch the gui version, use the command\n\n ppt-gui\n\nUse the relevant fields to provide an image, the pixel density of your image and the relevant physical parameters (density contrast, acceleration of gravity). Buttons allow you to estimate the parameters coarsely and to optimize this estimation. You can manually change and/or fix the values of the parameters.\n\n### Command-line\n\nTo use the command-line version, use\n\n ppt-cli\n\nUse the `-h` (help) option to list the availables options and the `-v` (verbose) option to display more information as the program goes.\n\n### In a python script\n\nIn the import section of your script, write\n\n import pypendentdrop as ppd\n\nand you can then use the functions defined in the library. An example script `examplescript.py` is provided on the GitHub repository. \n\n<!-- ## How it works\n\n### The pendent drop method\n\n[...] see scientific litterature\n\n### PyPendentDrop\n\nThe main steps of measuring the surface tension of a liquid using the pendent drop method are\n\n1. Select an image (if possible a high quality, high contrast image of a symmetric drop) using `ppd.import_image(filename)`\n\n *Optionally:* select the Region Of Interest in your image\n\n2. Choose a threshold for your image (or use `ppd.best_threshold(image)` to find it for you)\n\n3. Detect the contour of the drop using `ppd.detect_main_contour(image, threshold)`\n\n4. Specify the pixel density (or pixel size) of the image\n\n5. Obtain a coarse estimation of the parameters of the drop (tip position, angle of gravity, radius at apex, capillar length of liquid) using `ppd.estimate_parameters(image, contour, pixeldensity)`\n\n *Optionally:* set some of the parameters yourself if the automatically-estimated parameters are not accurate enough\n\n6. Fit the drop profile using the estimated parameters as initial condition using `ppd.optimize_profile(contour, estimated_parameters)`\n\n7. Knowing the density contrast (density difference between the fluids times gravity acceleration), compute the surface tension. -->\n\n## Contact\n\nContact me at `pypendentdrop@protonmail.com`",
"bugtrack_url": null,
"license": null,
"summary": "Python scripts (GUI and command line) to measure surface tension from images of pendent drops.",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/Moryavendil/pypendentdrop",
"Issues": "https://github.com/Moryavendil/pypendentdrop/issues"
},
"split_keywords": [
"analysis",
" drop",
" image",
" measure",
" pendant",
" pendent",
" surface",
" tension"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9e59b21ea00b0fc5148be6ae5d0720b98360d516a1e51d23b72e79e0a71ce9f5",
"md5": "66f459ddc087ddcef040b8e768c943c6",
"sha256": "a9974b975cf60119a92968cedcd3a7ea1c97138bebb69e07da3a1615ee8c9be2"
},
"downloads": -1,
"filename": "pypendentdrop-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "66f459ddc087ddcef040b8e768c943c6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 152142,
"upload_time": "2024-10-26T10:49:39",
"upload_time_iso_8601": "2024-10-26T10:49:39.310830Z",
"url": "https://files.pythonhosted.org/packages/9e/59/b21ea00b0fc5148be6ae5d0720b98360d516a1e51d23b72e79e0a71ce9f5/pypendentdrop-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59e4bf10fcde307576fe01516cd4f087a5e6d239700c266e0e3b75f2d2e0c494",
"md5": "b2f1435da73be45d730371c4d05f3d10",
"sha256": "ea446d974132f02c730c58506d8bce3e0e4a24e2a4649a5c6c44dd3ef48c4bfe"
},
"downloads": -1,
"filename": "pypendentdrop-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "b2f1435da73be45d730371c4d05f3d10",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 155603,
"upload_time": "2024-10-26T10:49:41",
"upload_time_iso_8601": "2024-10-26T10:49:41.647927Z",
"url": "https://files.pythonhosted.org/packages/59/e4/bf10fcde307576fe01516cd4f087a5e6d239700c266e0e3b75f2d2e0c494/pypendentdrop-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-26 10:49:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Moryavendil",
"github_project": "pypendentdrop",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pypendentdrop"
}