Benutzer-Werkzeuge

Webseiten-Werkzeuge


admindoku

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
admindoku [2024/06/17 20:18] – [Aktuelle Kartierung] sgoenadmindoku [2025/06/01 14:09] (aktuell) – [Nachfolger in aktueller Kartierung finden] sgoen
Zeile 8: Zeile 8:
 <code sql> <code sql>
 SELECT * FROM mvbio.kartierobjekte SELECT * FROM mvbio.kartierobjekte
-WHERE '0503-244B5099' IN (SELECT UNNEST(zusammengefasste_boegen) UNION SELECT alt_giscod)+WHERE 119474 IN (SELECT UNNEST(zusammengefasste_ids) UNION SELECT vorgaenger_id)
 </code> </code>
 bzw. in Verlustbögen: bzw. in Verlustbögen:
 <code sql> <code sql>
 SELECT * FROM mvbio.verlustobjekte  SELECT * FROM mvbio.verlustobjekte 
-WHERE bogen_id IN (SELECT id FROM archiv.erfassungsboegen WHERE giscode='0503-244B4029')+WHERE bogen_id IN (SELECT id FROM archiv.erfassungsboegen WHERE id=119474)
 </code> </code>
-**Stand Nov. 2022, Historisierung soll geändert werden auf bogen_id statt Giscode, dann Anpassung nötig**+
  
 ==== Artenvorkommen ==== ==== Artenvorkommen ====
  
