ממדידה לקואורדינטות

שבוע 2 — איסוף נתוני צורה

שי גורדין | אוניברסיטת אריאל

מהיכן מגיעים נתוני הצורה?

  • מדידות קליפר — אורכים, רוחבים, זוויות
  • תמונות דיגיטליות — צילום סטנדרטי + תוכנה
  • סריקה תלת-ממדית — ענן נקודות

בקורס זה: תמונות דיגיטליות → ציוני דרך / קווי מתאר

מה הם ציוני דרך? (Landmarks)

ציוני דרך הם נקודות הניתנות להגדרה מדויקת על כל הפרטים בדגימה.

שלושה סוגים:

  • סוג I — נקודות אנטומיות ברורות (חיבור עצמות)
  • סוג II — נקודות גיאומטריות מקסימום/מינימום עקמומיות
  • סוג III — נקודות על מרחק שווה לאורך מתאר

אזהרה

כל ציון דרך צריך להיות ניתן לאיתור על כל פרט בדגימה — ובאותו מיקום ביולוגי/תפקודי.

כללי הצילום הסטנדרטי

  1. מישור אחיד — החפץ שטוח, בניצב לעדשה
  2. סקאלה — סרגל מצולם לצד החפץ
  3. רקע אחיד — לבן או שחור
  4. תאורה אחידה — ללא צללים חדים
  5. רזולוציה גבוהה — לפחות 300 dpi

עצה

שגיאה בצילום = שגיאה שמתרבה על פני מאות מדידות. השקיעו זמן בפרוטוקול.

תוכנת FIJI / ImageJ — סקירה

FIJI = ImageJ + plugins pre-installed
Free, open source, runs on all platforms

שלבי העבודה ב-FIJI:

  1. פתחו תמונה: File → Open
  2. הגדירו קנה מידה: Analyze → Set Scale
  3. סמנו ציוני דרך: Multi-Point Tool
  4. שמרו: File → Save As → XY Coordinates

דוגמה: מטבע הדריאנוס

8 ציוני דרך על מטבע:

# מיקום
1 קצה כתר עליון
2 גבת עין
3 קצה אף
4 שפה תחתונה
5 סנטר
6–8 שולי המטבע (3 כיוונים)

הערה

ציוני דרך 1–5 הם ביולוגיים (סוג I).
ציוני דרך 6–8 הם גיאומטריים (סוג III).

מבנה קובץ TPS

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 הוא הפורמט הסטנדרטי לנתוני ציוני דרך בארכאולוגיה וביולוגיה.

טעינת TPS ב-Python

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]} ציוני דרך כל אחד")

שגיאות נפוצות באיסוף נתונים

  • שגיאת דיגיטציה — סימון ציון דרך במיקום שגוי
  • הקצאה שגויה — ציון דרך 3 על פרט A = ציון דרך 4 על פרט B
  • שגיאת סקאלה — שכחנו לכייל לפני המדידה
  • זווית שונה — חפץ לא מונח אחיד בין צילומים

אזהרה

בדקו תמיד: האם ציוני הדרך עקביים בין כל הפרטים?

לשיעור הבא

שאלות?