GUC

Bereitstellung von Daten aus der DiversityWorkbench für die GUC

Anmelden

Beim Start des Programms müssen zunächst die Login Daten eingegeben werden.

Danach startet das Programm mit dem Hauptfenster.

Dec 18, 2024

Subsections of GUC

GUC

Download

Das Setup für das Programm liegt bereit unter:

8.1.2 (2025-03-20)

Download

  • Artcode: SQL-Server Funktionen überarbeitet und Aufruf des Transfers der Merkmale in Client integriert.
    • Bitte evtl. vorhandene Datei sqlite.db im Userverzeichnis .../Users/[Login]/DiversityWorkbench/GUC/Artcode löschen oder umbenennen damit der Export korrekt arbeitet.

8.1.1 (2024-12-04)

Download

  • Artcode: Neue Spalten für RL-A (Gefährdung nach Roter Liste Bayern 2024 - Alpen) und RL-HB .
    • Bitte evtl. vorhandene Datei sqlite.db im Userverzeichnis .../Users/[Login]/DiversityWorkbench/GUC/Artcode löschen oder umbenennen damit die Spalten neu erzeugt werden.

8.1.0 (2024-02-02)

Download

  • Bugfix Export nach SQLite

8.0.9 (2023-12-27)

Download

  • Bugfix Export nach SQLite

8.0.8 (2023-12-19)

Download

  • Redesign von Formular für Artcode
  • Anzeige letzter Änderung in Daten

8.0.7 (2023-11-30)

Download

  • Bugfix Export

8.0.6 (2023-11-28)

Download

  • Path for export files changed
  • Artcode including all datasets

8.0.5 (2023-11-27)

Download

  • TK25 including log
  • Login changed

8.0.4 (2023-11-24)

Download

  • Removal of Password string after encryption
  • Log zusammen mit anderen Tabellen anzeigen
  • Bugfixes creating the SQLite database
  • Button to open the SQLite database

8.0.3 (2023-11-24)

Download

  • Bugfix Login
  • Password encrypted

8.0.2 (2023-11-23)

Download

  • async await zum Beschleunigen des Ladens der Daten
  • ToDo: Die Seiten des Manuals werden noch nicht erkannt
  • ToDo: das Manual wird nachgezogen wenn alles wie gewünscht funktioniert

8.0.1 (2023-11-21)

Download

  • Anpassung der Prozedur zum Export der Daten
  • Überprüfung des Imports

Internals

For users that need more detailed information about the software including database design etc.

Hauptfunktion TransferToGUC

Die Hauptfunktion zum Übertrag der Daten startet eine Prozedur (TransferToGUC) in der Datenbank. Diese ruft nacheinander andere Prozeduren auf um die Daten in die entsprechenden Tabellen zu transferieren. Unten findet sich eine Übersicht der einzelnen Schritte.


graph TD;
    TransferToGUC[<i class="fa-fw fas fa-arrow-alt-circle-down"></i> Hauptprozedur zum Übertrag der Daten] -->Festhalten_Zeitpunkts(<i class="fa-fw fas fa-stopwatch"></i> Festhalten des Zeitpunkts) -->LoeschenTabellen(<i class="fa-fw fas fa-trash"></i> Löschen der Tabellen:<br>_Status, NACHWEIS, FUNDORT, SAMMLER) -->fundort_datum_letzte_Aenderung_dwb[<i class="fa-fw fas fa-database"></i> Einlesen der Daten in<br>_fundort_datum_letzte_Aenderung_dwb] -->Status[<i class="fa-fw fas fa-database"></i> Einlesen der Daten in<br>_Status] -->Loeschen_Identification(<i class="fa-fw fas fa-trash"></i> Löschen der Tabelle:<br>_Identification)

Artcode

PROCEDURE GUC_AnpassungArtcodeTemp

-- setting the timestamp
delete from [dbo].[Artcode_LastChange] where Tabelle = 'ArtcodeTemp'

TRUNCATE TABLE [dbo].[Artcode_ArtID];

