Potter's Signal in Ceramic Vessel Forms: A Pairwise Morphometric Approach
收藏资源简介:
This repository provides a consolidated description of the software compendium developed for the article “Potter’s Signal in Ceramic Vessel Forms: A Pairwise Morphometric Approach”. The compendium encompasses a complete workflow of scripts: from the initial processing of source vessel images to the statistical calibration of similarity thresholds and the network analysis of archaeological data. The text below is formatted for direct copying into Microsoft Word without loss of structure or the appearance of unreadable characters. OVERALL STRUCTURE OF THE REPOSITORY The repository is organised according to a modular principle that reflects the stages of the investigation. dataset (SVG)Contains the original ethnographic data: 556 vector contours (SVG) of averaged vessel profiles — 478 vessels produced on a kick‑wheel (24 potters) and 78 vessels from a hand‑operated wheel (4 potters). data_preparationGUI tools and batch‑processing scripts for preparing images and extracting morphometric features.• average_contour: generates symmetric averaged contours from source vessel images.• CRP_measurement: interactive measurement of chord‑radial profiles (CRP) and export to Excel.• EFA_preparation: batch conversion of images and SVGs into standardised binary silhouettes for Elliptic Fourier Analysis (EFA). main_analysisThe core of the study. Scripts for statistical calibration of similarity thresholds on the ethnographic sample, verification of their robustness, and adaptation for different technological modes (kick‑wheel and hand‑operated wheel). archaeology_case_1Application of the methodology to materials from the Roman period (red‑slip pottery from the Frontovoe 3 cemetery, Crimea). Includes inference scripts (threshold application), identification of method overlap, chronological statistics, and comparison with a classical baseline (EFA+PCA clustering). archaeology_case_2Application of the methodology to early medieval materials from the North Caucasus (358 vessels from 19 sites). Includes analysis of regional and local (site‑level) specificity, calculation of edge densities, and permutation tests. GLOBAL DEPENDENCIES (REQUIREMENTS) The following Python libraries must be installed for the entire compendium to function:pip install opencv-python numpy pandas scipy scikit-learn statsmodels numba matplotlib svgpathtools openpyxl tqdm networkx python-igraph leidenalg Pillow (Note: the tkinter library is built into Python, but on Linux sudo apt-get install python3-tk may be required.) SCENARIO A: REPRODUCING THE ARTICLE’S RESULTS If your aim is to fully replicate the computations described in the article, execute the scripts in the following order: Step 1. Data preparation (folder 2) Pass the source vessel images through average_contour.py to obtain averaged SVG contours. Use CRP_measurement.py to extract 49 profile points and save them in Excel format. Use preparation_efa.py to create binary silhouettes (1024×1024 PNG) for EFA. Step 2. Calibration on ethnographic material (folder 3) Run 1)CRP_and_EFA_analysis.py. The script will perform 10 000 cross‑validation iterations, select thresholds, and save the results to the results folder. Run 2)threshold_robustness_check.py to verify threshold stability as the number of potters varies. Run 3)calibration_for_hand-operated-pottery_CRP.py and 4)calibration_for_hand-operated-pottery_EFA.py to adapt thresholds for the hand‑operated wheel. Step 3. Archaeological cases (folders 4 and 5)For each case, run sequentially: Scripts 1)CRP_inference.py and 2)EFA_inference.py (application of thresholds to new data). Script 3)search_common_pairs(Jaccard).py (identification of “golden pairs”). Network and statistical analysis scripts (4)edge_chronology_statistics.py for Case 1; 4)network_sites_analysis.py for Case 2). Scripts 5)baseline_comparison.py (and 6) for Case 2) for comparison with classical clustering. SCENARIO B: PRACTICAL APPLICATION TO NEW ARCHAEOLOGICAL MATERIALS This guide is intended for researchers who wish to apply the proposed methodology to identify production units in new archaeological assemblages. STAGE 1. Standardisation of input data Photograph vessels under standardised conditions (strictly frontal view, on a horizontal surface, camera at the mid‑height of the vessel). Process the vessel’s contour image using average_contour.py. Remove smoothing artefacts manually in Node Editing mode, if necessary. Save the results as SVG. Convert the resulting SVGs (or the original vessel images) into binary silhouettes using preparation_efa.py. STAGE 2. Feature extraction Open CRP_measurement.py, load the SVG, place markers on the top and bottom points of the profile. Measure the profile and save the data to a common Excel file (where the first column is the vessel ID, followed by 49 columns of point coordinates). Ensure that the folder with binary silhouettes (PNG) is ready for EFA. STAGE 3. Selection and application of similarity thresholds (Inference)A critically important step: thresholds depend on the manufacturing technology. Choose the appropriate script and set the corresponding threshold in its settings (SETTINGS block). For pottery produced on a kick‑wheel, the following thresholds are suggested:• CRP (Gradient metric): threshold 0.1279• EFA (Euclidean metric): threshold 0.9782 For pottery produced on a hand‑operated wheel:• CRP (Gradient metric): threshold 0.0972• EFA (Euclidean metric): threshold 0.9428 Run 1)CRP_inference.py (specifying the path to your Excel file with CRP data) and 2)EFA_inference.py (specifying the path to the folder with silhouettes). The output will be Excel files containing a list of all pairs and a list of pairs that passed the threshold (Matches_Only).



