Workflows
Drawer digitization
Involved Modules:
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.
Beispieldaten
Die Schritte dieses und der folgenden Kapitel können anhand der folgenden Beispieldaten nachvollzogen werden.
Damit das Beispiel funktioniert müssen bestimmte Anpassungen vorgenommen werden:
- Sofern der Pfad für das Bild (D:\Projekte\Maringen\ZSM-CD-0000130.jpg) nicht realisierbar ist, muss er im Textfile Cicindelidae_130.txt angepasst werden.
- Sofern die Sammlung mit dem Namen Rack 3/4 nicht existiert muss diese vorher angelegt werden.
(Bitte rechte Maustaste - Ziel speichern unter verwenden um die Dateien lokal zu speichern):
Text file containing the data for the import.
Image file of the insect box.
Schema drawer for the import of the insect box.
Schema areas for the imort of the areas within the insect box.
Schema specimen for the import of the specimen.
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 dem übergeordneten Ort wie z.B. dem Regal sowie gegebenenfalls der administrativen Sammlung (e.g. Coleoptera) zugeordnet. Letzteres ist in der Regel nicht notwendig wenn innerhalb der Kästen die einzelnen Arten der administrativen Sammlung zugeordnet werden.
- Pfad des Bilds → LocationPlan
- dies sollte eine URL sein. Falls der Plan nur lokal vorliegt verwendet man den vollständigen Dateipfad.
- Breite des Bilds → LocationPlanWidth
- sofern bekannt - damit lassen sich die Größen der im Bild dargestellten Objekte ermitteln
- Typ der Sammlung → Type (= drawer)
- der Typ bestimmt z.B. das Symbol das dafür in DiversityColletion dargestellt wird.
Video anhand der Beispieldaten:
(Ausgangslage mit Aufbau der Sammlung, Bild des Insektenkastens, Daten als Textdatei, 2 Hierarchien: administrativ und örtlich, für Pläne örtliche Hierarchie, Import: File, Schema, Transfer der Daten aus Textdatei in Datenbank, nur Location Hierarchie: Übersetzung von Text in Datei in ID der Sammlung, Import, Darstellung der Daten nach Import mit Bild und Einordnung in Hierarchie)
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.
Der Nullpunkt (X = 0, Y = 0) befindet sich dabei in der oberen linken Ecke des Bilds. Die Y-Koordinaten verweisen dabei anders als gewohnt nach unten. In einem normalen Koordinatensystem wären diese also negativ.
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. Ein Beispiel wären folgende Werte:
- X1 = 20
- Y1 = 80
- X2 = 20
- Y2 = 50
- X3 = 100
- Y3 = 50
- X4 = 100
- Y4 = 80
Für ein Polygon muss der erste Punkt (X1/Y1) als letzter Punkt am Ende eingefügt werden um das Polygon zu schliessen. Das ergibt folgenden Wert:
POLYGON ((20 80, 20 50, 100 50, 100 80, 20 80))
Der im Import muss dies mit einem Vor- (= geometry::STGeomFromText(') und Nachspann (= ', 0)) in eine in der Datenbank verwendete Syntax konvertiert werden:
geometry::STGeomFromText('POLYGON ((20 80, 20 50, 100 50, 100 80, 20 80))', 0)
Die Reihenfolge der Punkte sind für eine Geometrie nicht von Bedeutung. Für eine Geographie ist die Reihenfolge immer gegen den Uhrzeigersinn.
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 (+ Bereich falls die Art im Kasten mehrfach vorhanden ist)
- ID des Insektenkastens → LocationParentID für die räumliche Zuordnung. Dies ist zwingend notwendig wenn Koordinaten für die Bereiche angegeben werden die sich auf das Bild (bzw. den Plan) des Insektenkastens beziehen.
- ID der administrativen Sammlung → CollectionParentID (in diesem Beispiel “Coleoptera”)
- Typ des Bilds → Type (= area)
- Bereich im Bild → LocationGeometry
- Diese muss wie oben beschrieben aus den Koordinaten zusammengesetzt und in das in der Datenbank verwendete Format gebracht werden:
geometry::STGeomFromText('POLYGON ((→ Prefix20 80, 20 50, 100 50, 100 80, 20 80← Extrahiert aus Koordinaten20+' '+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>= **◹**)
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>= **◸**)
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>= **◺**)
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>= **◹<br>→** 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
Video anhand der Beispieldaten: Areas import
(Ausgangslage mit Sammlungshierarchie, Textdatei mit Koordinaten, Import von Daten in Collection, Schema, Verknüpfung mit administrativer Hierarchie, Übersetzung von Text in der Datei in ID, Konstruktion des Rechtecks für die Bereiche mit den Punktdaten aus der Datei, Pre- und Postfix, Test des Imports, Import der Daten, Darstellung in der Sammlungsverwaltung, Bezeichner der Bereiche in der Übersicht)
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.
- Kennung des Bereichs im Insektenkasten → AccessionNumber
- CollectionSpecimenPart
- ID des Bereichs im Insektenkasten → CollectionID
- Typ des Materials → MaterialCategory (= pinned specimen)
- Anzahl der Individuen → Stock
- IdentificationUnit
- Taxonomische Gruppe → TaxonomicGroup (e.g. = Coleptera)
- Identification
- Name des Taxons → TaxonomicName
- IdentificationUnitInPart
- SpecimenPartID aus CollectionSpecimenPart
- IdentificationUnitID aus IdentificationUnit
Video anhand der Beispieldaten:
(Ausgangslage in der Datenbank, Import der Specimen: Textdatei und Schema, Erläuterung des Schemas, Übersetzung des Namens des Bereichs in ID, Zusammensetzung der Belegnummer, Daten für Hierarchie, Bestimmung, Datawithholding, Stock; Test des Imports mit Erläuterung; Import; Darstellung der Specimendaten; Beispieldaten im Manual)
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.
Verwaltung von Teilbereichen
Als weiteres Beispiel die Verwaltung einer Libellensammlung 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.
Kastendigitalisierung - Einführung
- Inhalt der Anleitung im Video:
- 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
- Inhalt der Anleitung im Video:
- 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