INSERT INTO  [dbo].[Artcode_ArtID](NameID)
select T.ID
FROM ArtcodeTemp AS T
where T.Art_ID IS NULL

-- Setting the Art_ID for missing names
UPDATE T SET T.Art_ID = '9P0#'  + REPLICATE('0', 6 - LEN(CAST(A.ID AS varchar))) + CAST(A.ID AS varchar)
-- select T.Art_ID, '9P0#'  + REPLICATE('0', 6 - LEN(CAST(A.ID AS varchar))) + CAST(A.ID AS varchar)
FROM ArtcodeTemp AS T INNER JOIN [Artcode_ArtID] A ON T.ID = A.NameId
WHERE T.Art_ID IS NULL


-- Setting the family
TRUNCATE TABLE [dbo].[Artcode_Family]
INSERT INTO [dbo].[Artcode_Family]
           ([NameID]
           ,[FamilyNameID]
           ,[Family])
SELECT 
 T_0.NameID,
CASE WHEN T_1.TaxonomicRank = 'fam.' THEN T_1.NameID 
ELSE 
CASE WHEN T_2.TaxonomicRank = 'fam.' AND T_2.IgnoreButKeepForReference = 0 THEN T_2.NameID 
ELSE 
CASE WHEN T_3.TaxonomicRank = 'fam.' AND T_3.IgnoreButKeepForReference = 0 AND H_2.IgnoreButKeepForReference = 0 
THEN T_3.NameID ELSE 
CASE WHEN T_4.TaxonomicRank = 'fam.' AND T_4.IgnoreButKeepForReference = 0 AND H_3.IgnoreButKeepForReference = 0 
THEN T_4.NameID 
ELSE NULL 
END END END END AS FamilyNameID, 
CASE WHEN T_1.TaxonomicRank = 'fam.' THEN T_1.GenusOrSupragenericName ELSE CASE WHEN T_2.TaxonomicRank = 'fam.' AND 
T_2.IgnoreButKeepForReference = 0 THEN T_2.GenusOrSupragenericName ELSE CASE WHEN T_3.TaxonomicRank = 'fam.' AND 
T_3.IgnoreButKeepForReference = 0 AND 
H_2.IgnoreButKeepForReference = 0 THEN T_3.GenusOrSupragenericName ELSE CASE WHEN T_4.TaxonomicRank = 'fam.' AND 
T_4.IgnoreButKeepForReference = 0 AND H_3.IgnoreButKeepForReference = 0 THEN T_4.GenusOrSupragenericName ELSE NULL 
END END END END AS Family
FROM dbo.TaxonHierarchy AS H_3 INNER JOIN
dbo.TaxonName AS T_4 ON H_3.NameParentID = T_4.NameID AND H_3.ProjectID = 1128 RIGHT OUTER JOIN
dbo.TaxonName AS T_3 INNER JOIN
dbo.TaxonHierarchy AS H_2 ON T_3.NameID = H_2.NameParentID AND H_2.ProjectID = 1128 ON 
H_3.NameID = T_3.NameID RIGHT OUTER JOIN
dbo.TaxonHierarchy AS H_1 INNER JOIN
dbo.TaxonName AS T_2 ON H_1.NameParentID = T_2.NameID AND H_1.ProjectID = 1128 RIGHT OUTER JOIN
dbo.TaxonHierarchy AS H_0 INNER JOIN
dbo.TaxonName AS T_0 ON H_0.NameID = T_0.NameID AND H_0.ProjectID = 1128 INNER JOIN
dbo.TaxonName AS T_1 ON H_0.NameParentID = T_1.NameID AND H_0.ProjectID = 1128 ON H_1.NameID = T_1.NameID AND H_1.ProjectID = 1128 ON 
H_2.NameID = T_2.NameID AND H_2.ProjectID = 1128

-- family for synonyms
INSERT INTO [dbo].[Artcode_Family]
           ([NameID]
           ,[FamilyNameID]
           ,[Family])
