[PostNAS Suite] ALKIS NAS xml-File CRS wechseln

Jürgen E. Fischer jef at norbit.de
Mo Jul 22 09:17:43 PDT 2024


Moin Micha,

On Mon, 22. Jul 2024 at 17:32:34 +0200, Der Laie via NAS wrote:
> Am 22.07.24 um 17:16 schrieb Jürgen E. Fischer via NAS:
> > Im ALKIS-Import ist es nur nicht vorgesehen Daten aus anderen
> > Koordinatensystemen als denen der Datenbank zu importieren.

> Ah, verstehe, Jürgen,
> 
> es scheint also zwei Möglichkeiten zu geben:
> 
> 1. ALKIS-Import umbauen

> Am 21.07.24 um 18:24 schrieb Jürgen E. Fischer via NAS:
> > Ich würde das über einen Trigger (ähnlich wie bei "Duplikate ignorieren")
> > regeln, der die Geometrie der Bundesländer, die vom Koordinatensystem der
> > Datenbank abweichen darauf transformieren.

Ein SQL-Skript preprocessing.d/1_transform.sql zu ergänzen, würde ich nicht als
"umbauen" bezeichnen:

SET search_path TO :"alkis_schema",public;

CREATE OR REPLACE FUNCTION inplace_transform() RETURNS TRIGGER LANGUAGE plpgsql AS $$
BEGIN
  IF substr(NEW.gml_id, 3, 2) IN ('BW','BY','HB','HE','HH','NI','NW','RP','SH','SL','ST','TH') THEN
    NEW.wkb_geometry := st_transform(st_setsrid(NEW.wkb_geometry, 25832), 25833);
  END IF;
  RETURN NEW;
END;
$$ SET search_path TO :"alkis_schema";

SELECT format(E'DROP TRIGGER IF EXISTS %I ON %I.%I;\nCREATE TRIGGER %I BEFORE INSERT ON %I.%I FOR EACH ROW EXECUTE PROCEDURE inplace_transform();',
        a.table_name || '_transform', a.table_schema, a.table_name,
        a.table_name || '_transform', a.table_schema, a.table_name)
    FROM information_schema.columns a
    JOIN information_schema.columns b ON a.table_schema=b.table_schema AND a.table_name=b.table_name AND b.column_name='wkb_geometry'
    WHERE a.table_schema=:'alkis_schema'
      AND substr(a.table_name,1,3) IN ('ax_','ap_','ln_','lb_','au_','aa_')
      AND a.column_name='gml_id';
\gexec

Setzt voraus, dass die Datenbank in 25833 ist und tranformiert die Daten aus
"anderen" Bundesländern dorthin.  Getestet habe ich das allerdings nicht.
 
> oder
> 2. die xml-Dateien mit ogr2ogr in ein anderes CRS umzuwandeln
 
> richtig?

> Und meine Frage ist dann zu 2.: wie lautet der Konsolenbefehl, denn bei
> mir hat folgender nicht geklappt:
> 
> |ogr2ogr -f "GML"output_file.xml input_file.xml -s_srs EPSG:25832 -t_srs
> EPSG:25833 ERROR 1: No schema information loaded Der Micha |

So einfach geht das wahrscheinlich nicht - OGR bricht die GML-Daten ja erstmal
auf Layer und Attribute herunter und müßte die GML-Datei daraus wieder
aufbauen.  Ich würde daher nicht erwarte, dass dabei nur die Geometrien
verändert werden.

Dafür müßte man den ogr2ogr-Aufruf in ALKIS-Import modifizieren.


Jürgen

-- 
Jürgen E. Fischer
Dipl.-Inf. (FH)           norBIT GmbH               Tel. +49-4931-918175-31
Software Engineer         Rheinstraße 13            Fax. +49-4931-918175-50
Geschäftsführer           D-26506 Norden              https://www.norbit.de
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.osgeo.org/pipermail/nas/attachments/20240722/3b1e70ee/attachment.sig>


Mehr Informationen über die Mailingliste NAS