Hallo Zusammen
Ich arbeite momentan daran die Daten aus einem DMAV AV Dataset in ein DM.01 Dataset zu transformieren. Dazu mache ich folgenden Workflow:
DMAV.xtf → ili2db Import → PostGIS (DMAV Schema) → SQL Transformation → PostGIS (DM.01 Schema) → ili2db Export → DM01.itf
Soweit klappt das ganz gut. Jedoch erhalte ich bei der Transformation der Bodenbedeckungsflächen merkwürdige Overlap Fehler.
Konkret geht es um folgende Klassen:
DM.01:
TABLE BoFlaeche =
Entstehung: -> BBNachfuehrung
// Gueltigkeit = gueltig //; !! Beziehung 1-mc
Geometrie: AREA WITH (STRAIGHTS, ARCS) VERTEX LKoord
WITHOUT OVERLAPS > 0.050;
Qualitaet: Qualitaetsstandard;
Art: BBArt;
NO IDENT
END BoFlaeche;
DMAV
CLASS Bodenbedeckung =
Geometrie: MANDATORY SURFACE WITH (STRAIGHTS, ARCS) VERTEX GeometryCHLV95_V2.Coord2
WITHOUT OVERLAPS > 0.002;
Qualitaetsstandard: MANDATORY DMAVTYM_Qualitaet_V1_0.Qualitaetsstandard;
Bodenbedeckungsart: Bodenbedeckungsart;
Fiktiv : MANDATORY BOOLEAN;
Objektstatus: MANDATORY DMAVTYM_Modinfo_V1_0.Objektstatus;
Objektnummer: BAG {0..*} OF Objektnummer;
Objektname: BAG {0..*} OF Objektname;
EGID: 1 .. 900000000;
Symbolposition: BAG {0..*} OF DMAVTYM_Grafik_V1_0.Symbolposition;
MANDATORY CONSTRAINT CH080401: (Bodenbedeckungsart!=#befestigt.Wasserbecken
AND Bodenbedeckungsart!=#Gewaesser.stehendes_Gewaesser
) OR INTERLIS.elementCount(Symbolposition)>0;
MANDATORY CONSTRAINT CH080402: Fiktiv!=DEFINED(Bodenbedeckungsart);
END Bodenbedeckung;
ASSOCIATION Entstehung_Bodenbedeckung =
Entstehung -- {1} BBNachfuehrung;
entstehende_BoFlaeche -- {0..*} Bodenbedeckung;
END Entstehung_Bodenbedeckung;
VIEW Bodenbedeckung_Gueltig
PROJECTION OF Bodenbedeckung;
WHERE DEFINED(Bodenbedeckung->Entstehung);
=
ALL OF Bodenbedeckung;
SET CONSTRAINT CH080801: WHERE Objektstatus==#real: INTERLIS.areAreas(ALL, UNDEFINED, >> Geometrie);
END Bodenbedeckung_Gueltig;
Grundsätzlich kann ich die Geometrien 1:1 übernehmen wenn der Objektstatus ‚real‘ und die Bodenbedeckung nicht ‚fiktiv‘ ist.
Wenn ich die Daten aus dem DM.01 exportieren will erhalte ich folgende Fehler (mit --trace )
2026-06-24 12:07:29.963 | Info: build linetable DM01AVCH24LV95D.Bodenbedeckung.ProjBoFlaeche_Geometrie...
2026-06-24 12:07:29.963 | Info: build linetable DM01AVCH24LV95D.Bodenbedeckung.BoFlaeche_Geometrie...
2026-06-24 12:07:29.963 | Error: intersection tid1 336893, tid2 335647, coord (2754997.7268392625, 1260354.8976185862, NaN), coord2 (2754997.727, 1260354.897, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 3.894404398963047E-8, seg1 CIRCULARSTRING (2754998.564 1260356.465, 2754997.839 1260355.844, 2754997.727 1260354.897), seg2 (2754997.727 1260354.897, 2754996.744 1260358.68) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 336893, tid2 335685, coord (2754997.7268392625, 1260354.8976185862, NaN), coord2 (2754997.727, 1260354.897, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 3.894404398963047E-8, seg1 CIRCULARSTRING (2754998.564 1260356.465, 2754997.839 1260355.844, 2754997.727 1260354.897), seg2 (2754996.744 1260358.68, 2754997.727 1260354.897) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 333736, tid2 336493, coord (2754777.422, 1260634.983, NaN), coord2 (2754777.4221918387, 1260634.9836703436, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 2.6197327418486793E-8, seg1 (2754777.422 1260634.983, 2754778.476 1260638.666), seg2 CIRCULARSTRING (2754777.422 1260634.983, 2754777.506 1260635.783, 2754777.312 1260636.563) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 333736, tid2 336412, coord (2754777.422, 1260634.983, NaN), coord2 (2754777.4221918387, 1260634.9836703436, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 2.6197327418486793E-8, seg1 CIRCULARSTRING (2754777.312 1260636.563, 2754777.506 1260635.783, 2754777.422 1260634.983), seg2 (2754778.476 1260638.666, 2754777.422 1260634.983) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 333736, tid2 333736, coord (2754777.422, 1260634.983, NaN), coord2 (2754777.4221918387, 1260634.9836703436, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 2.6197327418486793E-8, seg1 CIRCULARSTRING (2754777.312 1260636.563, 2754777.506 1260635.783, 2754777.422 1260634.983), seg2 (2754777.422 1260634.983, 2754778.476 1260638.666) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 336027, tid2 336027, coord (2754099.29, 1260640.602, NaN), coord2 (2754099.294155068, 1260640.6019543677, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 4.268801845341841E-7, seg1 (2754104.207 1260640.548, 2754099.29 1260640.602), seg2 CIRCULARSTRING (2754099.29 1260640.602, 2754100.045 1260640.65, 2754100.784 1260640.81) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 336027, tid2 336408, coord (2754099.29, 1260640.602, NaN), coord2 (2754099.294155068, 1260640.6019543677, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 4.268801845341841E-7, seg1 (2754104.207 1260640.548, 2754099.29 1260640.602), seg2 CIRCULARSTRING (2754100.784 1260640.81, 2754100.045 1260640.65, 2754099.29 1260640.602) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 335685, tid2 335647, coord (2754997.7268392625, 1260354.8976185862, NaN), coord2 (2754997.727, 1260354.897, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 3.894404398963047E-8, seg1 CIRCULARSTRING (2754997.727 1260354.897, 2754997.839 1260355.844, 2754998.564 1260356.465), seg2 (2754997.727 1260354.897, 2754996.744 1260358.68) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 335685, tid2 335685, coord (2754997.7268392625, 1260354.8976185862, NaN), coord2 (2754997.727, 1260354.897, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 3.894404398963047E-8, seg1 (2754996.744 1260358.68, 2754997.727 1260354.897), seg2 CIRCULARSTRING (2754997.727 1260354.897, 2754997.839 1260355.844, 2754998.564 1260356.465) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 336408, tid2 336408, coord (2754099.29, 1260640.602, NaN), coord2 (2754099.294155068, 1260640.6019543677, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 4.268801845341841E-7, seg1 CIRCULARSTRING (2754100.784 1260640.81, 2754100.045 1260640.65, 2754099.29 1260640.602), seg2 (2754099.29 1260640.602, 2754104.207 1260640.548) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: intersection tid1 336412, tid2 336493, coord (2754777.422, 1260634.983, NaN), coord2 (2754777.4221918387, 1260634.9836703436, NaN)
2026-06-24 12:07:29.963 | Info: getLines(): overlap 2.6197327418486793E-8, seg1 (2754778.476 1260638.666, 2754777.422 1260634.983), seg2 CIRCULARSTRING (2754777.422 1260634.983, 2754777.506 1260635.783, 2754777.312 1260636.563) (ItfAreaPolygon2Linetable.java:198)
2026-06-24 12:07:29.963 | Error: failed to write xml output
2026-06-24 12:07:29.963 | Error: intersections
2026-06-24 12:07:29.963 | Error: ch.interlis.iom_j.itf.impl.ItfAreaPolygon2Linetable.getLines(ItfAreaPolygon2Linetable.java:200)
2026-06-24 12:07:29.963 | Error: ch.interlis.iom_j.itf.ItfWriter2.write(ItfWriter2.java:255)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2db.toxtf.TransferToXtf.doit(TransferToXtf.java:320)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2db.base.Ili2db.transferToXtf(Ili2db.java:3053)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2db.base.Ili2db.runExport(Ili2db.java:2389)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2db.base.Ili2db.run(Ili2db.java:255)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2db.AbstractMain.domain(AbstractMain.java:648)
2026-06-24 12:07:29.963 | Error: ch.ehi.ili2pg.PgMain.main(PgMain.java:72)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder KEY: size 955902, filesize 9389750 </tmp/ioxtmp4799303347309357142> (BTree.java:396)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder KEY: keySize 0, 22974 (BTree.java:397)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder KEY: valueSize 0, 8 (BTree.java:398)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder VAL: size 168593428 </tmp/ioxtmp2416765900099362997> (BTreeImpl.java:77)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder VAL: valueSize 0, 1600 (BTreeImpl.java:78)
2026-06-24 12:07:29.963 | Info: close(): ItfAreaPolygon2Linetable: size 4546279 </tmp/ioxtmp2323056825699335989> (ObjPoolImpl2.java:69)
2026-06-24 12:07:29.963 | Info: close(): CompoundCurveNoder: size 0 </tmp/ioxtmp4098339971272448350> (ObjPoolImpl2.java:69)
2026-06-24 12:07:29.963 | ...export failed
2026-06-24 12:07:29.963 | ch.ehi.ili2db.base.Ili2db.runExport(Ili2db.java:2391)
2026-06-24 12:07:29.963 | ch.ehi.ili2db.base.Ili2db.run(Ili2db.java:255)
2026-06-24 12:07:29.963 | ch.ehi.ili2db.AbstractMain.domain(AbstractMain.java:648)
2026-06-24 12:07:29.963 | ch.ehi.ili2pg.PgMain.main(PgMain.java:72)
2026-06-24 12:07:29.963 | 2026-06-24 12:07:29 +0200 Transformed INTERLIS export failed
Hat jemand Erfahrung damit? Ich gehe davon aus, dass es sich um ein Interlis Tool Problem handelt bzw. etwas mit dem Auflösen der Kreisbögen zu tun hat.