SELECT S.NameID, F.FamilyNameID, F.Family
FROM [Artcode_Family] F
INNER JOIN dbo.TaxonSynonymy S ON S.SynNameID = F.NameID AND S.ProjectID = 1128
AND NOT EXISTS(SELECT * FROM [Artcode_Family] A WHERE A.NameID = S.NameID)

UPDATE  T SET T.fam = UPPER(SUBSTRING(F.Family, 1, 3)), T.id_fam = AF.Art_ID
-- select  T.fam, UPPER(SUBSTRING(F.Family, 1, 3)), T.id_fam, AF.Art_ID
FROM ArtcodeTemp AS T INNER JOIN Artcode_Family F ON T.ID = F.NameID
INNER JOIN ArtcodeTemp AS AF ON AF.ID = F.FamilyNameID

--Ausgabesperre, Statistiksperre, Eingabesperre, SAP
UPDATE  T SET T.Ausgabesperre = NULL, T.Statistiksperre = NULL, T.Eingabesperre = NULL, T.saP = NULL
-- select T.Ausgabesperre, Statistiksperre, Eingabesperre, SAP
FROM ArtcodeTemp AS T WHERE T.Ausgabesperre = 0

-- setting the rank
UPDATE  T SET T.rang = R.rang_id
-- select T.rang, R.rang_id
FROM ArtcodeTemp AS T INNER JOIN [dbo].[Artcode_Rang] R ON R.Code = T.TaxonomicRank

-- setting the rank for synonyms
UPDATE  T SET T.rang = 'syn'
-- select  T.rang, 'syn'
FROM ArtcodeTemp AS T INNER JOIN TaxonSynonymy S ON T.ID = S.NameID and S.ProjectID = 1128 --and (T.rang is null or T.rang = '')

-- setting the Art_ID_Gueltig for synonyms
UPDATE  T SET T.Art_ID_Gueltig = A.Art_ID
-- select T.Art_ID, T.Art_ID_Gueltig, A.Art_ID
FROM ArtcodeTemp AS T INNER JOIN TaxonSynonymy S ON T.ID = S.NameID and S.ProjectID = 1128 AND T.Art_ID_Gueltig IS NULL
INNER JOIN ArtcodeTemp A ON S.SynNameID = A.ID

-- Eintrag  Art_ID_Gueltig wo er fehlt
UPDATE A SET A.Art_ID_Gueltig =  CASE WHEN E.ExternalNameURI IS NULL THEN NULL ELSE E.ExternalNameURI END
-- SELECT A.Art_ID_Gueltig,  CASE WHEN E.ExternalNameURI IS NULL THEN NULL ELSE E.ExternalNameURI END AS Art_ID_Gueltig_E
FROM            dbo.TaxonNameExternalID AS E INNER JOIN
dbo.TaxonName AS N ON E.NameID = N.NameID AND E.ExternalDatabaseID = 1003 AND  (N.IgnoreButKeepForReference = 0) 
INNER JOIN ArtcodeTemp AS A ON A.ID = N.NameID AND A.Art_ID_Gueltig  IS NULL


-- setting the Autor_Pos
UPDATE  T SET T.Autor_Pos = 1
-- select T.Autor_Pos, 1,  T.rang, N.TaxonNameCache, N.TaxonomicRank, ar.DisplayOrder
FROM ArtcodeTemp AS T
inner join TaxonName N on T.id = N.NameID and N.SpeciesEpithet = N.InfraspecificEpithet and N.BasionymAuthors <> ''
inner join Artcode_Rang as AR on N.TaxonomicRank = ar.Code and ar.DisplayOrder < 170

-- setting the Autor_Pos
UPDATE  T SET T.Autor_Pos = 2
-- select T.Autor_Pos, 2,  T.rang, N.TaxonNameCache, N.TaxonomicRank, ar.DisplayOrder, T.Autor
FROM ArtcodeTemp AS T
inner join TaxonName N on T.id = N.NameID and N.SpeciesEpithet like 'x %' and N.BasionymAuthors <> ''
inner join Artcode_Rang as AR on N.TaxonomicRank = ar.Code and ar.DisplayOrder < 170


-- setting Verantwortung Bayerns
UPDATE  T SET T.VeraB = A.AnalysisValue
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 5

