Skip to content
Snippets Groups Projects
Commit b26e16dd authored by Wiebke Torsten's avatar Wiebke Torsten
Browse files

anlage erster Tabellen für relationales Modell

parent f8b48492
No related branches found
No related tags found
No related merge requests found
-- CONNECTION: url=jdbc:postgresql://localhost:5432/projekt_lfb
-- New script in projekt_lfb.
-- Date: 17.01.2025
-- Time: 23:57:31
-- Database: projekt_lfb - target database name
-- Aufbau relationales Schema bwi_r
create schema bwi_r
/* 1. Grundtabelle Trakt erstellen aus
* - Tnr, Enr, Netz */
-- einlesen der vorhandenen Daten
-- bv_tnr ?
select
--count(*) --15002
*
from bwi_2022.bv_tnr bt
select
--count(*) --7668
--*
distinct soll_rechtst
from bwi_2022.b3_tnr bt
-- Abfragekonstrukiton für b3_tnr
SELECT
tnr,
aufnbl,
standardbl,
TRIM(BOTH ' # ' FROM laender) AS laender,
netz,
netz64,
ktg,
CASE
WHEN soll_rechtst::text LIKE '4%' THEN
ST_Transform(ST_SetSRID(ST_MakePoint(soll_rechtst, soll_hocht), 31468), 4326)
WHEN soll_rechtst::text LIKE '5%' THEN
ST_Transform(ST_SetSRID(ST_MakePoint(soll_rechtst, soll_hocht), 31469), 4326)
END AS soll_geom
FROM
bwi_2022.b3_tnr bt;
-- Tabellenspeicherung für b3_tnr
drop table bwi_r.b3_tnr_geom
create table bwi_r.b3_tnr_geom as
SELECT
tnr,
aufnbl,
standardbl,
TRIM(BOTH ' # ' FROM laender) AS laender,
netz,
netz64,
ktg
FROM
bwi_2022.b3_tnr bt;
-- Primärschlüssel hinzufügen
ALTER TABLE bwi_r.b3_tnr_geom
ADD CONSTRAINT b3_tnr_geom_pkey PRIMARY KEY (tnr);
-- Geometriespalte registrieren
SELECT AddGeometryColumn('bwi_r', 'b3_tnr_geom', 'soll_geom', 4326, 'POINT', 2);
-- Geometriespalte mit Daten füllen
UPDATE bwi_r.b3_tnr_geom AS target
SET soll_geom = CASE
WHEN source.soll_rechtst::text LIKE '4%' THEN
ST_Transform(ST_SetSRID(ST_MakePoint(source.soll_rechtst, source.soll_hocht), 31468), 4326)
WHEN source.soll_rechtst::text LIKE '5%' THEN
ST_Transform(ST_SetSRID(ST_MakePoint(source.soll_rechtst, source.soll_hocht), 31469), 4326)
END
FROM bwi_2022.b3_tnr AS source
WHERE target.tnr = source.tnr;
-- Räumlichen Index erstellen
CREATE INDEX b3_tnr_geom_soll_geom_idx
ON bwi_r.b3_tnr_geom
USING GIST (soll_geom);
/* 2. Grundtabelle Ecke erstellen aus
* - tnr, enr, wg, wb, hoenn */
-- Tabellenspeicherung für b3_ecke
drop table bwi_r.b3_ecke_geom
create table bwi_r.b3_ecke_geom as
SELECT --*
tnr,
enr,
wg,
wb,
hoenn
-- aufnbl,
-- standardbl,
-- TRIM(BOTH ' # ' FROM laender) AS laender,
-- netz,
-- netz64,
-- ktg
FROM
bwi_2022.b3_ecke be ;
-- Primärschlüssel hinzufügen
ALTER TABLE bwi_r.b3_ecke_geom
ADD CONSTRAINT b3_tnr_ecke_pkey PRIMARY KEY (tnr, enr);
-- Geometriespalte registrieren
SELECT AddGeometryColumn('bwi_r', 'b3_ecke_geom', 'soll_geom', 4326, 'POINT', 2);
-- Geometriespalte mit Daten füllen
UPDATE bwi_r.b3_ecke_geom AS target
SET soll_geom = ST_SetSRID(
ST_MakePoint(
REPLACE(source.soll_x_wgs84, ',', '.')::numeric,
REPLACE(source.soll_y_wgs84, ',', '.')::numeric
),
4326
)
FROM bwi_2022.b3_ecke AS source
WHERE target.tnr = source.tnr AND target.enr = source.enr;
-- Räumlichen Index erstellen
CREATE INDEX b3_ecke_geom_soll_geom_idx
ON bwi_r.b3_ecke_geom
USING GIST (soll_geom);
/* 3. Grundtabelle bwi_2022_Ist-Ecke erstellen aus
* - Tnr, Enr, Netz */
select *
from bwi_2022.b3v_gps bvg
drop table bwi_r.bwi2022_ecke_istgeom;
create table bwi_r.bwi2022_ecke_istgeom as
select
tnr, enr
from bwi_2022.b3v_gps bvg
-- Primärschlüssel hinzufügen
ALTER TABLE bwi_r.bwi2022_ecke_istgeom
ADD CONSTRAINT bwi2022_ecke_istgeom_pkey PRIMARY KEY (tnr, enr);
-- Geometriespalte registrieren
SELECT AddGeometryColumn('bwi_r', 'bwi2022_ecke_istgeom', 'ist_geom', 4326, 'POINT', 2);
-- Geometriespalte mit Daten füllen
UPDATE bwi_r.bwi2022_ecke_istgeom AS target
SET ist_geom = CASE
WHEN source.lat_med IS NOT NULL AND source.lon_med IS NOT NULL AND
REPLACE(source.lat_med, ',', '.') ~ '^[0-9]+(\.[0-9]+)?$' AND
REPLACE(source.lon_med, ',', '.') ~ '^[0-9]+(\.[0-9]+)?$'
THEN ST_SetSRID(
ST_MakePoint(
REPLACE(source.lon_med, ',', '.')::numeric,
REPLACE(source.lat_med, ',', '.')::numeric
),
4326
)
ELSE NULL
END
FROM bwi_2022.b3v_gps AS source
WHERE target.tnr = source.tnr AND target.enr = source.enr;
-- Räumlichen Index erstellen
CREATE INDEX bwi2022_ecke_istgeom_idx
ON bwi_r.bwi2022_ecke_istgeom
USING GIST (ist_geom);
select *
from bwi_2022.b3v_ecke_feld bvef
select
tnr, enr, wa
from
bwi_2022.b3f_ecke_vorkl bfev
where bfev.wa between 1 and 5 -- Wald, siehe bwi_meta.x3_wa
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment