שבוע 2 — איסוף נתוני צורה
בקורס זה: תמונות דיגיטליות → ציוני דרך / קווי מתאר
ציוני דרך הם נקודות הניתנות להגדרה מדויקת על כל הפרטים בדגימה.
שלושה סוגים:
אזהרה
כל ציון דרך צריך להיות ניתן לאיתור על כל פרט בדגימה — ובאותו מיקום ביולוגי/תפקודי.
עצה
שגיאה בצילום = שגיאה שמתרבה על פני מאות מדידות. השקיעו זמן בפרוטוקול.
שלבי העבודה ב-FIJI:
File → OpenAnalyze → Set ScaleMulti-Point ToolFile → Save As → XY Coordinates8 ציוני דרך על מטבע:
| # | מיקום |
|---|---|
| 1 | קצה כתר עליון |
| 2 | גבת עין |
| 3 | קצה אף |
| 4 | שפה תחתונה |
| 5 | סנטר |
| 6–8 | שולי המטבע (3 כיוונים) |
הערה
ציוני דרך 1–5 הם ביולוגיים (סוג I).
ציוני דרך 6–8 הם גיאומטריים (סוג III).
LM=8
0.142 0.891
0.378 0.734
0.521 0.612
0.489 0.398
0.401 0.287
0.891 0.500
0.500 0.109
0.109 0.500
IMAGE=hadrian_001.jpg
ID=1
פורמט TPS הוא הפורמט הסטנדרטי לנתוני ציוני דרך בארכאולוגיה וביולוגיה.
import numpy as np
def read_tps(filepath):
"""קורא קובץ TPS ומחזיר מערך של ציוני דרך."""
specimens = []
with open(filepath) as f:
lines = f.readlines()
i = 0
while i < len(lines):
if lines[i].startswith("LM="):
n = int(lines[i].split("=")[1])
coords = []
for j in range(1, n + 1):
x, y = map(float, lines[i + j].split())
coords.append([x, y])
specimens.append(np.array(coords))
i += n + 1
else:
i += 1
return np.array(specimens)
# שימוש:
landmarks = read_tps("data/coins/DEN_Hadrian/Hadrian.TPS")
print(f"נטענו {len(landmarks)} מטבעות, {landmarks.shape[1]} ציוני דרך כל אחד")אזהרה
בדקו תמיד: האם ציוני הדרך עקביים בין כל הפרטים?
צורה בזמן — שי גורדין, אוניברסיטת אריאל