-- setting Verantwortung Deutschlands
UPDATE  T SET T.VeraD = A.AnalysisValue
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 4

-- setting Gefährdung nach Roter Liste Bayern 2003
UPDATE  T SET T.RLB  = A.AnalysisValue
-- select T.RLB, A.AnalysisValue
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 1

-- setting Gefährung nach Roter Liste Deutschland 2018
UPDATE  T SET T.RLD  = A.AnalysisValue
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 62

-- setting Schutzstatus in Bayern
UPDATE  T SET T.Schutz_BNatSchG = case when A.AnalysisValue = '§§' then 's' else 'b' end
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 7


UPDATE  T SET T.sensu  = N.NonNomenclaturalNameSuffix
-- select  T.sensu, N.NonNomenclaturalNameSuffix
FROM ArtcodeTemp AS T INNER JOIN [TaxonName] N ON T.ID = N.NameID  and N.NonNomenclaturalNameSuffix <> ''



-- setting Schutzstatus in Bayern
UPDATE  T SET T.Schutz_BNatSchG = case when A.AnalysisValue = '§§' then 's' else 'b' end
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 7


-- setting id_agg
UPDATE  T SET T.id_agg = case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
-- select T.id_agg, case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonHierarchy] H ON T.ID = H.NameID AND H.ProjectID = 1128
inner join ArtcodeTemp P on H.NameParentID = P.ID
inner join dbo.TaxonAcceptedName A on T.id = A.NameID and A.ProjectID = 1128

-- setting id_agg for not accepted names
UPDATE  T SET T.id_agg = case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
-- select T.id_agg, case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonHierarchy] H ON T.ID = H.NameID AND H.ProjectID = 1128
inner join ArtcodeTemp P on H.NameParentID = P.ID
WHERE T.id_agg IS NULL OR T.id_agg = ''

-- setting id_agg for not synynyms missing a hierarchy
UPDATE  T SET T.id_agg = case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
-- select T.id_agg, case when P.Art_ID_Gueltig is null then P.Art_ID else P.Art_ID_Gueltig end
FROM ArtcodeTemp AS T 
INNER JOIN [dbo].[TaxonSynonymy] S ON S.NameID = T.ID AND S.ProjectID = 1128
INNER JOIN [dbo].[TaxonHierarchy] H ON S.SynNameID = H.NameID AND H.ProjectID = 1128
inner join ArtcodeTemp P on H.NameParentID = P.ID
WHERE T.id_agg IS NULL OR T.id_agg = ''


-- setting BOLD_ID 
UPDATE  T SET T.BOLD_ID  = E.ExternalNameURI
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameExternalID] E ON T.ID = E.NameID and E.ExternalDatabaseID = 1010


-- setting Bayernstatus 
UPDATE  T SET T.staby = B.staby
FROM ArtcodeTemp AS T INNER JOIN [dbo].[TaxonNameListAnalysis] A ON T.ID = A.NameID AND A.AnalysisID = 2
INNER JOIN [dbo].[Artcode_Bayernstatus] B ON B.[AnalysisValue] = A.AnalysisValue

INSERT INTO [dbo].[Artcode_LastChange] ([Tabelle])
     VALUES           ('ArtcodeTemp')


-- setting the timestamp
delete from [dbo].[Artcode_LastChange] where Tabelle = 'Artcode'

TRUNCATE TABLE [dbo].[Artcode]

INSERT INTO Artcode
             (Ordnung, Art_ID, Synonym, Art_ID_Gueltig, Gattung, Art, Autor, Autor_Pos, Name_Deutsch, RLB, RLD, FFH_Anh2, FFH_Anh4, FFH_Anh5, VSR_Anh1, Status_IUCN, Schutz_BNatSchG, Ausgabesperre, Statistiksperre, 
                         Eingabesperre, saP, saP_ABC, saP_BC, saP_ZR, rang, sensu, id_agg, staby, VeraB, VeraD, WnASA, EUBrd, BASVO, BOLD_ID, NAME_DG, fam, id_fam, pruefung, ID)
