Best practice

Drawer digitization

Involved Modules:

Als Beispiel analog der Libellensammlung an der ZSM mit Ausweisung von Gesamtkästen und Bereichen innerhalb der Kästen.

Jeder Kasten entspricht einer Teilsammlung. Ebenso werden Bereiche innerhalb eines Kastens als Teilsammlung erfasst. Dies kann beispielsweise der Bereich einer bestimmten Art innerhalb des Kastens sein. Für die Kästen werden hierzu Bilder hinterlegt die als Pläne gespeichert werden. Dabei gibt es für jeden Kasten immer nur einen aktuell gültigen Plan. Die einzelnen Objekte innerhalb des Kastens werden oft nur in Ausnahmefällen, beispielsweise wenn ein Typ erfasst wird, als einzelnes Specimen erfasst. Ansonsten werden nur Angaben über die Anzahl der enthaltenen Objekte eingetragen.

Anleitungen:

Kastendigitalisierung - Einführung

Video starten

  • Hierarchie für Verwaltung und Räumlichkeiten
  • Import der Kästen mit Wizard
  • Darstellung nach Import
  • Import des Inhalts mit Wizard
  • 2 Hierarchien
  • Bereiche innerhalb eines Kastens

Kastendigitalisierung - Bereich

Video starten

  • Vorstellung der Beispieldaten
  • Einblenden des Sammlungsinhalts
  • Anlegung eines Breichs in Kasten
  • Verschieben des Inhalts
  • Markierung des Bereichs
  • Anlegung von Unterbereichen
  • Verschieben des Inhalts
  • Markierung der Unterbereiche
  • Ansicht im Hauptformular

Import

Im folgenden Beispiel wird der Import von Daten aus einer csv Datei expemplarisch anhand von Insektenkästen dargestellt.

  • Import der Grundlegenden Hierarchie der Sammlung
  • Import der Insektenkästen und deren Abbildungen
  • Import der den Arten zugeordneten Bereiche
  • Import der Arten

Sammlungs-hierarchie

Sofern noch nicht vorhanden sollte als erster Schritt die grundlegende Hierarchie der Sammlung importiert oder angelegt werden. Details dazu finden sich in den Kapiteln Collection und Import wizard.

Insektenkästen

Als nächster Schritt werden die Daten zu den Insektenkästen einschliesslich der zugehörigen Bilder importiert. Die Bilder werden dabei als Plan wie in Kapitel Plan verwendet. Dabei ist die Größe des Bilds in Pixeln bekannt. Es kann immer nur ein Bild pro Kasten als Plan dienen.

Zuordnung der Daten zu den Feldern in der Tabelle Collection
  • Kennung des Insektenkastens → CollectionName
    • dieser muss innerhalb der Datenbank eindeutig sein, es bietet sich an eine Kastennummer oder ähnliches zusammen mit einem weiteren Merkmal wie Regal, Raum oder Sammlungsbezeichnung zu verwenden.
  • ID der übergeordneten Sammlung → LocationParentID und / oder CollectionParentID
    • damit wird der Kasten z.B. dem Regal sowie der administrativen Sammlung zugeordnet
  • Pfad des Bilds → LocationPlan
    • dies sollte ist eine URL sein.
  • Breite des Bilds → LocationPlanWidth
    • sofern bekannt - damit lassen sich die Größen der im Bild dargestellten Objekte ermitteln
  • Typ des Bilds → Type (= drawer)
    • der Typ bestimmt z.B. das Symbol das dafür in DiversityColletion dargestellt wird.

Zugeordneten Bereiche

Sofern wie in diesem Beispiel die notwendigen Informationen vorhanden sind, kann als nächster Schritt der Import der den Arten zugeordneten Bereiche erfolgen. Hierzu müssen die in den Daten angegebenen Punkte in eine Geometrie konvertiert werden wie sie in der Datenbank verwendet wird.