-Suche nach Biotopen/Bögen, die eine bestimmte Art (Beispiel hier: Krebsschere //Stratiotes aloides//) enthalten. Mit Angabe der Häufigkeit (D/Z/V) und Geometriespalte (Well-Known-Text WKT, einfacher Import in QGIS möglich). Anpasssung der Art in letzter Zeile, auch nur Gattung möglich (Artname wird mit ausgegeben).+Suche nach Biotopen/Bögen, die eine bestimmte Art (Beispiel hier: Krebsschere //Stratiotes aloides//) enthalten. Mit Angabe der Häufigkeit (D/Z/V) und Geometriespalte (Well-Known-Text WKT, einfacher Import in QGIS möglich). Anpasssung der Art in WHERE-Klausel, auch nur Gattung möglich (Artname wird mit ausgegeben).
 === Aktuelle Kartierung === === Aktuelle Kartierung ===
 Ohne Einschränkung der Bearbeitungsstufe! Ohne Einschränkung der Bearbeitungsstufe!
 <code sql> <code sql>
 SELECT  SELECT 
-  gsl.valid_name AS art_gsl,ko.id AS id_mvbio, ko.label, ko.biotopname, ko.vegeinheit,+  gsl.valid_name AS art_gsl, pv.dzv AS dzv, ko.id AS id_mvbio, ko.label, ko.biotopname, ko.vegeinheit,
   ko.hc, COALESCE(ko.uc1, '-') || ' ' || COALESCE(ko.uc2, '-') AS ucs,   ko.hc, COALESCE(ko.uc1, '-') || ' ' || COALESCE(ko.uc2, '-') AS ucs,
-  ko.e_datum AS datum, ko.kartierer, pv.dzv AS dzv, kk.bezeichnung AS quelle,+  ko.e_datum AS datum, ko.kartierer, kk.bezeichnung AS quelle,
   ST_AsEWKT(ko.geom) AS geom_wkt   ST_AsEWKT(ko.geom) AS geom_wkt
 FROM mvbio.kartierobjekte ko FROM mvbio.kartierobjekte ko
Zeile 34: Zeile 34:
 WHERE WHERE
   gsl.valid_name like 'Stratiotes%' AND gsl.synonym='0' AND kk.art IN ('BK','LRT','BLRTK')   gsl.valid_name like 'Stratiotes%' AND gsl.synonym='0' AND kk.art IN ('BK','LRT','BLRTK')
 +ORDER BY
 +  art_gsl, CASE dzv WHEN 'D' THEN 1 WHEN 'Z' THEN 2 WHEN 'V' THEN 3 END  
 </code> </code>
 === Archivbestände === === Archivbestände ===
Zeile 39: Zeile 41:
 <code sql> <code sql>
 SELECT SELECT
-  gsl.valid_name AS art_gsl, eb.id AS id_archiv, eb.label, eb.biotopname, eb.vegeinheit AS vegeinheit, eb.hc, +  gsl.valid_name AS art_gsl, pv.dzv AS dzv, eb.id AS id_archiv, eb.label, eb.biotopname, eb.vegeinheit AS vegeinheit, eb.hc, 
   COALESCE(eb.uc1, '-') || ' ' || COALESCE(eb.uc2, '-') AS ucs,   COALESCE(eb.uc1, '-') || ' ' || COALESCE(eb.uc2, '-') AS ucs,
-  eb.e_datum AS datum, eb.kartierer, pv.dzv AS dzv, kk.bezeichnung AS Quelle,+  eb.e_datum AS datum, eb.kartierer, kk.bezeichnung AS Quelle,
   ST_AsEWKT(eb.geom) geom_WKT   ST_AsEWKT(eb.geom) geom_WKT
 FROM archiv.erfassungsboegen eb FROM archiv.erfassungsboegen eb
Zeile 48: Zeile 50:
 LEFT JOIN mvbio.pflanzenarten_gsl gsl ON gsl.valid_nr = pv.valid_nr LEFT JOIN mvbio.pflanzenarten_gsl gsl ON gsl.valid_nr = pv.valid_nr
 WHERE WHERE
-  gsl.valid_name like 'Stratiotes%' AND eb.aktuell+  gsl.valid_name like 'Stratiotes%' AND gsl.synonym='0' AND eb.aktuell 
 +ORDER BY 
 +  art_gsl, CASE dzv WHEN 'D' THEN 1 WHEN 'Z' THEN 2 WHEN 'V' THEN 3 END  
 </code> </code>
 +==== Biotopcodes ====
 +Suche aller Biotopbögen, die in Haupt-, Neben- oder Überlagerungscode einen bestimmten Biotopcode enthalten. Abfrage mehrere Biotopcodes möglich. Nutzt die LINFOS-Export Views, ersetzt aber die Spalte ''geom'' durch WKT.
 +
 +=== im Archiv ===
 +<code sql>
 +SELECT id_mvbio, giscode, obj_code, kampagne, kartgeb, kartebene, bogenart, kart_jahr, aktuell, biotopname, area_ha, bntk_code, hc, hcnum, hcarea, hcname, nc1, nc1num, nc1area, nc1name, nc2, nc2num, nc2area, nc2name, nc3, nc3num, nc3area, nc3name, nc4, nc4num, nc4area, nc4name, nc5, nc5num, nc5area, nc5name, nc6, nc6num, nc6area, nc6name, nc7, nc7num, nc7area, nc7name, nc8, nc8num, nc8area, nc8name, uc1, uc1name, uc2, uc2name, n_foto, erfasser, abfrage_datum, ST_AsEWKT(geom) AS geom_wkt
 +FROM archiv.v_linfos_aktuelle_biotope
 +WHERE ARRAY[hc,nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,uc1,uc2] && ARRAY['XGM','XGW','XGL','XGT','UHL']::varchar[]
 +</code>
 +
 +=== in aktueller Kartierung ===
 +<code sql>
 +SELECT obj_code, id_mvbio, kampagne, kartgeb, kartebene, bogenart, ffh, kart_jahr, biotopname, lrt_code, lrt_nummer, lrt_bez, e_zustand, e_gutacht, area_ha, hc, hcnum, hcarea, hcname, nc1, nc1num, nc1area, nc1name, nc2, nc2num, nc2area, nc2name, nc3, nc3num, nc3area, nc3name, nc4, nc4num, nc4area, nc4name, nc5, nc5num, nc5area, nc5name, nc6, nc6num, nc6area, nc6name, nc7, nc7num, nc7area, nc7name, nc8, nc8num, nc8area, nc8name, uc1, uc1name, uc2, uc2name, n_foto, erfasser, lrt_kat, lrt_klas, legende, stand, abfrage_datum, ST_AsEWKT(geom) AS geom_wkt
 +FROM mvbio.linfos_export
 +WHERE ARRAY[hc,nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,uc1,uc2] && ARRAY['XGM','XGW','XGL','XGT','UHL']::varchar[]
 +</code>
 +
  
 ===== Qualitätskontrolle ===== ===== Qualitätskontrolle =====
Zeile 131: Zeile 152:
 bearbeitungsstufe=2 bearbeitungsstufe=2
 WHERE id IN (SELECT verlust_id FROM mvbio.qs_00_alle_verluste); WHERE id IN (SELECT verlust_id FROM mvbio.qs_00_alle_verluste);
 +
 +</code>
 +
 +===== Datenbankstruktur =====
 +==== Tabellen-Information ====
 +
 +Liste aller Spalten einer Datenbank-Tabelle mit Datentyp, Länge und Beschreibung (Comment). Funktioniert auch für mehrere Tabellen (z.B. alle eines Schemas), dafür die ''WHERE'' Klausel anpassen.
 +<code sql>
 +SELECT 
 +   c.table_schema, c.table_name, c.column_name, c.data_type,
 +   COL_DESCRIPTION(CONCAT(c.table_schema, '.', c.table_name)::regclass, c.ordinal_position) as description,
 +   COALESCE(c.character_maximum_length::text,c.numeric_precision::text||'('||c.numeric_scale::text||')') AS column_length
 +FROM information_schema.columns as c
 +JOIN information_schema.tables as t
 +   ON t.table_catalog = c.table_catalog
 +   AND t.table_schema = c.table_schema
 +   AND t.table_name = c.table_name
 +WHERE  t.table_type = 'BASE TABLE'
 +   AND c.table_schema = 'mvbio'
 +   AND c.table_name ='kartiergebiete'
 +ORDER BY c.table_schema, c.table_name, c.ordinal_position;
 +</code>
 +
 +==== Tabellenvergleich ====
 +Vergleicht zwei Tabellen, für Gegenüberstellung archiv <-> mvbio (Spaltenname, Typ, Comment).
 +Im Feld ''data_typ'' werden unterschiedliche Datenypen mit //!!!// hervorgehoben.
 +Zieltabellen in der ''WITH'' Definition anpassen.
 +
 +<code sql>
 +WITH
 +  kga AS (SELECT * FROM information_schema.columns WHERE table_schema = 'archiv' AND table_name = 'kartiergebiete' ),
 +  kg AS (SELECT * FROM information_schema.columns WHERE table_schema = 'mvbio' AND table_name = 'kartiergebiete')  
 +SELECT
 +  kg.column_name AS mvbio_name,
 +  kga.column_name AS archiv_name,
 +  CASE
 +    WHEN kg.data_type=kga.data_type THEN kga.data_type 
 +    WHEN kg.data_type IS NULL OR kga.data_type IS NULL THEN coalesce(kg.data_type,kga.data_type)
 +    ELSE '!!! '||kg.data_type||' vs. '||kga.data_type
 +  END AS data_typ,
 +  CASE 
 +    WHEN kg.table_schema IS NOT NULL THEN COL_DESCRIPTION(CONCAT(kg.table_schema, '.', kg.table_name)::regclass,kg.ordinal_position)
 +    ELSE NULL
 +  END AS mvbio_desc,
 +  CASE 
 +    WHEN kga.table_schema IS NOT NULL THEN COL_DESCRIPTION(CONCAT(kga.table_schema, '.', kga.table_name)::regclass,kga.ordinal_position)
 +    ELSE NULL
 +  END AS archiv_desc
 +FROM
 + kg
 +FULL JOIN kga ON kg.column_name=kga.column_name
 +ORDER BY kg.ordinal_position
  
 </code> </code>
  
  
admindoku.1718648295.txt.gz · Zuletzt geändert: 2024/11/22 11:34 (Externe Bearbeitung)