SELECT        Ordnung, Art_ID, Synonym, Art_ID_Gueltig, Gattung, Art, Autor, Autor_Pos, Name_Deutsch, RLB, RLD, FFH_Anh2, FFH_Anh4, FFH_Anh5, VSR_Anh1, Status_IUCN, Schutz_BNatSchG, Ausgabesperre, Statistiksperre, 
                         Eingabesperre, saP, saP_ABC, saP_BC, saP_ZR, rang, sensu, id_agg, staby, VeraB, VeraD, WnASA, EUBrd, BASVO, BOLD_ID, NAME_DG, fam, id_fam, pruefung, ID
FROM            ArtcodeTemp

INSERT INTO [dbo].[Artcode_LastChange] ([Tabelle])
     VALUES           ('Artcode')
Jan 2, 2025

GUC

Artcode

Anleitung des LfU

Nach einem Click auf den Button Export Artcode im Hauptformular öffnet sich ein Fenster wie unten dargestellt.

Transfer der Daten aus DTN

Mit den Buttons kann man den Inhalt der ausgewählten Tabellen nach jedem Schritt überprüfen.

graph TD;
    DTN[<i class="fa-fw fas fa-database"></i> Taxa in<br>DiversityTaxonNames<br>_Plants] -->GUC_TransferTaxa(<i class="fa-fw fas fa-arrow-alt-circle-down"></i> Prozedur<br>GUC_TransferTaxa:<br>Transfer der Daten) --> GUC[<i class="fa-fw fas fa-database"></i> Taxon<br>Tabellen in<br>DiversityCollection<br>CacheGUC]
    GUC -->GUC_Artcode
    GUC_Artcode(<i class="fa-fw fas fa-arrow-alt-circle-down"></i> Procedur GUC_Artcode:<br>Transfer aus den<br>Taxon Tabellen<br>in ArtcodeTemp<br><i class="fa-fw fas fa-eye"></i> GUC_ArtcodeTemp<br><i class="fa-fw fas fa-long-arrow-alt-down"></i> <br><i class="fa-fw fas fa-table"></i> ArtcodeTemp) 
    GUC_Artcode--> ArtcodeTemp[<i class="fa-fw fas fa-table"></i> ArtcodeTemp]
    ArtcodeTemp --> GUC_AnpassungArtcodeTemp( <i class="fa-fw fas fa-edit"></i> Prozedur<br>GUC_Anpassung<br>ArtcodeTemp:<br>Überarbeitung der Daten<br>in Tabelle ArtcodeTemp<br><i class="fa-fw fas fa-caret-right"></i> Eintrag Art_ID<br>=<br>NameID bei<br>neuen Namen<br><i class="fa-fw fas fa-caret-right"></i> Eintrag Familie<br><i class="fa-fw fas fa-caret-right"></i> Eintrag rang<br><i class="fa-fw fas fa-caret-right"></i> ...)
    GUC_AnpassungArtcodeTemp --> Artcode[<i class="fa-fw fas fa-table"></i> Artcode]
    GUC_AnpassungArtcodeTemp --> Merkmale[<i class="fa-fw fas fa-table"></i> Merkmale]
    Artcode --> SQLite[<i class="fa-fw fas fa-database"></i> SQLite]
    Merkmale --> SQLite[<i class="fa-fw fas fa-database"></i> SQLite]
    Lebensraum[<i class="fa-fw fas fa-table"></i> Lebensraum] --> SQLite[<i class="fa-fw fas fa-database"></i> SQLite]

Schritt 1

  • Mit einem Click auf den Button Transfer der Daten … in …GUC werden die Daten aus der Datenbank DiversityTaxonNames_Plants auf dem tnt.diversityworkbench.de in gleich aufgebaute Tabellen in der Datenbank DiversityCollectionCacheGUC auf dem bfl.diversityworkbench.de übertragen.
  • Die Zahl der Datensätze in den Tabellen werden wie in der Abbildung oben gelistet
  • Hierfür wird die stored procedure GUC_TransferTaxa in DiversityCollectionCacheGUC verwendet.
  • Diese löscht den Inhalt der Taxon Tabellen in DiversityCollectionCacheGUC und befüllt die Tabellen mit dem aktuellen Inhalt aus DiversityTaxonNames_Plants