Ein typisches Format ist ein Rechteck das in der Datenbank als Polygon definiert wird. Die Eckpunkte des Polygons werden durch die X- und Y-Koordinaten des Bildes repräsentiert. Die Eckpunkte werden in der angegebenen Reihenfolge durch Linen verbunden:

POLYGON ((20 80, 20 50, 100 50, 100 80, 20 80))

Der im Import verwendete Wert hierfür wäre:

geometry::STGeomFromText('POLYGON ((20 80, 20 50, 100 50, 100 80, 20 80))', 0)

the values correspond to left bottom, left top, right top, right bottom, left bottom where the 0/0 point for the coordinates is in the top left corner of the image. The sequence of the points may be counter-clockwise or clockwise as in this example. For the type geometry the direction does not matter. For the type geography it must be counter-clockwise.

In Angaben in den Daten müssen in dieses Format konvertiert werden um den Bereich im Bild korrekt darzustellen. Das Vorgehen hierzu ist u.a. im Kapitel Transformation beschrieben.

Zuordnung der Daten zu den Feldern in der Tabelle Collection

Ein Bereich im Kasten wird als “area” ausgewiesen. Dabei handelt es sich wiederum um eine “Collection” bzw. Sammlung die in der Hierarchie den Kasten als übergeordnete Sammlung hat. Es wird für diesen Bereich kein extra Bild bzw.- Plan verwendet. Die Koordinaten beziehen sich auf den Plan der übergeordneten Sammlung.

  • Kennung des Bereichs im Insektenkasten → CollectionName
    • dieser muss innerhalb der Datenbank eindeutig sein, e.g. die Kennung des Kasten + die Art
  • ID des Insektenkastens → LocationParentID und / oder CollectionParentID
  • ID der Sammlung → CollectionParentID
  • Typ des Bilds → Type (= area)
  • Bereich im Bild → LocationGeometry
    • Diese muss aus den Koordinaten zusammengesetzt und in das in der Datenbank verwendete Format gebracht werden:
    • geometry::STGeomFromText('POLYGON (( → Prefix
    • 20 80, 20 50, 100 50, 100 80, 20 80 ← Extrahiert aus Koordinaten
      • 20 + ' ' + 80 + ', ' + … ← Koordinaten
        • X-Koordinate + ’ ’ + Y-Koordinate von Punkt 1
        • ‘, '
        • X-Koordinate + ’ ’ + Y-Koordinate von Punkt 2
        • X-Koordinate + ’ ’ + Y-Koordinate von Punkt 1
    • ))', 0) → Postfix

Diagramm zu Bereichen

