admindoku
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| admindoku [2022/11/30 11:26] – [Nachfolger in aktueller Kartierung finden] sgoen | admindoku [2025/06/01 14:09] (aktuell) – [Nachfolger in aktueller Kartierung finden] sgoen | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Admin Dokumentation: | ====== Admin Dokumentation: | ||
| + | ===== Recherche ===== | ||
| - | ===== Nachfolger in aktueller Kartierung finden | + | |
| + | ==== Nachfolger in aktueller Kartierung finden ==== | ||
| Suche nach Giscode eines alten Biotops in Kartierobjekte (Vorgänger oder Zusammengefasste Bögen) bzw. Verlustbogen. | Suche nach Giscode eines alten Biotops in Kartierobjekte (Vorgänger oder Zusammengefasste Bögen) bzw. Verlustbogen. | ||
| <code sql> | <code sql> | ||
| SELECT * FROM mvbio.kartierobjekte | SELECT * FROM mvbio.kartierobjekte | ||
| - | WHERE ' | + | WHERE 119474 |
| </ | </ | ||
| 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=' | + | WHERE bogen_id IN (SELECT id FROM archiv.erfassungsboegen WHERE id=119474) |
| </ | </ | ||
| - | **Stand Nov. 2022, Historisierung soll geändert werden auf bogen_id statt Giscode, dann Anpassung nötig** | ||
| - | ====== Qualitätskontrolle ====== | ||
| - | ===== Verlustbögen: | + | ==== Artenvorkommen ==== |
| + | |||
| + | Suche nach Biotopen/ | ||
| + | === Aktuelle Kartierung === | ||
| + | Ohne Einschränkung der Bearbeitungsstufe! | ||
| + | <code sql> | ||
| + | SELECT | ||
| + | gsl.valid_name AS art_gsl, pv.dzv AS dzv, ko.id AS id_mvbio, ko.label, ko.biotopname, | ||
| + | ko.hc, COALESCE(ko.uc1, | ||
| + | ko.e_datum AS datum, ko.kartierer, | ||
| + | ST_AsEWKT(ko.geom) AS geom_wkt | ||
| + | FROM mvbio.kartierobjekte ko | ||
| + | JOIN mvbio.pflanzenvorkommen pv ON pv.kartierung_id = ko.id | ||
| + | LEFT JOIN mvbio.kampagnen kk ON kk.id = ko.kampagne_id | ||
| + | LEFT JOIN mvbio.pflanzenarten_gsl gsl ON gsl.valid_nr = pv.valid_nr | ||
| + | WHERE | ||
| + | gsl.valid_name like ' | ||
| + | ORDER BY | ||
| + | art_gsl, CASE dzv WHEN ' | ||
| + | </ | ||
| + | === Archivbestände === | ||
| + | nur aktuelle Bögen | ||
| + | <code sql> | ||
| + | SELECT | ||
| + | gsl.valid_name AS art_gsl, pv.dzv AS dzv, eb.id AS id_archiv, eb.label, eb.biotopname, | ||
| + | COALESCE(eb.uc1, | ||
| + | eb.e_datum AS datum, eb.kartierer, | ||
| + | ST_AsEWKT(eb.geom) geom_WKT | ||
| + | FROM archiv.erfassungsboegen eb | ||
| + | JOIN archiv.pflanzenvorkommen pv ON pv.kartierung_id = eb.id | ||
| + | LEFT JOIN archiv.kampagnen kk ON kk.id = eb.kampagne_id | ||
| + | LEFT JOIN mvbio.pflanzenarten_gsl gsl ON gsl.valid_nr = pv.valid_nr | ||
| + | WHERE | ||
| + | gsl.valid_name like ' | ||
| + | ORDER BY | ||
| + | art_gsl, CASE dzv WHEN ' | ||
| + | </ | ||
| + | ==== Biotopcodes ==== | ||
| + | Suche aller Biotopbögen, | ||
| + | |||
| + | === 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, | ||
| + | FROM archiv.v_linfos_aktuelle_biotope | ||
| + | WHERE ARRAY[hc, | ||
| + | </ | ||
| + | |||
| + | === 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, | ||
| + | FROM mvbio.linfos_export | ||
| + | WHERE ARRAY[hc, | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Qualitätskontrolle ===== | ||
| + | |||
| + | ==== Verlustbögen: | ||
| Verlustmeldungen dürfen sich nur auf aktuelle Biotope (BK1/ | Verlustmeldungen dürfen sich nur auf aktuelle Biotope (BK1/ | ||
| + | |||
| Abfrage, welche Verlustbögen sich nicht auf einen aktuelles Biotop beziehen: | Abfrage, welche Verlustbögen sich nicht auf einen aktuelles Biotop beziehen: | ||
| <code sql> | <code sql> | ||
| Zeile 29: | Zeile 87: | ||
| ORDER BY a.kampagne_id | ORDER BY a.kampagne_id | ||
| </ | </ | ||
| + | |||
| + | ==== Vollständigkeit Differenzflächen (BK2021) ==== | ||
| + | Abfrage listet alle Differenzflächen auf, die nicht in einem Kartier- oder Verlustobjekt geanannt werden. | ||
| + | + Link zum BK1-Bogen in MVBIO-Pro. | ||
| + | |||
| + | Die Spalten biotop_inters bzw. verlust_inters zeigen an, ob eine räumliche Überlagerung mit Kartierobjekten vorliegt. | ||
| + | <code sql> | ||
| + | WITH diff AS | ||
| + | (SELECT df.giscode giscode_diff, | ||
| + | EXISTS (SELECT * FROM mvbio.kartierobjekte ko WHERE st_intersects(ko.geom, | ||
| + | EXISTS (SELECT * FROM mvbio.kartierobjekte ko WHERE ko.giscode=df.giscode OR df.giscode IN (SELECT UNNEST (ko.zusammengefasste_boegen))) AS biotop_giscode, | ||
| + | EXISTS (SELECT * FROM mvbio.verlustobjekte vo WHERE st_intersects(vo.geom, | ||
| + | EXISTS (SELECT * FROM mvbio.verlustobjekte vo WHERE vo.giscode=df.giscode) AS verlust_giscode | ||
| + | FROM mvbio.differenzflaechen df) | ||
| + | SELECT * , | ||
| + | CASE | ||
| + | WHEN substring(giscode_diff FROM 10 FOR 1)=' | ||
| + | ELSE (((' | ||
| + | END AS giscode_link | ||
| + | FROM diff | ||
| + | WHERE NOT biotop_giscode AND NOT verlust_giscode AND los_nr=2 order by biotop_inters, | ||
| + | </ | ||
| + | |||
| + | ==== Rückgabewünsche zurücksetzen ==== | ||
| + | Setzt alle Bögen mit Rückgabewunsch in allen Kampagnen auf Stufe 2 zurück und ergänzt eine Info in den Prüfhinweisen. | ||
| + | |||
| + | <code sql> | ||
| + | UPDATE mvbio.kartierobjekte | ||
| + | SET | ||
| + | pruefer_rueckweisung=TRUE, | ||
| + | pruefer_pruefhinweis=COALESCE(pruefer_pruefhinweis||', | ||
| + | bearbeitungsstufe=2 | ||
| + | WHERE rueckgabewunsch | ||
| + | |||
| + | --analog für Verlustbögen: | ||
| + | UPDATE mvbio.verlustobjekte | ||
| + | SET | ||
| + | pruefer_rueckweisung=TRUE, | ||
| + | pruefer_pruefhinweis=COALESCE(pruefer_pruefhinweis||', | ||
| + | bearbeitungsstufe=2 | ||
| + | WHERE rueckgabewunsch | ||
| + | </ | ||
| + | |||
| + | ==== Rückgabe von Bögen mit QS-Fehlern ==== | ||
| + | Genutzt wird der View mvbio.qs_00_alle_boegen, | ||
| + | Im Prüfkommentar werden die QS-Codes mit Datum angehängt. | ||
| + | Nach Rücksetzung sind die QS-Views und mvbio.qs_00_alle_boegen wieder leer. Analog für Verlustbögen | ||
| + | |||
| + | <code sql> | ||
| + | UPDATE mvbio.kartierobjekte k | ||
| + | SET | ||
| + | lock = true, --deaktiviert die Prüfung " | ||
| + | pruefer_rueckweisung=TRUE, | ||
| + | pruefer_pruefhinweis=coalesce(pruefer_pruefhinweis||', | ||
| + | bearbeitungsstufe=2 | ||
| + | WHERE id IN (SELECT bogen_id FROM mvbio.qs_00_alle_boegen); | ||
| + | |||
| + | --analog für Verlustbögen: | ||
| + | UPDATE mvbio.verlustobjekte vo | ||
| + | SET | ||
| + | lock = true, --deaktiviert die Prüfung " | ||
| + | pruefer_rueckweisung=TRUE, | ||
| + | pruefer_pruefhinweis=coalesce(pruefer_pruefhinweis||', | ||
| + | bearbeitungsstufe=2 | ||
| + | WHERE id IN (SELECT verlust_id FROM mvbio.qs_00_alle_verluste); | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== 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 '' | ||
| + | <code sql> | ||
| + | SELECT | ||
| + | | ||
| + | | ||
| + | | ||
| + | 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 = ' | ||
| + | AND c.table_name =' | ||
| + | ORDER BY c.table_schema, | ||
| + | </ | ||
| + | |||
| + | ==== Tabellenvergleich ==== | ||
| + | Vergleicht zwei Tabellen, für Gegenüberstellung archiv <-> mvbio (Spaltenname, | ||
| + | Im Feld '' | ||
| + | Zieltabellen in der '' | ||
| + | |||
| + | <code sql> | ||
| + | WITH | ||
| + | kga AS (SELECT * FROM information_schema.columns WHERE table_schema = ' | ||
| + | kg AS (SELECT * FROM information_schema.columns WHERE table_schema = ' | ||
| + | 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, | ||
| + | ELSE '!!! ' | ||
| + | END AS data_typ, | ||
| + | CASE | ||
| + | WHEN kg.table_schema IS NOT NULL THEN COL_DESCRIPTION(CONCAT(kg.table_schema, | ||
| + | ELSE NULL | ||
| + | END AS mvbio_desc, | ||
| + | CASE | ||
| + | WHEN kga.table_schema IS NOT NULL THEN COL_DESCRIPTION(CONCAT(kga.table_schema, | ||
| + | ELSE NULL | ||
| + | END AS archiv_desc | ||
| + | FROM | ||
| + | kg | ||
| + | FULL JOIN kga ON kg.column_name=kga.column_name | ||
| + | ORDER BY kg.ordinal_position | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
admindoku.1669803987.txt.gz · Zuletzt geändert: 2024/11/22 11:34 (Externe Bearbeitung)