Schritt 2

  • Mit einem Click auf den Button Transfer der Daten in Tabelle ArtcodeTemp wird die Prozedur GUC_TransferInArtcode gestartet: Auslesen der Daten aus Sicht GUC_Artcode und import in Tabelle ArtcodeTemp

Schritt 3

  • Mit einem Click auf den Button Anpassung der Daten in ArtcodeTemp wird die Prozedur GUC_AnpassungArtcodeTemp gestarted. Diese überarbeitet die Daten in Tabelle ArtcodeTemp um sie an die Anforderungen von GUC anzupassen.

Schritt 4

  • Übertrag der Daten aus ArtcodeTemp in Artcode erfolgt Mit einem Click auf den Button Transfer der Daten aus ArtcodeTemp in Tabelle Artcode nach Schritt 3

Schritt 5

  • Mit einem Click auf den Button Merkmale aktualisieren wird die Prozedur GUC_Transfer_Artcode_Merkmale gestartet: Auslesen der Daten aus Tabelle TaxonNameListAnalysis und import in Tabelle Artcode_Merkmale sowie Korrekturen der Ausgabe.

Schritt 6

  • Auswahl einer zu exportierenden Tabelle und Export der Daten in SQLite Datenbank mit click auf dem Export to SQLite table button.

In der Regel werden folgende Tabellen werden benötigt:

  • Artcode
  • Artcode_Lebensraum
  • Artcode_Merkmale

Öffnen der SQLite Datenbank

Mit einem Click auf den Button Ordner kann man das Verzeichnis in dem die SQLite Datenbank gespeichert ist öffnen. Mit einem geeigneten Tool kann man diese dann öffnen. Die Software selbst stellt hierfür keine Option bereit. Ein mögliches Tool zum öffnen der Datenbank wäre ein AddOn für Firefox: Sqlite-manager. Beim Versuch die Datenbank aus dem Programm heraus zu öffnen wird ein entsprechender Fehler angezeigt.

Tabellen

Table Artcode

Column Data type Description Nullable Relation
Ordnung nvarchar (3) entählt immer den Wert 9P0 entsprechend dem Code der GUC NO -
Art_ID nvarchar (12) Code der GUC YES -
Synonym bit Ob der Name ein Synonym ist YES -
Art_ID_Gueltig nvarchar (12) GUD ID der Gültigen Art in Fall eines Synonyms, falls gültiger Name, dann die Art_ID YES -
Gattung nvarchar (255) Die Gattung YES -
Art nvarchar (255) für Taxa unterhalb der Gattung. Das Epitheton der Art. Im Fall e.g. einer anderen Taxonomischen Stufe alles Gattung und den Authoren YES -
Autor nvarchar (255) die Authoren YES -
Autor_Pos tinyint Position des Authors innerhalb des Textes im Feld Art. Falls kein Author dann NULL YES -
Name_Deutsch nvarchar (255) Der aktuelle deutsche Namen des Taxon YES -
RLB nvarchar (5) Gefährdung nach Roter Liste Bayern 2024. NB für den Wert “Karo” und langem Bindestrich YES -
RLD nvarchar (5) Gefährdung nach Roter Liste Deutschland 2018 YES -
FFH_Anh2 nvarchar (1) - YES -
FFH_Anh4 nvarchar (1) - YES -
FFH_Anh5 nvarchar (1) - YES -
VSR_Anh1 nvarchar (1) - YES -
Status_IUCN nvarchar (12) - YES -
Schutz_BNatSchG nvarchar (12) Schutzsstatus in Bayern. Übersetzung von “§§” in “s” sonst “b” YES -
Ausgabesperre bit immer 0 NO -
Statistiksperre bit immer 0 NO -
Eingabesperre bit immer 0 NO -
saP bit immer 0 NO -
saP_ABC bit immer 0 NO -
saP_BC bit immer 0 NO -
saP_ZR bit immer 0 NO -
rang nvarchar (5) Taxonomischer Rang YES -
sensu nvarchar (255) NonNomenclaturalNameSuffix mit diversen Anpassungen für die GUC YES -
id_agg nvarchar (10) die Art_ID der GUC des übergeordneten gültigen Taxon YES -
staby nvarchar (1) Status in Bayern YES -
VeraB nvarchar (1) Verantwortung Bayerns nach RL Bayern 2003 YES -
VeraD nvarchar (4) Verantwortung Deutschlands nach RL Bayern 2003 YES -
WnASA nvarchar (4) - YES -
EUBrd bit - NO -
BASVO nvarchar (1) - YES -
BOLD_ID int DNA barcode ID collected by the Barcode of Life Datasystems (BOLD) YES -
NAME_DG nvarchar (255) - YES -
fam nvarchar (255) 3 Buchstaben Code der Familie der GUC YES -
id_fam nvarchar (255) Art_ID der Familie YES -
pruefung tinyint - YES -
ID int NameID aus DTN NO -