---
title: Diagram for dataflow from file to database
---
graph LR;
    CSV{<i class="fa-fw fas fa-file"></i><br>File}
    CollectionName[<i class="fa-fw fas fa-columns"></i> Column<br>*CollectionName*]
    LocationGeometry[<i class="fa-fw fas fa-columns"></i> Column<br>*LocationGeometry*]
    Type[<i class="fa-fw fas fa-columns"></i> Column<br>*Type*]
    Bereich(Naming of area)
    Typ(Typ of image <br> = area) --> Type
    Top(<i class="fa-fw fas fa-arrow-up"></i><br>Top)
    Bottom(<i class="fa-fw fas fa-arrow-down"></i><br>Bottom)
    Left(<i class="fa-fw fas fa-arrow-left"></i><br>Left)
    Right(<i class="fa-fw fas fa-arrow-right"></i><br>Right)
    Prefix(Prefix <br>= geometry::...)
    Postfix(Postfix<br>= #41;#41;', 0#41;)
    Collection[<i class="fa-fw fas fa-table"></i> Table<br>***Collection***]
    Punkt1(<i class="fa-fw fas fa-map-marker-alt"></i><br>Point 1<br><i class="fa-fw fas fa-arrow-right"></i>+<i class="fa-fw fas fa-arrow-up"></i><br>= **&urtri;**)
    Punkt2(<i class="fa-fw fas fa-map-marker-alt"></i><br>Point 2<br><i class="fa-fw fas fa-arrow-left"></i>+<i class="fa-fw fas fa-arrow-up"></i><br>= **&ultri;**)
    Punkt3(<i class="fa-fw fas fa-map-marker-alt"></i><br>Point 3<br><i class="fa-fw fas fa-arrow-left"></i>+<i class="fa-fw fas fa-arrow-down"></i><br>= **&lltri;**)
    Punkt4(<i class="fa-fw fas fa-map-marker-alt"></i><br>Point 4<br><i class="fa-fw fas fa-arrow-right"></i>+<i class="fa-fw fas fa-arrow-down"></i><br>= **#9727;**)
    Punkt5(<i class="fa-fw fas fa-map-marker-alt"></i><br>Point 5<br><i class="fa-fw fas fa-arrow-right"></i>+<i class="fa-fw fas fa-arrow-up"></i><br>= **&urtri;<br>&rarr;** Point 1)

    CSV --> Bereich
    Bereich --> CollectionName
    CSV --> Top
    CSV -->Bottom
    CSV --> Left
    CSV --> Right
    
    Top --> Punkt1
    Right --> Punkt1
    Top  --> Punkt2
    Left  --> Punkt2
    Bottom  --> Punkt3
    Left  --> Punkt3
    Right  --> Punkt4
    Bottom  --> Punkt4
    Top --> Punkt5
    Right --> Punkt5
    Punkt1 --> LocationGeometry
    Punkt2  --> LocationGeometry
    Punkt3  --> LocationGeometry
    Punkt4  --> LocationGeometry
    Punkt5 --> LocationGeometry

    Prefix --> Punkt1
    Postfix   --> Punkt5
    
    LocationGeometry --> Collection
    CollectionName --> Collection
    Type --> Collection

Nach dem Import der Bereiche muss man diese mit der Transfer to Collection Funktion noch den Kästen zuordnen wie in Kapitel Collection beschrieben.

Arten

Als letzter Schritt werden die Informationen zu den Arten importiert und mit den zugeordneten Bereichen in der Sammlung verknüpft. Die Arten werden als CollectionSpecimen verwaltet und bestehen aus einem oder mehreren Teilen, den “Parts”. Jeder Teil kann einer Sammlung zugeodnet werden. Die Sammlung ist der oben definierte Bereich im Kasten. Wenn in einem Bereich mehrere Individuen sind, sollte man deren Anzahl als “Stock” mit eintragen. Die Zuordnung des Taxonomischen Namens erfolgt in der Tabelle Identification, in der die Bestimmung des Taxon, d.h. der taxonomische Name mit dem Teil/Part des Specimens verknüpft wird.

Zuordnung der Daten zu den Tabellen und Feldern
  • CollectionSpecimen
    • Kennung des Bereichs im Insektenkasten → AccessionNumber
      • sollte innerhalb der Datenbank eindeutig sein.
  • CollectionSpecimenPart
    • ID des Bereichs im Insektenkasten → CollectionID
    • Typ des Materials → MaterialCategory (= pinned specimen)
    • Anzahl der Individuen → Stock
  • IdentificationUnit
    • Taxonomische Gruppe → TaxonomicGroup (= insect)
  • Identification
    • Name des Taxons → TaxonomicName
  • IdentificationUnitInPart
    • SpecimenPartID aus CollectionSpecimenPart
    • IdentificationUnitID aus IdentificationUnit

Erfassung von einzelnen Individuen

Nach dem Import können einzelne Individuen als separate Specimen wie oben dargestellt erfasst werden. Dazu kann man das Original kopieren und dann die neuen Informationen wie e.g. Fundort, Sammler etc. eintragen die in der Regel nur für einzelne Individuen verfügbar sind.