שבוע 10 — צנצנות Ogame מתקופת אדו
大甕 — “כד גדול” — קיושו הצפונית, יפן, 1600–1800 לספירה
האם צורת הכד מעידה על ההקשר שבו הוא שימש —
ייצור (כבשן) לעומת קבורה (בית עלמין)?
אם כן: משפחות בחרו כדים מיוחדים לקבורה.
אם לא: הכדים הועברו ישירות מהכבשן לקבר.
| אתר | הקשר | N |
|---|---|---|
| FR (Furukameyashimo) | כבשן | 89 |
| KM (Kameya) | כבשן | 48 |
| MR, NT, NS, MD ועוד | קבורה | 106 |
Source: Loftus, J. (2025). Journal of Open Archaeology Data 13:13.
DOI: 10.5334/joad.159 | Zenodo: 10.5281/zenodo.15781166
import requests, zipfile, os
# הורדה מ-Zenodo (פעם אחת)
url = "https://zenodo.org/records/15781166/files/Ogame_GMM.zip?download=1"
r = requests.get(url, stream=True)
with open("Ogame_GMM.zip", "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
with zipfile.ZipFile("Ogame_GMM.zip") as z:
z.extractall(".")
print("הנתונים הורדו בהצלחה!")
# טעינת מטה-דאטה
import pandas as pd
samples = pd.read_csv("Ogame_GMM/Ogame_Samples.csv")
samples = samples.rename(columns={samples.columns[3]: "context_code"})
samples["context"] = samples["context_code"].map({1: "קבורה", 2: "כבשן"})
print(samples["context"].value_counts())import pyefd
import matplotlib.pyplot as plt
from PIL import Image
from skimage import measure
from sklearn.decomposition import PCA
from bidi.algorithm import get_display
rtl = get_display
# EFA על כל הכדים
records = []
for _, row in samples.iterrows():
path = f"Ogame_GMM/Ogame_Profiles_All/{row['Sample ID']}.png"
outline = extract_outline(path)
if outline is None: continue
y, x = outline[:, 0], outline[:, 1]
coeffs = pyefd.elliptic_fourier_descriptors(
np.column_stack([x, y]), order=20, normalize=True)
records.append({"id": row["Sample ID"],
"context": row["context"],
**{f"e{i}": v for i,v in enumerate(coeffs.ravel())}})
df = pd.DataFrame(records)
X = df[[c for c in df.columns if c.startswith("e")]].values
pca = PCA()
scores = pca.fit_transform(X)
var = pca.explained_variance_ratio_ * 100fig, ax = plt.subplots(figsize=(9, 7))
colors = {"כבשן": "#e07b39", "קבורה": "#4a90c4"}
for ctx, c in colors.items():
mask = df["context"] == ctx
ax.scatter(scores[mask, 0], scores[mask, 1],
c=c, label=rtl(f"{ctx} (n={mask.sum()})"),
s=50, alpha=0.75, edgecolors='white', lw=0.5)
ax.set_xlabel(f"PC1 ({var[0]:.1f}%)")
ax.set_ylabel(f"PC2 ({var[1]:.1f}%)")
ax.set_title(rtl("מרחב הצורות — כדי Ogame: כבשן לעומת קבורה"))
ax.legend(fontsize=12)
plt.tight_layout()
plt.show()מרחב הצורות — כדי Ogame: כבשן לעומת קבורה (n=243)
PC1 מסביר 95.9% מהשונות — הפרדה ברורה בין הקשרים.
כבשן FR (89) לעומת כבשן KM (48)
גם בין שני כבשנים שונים — שונות מינימלית בצורה.
הערה
זוהי שאלת מטלה 5 — 300 מילים, בצירוף הגרף.
from scipy.stats import mannwhitneyu
kiln = scores[df["context"] == "כבשן", 0]
burial = scores[df["context"] == "קבורה", 0]
stat, p = mannwhitneyu(kiln, burial, alternative='two-sided')
print(f"U = {stat:.1f}, p = {p:.4f}")קראו: מודול 11 — בדיקת השערות
צורה בזמן — שי גורדין, אוניברסיטת אריאל