Table Artcode_Merkmale

Column Data type Description Nullable Relation
Art_ID nvarchar (10) Code der GUC NO -
Merkmal nvarchar (5) 5 stelliger Code der GUC für Merkmale NO -
Wert nvarchar (255) Wert des Merkmals NO -

Codes für Merkmal

Code Descripton
TAXNR NameID aus DTN
ST9P0 Floristischer Status
NEOBI N für Floristischen Status ‘E’, ‘E?’, ‘P’, ‘T’, ‘T?’, ‘U’
RL_A Gefährdung n. RL Bayern 2024 - Alpen
RL_HB Gefährdung n. RL Bayern 2024 - Hügel- u. Bergland

Table Artcode_Lebensraum

Column Data type Description Nullable Relation
Art_ID nvarchar (10) Code der GUC NO -
lr_id int Code der GUC für Lebensraum NO -
vk_id tinyint Code des Vorkommens analog Tabelle NO -

Codes für Vorkommen

Code Descripton
1 Hauptvorkommen
2 Vorkommen
3 potentielles Vorkommen
4 Jagdhabitat

Codes für Lebensraum

Code Descripton
11 Alpine Felsen, Schutthalden, Gletscher, Firn
12 Alpine Rasen, Wiesen, Weiden und Staudenfluren
13 Alpine Zwergstrauchheiden und Krummholz
14 Alpine Wälder
21 Quellen
22 Fließgewässer
23 Stillgewässer
31 Moore und Sümpfe
32 Feucht- und Nassgrünland, feuchte Hochstaudenfluren
41 Magerrasen, Heiden, Säume und wärmeliebende Gebüsche
42 Rohböden, Abgrabungen
43 Felsen, Schuttfluren, Blockhalden
44 Weinberge
51 Hecken, Feldgehölze, Gebüsche, Parkanlagen, Baumgruppen, Einzelbäume
52 Streuobstbestände
61 Nadelwälder auf mittleren Standorten
62 Laub- und Mischwälder auf mittleren Standorten
63 Nass- und Feuchtwälder
64 Trockenwälder
71 Grünland mittlerer Standorte
72 Äcker, Sonderkulturen und Raine
81 Böschungen, Dämme, Bahngelände und andere Verkehrsflächen
82 Höhlen, Stollen und Keller
83 Siedlungen, Gebäude und andere urbane Lebensräume
Mar 25, 2025

GUC

Nachweis

Programm

Aktualisierung der CacheDB

Vor dem Export für GUC müssen die Daten der hierfür relevanten Projekte in der DiversityCollectionCache_BayernFlora aktualisiert werden.

Aktualisierung der Artcode Tabelle

Vor dem Export für GUC müssen die Daten in der Tabelle Artcode aktualisiert werden.

Transfer in die GUC Tabellen

Mit einem Click auf den Button wird die Prozedur TransferToGUC (s. unten) gestartet. Diese Überträgt die Daten aus der Datenbank DiversityCollectionCache_BayernFlora in Abhängigkeit der ausgewählten Optionen in die Tabellen der Datenbank DiversityCollectionCacheGUC und bereitet diese für den Export auf.

