# <img src="cm_logo_small.svg" width="32"> CeraMatch
Visual shape-matching and classification of ceramics
Created on 18. 5. 2019
<details>
<summary>Table of Contents</summary>
1. [About CeraMatch](#about)
2. [Installation](#installation)
3. [Video Guide](#videoguide)
4. [Sample Data](#sampledata)
5. [Generating Datasets](#generating)
6. [Contact](#contact)
7. [Acknowledgements](#acknowledgements)
8. [License](#license)
</details>
## About CeraMatch <a name="about"></a>
A graphical user interface to a [Deposit](https://github.com/demjanp/deposit) database of digitized ceramic fragments created using the [Laser Aided Profiler](https://www.laseraidedprofiler.com/) control application which implements automated ceramic shape matching and clustering as described in [Demján et al. 2022](https://doi.org/10.1080/00934690.2022.2128549).
It has three basic functions: calculate (dis)similarity between samples; perform automatic clustering; and, allow users to rearrange clusters freely until they represent a valid classification. Furthermore, CeraMatch quantifies the degree of similarity of each fragment to a certain class, allowing for a probabilistic approach to classification, in which each vessel profile has quantifiable probabilities of belonging to particular classes or sub-classes. The application uses a hierarchical cluster analysis algorithm to assign each fragment into a cluster of similar specimens, a prerequisite for classification.
For an in-depth description of the concepts behind CeraMatch see:
DEMJÁN, P. - PAVÚK, P. - ROOSEVELT, CH. H. 2022: Laser-Aided Profile Measurement and Cluster Analysis of Ceramic Shapes. Journal of Field Archaeology 47 (8). https://doi.org/10.1080/00934690.2022.2128549
## Installation <a name="installation"></a>
For a Windows installer see:
https://github.com/demjanp/ceramatch/releases/latest
To install the latest version of Ceramatch as a Python module use:
```
pip install ceramatch
```
To start the GUI execute:
[bin\start_cm.py](bin\start_cm.py)
## Video Guide: <a name="videoguide"></a>
[![Watch the video](https://img.youtube.com/vi/2TPSN40nX7k/default.jpg)](https://youtu.be/2TPSN40nX7k)
## Sample Data: <a name="sampledata"></a>
Demján, P., Pavúk, P., Kaner, T., Bobik, J., & Roosevelt, C. H. (2021, October 15). Sample Data - Middle- to Late Bronze Age pottery from Kaymakçı. https://doi.org/10.17605/OSF.IO/UX8VD
## Generating Datasets: <a name="generating"></a>
You can create digital ceramics drawings usable in CeraMatch using the [Laser Aided Profiler Control Application](https://www.laseraidedprofiler.com/support/) by digitizing pottery fragments directly using the LAP device, or by digitizing drawings in PDF or raster image format (see this [video guide](https://youtu.be/OeevHiLsQTw)).
## Contact: <a name="contact"></a>
Peter Demján (peter.demjan@gmail.com)
Institute of Archaeology of the Czech Academy of Sciences, Prague, v.v.i.
## Acknowledgements <a name="acknowledgements"></a>
Development of this software was supported by OP RDE, MEYS, under the project "Ultra-trace isotope research in social and environmental studies using accelerator mass spectrometry", Reg. No. CZ.02.1.01/0.0/0.0/16_019/0000728.
This software uses the following open source packages:
* [cryptography](https://github.com/pyca/cryptography)
* [Deposit GUI](https://github.com/demjanp/deposit_gui)
* [Deposit](https://github.com/demjanp/deposit)
* [Graphviz](https://www.graphviz.org/)
* [lap_data](https://github.com/demjanp/lap_data)
* [natsort](https://github.com/SethMMorton/natsort)
* [NetworKit](https://networkit.github.io/)
* [NetworkX](https://networkx.org/)
* [NumPy](https://www.numpy.org/)
* [OpenCV on Wheels](https://github.com/opencv/opencv-python)
* [OpenCV](https://opencv.org/)
* [openpyxl](https://openpyxl.readthedocs.io/)
* [Pillow](https://python-pillow.org/)
* [Psycopg](https://psycopg.org/)
* [PyGraphviz](http://pygraphviz.github.io/)
* [PyShp](https://github.com/GeospatialPython/pyshp)
* [PySide2](https://www.pyside.org/)
* [Qt](https://www.qt.io)
* [scikit-image](https://scikit-image.org/)
* [scikit-learn](http://scikit-learn.org/)
* [SciPy](https://scipy.org/)
* [Shapely](https://github.com/shapely/shapely)
* [svgelements](https://github.com/meerk40t/svgelements)
* [Unidecode](https://github.com/avian2/unidecode)
* [validators](https://github.com/kvesteri/validators)
## License <a name="license"></a>
This code is licensed under the [GNU GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/gpl-3.0.en.html) - see the [LICENSE](LICENSE) file for details
Raw data
{
"_id": null,
"home_page": "https://github.com/demjanp/CeraMatch",
"name": "ceramatch",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10, <4",
"maintainer_email": "",
"keywords": "ceramics,classification,cluster analysis,morphometrics",
"author": "Peter Demj\u00e1n",
"author_email": "peter.demjan@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a1/c5/30872c551f922e72a4fde7e2fae7de2099117d253973a2a08b77626733f7/ceramatch-1.0.45.tar.gz",
"platform": null,
"description": "# <img src=\"cm_logo_small.svg\" width=\"32\"> CeraMatch\r\nVisual shape-matching and classification of ceramics\r\n\r\nCreated on 18. 5. 2019\r\n\r\n<details>\r\n<summary>Table of Contents</summary>\r\n\r\n1. [About CeraMatch](#about)\r\n2. [Installation](#installation)\r\n3. [Video Guide](#videoguide)\r\n4. [Sample Data](#sampledata)\r\n5. [Generating Datasets](#generating)\r\n6. [Contact](#contact)\r\n7. [Acknowledgements](#acknowledgements)\r\n8. [License](#license)\r\n\r\n</details>\r\n\r\n## About CeraMatch <a name=\"about\"></a>\r\n\r\nA graphical user interface to a [Deposit](https://github.com/demjanp/deposit) database of digitized ceramic fragments created using the [Laser Aided Profiler](https://www.laseraidedprofiler.com/) control application which implements automated ceramic shape matching and clustering as described in [Demj\u00e1n et al. 2022](https://doi.org/10.1080/00934690.2022.2128549).\r\n\r\nIt has three basic functions: calculate (dis)similarity between samples; perform automatic clustering; and, allow users to rearrange clusters freely until they represent a valid classification. Furthermore, CeraMatch quantifies the degree of similarity of each fragment to a certain class, allowing for a probabilistic approach to classification, in which each vessel profile has quantifiable probabilities of belonging to particular classes or sub-classes. The application uses a hierarchical cluster analysis algorithm to assign each fragment into a cluster of similar specimens, a prerequisite for classification.\r\n\r\nFor an in-depth description of the concepts behind CeraMatch see:\r\n\r\nDEMJ\u00c1N, P. - PAV\u00daK, P. - ROOSEVELT, CH. H. 2022: Laser-Aided Profile Measurement and Cluster Analysis of Ceramic Shapes. Journal of Field Archaeology 47 (8). https://doi.org/10.1080/00934690.2022.2128549\r\n\r\n## Installation <a name=\"installation\"></a>\r\n\r\nFor a Windows installer see:\r\n\r\nhttps://github.com/demjanp/ceramatch/releases/latest\r\n\r\nTo install the latest version of Ceramatch as a Python module use:\r\n```\r\npip install ceramatch\r\n```\r\n\r\nTo start the GUI execute:\r\n\r\n[bin\\start_cm.py](bin\\start_cm.py)\r\n\r\n## Video Guide: <a name=\"videoguide\"></a>\r\n[![Watch the video](https://img.youtube.com/vi/2TPSN40nX7k/default.jpg)](https://youtu.be/2TPSN40nX7k)\r\n\r\n## Sample Data: <a name=\"sampledata\"></a>\r\nDemj\u00e1n, P., Pav\u00fak, P., Kaner, T., Bobik, J., & Roosevelt, C. H. (2021, October 15). Sample Data - Middle- to Late Bronze Age pottery from Kaymak\u00e7\u0131. https://doi.org/10.17605/OSF.IO/UX8VD \r\n\r\n## Generating Datasets: <a name=\"generating\"></a>\r\nYou can create digital ceramics drawings usable in CeraMatch using the [Laser Aided Profiler Control Application](https://www.laseraidedprofiler.com/support/) by digitizing pottery fragments directly using the LAP device, or by digitizing drawings in PDF or raster image format (see this [video guide](https://youtu.be/OeevHiLsQTw)).\r\n\r\n## Contact: <a name=\"contact\"></a>\r\nPeter Demj\u00e1n (peter.demjan@gmail.com)\r\n\r\nInstitute of Archaeology of the Czech Academy of Sciences, Prague, v.v.i.\r\n\r\n## Acknowledgements <a name=\"acknowledgements\"></a>\r\n\r\nDevelopment of this software was supported by OP RDE, MEYS, under the project \"Ultra-trace isotope research in social and environmental studies using accelerator mass spectrometry\", Reg. No. CZ.02.1.01/0.0/0.0/16_019/0000728.\r\n\r\nThis software uses the following open source packages:\r\n* [cryptography](https://github.com/pyca/cryptography)\r\n* [Deposit GUI](https://github.com/demjanp/deposit_gui)\r\n* [Deposit](https://github.com/demjanp/deposit)\r\n* [Graphviz](https://www.graphviz.org/)\r\n* [lap_data](https://github.com/demjanp/lap_data)\r\n* [natsort](https://github.com/SethMMorton/natsort)\r\n* [NetworKit](https://networkit.github.io/)\r\n* [NetworkX](https://networkx.org/)\r\n* [NumPy](https://www.numpy.org/)\r\n* [OpenCV on Wheels](https://github.com/opencv/opencv-python)\r\n* [OpenCV](https://opencv.org/)\r\n* [openpyxl](https://openpyxl.readthedocs.io/)\r\n* [Pillow](https://python-pillow.org/)\r\n* [Psycopg](https://psycopg.org/)\r\n* [PyGraphviz](http://pygraphviz.github.io/)\r\n* [PyShp](https://github.com/GeospatialPython/pyshp)\r\n* [PySide2](https://www.pyside.org/)\r\n* [Qt](https://www.qt.io)\r\n* [scikit-image](https://scikit-image.org/)\r\n* [scikit-learn](http://scikit-learn.org/)\r\n* [SciPy](https://scipy.org/)\r\n* [Shapely](https://github.com/shapely/shapely)\r\n* [svgelements](https://github.com/meerk40t/svgelements)\r\n* [Unidecode](https://github.com/avian2/unidecode)\r\n* [validators](https://github.com/kvesteri/validators)\r\n\r\n## License <a name=\"license\"></a>\r\n\r\nThis code is licensed under the [GNU GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/gpl-3.0.en.html) - see the [LICENSE](LICENSE) file for details\r\n",
"bugtrack_url": null,
"license": "",
"summary": "Visual shape-matching and classification of ceramics.",
"version": "1.0.45",
"project_urls": {
"Homepage": "https://github.com/demjanp/CeraMatch"
},
"split_keywords": [
"ceramics",
"classification",
"cluster analysis",
"morphometrics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a4fd494597ed71665dd416ef2205f056dc232817f0502091a025d4988df8a505",
"md5": "d006aee85114dd73a91e83d2d107666b",
"sha256": "f65881eee36b5e693c9fc1ab30ca4372e7aa93310a7b709af60d7da008593dfa"
},
"downloads": -1,
"filename": "ceramatch-1.0.45-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "d006aee85114dd73a91e83d2d107666b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <4",
"size": 246442,
"upload_time": "2023-12-04T10:39:01",
"upload_time_iso_8601": "2023-12-04T10:39:01.792236Z",
"url": "https://files.pythonhosted.org/packages/a4/fd/494597ed71665dd416ef2205f056dc232817f0502091a025d4988df8a505/ceramatch-1.0.45-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a1c530872c551f922e72a4fde7e2fae7de2099117d253973a2a08b77626733f7",
"md5": "7405853470692d72c2adeaf26b5788a8",
"sha256": "6b4b4f99794910d85d5d41cec009667d6e5aa81bfaccdcc18b01c50e2cf4efc2"
},
"downloads": -1,
"filename": "ceramatch-1.0.45.tar.gz",
"has_sig": false,
"md5_digest": "7405853470692d72c2adeaf26b5788a8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10, <4",
"size": 215887,
"upload_time": "2023-12-04T10:39:04",
"upload_time_iso_8601": "2023-12-04T10:39:04.527945Z",
"url": "https://files.pythonhosted.org/packages/a1/c5/30872c551f922e72a4fde7e2fae7de2099117d253973a2a08b77626733f7/ceramatch-1.0.45.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-04 10:39:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "demjanp",
"github_project": "CeraMatch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ceramatch"
}