Das ist schon mal hilfreich, danke! Ich habe folgendes SQL-Skript:
===============================================
DROP TABLE IF EXISTS public.lines;
CREATE TABLE public.lines(
kuppelpunkt char (50),
FOREIGN KEY (kuppelpunkt) REFERENCES kuppelpunkte (point_id),
wandpunkt char (40),
FOREIGN KEY (wandpunkt) REFERENCES wandpunkte (wand_pk),
weight double precision,
weight_svf double precision,
wand BIGINT
);
SELECT AddGeometryColumn(‘public’, ‘lines’, ‘geom’, 0, ‘GEOMETRY’, 3, true);
INSERT INTO public.lines
SELECT
kuppelpunkte.point_id,
wandpunkte.wand_pk,
kuppelpunkte.weight_diff,
kuppelpunkte.flaechenanteil,
wandpunkte.wall,
ST_MakeLine(wandpunkte.geom, kuppelpunkte.geom)
FROM public.kuppelpunkte,
public.wandpunkte
WHERE wandpunkte.wall=‘21’
AND kuppelpunkte.azimuth
BETWEEN wandpunkte.range_a
AND wandpunkte.range_b;
ALTER TABLE public.lines
ADD idx SERIAL NOT NULL,
ADD intersection boolean;
CREATE UNIQUE INDEX ind
ON public.lines
USING btree(idx);
ALTER TABLE public.lines
ADD CONSTRAINT ind
PRIMARY KEY USING INDEX ind;
CREATE INDEX lines_gist3d_geom
ON public.lines
USING gist(geom gist_geometry_ops_nd);
DROP TABLE IF EXISTS public.sky;
CREATE TABLE sky (sk, id) AS
(SELECT sum(weight_svf), wandpunkt
FROM (SELECT DISTINCT
bool_or(_ST_3DIntersects(lines.geom, surface_geometry.geometry)), lines.idx, lines.wandpunkt, lines.weight_svf
FROM
public.lines,
public.surface_geometry
WHERE
ST_DWithin(lines.geom,surface_geometry.geometry, 100)
GROUP BY lines.idx HAVING COUNT(DISTINCT lines.idx)=1) test
WHERE NOT bool_or
GROUP BY wandpunkt);
ALTER TABLE public.wandpunkte
ADD svf double precision;
UPDATE public.wandpunkte
SET svf = sky.sk
FROM public.sky
WHERE wandpunkte.wand_pk=sky.id;
===============================================
Es wird aus der Tabelle ‘wandpunkte’ je eine Wandfläche (wall), auf welcher mehrere Punkte liegen, entnommen und mit Punkten der Tabelle ‘kuppelpunkte’ zu Linien verbunden. Diese werden auf Schnitte mit Polygonen aus ‘surface_geometry’ (großes Stadtgebiet) überprüft. Die Werte ‘weight_svf’ aller Linien ohne Schnitte (intersection: f) werden aufsummiert und an den entsprechenden Ausgangspunkt der Linie in die Tabelle ‘wandpunkte’ als neues Attribut hinzugefügt.
Dieses Skript soll vollautomatisch in einer Schleife aufgerufen werden, sodass alle Wandpunkte, die in der DB hinterlegt sind, mit dem berechneten Attribut versehen werden. Vorzugsweise soll das alles in FME implementiert werden.
Zu der Idee, die Daten zu verteilen: An sich wäre es möglich, wenn ich die Daten clone oder teile, allerdings wird dann der Speicerbedarf sehr groß bzw. ist eine Teilung ohne weiteres nicht möglich, da die Daten räumlich voneinander abhängen (wichtig für die Schnitttests).
Eine Frage bzgl. der connections habe ich noch: Ist die Anzahl pro Rechner und IP begrenzt, oder rein programmtechnisch bedingt?
Vielen Dank und VG