---
title: PROCEDURE TransferToGUC
---
graph TD;
    1{ } -->|1| Clear[Clear the export tables]
    1 -->|2| Status[Tabelle <br><u>_Status</u><br> füllen]
    1 --> |3|Identification[Tabelle <br>_Identification<br> füllen]    
    1 --> |4|FehlendeTaxa[Daten ohne Code aus <br>_Identification<br> entfernen] 
    1 --> |5|NACHWEIS[Tabelle <br>NACHWEIS<br> füllen]
    FehlendeTaxa --> Identification
    Identification --> NACHWEIS
    Status --> EintragStatus
    NACHWEIS --> Jahresangaben(In NACHWEIS:<br>Entfernen der Daten<br>ohne Jahresangaben)
    Jahresangaben --> EintragStatus(In NACHWEIS<br>Eintrag des Status)
    EintragStatus --> Quellentyp(In NACHWEIS<br>Eintrag des Quellentyp)
    Quellentyp --> verbleib_nachname(In NACHWEIS<br>verbleib_nachname<br>eintragen)
    verbleib_nachname --> Projekt(In NACHWEIS<br>Projekt eintragen)
    Projekt --> VERORTUNG_PUNKT_WKT(In NACHWEIS<br>VERORTUNG_PUNKT_WKT<br>eintragen)
    VERORTUNG_PUNKT_WKT --> status_code_lfu(In NACHWEIS<br>status_code_lfu eintragen)
    1 --> |6|FUNDORT[Tabelle <br>FUNDORT<br> füllen]
    FUNDORT --> TK(In FUNDORT<br>TK eintragen)
    TK --> TOPONYM(In FUNDORT<br>TOPONYM eintragen)
    TOPONYM --> Hoehe(In FUNDORT<br>Hoehe eintragen)
    Hoehe --> LEBENSRAUM(In FUNDORT<br>LEBENSRAUM eintragen)
    LEBENSRAUM --> WGS84(In FUNDORT<br>WGS84 eintragen)
    WGS84 --> NATURRAUM(In FUNDORT<br>NATURRAUM eintragen)
    NATURRAUM --> Landkreis(In FUNDORT<br>Landkreis eintragen)
    Landkreis --> naturraum_code_lfu(In FUNDORT<br>naturraum_code_lfu<br>eintragen)
    naturraum_code_lfu --> landkreis_code_lfu(In FUNDORT<br>landkreis_code_lfu<br>eintragen)
    1 --> |7|SAMMLER[Tabelle <br>SAMMLER<br> fuellen]

Der Zeitbedarf sowie die Zahl der betroffenen Datensätze wird im Log angezeigt

Export nach SQLite

Um die Daten als SQLite zu exportieren einfach auf den Export nach SQLite Button clicken.

Jan 14, 2025

GUC

TK25

Nach einem Click auf den Button TK25 öffnet sich ein Fenster wie unten dargestellt.

Laden der Daten

Ein Click auf den Button startet die Prozedur TK25.TransferToQuadrant mit den ausgewählten Parameter für das Jahr und den tax. Rang. Diese Prozedur füllt die Tabelle TK25.Quadrant und TK25.Identification.

---
title: PROCEDURE TransferToQuadrant
---
graph TD;
    Clear[Clear the export tables] --> Identification[Insert the taxa in table<br><u>Identification</u>]
    Identification --> former(Remove the<br>former identifications<br>in table Identification)
    former --> year(Remove those before<br>the given year<br>in table Identification)
    year --> accepted(Set the synonyms<br>to the accepted names<br>in table Identification)
    accepted --> higher(Setting the higher taxa<br>in table Identification)
    Identification --> Quadrant[Fill table <br><u>Quadrant</u>]

Export

Um die Daten als Textdatei zu exportieren auf den Export Button clicken. Dadurch wird im Projektverzeichnis eine Datei mit dem Name TK25export.txt erstellt.