[Wsplgen-commits] r51 - in trunk: bin/test_results src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Jun 9 21:54:04 CEST 2006
Author: mrchip
Date: 2006-06-09 21:54:01 +0200 (Fri, 09 Jun 2006)
New Revision: 51
Modified:
trunk/bin/test_results/test.txt
trunk/src/Makefile
trunk/src/file.cpp
trunk/src/file.h
trunk/src/parameter.cpp
trunk/src/quadtree.cpp
trunk/src/quadtree.h
trunk/src/test_file.cpp
trunk/src/test_profil.cpp
trunk/src/test_quadtree.cpp
trunk/src/test_tools.cpp
trunk/src/test_tri.cpp
trunk/src/tools.cpp
trunk/src/tools.h
trunk/src/tri.cpp
trunk/src/wsplgen.cpp
trunk/src/wsplgen.h
trunk/src/xy.cpp
trunk/src/xy.h
Log:
Es wurden Fehler im Zusamenhang mit der Umstellung auf long bei den Koordinaten beseitigt.
Das Attribut GEW und die Bearbeitungsbereiche wurde ersatzlos gestrichen.
Modified: trunk/bin/test_results/test.txt
===================================================================
--- trunk/bin/test_results/test.txt 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/bin/test_results/test.txt 2006-06-09 19:54:01 UTC (rev 51)
@@ -1,1709 +1,1729 @@
-01:47:02: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' gestartet
-01:47:02: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ gestartet
-01:47:02: 13 Werte gelesen, 13 von 13 Knoten im Speicher
-01:47:02: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ beendet
-01:47:02: ->Suche nach doppelten Knoten gestartet
-01:47:02: 13 Knoten und keine Elemente vorhanden
-01:47:02: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:02: <-Suche nach doppelten Knoten beendet
-01:47:02: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' beendet
-01:47:02: ->Triangulierung der Knoten gestartet
-01:47:02: ->Sortieren Knoten gestartet
-01:47:02: <-Sortieren der Knoten beendet
-01:47:02: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:02: <-Löschen des Knoten/Kanten-Index beendet
-01:47:02: ->Suchen der Startkante gestartet
-01:47:02: Kante: 1 - 2 als Startkante
-01:47:02: <-Suchen der Startkante beendet
-01:47:02: <-Triangulierung der Knoten beendet
-01:47:02: ->Erzeugung der Kanten gestartet
-01:47:02: 19 von 19 Elementen, 31 Kanten erzeugt
-01:47:02: 0 von 31 Kanten getestet
-01:47:02: 31 von 31 Kanten getestet
-01:47:02: <-Erzeugung der Kanten beendet
-01:47:02: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
-01:47:02: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
-01:47:02: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
-01:47:02: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
-01:47:02: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
-01:47:02: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
-01:47:02: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
-01:47:02: ->Suche nach doppelten Knoten gestartet
-01:47:02: 114 Knoten und keine Elemente vorhanden
-01:47:02: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:02: <-Suche nach doppelten Knoten beendet
-01:47:02: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
-01:47:02: 0.01,0.01
-01:47:02: 0.01,0.01
-01:47:02: 0.01,0.02
-01:47:02: 0.02,0.02
-01:47:02: 0.02,0.01
-01:47:02: 0.01,0.01
-01:47:02: 0.01,0.02
-01:47:02: 0.02,0.02
-01:47:02: 0.02,0.01
-01:47:02: 0.01,0.01
-01:47:02: 0.01,0.02
-01:47:02: 0.01,0.03
-01:47:02: 0.02,0.02
-01:47:02: 0.02,0.03
-01:47:02: 0.03,0.02
-01:47:02: 0.03,0.03
-01:47:02: 0.02,0.01
-01:47:02: 0.03,0.01
-01:47:02: 0.01,0.01
-01:47:02: 0.01,0.09
-01:47:02: 0.04,0.09
-01:47:02: 0.03,0.06
-01:47:02: 0.04,0.05
-01:47:02: 0.09,0.09
-01:47:02: 0.07,0.09
-01:47:02: 0.07,0.07
-01:47:02: 0.07,0.06
-01:47:02: 0.09,0.01
-01:47:02: 0.07,0.04
-01:47:02: 0.03,0.04
-01:47:02: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
-01:47:02: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
-01:47:02: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
-01:47:02: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
-01:47:02: ->Suche nach doppelten Knoten gestartet
-01:47:02: 1126 Knoten und keine Elemente vorhanden
-01:47:02: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:02: <-Suche nach doppelten Knoten beendet
-01:47:02: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
-01:47:02: 3501267.49,5872612.21
-01:47:02: 3500741.94,5873010.11
-01:47:02: 3500733.82,5872983.87
-01:47:02: 3500726.79,5873108.23
-01:47:02: 3500727.21,5873257.13
-01:47:02: 3500730.52,5873329.20
-01:47:02: 3500734.91,5873293.44
-01:47:02: 3500685.45,5873261.49
-01:47:02: 3500699.93,5873298.09
-01:47:02: 3500738.07,5873147.90
-01:47:02: 3500691.05,5873185.69
-01:47:02: 3500692.77,5873223.67
-01:47:02: 3500724.99,5873180.90
-01:47:02: 3500730.53,5873216.57
-01:47:02: 3500685.70,5873112.11
-01:47:02: 3500700.42,5873147.47
-01:47:02: 3500733.86,5873038.63
-01:47:02: 3500726.38,5873069.66
-01:47:02: 3500695.85,5873035.94
-01:47:02: 3500695.28,5873076.51
-01:47:02: 3500731.87,5872960.78
-01:47:02: 3500713.94,5873006.84
-01:47:02: 3500710.48,5872981.53
-01:47:02: 3500714.77,5872967.93
-01:47:02: 3500733.58,5872944.56
-01:47:02: 3501269.86,5872816.42
-01:47:02: 3501099.88,5873416.41
-01:47:02: 3501063.99,5873407.92
-01:47:02: 3501022.45,5873411.00
-01:47:02: 3500987.30,5873417.60
-01:47:02: 3500955.14,5873404.00
-01:47:02: 3500922.33,5873416.94
-01:47:02: 3500879.94,5873411.35
-01:47:02: 3500835.30,5873410.84
-01:47:02: 3500797.71,5873412.18
-01:47:02: 3501251.80,5873408.21
-01:47:02: 3501334.15,5873408.58
-01:47:02: 3501410.39,5873416.02
-01:47:02: 3501444.14,5873404.29
-01:47:02: 3501375.52,5873411.84
-01:47:02: 3501213.20,5873407.85
-01:47:02: 3501293.31,5873419.57
-01:47:02: 3501177.16,5873415.15
-01:47:02: 3501136.19,5873411.35
-01:47:02: 3501251.95,5872819.23
-01:47:02: 3501247.91,5873111.14
-01:47:02: 3501177.23,5873257.77
-01:47:02: 3501147.48,5873340.62
-01:47:02: 3501142.70,5873374.43
-01:47:02: 3501183.79,5873333.72
-01:47:02: 3501180.31,5873373.97
-01:47:02: 3501217.95,5873373.52
-01:47:02: 3501213.19,5873304.01
-01:47:02: 3501184.45,5873293.37
-01:47:02: 3501136.62,5873261.72
-01:47:02: 3501145.77,5873302.23
-01:47:02: 3501263.50,5873260.93
-01:47:02: 3501259.17,5873331.73
-01:47:02: 3501256.42,5873367.06
-01:47:02: 3501224.98,5873337.01
-01:47:02: 3501296.42,5873339.25
-01:47:02: 3501293.05,5873382.51
-01:47:02: 3501298.37,5873266.32
-01:47:02: 3501284.76,5873299.04
-01:47:02: 3501221.67,5873264.43
-01:47:02: 3501247.43,5873298.09
-01:47:02: 3501288.19,5873113.25
-01:47:02: 3501256.03,5873186.16
-01:47:02: 3501248.53,5873224.43
-01:47:02: 3501293.02,5873187.36
-01:47:02: 3501289.61,5873226.83
-01:47:02: 3501300.28,5873152.80
-01:47:02: 3501262.38,5873148.08
-01:47:02: 3501221.72,5873152.04
-01:47:02: 3501210.24,5873111.86
-01:47:02: 3501147.05,5873190.51
-01:47:02: 3501142.62,5873224.06
-01:47:02: 3501217.82,5873192.87
-01:47:02: 3501180.39,5873216.01
-01:47:02: 3501212.35,5873229.77
-01:47:02: 3501181.50,5873177.77
-01:47:02: 3501177.08,5873105.90
-01:47:02: 3501180.06,5873140.75
-01:47:02: 3501139.21,5873112.89
-01:47:02: 3501142.94,5873156.09
-01:47:02: 3501326.44,5873107.03
-01:47:02: 3501331.45,5873253.41
-01:47:02: 3501335.30,5873331.59
-01:47:02: 3501330.44,5873366.95
-01:47:02: 3501369.03,5873336.90
-01:47:02: 3501368.22,5873374.38
-01:47:02: 3501405.85,5873336.38
-01:47:02: 3501367.01,5873268.75
-01:47:02: 3501363.40,5873303.35
-01:47:02: 3501403.28,5873295.62
-01:47:02: 3501401.10,5873257.08
-01:47:02: 3501325.99,5873295.48
-01:47:02: 3501440.19,5873265.38
-01:47:02: 3501443.83,5873343.78
-01:47:02: 3501407.30,5873377.34
-01:47:02: 3501443.41,5873374.10
-01:47:02: 3501442.85,5873306.61
-01:47:02: 3501410.28,5873227.36
-01:47:02: 3501364.60,5873113.67
-01:47:02: 3501330.36,5873176.63
-01:47:02: 3501330.04,5873215.80
-01:47:02: 3501363.44,5873191.14
-01:47:02: 3501371.23,5873226.76
-01:47:02: 3501405.96,5873185.52
-01:47:02: 3501402.31,5873106.54
-01:47:02: 3501369.06,5873156.21
-01:47:02: 3501405.50,5873141.20
-01:47:02: 3501331.89,5873138.57
-01:47:02: 3501323.29,5872851.93
-01:47:02: 3501322.72,5872961.19
-01:47:02: 3501329.42,5873027.24
-01:47:02: 3501334.53,5873069.66
-01:47:02: 3501362.75,5873041.40
-01:47:02: 3501375.73,5873073.47
-01:47:02: 3501364.72,5872965.28
-01:47:02: 3501368.01,5873006.17
-01:47:02: 3501335.84,5872992.78
-01:47:02: 3501332.60,5872865.63
-01:47:02: 3501330.76,5872887.44
-01:47:02: 3501335.29,5872925.67
-01:47:02: 3501290.05,5872816.47
-01:47:02: 3501147.89,5872960.56
-01:47:02: 3501137.56,5873041.01
-01:47:02: 3501150.96,5873073.29
-01:47:02: 3501214.91,5873038.09
-01:47:02: 3501188.50,5873072.32
-01:47:02: 3501173.03,5873035.24
-01:47:02: 3501180.24,5872961.77
-01:47:02: 3501183.47,5872996.92
-01:47:02: 3501210.46,5872961.30
-01:47:02: 3501140.95,5873001.24
-01:47:02: 3501284.89,5872962.09
-01:47:02: 3501255.33,5873027.33
-01:47:02: 3501223.54,5873077.76
-01:47:02: 3501259.03,5873069.47
-01:47:02: 3501292.63,5873043.39
-01:47:02: 3501297.30,5873077.96
-01:47:02: 3501296.77,5873002.29
-01:47:02: 3501247.70,5872961.39
-01:47:02: 3501226.84,5872999.13
-01:47:02: 3501262.40,5872991.16
-01:47:02: 3501233.71,5872816.50
-01:47:02: 3501239.10,5872876.42
-01:47:02: 3501221.78,5872925.08
-01:47:02: 3501259.53,5872925.33
-01:47:02: 3501256.06,5872889.47
-01:47:02: 3501237.33,5872898.41
-01:47:02: 3501274.61,5872876.44
-01:47:02: 3501297.60,5872925.39
-01:47:02: 3501293.36,5872888.43
-01:47:02: 3501312.18,5872897.81
-01:47:02: 3501274.47,5872898.46
-01:47:02: 3501310.44,5872816.53
-01:47:02: 3501273.70,5872858.16
-01:47:02: 3501298.49,5872855.04
-01:47:02: 3501291.41,5872868.26
-01:47:02: 3501312.06,5872872.11
-01:47:02: 3501308.56,5872835.82
-01:47:02: 3501267.74,5872835.91
-01:47:02: 3501287.18,5872837.17
-01:47:02: 3501245.66,5872835.10
-01:47:02: 3501231.54,5872851.41
-01:47:02: 3501224.10,5872864.38
-01:47:02: 3501260.98,5872849.75
-01:47:02: 3501248.90,5872861.27
-01:47:02: 3501258.31,5872869.82
-01:47:02: 3501247.51,5872851.07
-01:47:02: 3501224.15,5872834.64
-01:47:02: 3501210.50,5872814.37
-01:47:02: 3501142.37,5872889.76
-01:47:02: 3501142.36,5872919.79
-01:47:02: 3501162.30,5872894.94
-01:47:02: 3501125.47,5872894.52
-01:47:02: 3501218.32,5872886.87
-01:47:02: 3501180.42,5872927.13
-01:47:02: 3501199.62,5872896.32
-01:47:02: 3501182.02,5872888.23
-01:47:02: 3501187.96,5872817.11
-01:47:02: 3501185.26,5872853.86
-01:47:02: 3501174.50,5872870.61
-01:47:02: 3501208.65,5872851.45
-01:47:02: 3501199.30,5872867.49
-01:47:02: 3501214.97,5872870.87
-01:47:02: 3501205.55,5872832.66
-01:47:02: 3501187.15,5872835.82
-01:47:02: 3501166.84,5872816.82
-01:47:02: 3501146.79,5872851.56
-01:47:02: 3501129.24,5872860.15
-01:47:02: 3501165.39,5872857.58
-01:47:02: 3501149.71,5872873.72
-01:47:02: 3501165.59,5872837.46
-01:47:02: 3501146.76,5872815.84
-01:47:02: 3501128.45,5872819.34
-01:47:02: 3501144.14,5872833.69
-01:47:02: 3501107.18,5872815.07
-01:47:02: 3500912.76,5873116.86
-01:47:02: 3500840.35,5873264.82
-01:47:02: 3500767.75,5873344.49
-01:47:02: 3500767.78,5873381.38
-01:47:02: 3500807.89,5873333.43
-01:47:02: 3500805.86,5873373.64
-01:47:02: 3500838.21,5873303.01
-01:47:02: 3500805.11,5873291.43
-01:47:02: 3500800.94,5873256.04
-01:47:02: 3500767.07,5873268.41
-01:47:02: 3500768.94,5873307.67
-01:47:02: 3500913.32,5873265.15
-01:47:02: 3500876.57,5873340.25
-01:47:02: 3500845.54,5873372.09
-01:47:02: 3500885.10,5873370.29
-01:47:02: 3500847.14,5873332.02
-01:47:02: 3500916.54,5873336.09
-01:47:02: 3500917.84,5873381.57
-01:47:02: 3500922.64,5873294.86
-01:47:02: 3500879.77,5873254.67
-01:47:02: 3500880.51,5873298.62
-01:47:02: 3500926.60,5873149.37
-01:47:02: 3500879.61,5873193.06
-01:47:02: 3500849.25,5873223.58
-01:47:02: 3500880.80,5873223.73
-01:47:02: 3500913.31,5873181.35
-01:47:02: 3500919.01,5873223.93
-01:47:02: 3500876.98,5873107.08
-01:47:02: 3500847.98,5873143.55
-01:47:02: 3500883.38,5873151.96
-01:47:02: 3500834.23,5873110.17
-01:47:02: 3500760.19,5873186.29
-01:47:02: 3500770.45,5873227.14
-01:47:02: 3500839.62,5873182.20
-01:47:02: 3500813.51,5873223.01
-01:47:02: 3500797.99,5873187.01
-01:47:02: 3500813.75,5873148.92
-01:47:02: 3500796.43,5873110.44
-01:47:02: 3500776.41,5873148.75
-01:47:02: 3500762.14,5873115.93
-01:47:02: 3501098.09,5873109.81
-01:47:02: 3501000.29,5873260.77
-01:47:02: 3500955.63,5873336.67
-01:47:02: 3500955.20,5873366.47
-01:47:02: 3500994.13,5873337.42
-01:47:02: 3500993.10,5873380.95
-01:47:02: 3501022.86,5873298.52
-01:47:02: 3500987.23,5873294.02
-01:47:02: 3500955.67,5873261.70
-01:47:02: 3500955.47,5873305.97
-01:47:02: 3501105.69,5873261.31
-01:47:02: 3501064.19,5873340.74
-01:47:02: 3501032.54,5873371.46
-01:47:02: 3501073.24,5873369.69
-01:47:02: 3501034.48,5873331.90
-01:47:02: 3501105.70,5873335.98
-01:47:02: 3501105.46,5873381.14
-01:47:02: 3501105.34,5873293.22
-01:47:02: 3501074.61,5873261.24
-01:47:02: 3501065.41,5873301.97
-01:47:02: 3501038.47,5873261.35
-01:47:02: 3501062.38,5873115.47
-01:47:02: 3501064.09,5873182.03
-01:47:02: 3501064.90,5873220.27
-01:47:02: 3501105.11,5873186.61
-01:47:02: 3501104.79,5873229.40
-01:47:02: 3501110.44,5873143.84
-01:47:02: 3501076.58,5873149.19
-01:47:02: 3501037.63,5873148.04
-01:47:02: 3501026.69,5873107.74
-01:47:02: 3500951.62,5873188.63
-01:47:02: 3500954.81,5873224.11
-01:47:02: 3501030.10,5873186.27
-01:47:02: 3500985.27,5873224.11
-01:47:02: 3501023.11,5873223.69
-01:47:02: 3500992.60,5873186.29
-01:47:02: 3500984.92,5873110.95
-01:47:02: 3501001.35,5873147.88
-01:47:02: 3500949.26,5873110.68
-01:47:02: 3500963.93,5873149.18
-01:47:02: 3501124.15,5872838.14
-01:47:02: 3501025.76,5872962.80
-01:47:02: 3500956.03,5873027.96
-01:47:02: 3500957.26,5873069.06
-01:47:02: 3501026.72,5873031.73
-01:47:02: 3500997.39,5873078.42
-01:47:02: 3501031.11,5873065.63
-01:47:02: 3500992.65,5873043.10
-01:47:02: 3500989.14,5872962.66
-01:47:02: 3500996.81,5873002.11
-01:47:02: 3500950.22,5872962.71
-01:47:02: 3500960.82,5872994.52
-01:47:02: 3501109.08,5872963.52
-01:47:02: 3501065.72,5873040.07
-01:47:02: 3501067.86,5873080.47
-01:47:02: 3501105.27,5873028.74
-01:47:02: 3501108.66,5873070.37
-01:47:02: 3501101.44,5872993.67
-01:47:02: 3501067.75,5872963.78
-01:47:02: 3501038.13,5872998.98
-01:47:02: 3501072.08,5873003.81
-01:47:02: 3501101.81,5872836.95
-01:47:02: 3501042.01,5872875.95
-01:47:02: 3501049.13,5872935.85
-01:47:02: 3501068.33,5872925.32
-01:47:02: 3501075.31,5872883.06
-01:47:02: 3501066.74,5872902.35
-01:47:02: 3501065.34,5872889.34
-01:47:02: 3501050.51,5872886.17
-01:47:02: 3501033.08,5872903.34
-01:47:02: 3501049.64,5872911.19
-01:47:02: 3501124.91,5872876.83
-01:47:02: 3501089.36,5872932.76
-01:47:02: 3501116.95,5872935.34
-01:47:02: 3501109.02,5872887.71
-01:47:02: 3501108.76,5872909.18
-01:47:02: 3501100.11,5872879.94
-01:47:02: 3501084.77,5872907.14
-01:47:02: 3501093.11,5872891.98
-01:47:02: 3501086.13,5872821.18
-01:47:02: 3501082.61,5872839.63
-01:47:02: 3501079.70,5872871.28
-01:47:02: 3501090.27,5872858.11
-01:47:02: 3501110.25,5872853.02
-01:47:02: 3501109.41,5872869.13
-01:47:02: 3501068.00,5872814.42
-01:47:02: 3501042.65,5872857.60
-01:47:02: 3501065.35,5872853.75
-01:47:02: 3501060.70,5872872.06
-01:47:02: 3501064.53,5872833.30
-01:47:02: 3501047.52,5872817.09
-01:47:02: 3501044.11,5872837.33
-01:47:02: 3501023.73,5872817.36
-01:47:02: 3500976.12,5872895.51
-01:47:02: 3500956.28,5872926.96
-01:47:02: 3500938.25,5872914.04
-01:47:02: 3500974.87,5872914.20
-01:47:02: 3500973.99,5872936.29
-01:47:02: 3500964.72,5872878.32
-01:47:02: 3500958.83,5872907.54
-01:47:02: 3500951.32,5872898.62
-01:47:02: 3501025.72,5872889.28
-01:47:02: 3500993.38,5872926.09
-01:47:02: 3501030.67,5872925.41
-01:47:02: 3501011.42,5872935.20
-01:47:02: 3501012.50,5872909.90
-01:47:02: 3501006.08,5872877.51
-01:47:02: 3500992.09,5872905.90
-01:47:02: 3501000.92,5872892.40
-01:47:02: 3500986.33,5872876.32
-01:47:02: 3501026.19,5872839.59
-01:47:02: 3501000.81,5872857.91
-01:47:02: 3501020.57,5872854.31
-01:47:02: 3501023.76,5872870.61
-01:47:02: 3501001.25,5872814.92
-01:47:02: 3501004.85,5872835.50
-01:47:02: 3500982.32,5872817.64
-01:47:02: 3500957.59,5872858.04
-01:47:02: 3500942.94,5872874.58
-01:47:02: 3500983.78,5872837.83
-01:47:02: 3500978.29,5872857.54
-01:47:02: 3500965.97,5872841.75
-01:47:02: 3500961.93,5872821.83
-01:47:02: 3500940.00,5872815.40
-01:47:02: 3500947.10,5872836.70
-01:47:02: 3500937.49,5872855.01
-01:47:02: 3500841.93,5872957.06
-01:47:02: 3500770.03,5873039.00
-01:47:02: 3500765.42,5873077.17
-01:47:02: 3500840.16,5873040.20
-01:47:02: 3500808.78,5873070.45
-01:47:02: 3500801.01,5873031.95
-01:47:02: 3500816.97,5872973.22
-01:47:02: 3500809.91,5873002.22
-01:47:02: 3500789.69,5872970.41
-01:47:02: 3500770.53,5872997.97
-01:47:02: 3500769.28,5872963.04
-01:47:02: 3500750.76,5872969.58
-01:47:02: 3500751.90,5872950.19
-01:47:02: 3500913.32,5872962.89
-01:47:02: 3500880.41,5873027.26
-01:47:02: 3500847.20,5873077.54
-01:47:02: 3500880.99,5873065.10
-01:47:02: 3500918.91,5873044.15
-01:47:02: 3500917.47,5873080.60
-01:47:02: 3500921.53,5873002.66
-01:47:02: 3500876.00,5872962.78
-01:47:02: 3500848.17,5872998.34
-01:47:02: 3500886.12,5872994.25
-01:47:02: 3500937.36,5872892.10
-01:47:02: 3500883.43,5872926.01
-01:47:02: 3500862.10,5872931.81
-01:47:02: 3500882.18,5872895.73
-01:47:02: 3500876.93,5872907.96
-01:47:02: 3500877.64,5872877.13
-01:47:02: 3500852.13,5872911.07
-01:47:02: 3500862.37,5872894.75
-01:47:02: 3500855.33,5872877.12
-01:47:02: 3500936.74,5872935.56
-01:47:02: 3500900.25,5872934.30
-01:47:02: 3500920.39,5872929.76
-01:47:02: 3500915.48,5872914.84
-01:47:02: 3500926.52,5872901.73
-01:47:02: 3500922.77,5872880.33
-01:47:02: 3500912.77,5872892.31
-01:47:02: 3500901.73,5872904.85
-01:47:02: 3500896.40,5872890.05
-01:47:02: 3500917.25,5872817.03
-01:47:02: 3500905.58,5872837.85
-01:47:02: 3500901.20,5872873.38
-01:47:02: 3500898.20,5872854.69
-01:47:02: 3500918.99,5872859.22
-01:47:02: 3500925.41,5872836.61
-01:47:02: 3500896.30,5872817.09
-01:47:02: 3500875.50,5872817.45
-01:47:02: 3500859.20,5872857.55
-01:47:02: 3500879.92,5872857.92
-01:47:02: 3500884.79,5872837.31
-01:47:02: 3500855.15,5872816.69
-01:47:02: 3500863.69,5872837.35
-01:47:02: 3500842.46,5872927.13
-01:47:02: 3500788.09,5872946.59
-01:47:02: 3500770.46,5872940.66
-01:47:02: 3500755.77,5872933.07
-01:47:02: 3500757.95,5872913.49
-01:47:02: 3500787.86,5872928.78
-01:47:02: 3500777.96,5872921.57
-01:47:02: 3500794.25,5872897.66
-01:47:02: 3500781.43,5872911.91
-01:47:02: 3500777.30,5872878.18
-01:47:02: 3500772.67,5872896.66
-01:47:02: 3500823.51,5872930.12
-01:47:02: 3500809.91,5872947.81
-01:47:02: 3500802.53,5872917.30
-01:47:02: 3500803.36,5872929.93
-01:47:02: 3500827.33,5872914.18
-01:47:02: 3500839.00,5872894.88
-01:47:02: 3500815.41,5872897.61
-01:47:02: 3500818.54,5872878.10
-01:47:02: 3500797.60,5872878.09
-01:47:02: 3500836.45,5872874.95
-01:47:02: 3500818.43,5872857.50
-01:47:02: 3500800.61,5872860.50
-01:47:02: 3500819.00,5872838.01
-01:47:02: 3500839.00,5872857.09
-01:47:02: 3500836.52,5872814.29
-01:47:02: 3500840.94,5872835.88
-01:47:02: 3500818.63,5872817.37
-01:47:02: 3500800.95,5872820.10
-01:47:02: 3500796.28,5872839.60
-01:47:02: 3500772.62,5872837.50
-01:47:02: 3500782.20,5872857.64
-01:47:02: 3500782.21,5872817.07
-01:47:02: 3500758.25,5872815.41
-01:47:02: 3501270.00,5872629.60
-01:47:02: 3501122.32,5872634.24
-01:47:02: 3500920.58,5872543.15
-01:47:02: 3500829.46,5872657.27
-01:47:02: 3500775.86,5872737.11
-01:47:02: 3500752.90,5872775.57
-01:47:02: 3500759.85,5872793.77
-01:47:02: 3500776.55,5872778.50
-01:47:02: 3500776.04,5872799.11
-01:47:02: 3500780.52,5872758.67
-01:47:02: 3500753.50,5872736.52
-01:47:02: 3500761.61,5872756.10
-01:47:02: 3500835.29,5872735.63
-01:47:02: 3500818.23,5872780.39
-01:47:02: 3500797.68,5872796.19
-01:47:02: 3500798.40,5872772.36
-01:47:02: 3500836.01,5872773.44
-01:47:02: 3500820.87,5872799.15
-01:47:02: 3500841.36,5872794.51
-01:47:02: 3500843.44,5872755.12
-01:47:02: 3500820.43,5872757.97
-01:47:02: 3500816.02,5872737.94
-01:47:02: 3500798.14,5872751.41
-01:47:02: 3500798.14,5872731.31
-01:47:02: 3500805.93,5872665.68
-01:47:02: 3500798.83,5872695.26
-01:47:02: 3500817.26,5872716.74
-01:47:02: 3500820.10,5872696.38
-01:47:02: 3500839.67,5872694.61
-01:47:02: 3500838.95,5872715.10
-01:47:02: 3500822.62,5872677.10
-01:47:02: 3500843.03,5872671.82
-01:47:02: 3500803.40,5872680.06
-01:47:02: 3500777.26,5872653.82
-01:47:02: 3500757.68,5872699.44
-01:47:02: 3500758.04,5872717.86
-01:47:02: 3500778.26,5872695.59
-01:47:02: 3500777.64,5872716.40
-01:47:02: 3500795.80,5872712.66
-01:47:02: 3500782.39,5872674.09
-01:47:02: 3500761.30,5872668.45
-01:47:02: 3500758.86,5872682.49
-01:47:02: 3500897.89,5872651.18
-01:47:02: 3500877.56,5872737.67
-01:47:02: 3500855.41,5872775.99
-01:47:02: 3500863.79,5872796.29
-01:47:02: 3500875.34,5872776.16
-01:47:02: 3500884.94,5872796.92
-01:47:02: 3500884.56,5872756.12
-01:47:02: 3500857.78,5872733.39
-01:47:02: 3500864.05,5872755.62
-01:47:02: 3500922.89,5872733.79
-01:47:02: 3500896.06,5872776.82
-01:47:02: 3500905.37,5872797.16
-01:47:02: 3500917.45,5872776.54
-01:47:02: 3500925.86,5872796.41
-01:47:02: 3500921.55,5872755.51
-01:47:02: 3500899.20,5872736.77
-01:47:02: 3500903.53,5872758.44
-01:47:02: 3500917.39,5872656.45
-01:47:02: 3500898.72,5872695.92
-01:47:02: 3500903.21,5872717.77
-01:47:02: 3500922.34,5872692.44
-01:47:02: 3500919.04,5872712.09
-01:47:02: 3500924.13,5872671.82
-01:47:02: 3500902.94,5872673.91
-01:47:02: 3500863.65,5872659.67
-01:47:02: 3500855.96,5872691.76
-01:47:02: 3500860.35,5872710.50
-01:47:02: 3500876.05,5872695.88
-01:47:02: 3500882.04,5872716.91
-01:47:02: 3500882.92,5872659.10
-01:47:02: 3500881.72,5872676.90
-01:47:02: 3500863.28,5872677.84
-01:47:02: 3500932.76,5872579.75
-01:47:02: 3500850.35,5872578.79
-01:47:02: 3500864.11,5872627.62
-01:47:02: 3500853.00,5872648.86
-01:47:02: 3500887.29,5872617.03
-01:47:02: 3500876.53,5872640.46
-01:47:02: 3500870.71,5872605.35
-01:47:02: 3500928.58,5872611.24
-01:47:02: 3500900.07,5872632.05
-01:47:02: 3500909.95,5872639.29
-01:47:02: 3500923.60,5872623.64
-01:47:02: 3500925.70,5872640.40
-01:47:02: 3500891.48,5872577.00
-01:47:02: 3500909.44,5872608.12
-01:47:02: 3500899.53,5872505.24
-01:47:02: 3500886.12,5872537.71
-01:47:02: 3500853.71,5872543.18
-01:47:02: 3500856.95,5872502.88
-01:47:02: 3500820.23,5872548.97
-01:47:02: 3500774.30,5872576.19
-01:47:02: 3500756.75,5872646.65
-01:47:02: 3500778.43,5872614.65
-01:47:02: 3500796.74,5872647.50
-01:47:02: 3500810.24,5872582.64
-01:47:02: 3500815.22,5872620.62
-01:47:02: 3500817.46,5872647.41
-01:47:02: 3500841.29,5872635.38
-01:47:02: 3500842.84,5872608.02
-01:47:02: 3500817.21,5872513.96
-01:47:02: 3500782.56,5872540.34
-01:47:02: 3501121.81,5872598.65
-01:47:02: 3501019.35,5872654.55
-01:47:02: 3500979.76,5872733.04
-01:47:02: 3500960.15,5872778.46
-01:47:02: 3500944.33,5872794.53
-01:47:02: 3500939.44,5872774.38
-01:47:02: 3500981.33,5872778.05
-01:47:02: 3500963.88,5872799.18
-01:47:02: 3500962.34,5872739.70
-01:47:02: 3500962.37,5872760.17
-01:47:02: 3500944.53,5872732.39
-01:47:02: 3500941.67,5872751.87
-01:47:02: 3501024.02,5872734.91
-01:47:02: 3501002.68,5872772.57
-01:47:02: 3500985.20,5872798.95
-01:47:02: 3501005.18,5872794.70
-01:47:02: 3501023.44,5872776.30
-01:47:02: 3501025.93,5872794.89
-01:47:02: 3501021.79,5872758.07
-01:47:02: 3500999.64,5872735.39
-01:47:02: 3500984.41,5872754.54
-01:47:02: 3501005.83,5872752.74
-01:47:02: 3501025.85,5872675.02
-01:47:02: 3501006.54,5872694.40
-01:47:02: 3500985.24,5872716.77
-01:47:02: 3501003.58,5872714.96
-01:47:02: 3501023.70,5872694.34
-01:47:02: 3501024.09,5872711.88
-01:47:02: 3500999.00,5872653.89
-01:47:02: 3500985.41,5872671.67
-01:47:02: 3501003.29,5872674.51
-01:47:02: 3500978.44,5872653.61
-01:47:02: 3500958.75,5872694.55
-01:47:02: 3500939.98,5872713.54
-01:47:02: 3500941.39,5872694.44
-01:47:02: 3500982.65,5872694.61
-01:47:02: 3500963.86,5872715.98
-01:47:02: 3500966.44,5872674.88
-01:47:02: 3500959.29,5872656.97
-01:47:02: 3500943.85,5872675.41
-01:47:02: 3500940.14,5872653.50
-01:47:02: 3501124.54,5872713.13
-01:47:02: 3501062.87,5872732.89
-01:47:02: 3501042.20,5872778.44
-01:47:02: 3501044.10,5872797.35
-01:47:02: 3501063.19,5872777.58
-01:47:02: 3501062.28,5872798.81
-01:47:02: 3501066.70,5872754.34
-01:47:02: 3501046.54,5872738.13
-01:47:02: 3501042.91,5872757.62
-01:47:02: 3501124.38,5872757.75
-01:47:02: 3501084.77,5872776.09
-01:47:02: 3501083.68,5872798.76
-01:47:02: 3501124.81,5872798.41
-01:47:02: 3501103.24,5872794.15
-01:47:02: 3501108.10,5872774.75
-01:47:02: 3501110.30,5872735.44
-01:47:02: 3501103.32,5872752.88
-01:47:02: 3501085.20,5872735.50
-01:47:02: 3501087.59,5872758.25
-01:47:02: 3501107.74,5872655.44
-01:47:02: 3501083.39,5872692.30
-01:47:02: 3501087.50,5872712.39
-01:47:02: 3501106.21,5872698.61
-01:47:02: 3501103.19,5872718.29
-01:47:02: 3501106.11,5872678.25
-01:47:02: 3501083.07,5872652.54
-01:47:02: 3501088.43,5872671.12
-01:47:02: 3501061.08,5872655.24
-01:47:02: 3501040.37,5872694.44
-01:47:02: 3501045.80,5872716.46
-01:47:02: 3501060.57,5872694.50
-01:47:02: 3501069.11,5872714.57
-01:47:02: 3501069.37,5872673.58
-01:47:02: 3501039.44,5872655.25
-01:47:02: 3501048.44,5872674.05
-01:47:03: 3501115.29,5872578.40
-01:47:03: 3501072.16,5872604.47
-01:47:03: 3501042.90,5872621.64
-01:47:03: 3501047.12,5872638.76
-01:47:03: 3501063.65,5872616.36
-01:47:03: 3501066.31,5872634.53
-01:47:03: 3501057.54,5872591.37
-01:47:03: 3501047.34,5872607.37
-01:47:03: 3501037.96,5872597.83
-01:47:03: 3501040.42,5872577.91
-01:47:03: 3501109.16,5872615.97
-01:47:03: 3501086.08,5872618.17
-01:47:03: 3501085.36,5872634.95
-01:47:03: 3501102.06,5872635.09
-01:47:03: 3501099.55,5872590.34
-01:47:03: 3501084.08,5872595.98
-01:47:03: 3501096.98,5872601.56
-01:47:03: 3501078.23,5872579.53
-01:47:03: 3501117.18,5872538.63
-01:47:03: 3501097.28,5872569.03
-01:47:03: 3501078.77,5872546.75
-01:47:03: 3501111.32,5872501.40
-01:47:03: 3501075.10,5872509.26
-01:47:03: 3501040.94,5872538.96
-01:47:03: 3501059.49,5872568.87
-01:47:03: 3501036.13,5872501.02
-01:47:03: 3501000.21,5872540.43
-01:47:03: 3500966.11,5872584.15
-01:47:03: 3500948.06,5872619.02
-01:47:03: 3500941.10,5872634.03
-01:47:03: 3500972.88,5872616.09
-01:47:03: 3500962.34,5872636.44
-01:47:03: 3501022.52,5872610.28
-01:47:03: 3500997.70,5872613.19
-01:47:03: 3500985.70,5872633.81
-01:47:03: 3501006.78,5872634.11
-01:47:03: 3501028.24,5872636.30
-01:47:03: 3501019.38,5872620.14
-01:47:03: 3501018.89,5872590.18
-01:47:03: 3500996.17,5872597.86
-01:47:03: 3501002.82,5872504.66
-01:47:03: 3500993.51,5872570.39
-01:47:03: 3501021.62,5872568.54
-01:47:03: 3500960.32,5872544.50
-01:47:03: 3500969.85,5872510.23
-01:47:03: 3500938.44,5872507.21
-01:47:03: 3501124.90,5872469.44
-01:47:03: 3501010.66,5872468.95
-01:47:03: 3500967.61,5872469.72
-01:47:03: 3500960.00,5872426.24
-01:47:03: 3500995.84,5872432.90
-01:47:03: 3501011.33,5872393.41
-01:47:03: 3501000.95,5872353.37
-01:47:03: 3500974.22,5872393.15
-01:47:03: 3500961.63,5872360.89
-01:47:03: 3501086.22,5872469.19
-01:47:03: 3501050.00,5872468.05
-01:47:03: 3501075.11,5872428.77
-01:47:03: 3501033.83,5872432.08
-01:47:03: 3501110.97,5872436.38
-01:47:03: 3501113.65,5872397.35
-01:47:03: 3501119.99,5872353.74
-01:47:03: 3501084.17,5872361.10
-01:47:03: 3501074.74,5872389.75
-01:47:03: 3501045.74,5872398.81
-01:47:03: 3501043.45,5872359.11
-01:47:03: 3501115.81,5872311.04
-01:47:03: 3501041.63,5872319.47
-01:47:03: 3501074.73,5872285.20
-01:47:03: 3501033.93,5872280.15
-01:47:03: 3501079.03,5872326.51
-01:47:03: 3501111.12,5872275.51
-01:47:03: 3501124.82,5872244.39
-01:47:03: 3501086.06,5872243.80
-01:47:03: 3501109.72,5872211.91
-01:47:03: 3501048.90,5872244.38
-01:47:03: 3501074.92,5872202.83
-01:47:03: 3501036.06,5872212.33
-01:47:03: 3501008.37,5872314.87
-01:47:03: 3500969.06,5872322.43
-01:47:03: 3500963.12,5872278.45
-01:47:03: 3500997.83,5872285.43
-01:47:03: 3501003.58,5872244.52
-01:47:03: 3501007.92,5872201.54
-01:47:03: 3500961.78,5872238.88
-01:47:03: 3500973.90,5872206.31
-01:47:03: 3500923.76,5872475.45
-01:47:03: 3500816.62,5872479.09
-01:47:03: 3500779.10,5872499.54
-01:47:03: 3500779.96,5872459.99
-01:47:03: 3500815.38,5872439.43
-01:47:03: 3500813.62,5872399.18
-01:47:03: 3500821.37,5872362.92
-01:47:03: 3500777.95,5872422.73
-01:47:03: 3500773.13,5872387.98
-01:47:03: 3500786.31,5872356.18
-01:47:03: 3500928.16,5872438.87
-01:47:03: 3500886.82,5872466.21
-01:47:03: 3500848.88,5872463.97
-01:47:03: 3500855.02,5872427.59
-01:47:03: 3500896.12,5872428.30
-01:47:03: 3500928.40,5872393.15
-01:47:03: 3500887.33,5872398.52
-01:47:03: 3500888.67,5872359.68
-01:47:03: 3500851.89,5872386.38
-01:47:03: 3500929.24,5872349.43
-01:47:03: 3500890.00,5872290.11
-01:47:03: 3500850.64,5872349.88
-01:47:03: 3500856.65,5872314.33
-01:47:03: 3500930.28,5872310.92
-01:47:03: 3500895.97,5872324.49
-01:47:03: 3500924.45,5872276.70
-01:47:03: 3500928.54,5872243.07
-01:47:03: 3500931.49,5872202.39
-01:47:03: 3500892.61,5872214.33
-01:47:03: 3500889.81,5872250.70
-01:47:03: 3500852.39,5872272.75
-01:47:03: 3500853.62,5872235.57
-01:47:03: 3500815.42,5872326.63
-01:47:03: 3500776.58,5872315.36
-01:47:03: 3500816.70,5872289.28
-01:47:03: 3500816.74,5872251.90
-01:47:03: 3500815.84,5872214.07
-01:47:03: 3500778.79,5872273.93
-01:47:03: 3500778.32,5872235.27
-01:47:03: 3501268.36,5872651.95
-01:47:03: 3501273.15,5872673.37
-01:47:03: 3501206.84,5872652.17
-01:47:03: 3501167.57,5872735.36
-01:47:03: 3501147.20,5872772.03
-01:47:03: 3501128.97,5872779.53
-01:47:03: 3501167.38,5872776.57
-01:47:03: 3501148.91,5872795.04
-01:47:03: 3501171.45,5872796.38
-01:47:03: 3501165.70,5872754.56
-01:47:03: 3501150.83,5872735.34
-01:47:03: 3501144.10,5872753.21
-01:47:03: 3501130.40,5872735.15
-01:47:03: 3501205.11,5872732.35
-01:47:03: 3501189.78,5872777.25
-01:47:03: 3501190.31,5872799.48
-01:47:03: 3501213.01,5872776.02
-01:47:03: 3501205.77,5872793.33
-01:47:03: 3501206.44,5872754.65
-01:47:03: 3501186.51,5872737.79
-01:47:03: 3501185.49,5872758.31
-01:47:03: 3501212.00,5872673.73
-01:47:03: 3501189.91,5872696.99
-01:47:03: 3501187.52,5872714.94
-01:47:03: 3501206.30,5872691.87
-01:47:03: 3501210.65,5872712.82
-01:47:03: 3501183.73,5872653.67
-01:47:03: 3501189.75,5872675.30
-01:47:03: 3501163.20,5872653.46
-01:47:03: 3501144.34,5872696.90
-01:47:03: 3501146.94,5872714.93
-01:47:03: 3501126.51,5872689.86
-01:47:03: 3501167.28,5872694.24
-01:47:03: 3501167.71,5872718.18
-01:47:03: 3501169.69,5872671.83
-01:47:03: 3501149.03,5872676.32
-01:47:03: 3501144.43,5872656.58
-01:47:03: 3501126.33,5872670.15
-01:47:03: 3501128.73,5872650.84
-01:47:03: 3501270.19,5872694.10
-01:47:03: 3501244.83,5872735.84
-01:47:03: 3501233.49,5872775.89
-01:47:03: 3501223.68,5872796.70
-01:47:03: 3501252.38,5872778.98
-01:47:03: 3501247.19,5872799.54
-01:47:03: 3501251.37,5872756.84
-01:47:03: 3501224.29,5872735.89
-01:47:03: 3501228.82,5872755.92
-01:47:03: 3501268.13,5872734.01
-01:47:03: 3501269.92,5872776.05
-01:47:03: 3501269.96,5872796.88
-01:47:03: 3501287.77,5872773.87
-01:47:03: 3501292.04,5872794.99
-01:47:03: 3501309.00,5872778.76
-01:47:03: 3501290.72,5872735.69
-01:47:03: 3501294.92,5872755.97
-01:47:03: 3501273.90,5872755.56
-01:47:03: 3501267.86,5872712.83
-01:47:03: 3501289.02,5872713.12
-01:47:03: 3501246.92,5872651.20
-01:47:03: 3501229.01,5872694.63
-01:47:03: 3501231.16,5872717.20
-01:47:03: 3501251.37,5872696.43
-01:47:03: 3501249.43,5872715.24
-01:47:03: 3501249.95,5872674.10
-01:47:03: 3501228.69,5872657.13
-01:47:03: 3501229.44,5872674.50
-01:47:03: 3501249.38,5872633.13
-01:47:03: 3501249.74,5872614.46
-01:47:03: 3501228.59,5872638.46
-01:47:03: 3501227.10,5872617.03
-01:47:03: 3501253.84,5872596.37
-01:47:03: 3501245.91,5872584.12
-01:47:03: 3501233.91,5872598.50
-01:47:03: 3501221.09,5872587.02
-01:47:03: 3501229.17,5872566.01
-01:47:03: 3501235.75,5872537.12
-01:47:03: 3501221.53,5872504.89
-01:47:03: 3501208.92,5872628.63
-01:47:03: 3501168.87,5872632.40
-01:47:03: 3501145.49,5872636.07
-01:47:03: 3501130.61,5872615.00
-01:47:03: 3501149.72,5872617.40
-01:47:03: 3501166.18,5872610.15
-01:47:03: 3501171.45,5872592.84
-01:47:03: 3501154.94,5872577.85
-01:47:03: 3501146.63,5872595.74
-01:47:03: 3501215.25,5872598.93
-01:47:03: 3501190.90,5872636.44
-01:47:03: 3501186.70,5872618.93
-01:47:03: 3501204.96,5872609.52
-01:47:03: 3501196.27,5872589.93
-01:47:03: 3501185.64,5872601.20
-01:47:03: 3501200.73,5872573.39
-01:47:03: 3501175.15,5872570.49
-01:47:03: 3501198.38,5872544.26
-01:47:03: 3501185.98,5872511.14
-01:47:03: 3501157.49,5872542.35
-01:47:03: 3501134.63,5872572.55
-01:47:03: 3501149.75,5872502.63
-01:47:03: 3501313.28,5872798.83
-01:47:03: 3501190.54,5872476.55
-01:47:03: 3501158.30,5872464.89
-01:47:03: 3501146.03,5872431.03
-01:47:03: 3501188.70,5872434.92
-01:47:03: 3501191.42,5872395.80
-01:47:03: 3501197.21,5872360.71
-01:47:03: 3501153.26,5872393.92
-01:47:03: 3501161.53,5872356.63
-01:47:03: 3501228.07,5872468.26
-01:47:03: 3501149.64,5872322.94
-01:47:03: 3501151.77,5872285.31
-01:47:03: 3501186.94,5872320.54
-01:47:03: 3501161.56,5872244.95
-01:47:03: 3501145.72,5872206.68
-01:47:03: 3500854.22,5872197.56
-01:47:03: 3500927.33,5872161.12
-01:47:03: 3500816.58,5872175.26
-01:47:03: 3500778.68,5872198.44
-01:47:03: 3500779.77,5872160.21
-01:47:03: 3500778.74,5872129.13
-01:47:03: 3500815.96,5872127.14
-01:47:03: 3500815.54,5872069.75
-01:47:03: 3500778.23,5872088.68
-01:47:03: 3500891.58,5872175.92
-01:47:03: 3500853.63,5872160.36
-01:47:03: 3500853.43,5872129.54
-01:47:03: 3500928.83,5872130.70
-01:47:03: 3500891.12,5872129.13
-01:47:03: 3500931.36,5872094.45
-01:47:03: 3500889.75,5872079.02
-01:47:03: 3500852.79,5872090.85
-01:47:03: 3500920.49,5872045.31
-01:47:03: 3500854.99,5872024.70
-01:47:03: 3500905.33,5871992.51
-01:47:03: 3500922.91,5871936.17
-01:47:03: 3500777.28,5872008.56
-01:47:03: 3500840.99,5871944.30
-01:47:03: 3500768.58,5871929.93
-01:47:03: 3501114.99,5872177.32
-01:47:03: 3501000.39,5872163.85
-01:47:03: 3500961.83,5872173.37
-01:47:03: 3500964.61,5872134.63
-01:47:03: 3501003.83,5872123.68
-01:47:03: 3501004.68,5872085.01
-01:47:03: 3501003.75,5872053.96
-01:47:03: 3500970.68,5872097.71
-01:47:03: 3500966.41,5872054.34
-01:47:03: 3501078.10,5872161.09
-01:47:03: 3501041.10,5872176.30
-01:47:03: 3501041.03,5872139.33
-01:47:03: 3501117.52,5872138.91
-01:47:03: 3501078.55,5872122.63
-01:47:03: 3501116.03,5872100.44
-01:47:03: 3501078.56,5872085.16
-01:47:03: 3501078.32,5872054.46
-01:47:03: 3501041.31,5872100.06
-01:47:03: 3501040.97,5872051.99
-01:47:03: 3501077.72,5872015.58
-01:47:03: 3501040.56,5871994.57
-01:47:03: 3501079.95,5871949.46
-01:47:03: 3501003.24,5872013.49
-01:47:03: 3500961.04,5871998.43
-01:47:03: 3501002.28,5871933.36
-01:47:03: 3500993.59,5871854.72
-01:47:03: 3501009.73,5871783.70
-01:47:03: 3500995.69,5871708.12
-01:47:03: 3500861.08,5871875.95
-01:47:03: 3500793.26,5871863.77
-01:47:03: 3500762.15,5871794.93
-01:47:03: 3500928.45,5871864.52
-01:47:03: 3500926.18,5871790.29
-01:47:03: 3500847.80,5871798.46
-01:47:03: 3500855.74,5871717.74
-01:47:03: 3500927.97,5871716.56
-01:47:03: 3500788.08,5871729.94
-01:47:03: 3500746.73,5872548.92
-01:47:03: 3500741.50,5872515.34
-01:47:03: 3500554.52,5872536.05
-01:47:03: 3500553.66,5872655.76
-01:47:03: 3500514.07,5872737.50
-01:47:03: 3500557.26,5872742.45
-01:47:03: 3500523.52,5872766.56
-01:47:03: 3500547.05,5872758.16
-01:47:03: 3500550.10,5872691.87
-01:47:03: 3500542.43,5872723.04
-01:47:03: 3500520.03,5872661.30
-01:47:03: 3500510.78,5872695.85
-01:47:03: 3500557.04,5872578.11
-01:47:03: 3500512.85,5872622.81
-01:47:03: 3500553.08,5872618.96
-01:47:03: 3500521.05,5872586.92
-01:47:03: 3500521.06,5872511.64
-01:47:03: 3500512.49,5872548.24
-01:47:03: 3500740.71,5872581.44
-01:47:03: 3500625.25,5872653.51
-01:47:03: 3500594.12,5872741.34
-01:47:03: 3500570.58,5872749.75
-01:47:03: 3500617.65,5872732.94
-01:47:03: 3500652.04,5872779.45
-01:47:03: 3500639.07,5872740.47
-01:47:03: 3500653.76,5872759.24
-01:47:03: 3500613.07,5872743.49
-01:47:03: 3500631.11,5872753.51
-01:47:03: 3500644.85,5872684.21
-01:47:03: 3500622.57,5872708.21
-01:47:03: 3500647.70,5872706.55
-01:47:03: 3500641.19,5872724.53
-01:47:03: 3500617.00,5872682.26
-01:47:03: 3500589.07,5872654.43
-01:47:03: 3500572.74,5872723.89
-01:47:03: 3500586.97,5872692.10
-01:47:03: 3500596.78,5872722.05
-01:47:03: 3500703.36,5872658.44
-01:47:03: 3500697.32,5872737.95
-01:47:03: 3500673.33,5872774.86
-01:47:03: 3500679.06,5872796.81
-01:47:03: 3500692.57,5872778.51
-01:47:03: 3500698.80,5872794.78
-01:47:03: 3500694.37,5872758.01
-01:47:03: 3500657.48,5872737.33
-01:47:03: 3500673.09,5872754.41
-01:47:03: 3500676.93,5872736.94
-01:47:03: 3500732.62,5872736.91
-01:47:03: 3500711.90,5872776.04
-01:47:03: 3500718.17,5872798.99
-01:47:03: 3500731.92,5872776.60
-01:47:03: 3500740.66,5872797.00
-01:47:03: 3500740.88,5872756.05
-01:47:03: 3500714.23,5872734.19
-01:47:03: 3500717.99,5872754.77
-01:47:03: 3500736.14,5872669.34
-01:47:03: 3500711.79,5872699.31
-01:47:03: 3500720.38,5872716.36
-01:47:03: 3500735.33,5872690.90
-01:47:03: 3500740.00,5872720.23
-01:47:03: 3500735.93,5872703.47
-01:47:03: 3500712.63,5872682.28
-01:47:03: 3500665.69,5872652.65
-01:47:03: 3500666.67,5872691.00
-01:47:03: 3500666.91,5872707.30
-01:47:03: 3500664.72,5872716.12
-01:47:03: 3500688.26,5872707.71
-01:47:03: 3500682.40,5872721.75
-01:47:03: 3500700.68,5872718.41
-01:47:03: 3500687.42,5872683.86
-01:47:03: 3500737.44,5872615.10
-01:47:03: 3500697.67,5872619.98
-01:47:03: 3500661.45,5872614.15
-01:47:03: 3500665.40,5872581.10
-01:47:03: 3500703.43,5872581.99
-01:47:03: 3500729.43,5872643.94
-01:47:03: 3500711.01,5872543.86
-01:47:03: 3500700.87,5872502.87
-01:47:03: 3500674.94,5872544.30
-01:47:03: 3500662.87,5872511.75
-01:47:03: 3500636.71,5872544.82
-01:47:03: 3500595.33,5872586.04
-01:47:03: 3500590.02,5872618.88
-01:47:03: 3500627.80,5872580.06
-01:47:03: 3500628.60,5872619.05
-01:47:03: 3500625.04,5872504.51
-01:47:03: 3500595.65,5872548.26
-01:47:03: 3500585.02,5872512.61
-01:47:03: 3500740.12,5872477.95
-01:47:03: 3500633.41,5872464.78
-01:47:03: 3500594.14,5872472.82
-01:47:03: 3500586.26,5872435.47
-01:47:03: 3500621.32,5872431.77
-01:47:03: 3500629.55,5872394.19
-01:47:03: 3500631.67,5872354.02
-01:47:03: 3500591.61,5872401.83
-01:47:03: 3500591.30,5872363.83
-01:47:03: 3500741.41,5872438.62
-01:47:03: 3500702.79,5872461.27
-01:47:03: 3500667.06,5872476.86
-01:47:03: 3500663.34,5872434.95
-01:47:03: 3500738.26,5872397.28
-01:47:03: 3500703.37,5872424.36
-01:47:03: 3500703.49,5872394.22
-01:47:03: 3500744.17,5872353.91
-01:47:03: 3500704.88,5872362.83
-01:47:03: 3500667.89,5872391.45
-01:47:03: 3500671.33,5872351.55
-01:47:03: 3500740.91,5872319.59
-01:47:03: 3500658.64,5872318.54
-01:47:03: 3500671.37,5872286.53
-01:47:03: 3500741.22,5872288.53
-01:47:03: 3500703.30,5872319.13
-01:47:03: 3500741.27,5872251.42
-01:47:03: 3500704.23,5872274.00
-01:47:03: 3500739.28,5872210.16
-01:47:03: 3500703.76,5872205.92
-01:47:03: 3500703.07,5872236.08
-01:47:03: 3500665.88,5872250.36
-01:47:03: 3500666.09,5872204.34
-01:47:03: 3500623.55,5872313.96
-01:47:03: 3500590.65,5872327.99
-01:47:03: 3500592.06,5872288.78
-01:47:03: 3500631.62,5872277.10
-01:47:03: 3500628.41,5872236.08
-01:47:03: 3500628.42,5872204.88
-01:47:03: 3500591.72,5872250.62
-01:47:03: 3500590.94,5872202.42
-01:47:03: 3500552.66,5872496.27
-01:47:03: 3500552.76,5872460.53
-01:47:03: 3500513.01,5872471.98
-01:47:03: 3500516.07,5872432.57
-01:47:03: 3500553.45,5872423.76
-01:47:03: 3500523.29,5872394.52
-01:47:03: 3500558.79,5872388.63
-01:47:03: 3500550.62,5872352.44
-01:47:03: 3500511.11,5872362.02
-01:47:03: 3500553.05,5872311.19
-01:47:03: 3500514.04,5872285.62
-01:47:03: 3500516.25,5872326.35
-01:47:03: 3500553.70,5872273.28
-01:47:03: 3500520.54,5872248.16
-01:47:03: 3500554.69,5872235.29
-01:47:03: 3500553.69,5872204.37
-01:47:03: 3500516.18,5872204.69
-01:47:03: 3500481.36,5872244.86
-01:47:03: 3500745.65,5872172.94
-01:47:03: 3500552.45,5872083.72
-01:47:03: 3500397.99,5872087.39
-01:47:03: 3500396.78,5872167.26
-01:47:03: 3500455.14,5872143.54
-01:47:03: 3500553.23,5872163.90
-01:47:03: 3500510.96,5872149.13
-01:47:03: 3500469.87,5872195.85
-01:47:03: 3500472.20,5872085.07
-01:47:03: 3500543.58,5872005.13
-01:47:03: 3500477.48,5872015.71
-01:47:03: 3500560.21,5871934.17
-01:47:03: 3500488.57,5871951.37
-01:47:03: 3500402.48,5872016.05
-01:47:03: 3500411.44,5871936.00
-01:47:03: 3500706.36,5872169.66
-01:47:03: 3500629.99,5872099.90
-01:47:03: 3500590.54,5872144.97
-01:47:03: 3500627.78,5872166.07
-01:47:03: 3500741.40,5872129.51
-01:47:03: 3500664.75,5872154.22
-01:47:03: 3500736.04,5872073.62
-01:47:03: 3500695.48,5872120.52
-01:47:03: 3500680.32,5872067.71
-01:47:03: 3500697.90,5872011.37
-01:47:03: 3500703.18,5871939.50
-01:47:03: 3500615.99,5872019.51
-01:47:03: 3500636.02,5871950.86
-01:47:03: 3500708.26,5871858.66
-01:47:03: 3500623.89,5871873.10
-01:47:03: 3500637.94,5871805.31
-01:47:03: 3500689.98,5871777.60
-01:47:03: 3500712.05,5871710.13
-01:47:03: 3500621.23,5871727.03
-01:47:03: 3500640.64,5871658.27
-01:47:03: 3500545.81,5871858.97
-01:47:03: 3500392.05,5871856.69
-01:47:03: 3500409.63,5871797.55
-01:47:03: 3500470.74,5871877.22
-01:47:03: 3500562.22,5871786.24
-01:47:03: 3500480.84,5871795.79
-01:47:03: 3500546.42,5871710.56
-01:47:03: 3500478.48,5871721.86
-01:47:03: 3500328.59,5872089.91
-01:47:03: 3500325.72,5872016.30
-01:47:03: ->Auswertung der Kommandozeilen-Parameter gestartet
-01:47:03: Parameterdatei: 'test_daten\test.par'
-01:47:03: ->Laden der Parameterdatei 'test_daten\test.par' gestartet
-01:47:03: <-Laden der Parameterdatei 'test_daten\test.par' beendet
-01:47:03: DGM-Datei: 'egal.shp'
-01:47:03: Profillagen-Datei: 'egal.shp'
-01:47:03: WSP-Datei: 'egal.shp'
-01:47:03: Gewässerachse: 'egal.shp'
-01:47:03: Bruch- und Sperr-Datei: 'egal.shp'
-01:47:03: Gelände wirkt als Sperre
-01:47:03: Delta: Von = 0.00 Bis = 1.00 Diff = 0.23
-01:47:03: Ausgabe-Datei: 'egal.shp'
-01:47:03: <-Auswertung der Kommandozeilen-Parameter beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
-01:47:03: ->Laden der Knoten gestartet
-01:47:03: 118 Werten gelesen, 114 von 114 Knoten im Speicher
-01:47:03: <-Laden der Knoten beendet
-01:47:03: ->Laden der Elemente gestartet
-01:47:03: 230 Werte geladen, 218 von 230 Elementen im Speicher
-01:47:03: <-Laden der Elemente beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
-01:47:03: ->Suche nach doppelten Knoten gestartet
-01:47:03: 114 Knoten und 218 Elemente vorhanden
-01:47:03: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:03: <-Suche nach doppelten Knoten beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
-01:47:03: ->Laden der Knoten gestartet
-01:47:03: 118 Werten gelesen, 52 von 52 Knoten im Speicher
-01:47:03: <-Laden der Knoten beendet
-01:47:03: ->Laden der Elemente gestartet
-01:47:03: 230 Werte geladen, 72 von 230 Elementen im Speicher
-01:47:03: <-Laden der Elemente beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
-01:47:03: ->Suche nach doppelten Knoten gestartet
-01:47:03: 52 Knoten und 72 Elemente vorhanden
-01:47:03: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:03: <-Suche nach doppelten Knoten beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm.grd' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm.grd' als GRD gestartet
-01:47:03: 10000 von 71250 Werten gelesen, 0 von 0 Knoten im Speicher
-01:47:03: 20000 von 71250 Werten gelesen, 5130 von 5130 Knoten im Speicher
-01:47:03: 30000 von 71250 Werten gelesen, 11135 von 11135 Knoten im Speicher
-01:47:03: 40000 von 71250 Werten gelesen, 17145 von 17145 Knoten im Speicher
-01:47:03: 50000 von 71250 Werten gelesen, 23155 von 23155 Knoten im Speicher
-01:47:03: 60000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
-01:47:03: 70000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
-01:47:03: 71250 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm.grd' als GRD beendet
-01:47:03: ->Suche nach doppelten Knoten gestartet
-01:47:03: 24624 Knoten und keine Elemente vorhanden
-01:47:03: 10000 von 24624 Knoten, 0 Knoten gelöscht
-01:47:03: 20000 von 24624 Knoten, 0 Knoten gelöscht
-01:47:03: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:03: <-Suche nach doppelten Knoten beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm.grd' beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm.xyz' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ gestartet
-01:47:03: 10 Werte gelesen, 10 von 10 Knoten im Speicher
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ beendet
-01:47:03: ->Suche nach doppelten Knoten gestartet
-01:47:03: 10 Knoten und keine Elemente vorhanden
-01:47:03: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:03: <-Suche nach doppelten Knoten beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm.xyz' beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
-01:47:03: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
-01:47:03: ->Suche nach doppelten Knoten gestartet
-01:47:03: 1126 Knoten und keine Elemente vorhanden
-01:47:03: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:03: <-Suche nach doppelten Knoten beendet
-01:47:03: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' gestartet
-01:47:03: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ gestartet
-01:47:03: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
-01:47:03: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
-01:47:03: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
-01:47:04: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
-01:47:04: 43332 Werte gelesen, 43332 von 43332 Knoten im Speicher
-01:47:04: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ beendet
-01:47:04: ->Suche nach doppelten Knoten gestartet
-01:47:04: 43332 Knoten und keine Elemente vorhanden
-01:47:04: 10000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:04: 20000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:04: 30000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:04: 40000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:04: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:04: <-Suche nach doppelten Knoten beendet
-01:47:04: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' beendet
-01:47:04: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' gestartet
-01:47:04: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ gestartet
-01:47:04: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
-01:47:04: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
-01:47:04: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
-01:47:04: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
-01:47:05: 50000 Werte gelesen, 49999 von 49999 Knoten im Speicher
-01:47:05: 60000 Werte gelesen, 59999 von 59999 Knoten im Speicher
-01:47:05: 70000 Werte gelesen, 69999 von 69999 Knoten im Speicher
-01:47:05: 80000 Werte gelesen, 79999 von 79999 Knoten im Speicher
-01:47:05: 90000 Werte gelesen, 89999 von 89999 Knoten im Speicher
-01:47:05: 98636 Werte gelesen, 98636 von 98636 Knoten im Speicher
-01:47:05: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ beendet
-01:47:05: ->Suche nach doppelten Knoten gestartet
-01:47:05: 98636 Knoten und keine Elemente vorhanden
-01:47:06: 10000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 20000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 30000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 40000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 50000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 60000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 70000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 80000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 90000 von 98636 Knoten, 0 Knoten gelöscht
-01:47:06: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:06: <-Suche nach doppelten Knoten beendet
-01:47:06: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' beendet
-01:47:06: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
-01:47:06: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
-01:47:06: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
-01:47:06: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
-01:47:06: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
-01:47:06: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
-01:47:06: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
-01:47:06: ->Suche nach doppelten Knoten gestartet
-01:47:06: 114 Knoten und keine Elemente vorhanden
-01:47:06: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:06: <-Suche nach doppelten Knoten beendet
-01:47:06: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
-01:47:06: ->Laden des DGM in Datei 'test_daten/dgm2.shp' gestartet
-01:47:06: ->Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP gestartet
-01:47:06: ->Laden der Projektionsdatei zu 'test_daten/dgm2.shp' gestartet
-01:47:06: Projektionsdatei 'test_daten/dgm2.PRJ' konnte nicht geöffnet werden
-01:47:06: <-Laden der Projektionsdatei zu 'test_daten/dgm2.shp' beendet
-01:47:06: 10000 von 156249 Objekten gelesen, 9247 von 9247 Knoten im Speicher
-01:47:06: 20000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
-01:47:06: 30000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
-01:47:07: 40000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
-01:47:07: 50000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
-01:47:07: 60000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
-01:47:07: 70000 von 156249 Objekten gelesen, 12088 von 12088 Knoten im Speicher
-01:47:07: 80000 von 156249 Objekten gelesen, 13793 von 13793 Knoten im Speicher
-01:47:07: 90000 von 156249 Objekten gelesen, 15747 von 15747 Knoten im Speicher
-01:47:07: 100000 von 156249 Objekten gelesen, 17727 von 17727 Knoten im Speicher
-01:47:08: 110000 von 156249 Objekten gelesen, 19707 von 19707 Knoten im Speicher
-01:47:08: 120000 von 156249 Objekten gelesen, 21687 von 21687 Knoten im Speicher
-01:47:08: 130000 von 156249 Objekten gelesen, 23667 von 23667 Knoten im Speicher
-01:47:08: 140000 von 156249 Objekten gelesen, 25482 von 25482 Knoten im Speicher
-01:47:08: 150000 von 156249 Objekten gelesen, 27462 von 27462 Knoten im Speicher
-01:47:08: 156249 von 156249 Objekten gelesen, 28287 von 28287 Knoten im Speicher
-01:47:08: <-Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP beendet
-01:47:08: ->Suche nach doppelten Knoten gestartet
-01:47:08: 28287 Knoten und keine Elemente vorhanden
-01:47:08: 10000 von 28287 Knoten, 0 Knoten gelöscht
-01:47:08: 20000 von 28287 Knoten, 0 Knoten gelöscht
-01:47:08: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:08: <-Suche nach doppelten Knoten beendet
-01:47:08: <-Laden des DGM in Datei 'test_daten/dgm2.shp' beendet
-01:47:08: ->Laden des DGM in Datei 'test_daten/dgm.2dm' gestartet
-01:47:08: ->Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM gestartet
-01:47:08: 2225 Elemente und 1126 Knoten geladen
-01:47:08: 1126 Knoten insgesamt
-01:47:08: <-Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM beendet
-01:47:08: ->Suche nach doppelten Knoten gestartet
-01:47:08: 1126 Knoten und 2225 Elemente vorhanden
-01:47:08: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:08: <-Suche nach doppelten Knoten beendet
-01:47:08: <-Laden des DGM in Datei 'test_daten/dgm.2dm' beendet
-01:47:08: ->Laden der Profilspuren gestartet
-01:47:08: ->Laden der Projektionsdatei zu 'test_daten/profile.shp' gestartet
-01:47:08: Projektionsdatei 'test_daten/profile.PRJ' konnte nicht geöffnet werden
-01:47:08: <-Laden der Projektionsdatei zu 'test_daten/profile.shp' beendet
-01:47:08: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
-01:47:08: 8 von 8 Objekten geladen, 8 Profilspuren im Speicher
-01:47:08: <-Laden der Profilspuren beendet
-01:47:08: ->Ausrichten der Profilspuren gestartet
-01:47:08: 8 von 8 Profilspuren ausgerichtet, 3 gedreht
-01:47:08: <-Ausrichten der Profilspuren beendet
-01:47:08: ->Laden der Profilspuren gestartet
-01:47:08: ->Laden der Projektionsdatei zu 'test_daten/profilez.shp' gestartet
-01:47:08: Projektionsdatei 'test_daten/profilez.PRJ' konnte nicht geöffnet werden
-01:47:08: <-Laden der Projektionsdatei zu 'test_daten/profilez.shp' beendet
-01:47:08: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
-01:47:09: 5 von 5 Objekten geladen, 5 Profilspuren im Speicher
-01:47:09: <-Laden der Profilspuren beendet
-01:47:09: ->Ausrichten der Profilspuren gestartet
-01:47:09: 5 von 5 Profilspuren ausgerichtet, 0 gedreht
-01:47:09: <-Ausrichten der Profilspuren beendet
-01:47:09: ->Laden der Linien Strukturen (Sperren, Gräben und Rohre) gestartet
-01:47:09: ->Laden der Projektionsdatei zu 'test_daten/linien.shp' gestartet
-01:47:09: Projektionsdatei 'test_daten/linien.PRJ' konnte nicht geöffnet werden
-01:47:09: <-Laden der Projektionsdatei zu 'test_daten/linien.shp' beendet
-Warnung (9999)
-Der Typ 'Bruch' wurde in der Datei 'test_daten/linien.DBF' benutzt.
-Er wird nur noch ubergangweise unterstützt.
-Bitte ändern sie ihn in 'GRABEN'.
-Warnung (9999)
-Warnung (9999)
-Der Typ 'Bruch' wurde in der Datei 'test_daten/linien.DBF' benutzt.
-Er wird nur noch ubergangweise unterstützt.
-Bitte ändern sie ihn in 'GRABEN'.
-Warnung (9999)
-Warnung (9999)
-Der Typ 'Bruch' wurde in der Datei 'test_daten/linien.DBF' benutzt.
-Er wird nur noch ubergangweise unterstützt.
-Bitte ändern sie ihn in 'GRABEN'.
-Warnung (9999)
-Warnung (9999)
-Der Typ 'Bruch' wurde in der Datei 'test_daten/linien.DBF' benutzt.
-Er wird nur noch ubergangweise unterstützt.
-Bitte ändern sie ihn in 'GRABEN'.
-Warnung (9999)
-01:47:09: 9 von 9 Liniensstrukturen geladen, 5 Sperren, 4 Gräben, 0 Rohre
-01:47:09: <-Laden der Linien Strukturen (Sperren, Gräben und Rohre) beendet
-01:47:09: ->Laden der Wasserstände gestartet
-01:47:09: ->Laden der Wasserstände im ASCII-Format gestartet
-01:47:09: 100 Zeilen geladen, 99 Wasserstände im Speicher
-01:47:09: 200 Zeilen geladen, 199 Wasserstände im Speicher
-01:47:09: 300 Zeilen geladen, 299 Wasserstände im Speicher
-01:47:09: 400 Zeilen geladen, 399 Wasserstände im Speicher
-01:47:09: 500 Zeilen geladen, 499 Wasserstände im Speicher
-01:47:09: 600 Zeilen geladen, 599 Wasserstände im Speicher
-01:47:09: 700 Zeilen geladen, 699 Wasserstände im Speicher
-01:47:09: 800 Zeilen geladen, 799 Wasserstände im Speicher
-01:47:09: 900 Zeilen geladen, 899 Wasserstände im Speicher
-01:47:09: 1000 Zeilen geladen, 999 Wasserstände im Speicher
-01:47:09: 1100 Zeilen geladen, 1099 Wasserstände im Speicher
-01:47:09: 1200 Zeilen geladen, 1199 Wasserstände im Speicher
-01:47:09: 1300 Zeilen geladen, 1299 Wasserstände im Speicher
-01:47:09: 1400 Zeilen geladen, 1399 Wasserstände im Speicher
-01:47:09: 1500 Zeilen geladen, 1499 Wasserstände im Speicher
-01:47:09: 1600 Zeilen geladen, 1599 Wasserstände im Speicher
-01:47:09: 1700 Zeilen geladen, 1699 Wasserstände im Speicher
-01:47:09: 1800 Zeilen geladen, 1799 Wasserstände im Speicher
-01:47:09: 1900 Zeilen geladen, 1899 Wasserstände im Speicher
-01:47:09: 2000 Zeilen geladen, 1999 Wasserstände im Speicher
-01:47:09: 2100 Zeilen geladen, 2099 Wasserstände im Speicher
-01:47:09: 2200 Zeilen geladen, 2199 Wasserstände im Speicher
-01:47:09: 2300 Zeilen geladen, 2299 Wasserstände im Speicher
-01:47:09: 2400 Zeilen geladen, 2399 Wasserstände im Speicher
-01:47:09: 2500 Zeilen geladen, 2499 Wasserstände im Speicher
-01:47:09: 2600 Zeilen geladen, 2599 Wasserstände im Speicher
-01:47:09: 2700 Zeilen geladen, 2699 Wasserstände im Speicher
-01:47:09: 2800 Zeilen geladen, 2799 Wasserstände im Speicher
-01:47:09: 2900 Zeilen geladen, 2899 Wasserstände im Speicher
-01:47:09: 3000 Zeilen geladen, 2999 Wasserstände im Speicher
-01:47:09: 3100 Zeilen geladen, 3099 Wasserstände im Speicher
-01:47:09: 3200 Zeilen geladen, 3199 Wasserstände im Speicher
-01:47:09: 3300 Zeilen geladen, 3299 Wasserstände im Speicher
-01:47:09: 3400 Zeilen geladen, 3399 Wasserstände im Speicher
-01:47:09: 3500 Zeilen geladen, 3499 Wasserstände im Speicher
-01:47:09: 3600 Zeilen geladen, 3599 Wasserstände im Speicher
-01:47:09: 3700 Zeilen geladen, 3699 Wasserstände im Speicher
-01:47:09: 3800 Zeilen geladen, 3799 Wasserstände im Speicher
-01:47:09: 3900 Zeilen geladen, 3899 Wasserstände im Speicher
-01:47:09: 4000 Zeilen geladen, 3999 Wasserstände im Speicher
-01:47:09: 4100 Zeilen geladen, 4099 Wasserstände im Speicher
-01:47:09: 4200 Zeilen geladen, 4199 Wasserstände im Speicher
-01:47:09: 4300 Zeilen geladen, 4299 Wasserstände im Speicher
-01:47:09: 4400 Zeilen geladen, 4399 Wasserstände im Speicher
-01:47:09: 4500 Zeilen geladen, 4499 Wasserstände im Speicher
-01:47:09: 4600 Zeilen geladen, 4599 Wasserstände im Speicher
-01:47:09: 4700 Zeilen geladen, 4699 Wasserstände im Speicher
-01:47:09: 4800 Zeilen geladen, 4799 Wasserstände im Speicher
-01:47:09: 4900 Zeilen geladen, 4899 Wasserstände im Speicher
-01:47:09: 5000 Zeilen geladen, 4999 Wasserstände im Speicher
-01:47:09: 5100 Zeilen geladen, 5099 Wasserstände im Speicher
-01:47:09: 5200 Zeilen geladen, 5199 Wasserstände im Speicher
-01:47:09: 5300 Zeilen geladen, 5299 Wasserstände im Speicher
-01:47:09: 5400 Zeilen geladen, 5399 Wasserstände im Speicher
-01:47:09: 5500 Zeilen geladen, 5499 Wasserstände im Speicher
-01:47:09: 5600 Zeilen geladen, 5599 Wasserstände im Speicher
-01:47:09: 5669 Zeilen geladen, 5668 Wasserstände im Speicher
-01:47:09: <-Laden der Wasserstände im ASCII-Format beendet
-01:47:09: <-Laden der Wasserstände beendet
-01:47:09: ->Laden der Wasserstände gestartet
-01:47:09: ->Laden der Wasserstände im DBF-Format gestartet
-01:47:09: 42 von 42 Objekten gelesen, 42 Wasserstände im Speicher
-01:47:09: <-Laden der Wasserstände im DBF-Format beendet
-01:47:09: <-Laden der Wasserstände beendet
-01:47:09: ->Laden der Gewässerachsen gestartet
-01:47:09: ->Laden der Projektionsdatei zu 'test_daten/achse.shp' gestartet
-01:47:09: Projektionsdatei 'test_daten/achse.PRJ' konnte nicht geöffnet werden
-01:47:09: <-Laden der Projektionsdatei zu 'test_daten/achse.shp' beendet
-01:47:09: 10 von 14 Objekten gelesen, 10 Gewässerachsen im Speicher
-01:47:09: 14 von 14 Objekten gelesen, 14 Gewässerachsen im Speicher
-01:47:09: <-Laden der Gewässerachsen beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:09: <-Sortieren der Knoten beendet
-01:47:09: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:09: <-Löschen des Knoten/Kanten-Index beendet
-01:47:09: ->Suchen der Startkante gestartet
-01:47:09: Kante: 1 - 2 als Startkante
-01:47:09: <-Suchen der Startkante beendet
-01:47:09: <-Triangulierung der Knoten beendet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm.xyz' gestartet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ gestartet
-01:47:09: 10 Werte gelesen, 10 von 10 Knoten im Speicher
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ beendet
-01:47:09: ->Suche nach doppelten Knoten gestartet
-01:47:09: 10 Knoten und keine Elemente vorhanden
-01:47:09: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:09: <-Suche nach doppelten Knoten beendet
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm.xyz' beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:09: <-Sortieren der Knoten beendet
-01:47:09: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:09: <-Löschen des Knoten/Kanten-Index beendet
-01:47:09: ->Suchen der Startkante gestartet
-01:47:09: Kante: 7 - 1 als Startkante
-01:47:09: <-Suchen der Startkante beendet
-01:47:09: <-Triangulierung der Knoten beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:09: <-Sortieren der Knoten beendet
-01:47:09: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:09: <-Löschen des Knoten/Kanten-Index beendet
-01:47:09: ->Suchen der Startkante gestartet
-01:47:09: Kante: 1 - 4 als Startkante
-01:47:09: <-Suchen der Startkante beendet
-01:47:09: <-Triangulierung der Knoten beendet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
-01:47:09: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
-01:47:09: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
-01:47:09: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
-01:47:09: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
-01:47:09: ->Suche nach doppelten Knoten gestartet
-01:47:09: 114 Knoten und keine Elemente vorhanden
-01:47:09: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:09: <-Suche nach doppelten Knoten beendet
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:09: <-Sortieren der Knoten beendet
-01:47:09: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:09: <-Löschen des Knoten/Kanten-Index beendet
-01:47:09: ->Suchen der Startkante gestartet
-01:47:09: Kante: 59 - 58 als Startkante
-01:47:09: <-Suchen der Startkante beendet
-01:47:09: <-Triangulierung der Knoten beendet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
-01:47:09: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
-01:47:09: ->Suche nach doppelten Knoten gestartet
-01:47:09: 1126 Knoten und keine Elemente vorhanden
-01:47:09: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:09: <-Suche nach doppelten Knoten beendet
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:09: <-Sortieren der Knoten beendet
-01:47:09: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:09: <-Löschen des Knoten/Kanten-Index beendet
-01:47:09: ->Suchen der Startkante gestartet
-01:47:09: Kante: 1126 - 1125 als Startkante
-01:47:09: <-Suchen der Startkante beendet
-01:47:09: <-Triangulierung der Knoten beendet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' gestartet
-01:47:09: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ gestartet
-01:47:09: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
-01:47:09: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
-01:47:09: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
-01:47:09: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
-01:47:09: 43332 Werte gelesen, 43332 von 43332 Knoten im Speicher
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ beendet
-01:47:09: ->Suche nach doppelten Knoten gestartet
-01:47:09: 43332 Knoten und keine Elemente vorhanden
-01:47:09: 10000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:09: 20000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:09: 30000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:09: 40000 von 43332 Knoten, 0 Knoten gelöscht
-01:47:09: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:09: <-Suche nach doppelten Knoten beendet
-01:47:09: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' beendet
-01:47:09: ->Triangulierung der Knoten gestartet
-01:47:09: ->Sortieren Knoten gestartet
-01:47:10: <-Sortieren der Knoten beendet
-01:47:10: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:10: <-Löschen des Knoten/Kanten-Index beendet
-01:47:10: ->Suchen der Startkante gestartet
-01:47:10: Kante: 41055 - 41054 als Startkante
-01:47:10: <-Suchen der Startkante beendet
-01:47:11: 16289 von ca. 86664 Elementen erzeugt (31685 von 32581 Kanten)
-01:47:11: 1.01 sec -> 0.0001 sec pro Element, Dauer noch ca. 9 sec
-01:47:12: 57777 von ca. 86664 Elementen erzeugt (114419 von 115557 Kanten)
-01:47:12: 2.03 sec -> 0.0000 sec pro Element, Dauer noch ca. 2 sec
-01:47:13: <-Triangulierung der Knoten beendet
-01:47:13: ->Laden des DGM in Datei 'test_daten/dgm.grd' gestartet
-01:47:13: ->Laden des DGM in Datei 'test_daten/dgm.grd' als GRD gestartet
-01:47:13: 10000 von 71250 Werten gelesen, 9999 von 9999 Knoten im Speicher
-01:47:13: 20000 von 71250 Werten gelesen, 19999 von 19999 Knoten im Speicher
-01:47:13: 30000 von 71250 Werten gelesen, 29999 von 29999 Knoten im Speicher
-01:47:13: 40000 von 71250 Werten gelesen, 39999 von 39999 Knoten im Speicher
-01:47:13: 50000 von 71250 Werten gelesen, 49999 von 49999 Knoten im Speicher
-01:47:13: 60000 von 71250 Werten gelesen, 59999 von 59999 Knoten im Speicher
-01:47:14: 70000 von 71250 Werten gelesen, 69999 von 69999 Knoten im Speicher
-01:47:14: 71250 von 71250 Werten gelesen, 71250 von 71250 Knoten im Speicher
-01:47:14: <-Laden des DGM in Datei 'test_daten/dgm.grd' als GRD beendet
-01:47:14: ->Suche nach doppelten Knoten gestartet
-01:47:14: 71250 Knoten und keine Elemente vorhanden
-01:47:14: 10000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 20000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 30000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 40000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 50000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 60000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 70000 von 71250 Knoten, 0 Knoten gelöscht
-01:47:14: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:14: <-Suche nach doppelten Knoten beendet
-01:47:14: <-Laden des DGM in Datei 'test_daten/dgm.grd' beendet
-01:47:14: ->Triangulierung der Knoten gestartet
-01:47:14: ->Sortieren Knoten gestartet
-01:47:14: <-Sortieren der Knoten beendet
-01:47:14: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:14: <-Löschen des Knoten/Kanten-Index beendet
-01:47:14: ->Suchen der Startkante gestartet
-01:47:14: Kante: 1 - 286 als Startkante
-01:47:14: <-Suchen der Startkante beendet
-01:47:15: 53582 von ca. 142500 Elementen erzeugt (106561 von 107167 Kanten)
-01:47:15: 1.01 sec -> 0.0000 sec pro Element, Dauer noch ca. 3 sec
-01:47:16: 109899 von ca. 142500 Elementen erzeugt (219134 von 219801 Kanten)
-01:47:16: 2.03 sec -> 0.0000 sec pro Element, Dauer noch ca. 1 sec
-01:47:17: <-Triangulierung der Knoten beendet
-01:47:18: ->Laden des DGM in Datei 'test_daten/dgm2.shp' gestartet
-01:47:18: ->Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP gestartet
-01:47:18: ->Laden der Projektionsdatei zu 'test_daten/dgm2.shp' gestartet
-01:47:18: Projektionsdatei 'test_daten/dgm2.PRJ' konnte nicht geöffnet werden
-01:47:18: <-Laden der Projektionsdatei zu 'test_daten/dgm2.shp' beendet
-01:47:18: 10000 von 156249 Objekten gelesen, 9999 von 9999 Knoten im Speicher
-01:47:18: 20000 von 156249 Objekten gelesen, 19999 von 19999 Knoten im Speicher
-01:47:18: 30000 von 156249 Objekten gelesen, 29999 von 29999 Knoten im Speicher
-01:47:18: 40000 von 156249 Objekten gelesen, 39999 von 39999 Knoten im Speicher
-01:47:19: 50000 von 156249 Objekten gelesen, 49999 von 49999 Knoten im Speicher
-01:47:19: 60000 von 156249 Objekten gelesen, 59999 von 59999 Knoten im Speicher
-01:47:19: 70000 von 156249 Objekten gelesen, 69999 von 69999 Knoten im Speicher
-01:47:19: 80000 von 156249 Objekten gelesen, 79999 von 79999 Knoten im Speicher
-01:47:19: 90000 von 156249 Objekten gelesen, 89999 von 89999 Knoten im Speicher
-01:47:19: 100000 von 156249 Objekten gelesen, 99999 von 99999 Knoten im Speicher
-01:47:20: 110000 von 156249 Objekten gelesen, 109999 von 109999 Knoten im Speicher
-01:47:20: 120000 von 156249 Objekten gelesen, 119999 von 119999 Knoten im Speicher
-01:47:20: 130000 von 156249 Objekten gelesen, 129999 von 129999 Knoten im Speicher
-01:47:20: 140000 von 156249 Objekten gelesen, 139999 von 139999 Knoten im Speicher
-01:47:20: 150000 von 156249 Objekten gelesen, 149999 von 149999 Knoten im Speicher
-01:47:20: 156249 von 156249 Objekten gelesen, 156249 von 156249 Knoten im Speicher
-01:47:20: <-Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP beendet
-01:47:20: ->Suche nach doppelten Knoten gestartet
-01:47:20: 156249 Knoten und keine Elemente vorhanden
-01:47:21: 10000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 20000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 30000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 40000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 50000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 60000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 70000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 80000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 90000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 100000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 110000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 120000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 130000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 140000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 150000 von 156249 Knoten, 0 Knoten gelöscht
-01:47:21: 0 Knoten gelöscht, 0 Elemente gelöscht
-01:47:21: <-Suche nach doppelten Knoten beendet
-01:47:21: <-Laden des DGM in Datei 'test_daten/dgm2.shp' beendet
-01:47:21: ->Triangulierung der Knoten gestartet
-01:47:21: ->Sortieren Knoten gestartet
-01:47:21: <-Sortieren der Knoten beendet
-01:47:21: ->Löschen des Knoten/Kanten-Index gestartet
-01:47:21: <-Löschen des Knoten/Kanten-Index beendet
-01:47:21: ->Suchen der Startkante gestartet
-01:47:21: Kante: 156260 - 44106 als Startkante
-01:47:21: <-Suchen der Startkante beendet
-01:47:22: 21561 von ca. 312538 Elementen erzeugt (42071 von 43125 Kanten)
-01:47:22: 1.01 sec -> 0.0000 sec pro Element, Dauer noch ca. 27 sec
-01:47:23: 46659 von ca. 312538 Elementen erzeugt (91768 von 93321 Kanten)
-01:47:23: 2.08 sec -> 0.0000 sec pro Element, Dauer noch ca. 24 sec
-01:47:24: 71977 von ca. 312538 Elementen erzeugt (142030 von 143957 Kanten)
-01:47:24: 3.12 sec -> 0.0000 sec pro Element, Dauer noch ca. 21 sec
-01:47:25: 114679 von ca. 312538 Elementen erzeugt (227356 von 229361 Kanten)
-01:47:25: 4.14 sec -> 0.0000 sec pro Element, Dauer noch ca. 14 sec
-01:47:26: 157597 von ca. 312538 Elementen erzeugt (313225 von 315197 Kanten)
-01:47:26: 5.16 sec -> 0.0000 sec pro Element, Dauer noch ca. 10 sec
-01:47:27: 204655 von ca. 312538 Elementen erzeugt (407420 von 409313 Kanten)
-01:47:27: 6.17 sec -> 0.0000 sec pro Element, Dauer noch ca. 7 sec
-01:47:28: 249505 von ca. 312538 Elementen erzeugt (497362 von 499013 Kanten)
-01:47:28: 7.19 sec -> 0.0000 sec pro Element, Dauer noch ca. 4 sec
-01:47:29: 285462 von ca. 312538 Elementen erzeugt (569509 von 570927 Kanten)
-01:47:29: 8.20 sec -> 0.0000 sec pro Element, Dauer noch ca. 2 sec
-01:47:30: 302948 von ca. 312538 Elementen erzeugt (604787 von 605899 Kanten)
-01:47:30: 9.22 sec -> 0.0000 sec pro Element, Dauer noch ca. 1 sec
-01:47:31: 311322 von ca. 312538 Elementen erzeugt (622261 von 622647 Kanten)
-01:47:31: 10.23 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
-01:47:32: 312323 von ca. 312538 Elementen erzeugt (624645 von 624649 Kanten)
-01:47:32: 11.25 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
-01:47:33: 312411 von ca. 312538 Elementen erzeugt (624821 von 624825 Kanten)
-01:47:33: 12.27 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
-01:47:34: 312493 von ca. 312538 Elementen erzeugt (624985 von 624989 Kanten)
-01:47:34: 13.28 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
-01:47:35: <-Triangulierung der Knoten beendet
+21:53:27: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ gestartet
+21:53:27: 13 Werte gelesen, 13 von 13 Knoten im Speicher
+21:53:27: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ beendet
+21:53:27: ->Suche nach doppelten Knoten gestartet
+21:53:27: 13 Knoten und keine Elemente vorhanden
+21:53:27: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:27: <-Suche nach doppelten Knoten beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' beendet
+21:53:27: ->Triangulierung der Knoten gestartet
+21:53:27: ->Sortieren Knoten gestartet
+21:53:27: <-Sortieren der Knoten beendet
+21:53:27: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:27: <-Löschen des Knoten/Kanten-Index beendet
+21:53:27: ->Suchen der Startkante gestartet
+21:53:27: Kante: 1 - 2 als Startkante
+21:53:27: <-Suchen der Startkante beendet
+21:53:27: <-Triangulierung der Knoten beendet
+21:53:27: ->Erzeugung der Kanten gestartet
+21:53:27: 19 von 19 Elementen, 31 Kanten erzeugt
+21:53:27: 0 von 31 Kanten getestet
+21:53:27: 31 von 31 Kanten getestet
+21:53:27: <-Erzeugung der Kanten beendet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
+21:53:27: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
+21:53:27: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
+21:53:27: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
+21:53:27: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
+21:53:27: ->Suche nach doppelten Knoten gestartet
+21:53:27: 114 Knoten und keine Elemente vorhanden
+21:53:27: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:27: <-Suche nach doppelten Knoten beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
+21:53:27: 0.01,0.01
+21:53:27: 0.01,0.01
+21:53:27: 0.01,0.02
+21:53:27: 0.02,0.02
+21:53:27: 0.02,0.01
+21:53:27: 0.01,0.01
+21:53:27: 0.01,0.02
+21:53:27: 0.02,0.02
+21:53:27: 0.02,0.01
+21:53:27: 0.01,0.01
+21:53:27: 0.01,0.02
+21:53:27: 0.01,0.03
+21:53:27: 0.02,0.02
+21:53:27: 0.02,0.03
+21:53:27: 0.03,0.02
+21:53:27: 0.03,0.03
+21:53:27: 0.02,0.01
+21:53:27: 0.03,0.01
+21:53:27: 0.01,0.01
+21:53:27: 0.01,0.09
+21:53:27: 0.04,0.09
+21:53:27: 0.03,0.06
+21:53:27: 0.04,0.05
+21:53:27: 0.09,0.09
+21:53:27: 0.07,0.09
+21:53:27: 0.07,0.07
+21:53:27: 0.07,0.06
+21:53:27: 0.09,0.01
+21:53:27: 0.07,0.04
+21:53:27: 0.03,0.04
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
+21:53:27: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
+21:53:27: ->Suche nach doppelten Knoten gestartet
+21:53:27: 1126 Knoten und keine Elemente vorhanden
+21:53:27: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:27: <-Suche nach doppelten Knoten beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
+21:53:27: 3501267.49,5872612.21
+21:53:27: 3500741.94,5873010.11
+21:53:27: 3500733.82,5872983.87
+21:53:27: 3500726.79,5873108.23
+21:53:27: 3500727.21,5873257.13
+21:53:27: 3500730.52,5873329.20
+21:53:27: 3500734.91,5873293.44
+21:53:27: 3500685.45,5873261.49
+21:53:27: 3500699.93,5873298.09
+21:53:27: 3500738.07,5873147.90
+21:53:27: 3500691.05,5873185.69
+21:53:27: 3500692.77,5873223.67
+21:53:27: 3500724.99,5873180.90
+21:53:27: 3500730.53,5873216.57
+21:53:27: 3500685.70,5873112.11
+21:53:27: 3500700.42,5873147.47
+21:53:27: 3500733.86,5873038.63
+21:53:27: 3500726.38,5873069.66
+21:53:27: 3500695.85,5873035.94
+21:53:27: 3500695.28,5873076.51
+21:53:27: 3500731.87,5872960.78
+21:53:27: 3500713.94,5873006.84
+21:53:27: 3500710.48,5872981.53
+21:53:27: 3500714.77,5872967.93
+21:53:27: 3500733.58,5872944.56
+21:53:27: 3501269.86,5872816.42
+21:53:27: 3501099.88,5873416.41
+21:53:27: 3501063.99,5873407.92
+21:53:27: 3501022.45,5873411.00
+21:53:27: 3500987.30,5873417.60
+21:53:27: 3500955.14,5873404.00
+21:53:27: 3500922.33,5873416.94
+21:53:27: 3500879.94,5873411.35
+21:53:27: 3500835.30,5873410.84
+21:53:27: 3500797.71,5873412.18
+21:53:27: 3501251.80,5873408.21
+21:53:27: 3501334.15,5873408.58
+21:53:27: 3501410.39,5873416.02
+21:53:27: 3501444.14,5873404.29
+21:53:27: 3501375.52,5873411.84
+21:53:27: 3501213.20,5873407.85
+21:53:27: 3501293.31,5873419.57
+21:53:27: 3501177.16,5873415.15
+21:53:27: 3501136.19,5873411.35
+21:53:27: 3501251.95,5872819.23
+21:53:27: 3501247.91,5873111.14
+21:53:27: 3501177.23,5873257.77
+21:53:27: 3501147.48,5873340.62
+21:53:27: 3501142.70,5873374.43
+21:53:27: 3501183.79,5873333.72
+21:53:27: 3501180.31,5873373.97
+21:53:27: 3501217.95,5873373.52
+21:53:27: 3501213.19,5873304.01
+21:53:27: 3501184.45,5873293.37
+21:53:27: 3501136.62,5873261.72
+21:53:27: 3501145.77,5873302.23
+21:53:27: 3501263.50,5873260.93
+21:53:27: 3501259.17,5873331.73
+21:53:27: 3501256.42,5873367.06
+21:53:27: 3501224.98,5873337.01
+21:53:27: 3501296.42,5873339.25
+21:53:27: 3501293.05,5873382.51
+21:53:27: 3501298.37,5873266.32
+21:53:27: 3501284.76,5873299.04
+21:53:27: 3501221.67,5873264.43
+21:53:27: 3501247.43,5873298.09
+21:53:27: 3501288.19,5873113.25
+21:53:27: 3501256.03,5873186.16
+21:53:27: 3501248.53,5873224.43
+21:53:27: 3501293.02,5873187.36
+21:53:27: 3501289.61,5873226.83
+21:53:27: 3501300.28,5873152.80
+21:53:27: 3501262.38,5873148.08
+21:53:27: 3501221.72,5873152.04
+21:53:27: 3501210.24,5873111.86
+21:53:27: 3501147.05,5873190.51
+21:53:27: 3501142.62,5873224.06
+21:53:27: 3501217.82,5873192.87
+21:53:27: 3501180.39,5873216.01
+21:53:27: 3501212.35,5873229.77
+21:53:27: 3501181.50,5873177.77
+21:53:27: 3501177.08,5873105.90
+21:53:27: 3501180.06,5873140.75
+21:53:27: 3501139.21,5873112.89
+21:53:27: 3501142.94,5873156.09
+21:53:27: 3501326.44,5873107.03
+21:53:27: 3501331.45,5873253.41
+21:53:27: 3501335.30,5873331.59
+21:53:27: 3501330.44,5873366.95
+21:53:27: 3501369.03,5873336.90
+21:53:27: 3501368.22,5873374.38
+21:53:27: 3501405.85,5873336.38
+21:53:27: 3501367.01,5873268.75
+21:53:27: 3501363.40,5873303.35
+21:53:27: 3501403.28,5873295.62
+21:53:27: 3501401.10,5873257.08
+21:53:27: 3501325.99,5873295.48
+21:53:27: 3501440.19,5873265.38
+21:53:27: 3501443.83,5873343.78
+21:53:27: 3501407.30,5873377.34
+21:53:27: 3501443.41,5873374.10
+21:53:27: 3501442.85,5873306.61
+21:53:27: 3501410.28,5873227.36
+21:53:27: 3501364.60,5873113.67
+21:53:27: 3501330.36,5873176.63
+21:53:27: 3501330.04,5873215.80
+21:53:27: 3501363.44,5873191.14
+21:53:27: 3501371.23,5873226.76
+21:53:27: 3501405.96,5873185.52
+21:53:27: 3501402.31,5873106.54
+21:53:27: 3501369.06,5873156.21
+21:53:27: 3501405.50,5873141.20
+21:53:27: 3501331.89,5873138.57
+21:53:27: 3501323.29,5872851.93
+21:53:27: 3501322.72,5872961.19
+21:53:27: 3501329.42,5873027.24
+21:53:27: 3501334.53,5873069.66
+21:53:27: 3501362.75,5873041.40
+21:53:27: 3501375.73,5873073.47
+21:53:27: 3501364.72,5872965.28
+21:53:27: 3501368.01,5873006.17
+21:53:27: 3501335.84,5872992.78
+21:53:27: 3501332.60,5872865.63
+21:53:27: 3501330.76,5872887.44
+21:53:27: 3501335.29,5872925.67
+21:53:27: 3501290.05,5872816.47
+21:53:27: 3501147.89,5872960.56
+21:53:27: 3501137.56,5873041.01
+21:53:27: 3501150.96,5873073.29
+21:53:27: 3501214.91,5873038.09
+21:53:27: 3501188.50,5873072.32
+21:53:27: 3501173.03,5873035.24
+21:53:27: 3501180.24,5872961.77
+21:53:27: 3501183.47,5872996.92
+21:53:27: 3501210.46,5872961.30
+21:53:27: 3501140.95,5873001.24
+21:53:27: 3501284.89,5872962.09
+21:53:27: 3501255.33,5873027.33
+21:53:27: 3501223.54,5873077.76
+21:53:27: 3501259.03,5873069.47
+21:53:27: 3501292.63,5873043.39
+21:53:27: 3501297.30,5873077.96
+21:53:27: 3501296.77,5873002.29
+21:53:27: 3501247.70,5872961.39
+21:53:27: 3501226.84,5872999.13
+21:53:27: 3501262.40,5872991.16
+21:53:27: 3501233.71,5872816.50
+21:53:27: 3501239.10,5872876.42
+21:53:27: 3501221.78,5872925.08
+21:53:27: 3501259.53,5872925.33
+21:53:27: 3501256.06,5872889.47
+21:53:27: 3501237.33,5872898.41
+21:53:27: 3501274.61,5872876.44
+21:53:27: 3501297.60,5872925.39
+21:53:27: 3501293.36,5872888.43
+21:53:27: 3501312.18,5872897.81
+21:53:27: 3501274.47,5872898.46
+21:53:27: 3501310.44,5872816.53
+21:53:27: 3501273.70,5872858.16
+21:53:27: 3501298.49,5872855.04
+21:53:27: 3501291.41,5872868.26
+21:53:27: 3501312.06,5872872.11
+21:53:27: 3501308.56,5872835.82
+21:53:27: 3501267.74,5872835.91
+21:53:27: 3501287.18,5872837.17
+21:53:27: 3501245.66,5872835.10
+21:53:27: 3501231.54,5872851.41
+21:53:27: 3501224.10,5872864.38
+21:53:27: 3501260.98,5872849.75
+21:53:27: 3501248.90,5872861.27
+21:53:27: 3501258.31,5872869.82
+21:53:27: 3501247.51,5872851.07
+21:53:27: 3501224.15,5872834.64
+21:53:27: 3501210.50,5872814.37
+21:53:27: 3501142.37,5872889.76
+21:53:27: 3501142.36,5872919.79
+21:53:27: 3501162.30,5872894.94
+21:53:27: 3501125.47,5872894.52
+21:53:27: 3501218.32,5872886.87
+21:53:27: 3501180.42,5872927.13
+21:53:27: 3501199.62,5872896.32
+21:53:27: 3501182.02,5872888.23
+21:53:27: 3501187.96,5872817.11
+21:53:27: 3501185.26,5872853.86
+21:53:27: 3501174.50,5872870.61
+21:53:27: 3501208.65,5872851.45
+21:53:27: 3501199.30,5872867.49
+21:53:27: 3501214.97,5872870.87
+21:53:27: 3501205.55,5872832.66
+21:53:27: 3501187.15,5872835.82
+21:53:27: 3501166.84,5872816.82
+21:53:27: 3501146.79,5872851.56
+21:53:27: 3501129.24,5872860.15
+21:53:27: 3501165.39,5872857.58
+21:53:27: 3501149.71,5872873.72
+21:53:27: 3501165.59,5872837.46
+21:53:27: 3501146.76,5872815.84
+21:53:27: 3501128.45,5872819.34
+21:53:27: 3501144.14,5872833.69
+21:53:27: 3501107.18,5872815.07
+21:53:27: 3500912.76,5873116.86
+21:53:27: 3500840.35,5873264.82
+21:53:27: 3500767.75,5873344.49
+21:53:27: 3500767.78,5873381.38
+21:53:27: 3500807.89,5873333.43
+21:53:27: 3500805.86,5873373.64
+21:53:27: 3500838.21,5873303.01
+21:53:27: 3500805.11,5873291.43
+21:53:27: 3500800.94,5873256.04
+21:53:27: 3500767.07,5873268.41
+21:53:27: 3500768.94,5873307.67
+21:53:27: 3500913.32,5873265.15
+21:53:27: 3500876.57,5873340.25
+21:53:27: 3500845.54,5873372.09
+21:53:27: 3500885.10,5873370.29
+21:53:27: 3500847.14,5873332.02
+21:53:27: 3500916.54,5873336.09
+21:53:27: 3500917.84,5873381.57
+21:53:27: 3500922.64,5873294.86
+21:53:27: 3500879.77,5873254.67
+21:53:27: 3500880.51,5873298.62
+21:53:27: 3500926.60,5873149.37
+21:53:27: 3500879.61,5873193.06
+21:53:27: 3500849.25,5873223.58
+21:53:27: 3500880.80,5873223.73
+21:53:27: 3500913.31,5873181.35
+21:53:27: 3500919.01,5873223.93
+21:53:27: 3500876.98,5873107.08
+21:53:27: 3500847.98,5873143.55
+21:53:27: 3500883.38,5873151.96
+21:53:27: 3500834.23,5873110.17
+21:53:27: 3500760.19,5873186.29
+21:53:27: 3500770.45,5873227.14
+21:53:27: 3500839.62,5873182.20
+21:53:27: 3500813.51,5873223.01
+21:53:27: 3500797.99,5873187.01
+21:53:27: 3500813.75,5873148.92
+21:53:27: 3500796.43,5873110.44
+21:53:27: 3500776.41,5873148.75
+21:53:27: 3500762.14,5873115.93
+21:53:27: 3501098.09,5873109.81
+21:53:27: 3501000.29,5873260.77
+21:53:27: 3500955.63,5873336.67
+21:53:27: 3500955.20,5873366.47
+21:53:27: 3500994.13,5873337.42
+21:53:27: 3500993.10,5873380.95
+21:53:27: 3501022.86,5873298.52
+21:53:27: 3500987.23,5873294.02
+21:53:27: 3500955.67,5873261.70
+21:53:27: 3500955.47,5873305.97
+21:53:27: 3501105.69,5873261.31
+21:53:27: 3501064.19,5873340.74
+21:53:27: 3501032.54,5873371.46
+21:53:27: 3501073.24,5873369.69
+21:53:27: 3501034.48,5873331.90
+21:53:27: 3501105.70,5873335.98
+21:53:27: 3501105.46,5873381.14
+21:53:27: 3501105.34,5873293.22
+21:53:27: 3501074.61,5873261.24
+21:53:27: 3501065.41,5873301.97
+21:53:27: 3501038.47,5873261.35
+21:53:27: 3501062.38,5873115.47
+21:53:27: 3501064.09,5873182.03
+21:53:27: 3501064.90,5873220.27
+21:53:27: 3501105.11,5873186.61
+21:53:27: 3501104.79,5873229.40
+21:53:27: 3501110.44,5873143.84
+21:53:27: 3501076.58,5873149.19
+21:53:27: 3501037.63,5873148.04
+21:53:27: 3501026.69,5873107.74
+21:53:27: 3500951.62,5873188.63
+21:53:27: 3500954.81,5873224.11
+21:53:27: 3501030.10,5873186.27
+21:53:27: 3500985.27,5873224.11
+21:53:27: 3501023.11,5873223.69
+21:53:27: 3500992.60,5873186.29
+21:53:27: 3500984.92,5873110.95
+21:53:27: 3501001.35,5873147.88
+21:53:27: 3500949.26,5873110.68
+21:53:27: 3500963.93,5873149.18
+21:53:27: 3501124.15,5872838.14
+21:53:27: 3501025.76,5872962.80
+21:53:27: 3500956.03,5873027.96
+21:53:27: 3500957.26,5873069.06
+21:53:27: 3501026.72,5873031.73
+21:53:27: 3500997.39,5873078.42
+21:53:27: 3501031.11,5873065.63
+21:53:27: 3500992.65,5873043.10
+21:53:27: 3500989.14,5872962.66
+21:53:27: 3500996.81,5873002.11
+21:53:27: 3500950.22,5872962.71
+21:53:27: 3500960.82,5872994.52
+21:53:27: 3501109.08,5872963.52
+21:53:27: 3501065.72,5873040.07
+21:53:27: 3501067.86,5873080.47
+21:53:27: 3501105.27,5873028.74
+21:53:27: 3501108.66,5873070.37
+21:53:27: 3501101.44,5872993.67
+21:53:27: 3501067.75,5872963.78
+21:53:27: 3501038.13,5872998.98
+21:53:27: 3501072.08,5873003.81
+21:53:27: 3501101.81,5872836.95
+21:53:27: 3501042.01,5872875.95
+21:53:27: 3501049.13,5872935.85
+21:53:27: 3501068.33,5872925.32
+21:53:27: 3501075.31,5872883.06
+21:53:27: 3501066.74,5872902.35
+21:53:27: 3501065.34,5872889.34
+21:53:27: 3501050.51,5872886.17
+21:53:27: 3501033.08,5872903.34
+21:53:27: 3501049.64,5872911.19
+21:53:27: 3501124.91,5872876.83
+21:53:27: 3501089.36,5872932.76
+21:53:27: 3501116.95,5872935.34
+21:53:27: 3501109.02,5872887.71
+21:53:27: 3501108.76,5872909.18
+21:53:27: 3501100.11,5872879.94
+21:53:27: 3501084.77,5872907.14
+21:53:27: 3501093.11,5872891.98
+21:53:27: 3501086.13,5872821.18
+21:53:27: 3501082.61,5872839.63
+21:53:27: 3501079.70,5872871.28
+21:53:27: 3501090.27,5872858.11
+21:53:27: 3501110.25,5872853.02
+21:53:27: 3501109.41,5872869.13
+21:53:27: 3501068.00,5872814.42
+21:53:27: 3501042.65,5872857.60
+21:53:27: 3501065.35,5872853.75
+21:53:27: 3501060.70,5872872.06
+21:53:27: 3501064.53,5872833.30
+21:53:27: 3501047.52,5872817.09
+21:53:27: 3501044.11,5872837.33
+21:53:27: 3501023.73,5872817.36
+21:53:27: 3500976.12,5872895.51
+21:53:27: 3500956.28,5872926.96
+21:53:27: 3500938.25,5872914.04
+21:53:27: 3500974.87,5872914.20
+21:53:27: 3500973.99,5872936.29
+21:53:27: 3500964.72,5872878.32
+21:53:27: 3500958.83,5872907.54
+21:53:27: 3500951.32,5872898.62
+21:53:27: 3501025.72,5872889.28
+21:53:27: 3500993.38,5872926.09
+21:53:27: 3501030.67,5872925.41
+21:53:27: 3501011.42,5872935.20
+21:53:27: 3501012.50,5872909.90
+21:53:27: 3501006.08,5872877.51
+21:53:27: 3500992.09,5872905.90
+21:53:27: 3501000.92,5872892.40
+21:53:27: 3500986.33,5872876.32
+21:53:27: 3501026.19,5872839.59
+21:53:27: 3501000.81,5872857.91
+21:53:27: 3501020.57,5872854.31
+21:53:27: 3501023.76,5872870.61
+21:53:27: 3501001.25,5872814.92
+21:53:27: 3501004.85,5872835.50
+21:53:27: 3500982.32,5872817.64
+21:53:27: 3500957.59,5872858.04
+21:53:27: 3500942.94,5872874.58
+21:53:27: 3500983.78,5872837.83
+21:53:27: 3500978.29,5872857.54
+21:53:27: 3500965.97,5872841.75
+21:53:27: 3500961.93,5872821.83
+21:53:27: 3500940.00,5872815.40
+21:53:27: 3500947.10,5872836.70
+21:53:27: 3500937.49,5872855.01
+21:53:27: 3500841.93,5872957.06
+21:53:27: 3500770.03,5873039.00
+21:53:27: 3500765.42,5873077.17
+21:53:27: 3500840.16,5873040.20
+21:53:27: 3500808.78,5873070.45
+21:53:27: 3500801.01,5873031.95
+21:53:27: 3500816.97,5872973.22
+21:53:27: 3500809.91,5873002.22
+21:53:27: 3500789.69,5872970.41
+21:53:27: 3500770.53,5872997.97
+21:53:27: 3500769.28,5872963.04
+21:53:27: 3500750.76,5872969.58
+21:53:27: 3500751.90,5872950.19
+21:53:27: 3500913.32,5872962.89
+21:53:27: 3500880.41,5873027.26
+21:53:27: 3500847.20,5873077.54
+21:53:27: 3500880.99,5873065.10
+21:53:27: 3500918.91,5873044.15
+21:53:27: 3500917.47,5873080.60
+21:53:27: 3500921.53,5873002.66
+21:53:27: 3500876.00,5872962.78
+21:53:27: 3500848.17,5872998.34
+21:53:27: 3500886.12,5872994.25
+21:53:27: 3500937.36,5872892.10
+21:53:27: 3500883.43,5872926.01
+21:53:27: 3500862.10,5872931.81
+21:53:27: 3500882.18,5872895.73
+21:53:27: 3500876.93,5872907.96
+21:53:27: 3500877.64,5872877.13
+21:53:27: 3500852.13,5872911.07
+21:53:27: 3500862.37,5872894.75
+21:53:27: 3500855.33,5872877.12
+21:53:27: 3500936.74,5872935.56
+21:53:27: 3500900.25,5872934.30
+21:53:27: 3500920.39,5872929.76
+21:53:27: 3500915.48,5872914.84
+21:53:27: 3500926.52,5872901.73
+21:53:27: 3500922.77,5872880.33
+21:53:27: 3500912.77,5872892.31
+21:53:27: 3500901.73,5872904.85
+21:53:27: 3500896.40,5872890.05
+21:53:27: 3500917.25,5872817.03
+21:53:27: 3500905.58,5872837.85
+21:53:27: 3500901.20,5872873.38
+21:53:27: 3500898.20,5872854.69
+21:53:27: 3500918.99,5872859.22
+21:53:27: 3500925.41,5872836.61
+21:53:27: 3500896.30,5872817.09
+21:53:27: 3500875.50,5872817.45
+21:53:27: 3500859.20,5872857.55
+21:53:27: 3500879.92,5872857.92
+21:53:27: 3500884.79,5872837.31
+21:53:27: 3500855.15,5872816.69
+21:53:27: 3500863.69,5872837.35
+21:53:27: 3500842.46,5872927.13
+21:53:27: 3500788.09,5872946.59
+21:53:27: 3500770.46,5872940.66
+21:53:27: 3500755.77,5872933.07
+21:53:27: 3500757.95,5872913.49
+21:53:27: 3500787.86,5872928.78
+21:53:27: 3500777.96,5872921.57
+21:53:27: 3500794.25,5872897.66
+21:53:27: 3500781.43,5872911.91
+21:53:27: 3500777.30,5872878.18
+21:53:27: 3500772.67,5872896.66
+21:53:27: 3500823.51,5872930.12
+21:53:27: 3500809.91,5872947.81
+21:53:27: 3500802.53,5872917.30
+21:53:27: 3500803.36,5872929.93
+21:53:27: 3500827.33,5872914.18
+21:53:27: 3500839.00,5872894.88
+21:53:27: 3500815.41,5872897.61
+21:53:27: 3500818.54,5872878.10
+21:53:27: 3500797.60,5872878.09
+21:53:27: 3500836.45,5872874.95
+21:53:27: 3500818.43,5872857.50
+21:53:27: 3500800.61,5872860.50
+21:53:27: 3500819.00,5872838.01
+21:53:27: 3500839.00,5872857.09
+21:53:27: 3500836.52,5872814.29
+21:53:27: 3500840.94,5872835.88
+21:53:27: 3500818.63,5872817.37
+21:53:27: 3500800.95,5872820.10
+21:53:27: 3500796.28,5872839.60
+21:53:27: 3500772.62,5872837.50
+21:53:27: 3500782.20,5872857.64
+21:53:27: 3500782.21,5872817.07
+21:53:27: 3500758.25,5872815.41
+21:53:27: 3501270.00,5872629.60
+21:53:27: 3501122.32,5872634.24
+21:53:27: 3500920.58,5872543.15
+21:53:27: 3500829.46,5872657.27
+21:53:27: 3500775.86,5872737.11
+21:53:27: 3500752.90,5872775.57
+21:53:27: 3500759.85,5872793.77
+21:53:27: 3500776.55,5872778.50
+21:53:27: 3500776.04,5872799.11
+21:53:27: 3500780.52,5872758.67
+21:53:27: 3500753.50,5872736.52
+21:53:27: 3500761.61,5872756.10
+21:53:27: 3500835.29,5872735.63
+21:53:27: 3500818.23,5872780.39
+21:53:27: 3500797.68,5872796.19
+21:53:27: 3500798.40,5872772.36
+21:53:27: 3500836.01,5872773.44
+21:53:27: 3500820.87,5872799.15
+21:53:27: 3500841.36,5872794.51
+21:53:27: 3500843.44,5872755.12
+21:53:27: 3500820.43,5872757.97
+21:53:27: 3500816.02,5872737.94
+21:53:27: 3500798.14,5872751.41
+21:53:27: 3500798.14,5872731.31
+21:53:27: 3500805.93,5872665.68
+21:53:27: 3500798.83,5872695.26
+21:53:27: 3500817.26,5872716.74
+21:53:27: 3500820.10,5872696.38
+21:53:27: 3500839.67,5872694.61
+21:53:27: 3500838.95,5872715.10
+21:53:27: 3500822.62,5872677.10
+21:53:27: 3500843.03,5872671.82
+21:53:27: 3500803.40,5872680.06
+21:53:27: 3500777.26,5872653.82
+21:53:27: 3500757.68,5872699.44
+21:53:27: 3500758.04,5872717.86
+21:53:27: 3500778.26,5872695.59
+21:53:27: 3500777.64,5872716.40
+21:53:27: 3500795.80,5872712.66
+21:53:27: 3500782.39,5872674.09
+21:53:27: 3500761.30,5872668.45
+21:53:27: 3500758.86,5872682.49
+21:53:27: 3500897.89,5872651.18
+21:53:27: 3500877.56,5872737.67
+21:53:27: 3500855.41,5872775.99
+21:53:27: 3500863.79,5872796.29
+21:53:27: 3500875.34,5872776.16
+21:53:27: 3500884.94,5872796.92
+21:53:27: 3500884.56,5872756.12
+21:53:27: 3500857.78,5872733.39
+21:53:27: 3500864.05,5872755.62
+21:53:27: 3500922.89,5872733.79
+21:53:27: 3500896.06,5872776.82
+21:53:27: 3500905.37,5872797.16
+21:53:27: 3500917.45,5872776.54
+21:53:27: 3500925.86,5872796.41
+21:53:27: 3500921.55,5872755.51
+21:53:27: 3500899.20,5872736.77
+21:53:27: 3500903.53,5872758.44
+21:53:27: 3500917.39,5872656.45
+21:53:27: 3500898.72,5872695.92
+21:53:27: 3500903.21,5872717.77
+21:53:27: 3500922.34,5872692.44
+21:53:27: 3500919.04,5872712.09
+21:53:27: 3500924.13,5872671.82
+21:53:27: 3500902.94,5872673.91
+21:53:27: 3500863.65,5872659.67
+21:53:27: 3500855.96,5872691.76
+21:53:27: 3500860.35,5872710.50
+21:53:27: 3500876.05,5872695.88
+21:53:27: 3500882.04,5872716.91
+21:53:27: 3500882.92,5872659.10
+21:53:27: 3500881.72,5872676.90
+21:53:27: 3500863.28,5872677.84
+21:53:27: 3500932.76,5872579.75
+21:53:27: 3500850.35,5872578.79
+21:53:27: 3500864.11,5872627.62
+21:53:27: 3500853.00,5872648.86
+21:53:27: 3500887.29,5872617.03
+21:53:27: 3500876.53,5872640.46
+21:53:27: 3500870.71,5872605.35
+21:53:27: 3500928.58,5872611.24
+21:53:27: 3500900.07,5872632.05
+21:53:27: 3500909.95,5872639.29
+21:53:27: 3500923.60,5872623.64
+21:53:27: 3500925.70,5872640.40
+21:53:27: 3500891.48,5872577.00
+21:53:27: 3500909.44,5872608.12
+21:53:27: 3500899.53,5872505.24
+21:53:27: 3500886.12,5872537.71
+21:53:27: 3500853.71,5872543.18
+21:53:27: 3500856.95,5872502.88
+21:53:27: 3500820.23,5872548.97
+21:53:27: 3500774.30,5872576.19
+21:53:27: 3500756.75,5872646.65
+21:53:27: 3500778.43,5872614.65
+21:53:27: 3500796.74,5872647.50
+21:53:27: 3500810.24,5872582.64
+21:53:27: 3500815.22,5872620.62
+21:53:27: 3500817.46,5872647.41
+21:53:27: 3500841.29,5872635.38
+21:53:27: 3500842.84,5872608.02
+21:53:27: 3500817.21,5872513.96
+21:53:27: 3500782.56,5872540.34
+21:53:27: 3501121.81,5872598.65
+21:53:27: 3501019.35,5872654.55
+21:53:27: 3500979.76,5872733.04
+21:53:27: 3500960.15,5872778.46
+21:53:27: 3500944.33,5872794.53
+21:53:27: 3500939.44,5872774.38
+21:53:27: 3500981.33,5872778.05
+21:53:27: 3500963.88,5872799.18
+21:53:27: 3500962.34,5872739.70
+21:53:27: 3500962.37,5872760.17
+21:53:27: 3500944.53,5872732.39
+21:53:27: 3500941.67,5872751.87
+21:53:27: 3501024.02,5872734.91
+21:53:27: 3501002.68,5872772.57
+21:53:27: 3500985.20,5872798.95
+21:53:27: 3501005.18,5872794.70
+21:53:27: 3501023.44,5872776.30
+21:53:27: 3501025.93,5872794.89
+21:53:27: 3501021.79,5872758.07
+21:53:27: 3500999.64,5872735.39
+21:53:27: 3500984.41,5872754.54
+21:53:27: 3501005.83,5872752.74
+21:53:27: 3501025.85,5872675.02
+21:53:27: 3501006.54,5872694.40
+21:53:27: 3500985.24,5872716.77
+21:53:27: 3501003.58,5872714.96
+21:53:27: 3501023.70,5872694.34
+21:53:27: 3501024.09,5872711.88
+21:53:27: 3500999.00,5872653.89
+21:53:27: 3500985.41,5872671.67
+21:53:27: 3501003.29,5872674.51
+21:53:27: 3500978.44,5872653.61
+21:53:27: 3500958.75,5872694.55
+21:53:27: 3500939.98,5872713.54
+21:53:27: 3500941.39,5872694.44
+21:53:27: 3500982.65,5872694.61
+21:53:27: 3500963.86,5872715.98
+21:53:27: 3500966.44,5872674.88
+21:53:27: 3500959.29,5872656.97
+21:53:27: 3500943.85,5872675.41
+21:53:27: 3500940.14,5872653.50
+21:53:27: 3501124.54,5872713.13
+21:53:27: 3501062.87,5872732.89
+21:53:27: 3501042.20,5872778.44
+21:53:27: 3501044.10,5872797.35
+21:53:27: 3501063.19,5872777.58
+21:53:27: 3501062.28,5872798.81
+21:53:27: 3501066.70,5872754.34
+21:53:27: 3501046.54,5872738.13
+21:53:27: 3501042.91,5872757.62
+21:53:27: 3501124.38,5872757.75
+21:53:27: 3501084.77,5872776.09
+21:53:27: 3501083.68,5872798.76
+21:53:27: 3501124.81,5872798.41
+21:53:27: 3501103.24,5872794.15
+21:53:27: 3501108.10,5872774.75
+21:53:27: 3501110.30,5872735.44
+21:53:27: 3501103.32,5872752.88
+21:53:27: 3501085.20,5872735.50
+21:53:27: 3501087.59,5872758.25
+21:53:27: 3501107.74,5872655.44
+21:53:27: 3501083.39,5872692.30
+21:53:27: 3501087.50,5872712.39
+21:53:27: 3501106.21,5872698.61
+21:53:27: 3501103.19,5872718.29
+21:53:27: 3501106.11,5872678.25
+21:53:27: 3501083.07,5872652.54
+21:53:27: 3501088.43,5872671.12
+21:53:27: 3501061.08,5872655.24
+21:53:27: 3501040.37,5872694.44
+21:53:27: 3501045.80,5872716.46
+21:53:27: 3501060.57,5872694.50
+21:53:27: 3501069.11,5872714.57
+21:53:27: 3501069.37,5872673.58
+21:53:27: 3501039.44,5872655.25
+21:53:27: 3501048.44,5872674.05
+21:53:27: 3501115.29,5872578.40
+21:53:27: 3501072.16,5872604.47
+21:53:27: 3501042.90,5872621.64
+21:53:27: 3501047.12,5872638.76
+21:53:27: 3501063.65,5872616.36
+21:53:27: 3501066.31,5872634.53
+21:53:27: 3501057.54,5872591.37
+21:53:27: 3501047.34,5872607.37
+21:53:27: 3501037.96,5872597.83
+21:53:27: 3501040.42,5872577.91
+21:53:27: 3501109.16,5872615.97
+21:53:27: 3501086.08,5872618.17
+21:53:27: 3501085.36,5872634.95
+21:53:27: 3501102.06,5872635.09
+21:53:27: 3501099.55,5872590.34
+21:53:27: 3501084.08,5872595.98
+21:53:27: 3501096.98,5872601.56
+21:53:27: 3501078.23,5872579.53
+21:53:27: 3501117.18,5872538.63
+21:53:27: 3501097.28,5872569.03
+21:53:27: 3501078.77,5872546.75
+21:53:27: 3501111.32,5872501.40
+21:53:27: 3501075.10,5872509.26
+21:53:27: 3501040.94,5872538.96
+21:53:27: 3501059.49,5872568.87
+21:53:27: 3501036.13,5872501.02
+21:53:27: 3501000.21,5872540.43
+21:53:27: 3500966.11,5872584.15
+21:53:27: 3500948.06,5872619.02
+21:53:27: 3500941.10,5872634.03
+21:53:27: 3500972.88,5872616.09
+21:53:27: 3500962.34,5872636.44
+21:53:27: 3501022.52,5872610.28
+21:53:27: 3500997.70,5872613.19
+21:53:27: 3500985.70,5872633.81
+21:53:27: 3501006.78,5872634.11
+21:53:27: 3501028.24,5872636.30
+21:53:27: 3501019.38,5872620.14
+21:53:27: 3501018.89,5872590.18
+21:53:27: 3500996.17,5872597.86
+21:53:27: 3501002.82,5872504.66
+21:53:27: 3500993.51,5872570.39
+21:53:27: 3501021.62,5872568.54
+21:53:27: 3500960.32,5872544.50
+21:53:27: 3500969.85,5872510.23
+21:53:27: 3500938.44,5872507.21
+21:53:27: 3501124.90,5872469.44
+21:53:27: 3501010.66,5872468.95
+21:53:27: 3500967.61,5872469.72
+21:53:27: 3500960.00,5872426.24
+21:53:27: 3500995.84,5872432.90
+21:53:27: 3501011.33,5872393.41
+21:53:27: 3501000.95,5872353.37
+21:53:27: 3500974.22,5872393.15
+21:53:27: 3500961.63,5872360.89
+21:53:27: 3501086.22,5872469.19
+21:53:27: 3501050.00,5872468.05
+21:53:27: 3501075.11,5872428.77
+21:53:27: 3501033.83,5872432.08
+21:53:27: 3501110.97,5872436.38
+21:53:27: 3501113.65,5872397.35
+21:53:27: 3501119.99,5872353.74
+21:53:27: 3501084.17,5872361.10
+21:53:27: 3501074.74,5872389.75
+21:53:27: 3501045.74,5872398.81
+21:53:27: 3501043.45,5872359.11
+21:53:27: 3501115.81,5872311.04
+21:53:27: 3501041.63,5872319.47
+21:53:27: 3501074.73,5872285.20
+21:53:27: 3501033.93,5872280.15
+21:53:27: 3501079.03,5872326.51
+21:53:27: 3501111.12,5872275.51
+21:53:27: 3501124.82,5872244.39
+21:53:27: 3501086.06,5872243.80
+21:53:27: 3501109.72,5872211.91
+21:53:27: 3501048.90,5872244.38
+21:53:27: 3501074.92,5872202.83
+21:53:27: 3501036.06,5872212.33
+21:53:27: 3501008.37,5872314.87
+21:53:27: 3500969.06,5872322.43
+21:53:27: 3500963.12,5872278.45
+21:53:27: 3500997.83,5872285.43
+21:53:27: 3501003.58,5872244.52
+21:53:27: 3501007.92,5872201.54
+21:53:27: 3500961.78,5872238.88
+21:53:27: 3500973.90,5872206.31
+21:53:27: 3500923.76,5872475.45
+21:53:27: 3500816.62,5872479.09
+21:53:27: 3500779.10,5872499.54
+21:53:27: 3500779.96,5872459.99
+21:53:27: 3500815.38,5872439.43
+21:53:27: 3500813.62,5872399.18
+21:53:27: 3500821.37,5872362.92
+21:53:27: 3500777.95,5872422.73
+21:53:27: 3500773.13,5872387.98
+21:53:27: 3500786.31,5872356.18
+21:53:27: 3500928.16,5872438.87
+21:53:27: 3500886.82,5872466.21
+21:53:27: 3500848.88,5872463.97
+21:53:27: 3500855.02,5872427.59
+21:53:27: 3500896.12,5872428.30
+21:53:27: 3500928.40,5872393.15
+21:53:27: 3500887.33,5872398.52
+21:53:27: 3500888.67,5872359.68
+21:53:27: 3500851.89,5872386.38
+21:53:27: 3500929.24,5872349.43
+21:53:27: 3500890.00,5872290.11
+21:53:27: 3500850.64,5872349.88
+21:53:27: 3500856.65,5872314.33
+21:53:27: 3500930.28,5872310.92
+21:53:27: 3500895.97,5872324.49
+21:53:27: 3500924.45,5872276.70
+21:53:27: 3500928.54,5872243.07
+21:53:27: 3500931.49,5872202.39
+21:53:27: 3500892.61,5872214.33
+21:53:27: 3500889.81,5872250.70
+21:53:27: 3500852.39,5872272.75
+21:53:27: 3500853.62,5872235.57
+21:53:27: 3500815.42,5872326.63
+21:53:27: 3500776.58,5872315.36
+21:53:27: 3500816.70,5872289.28
+21:53:27: 3500816.74,5872251.90
+21:53:27: 3500815.84,5872214.07
+21:53:27: 3500778.79,5872273.93
+21:53:27: 3500778.32,5872235.27
+21:53:27: 3501268.36,5872651.95
+21:53:27: 3501273.15,5872673.37
+21:53:27: 3501206.84,5872652.17
+21:53:27: 3501167.57,5872735.36
+21:53:27: 3501147.20,5872772.03
+21:53:27: 3501128.97,5872779.53
+21:53:27: 3501167.38,5872776.57
+21:53:27: 3501148.91,5872795.04
+21:53:27: 3501171.45,5872796.38
+21:53:27: 3501165.70,5872754.56
+21:53:27: 3501150.83,5872735.34
+21:53:27: 3501144.10,5872753.21
+21:53:27: 3501130.40,5872735.15
+21:53:27: 3501205.11,5872732.35
+21:53:27: 3501189.78,5872777.25
+21:53:27: 3501190.31,5872799.48
+21:53:27: 3501213.01,5872776.02
+21:53:27: 3501205.77,5872793.33
+21:53:27: 3501206.44,5872754.65
+21:53:27: 3501186.51,5872737.79
+21:53:27: 3501185.49,5872758.31
+21:53:27: 3501212.00,5872673.73
+21:53:27: 3501189.91,5872696.99
+21:53:27: 3501187.52,5872714.94
+21:53:27: 3501206.30,5872691.87
+21:53:27: 3501210.65,5872712.82
+21:53:27: 3501183.73,5872653.67
+21:53:27: 3501189.75,5872675.30
+21:53:27: 3501163.20,5872653.46
+21:53:27: 3501144.34,5872696.90
+21:53:27: 3501146.94,5872714.93
+21:53:27: 3501126.51,5872689.86
+21:53:27: 3501167.28,5872694.24
+21:53:27: 3501167.71,5872718.18
+21:53:27: 3501169.69,5872671.83
+21:53:27: 3501149.03,5872676.32
+21:53:27: 3501144.43,5872656.58
+21:53:27: 3501126.33,5872670.15
+21:53:27: 3501128.73,5872650.84
+21:53:27: 3501270.19,5872694.10
+21:53:27: 3501244.83,5872735.84
+21:53:27: 3501233.49,5872775.89
+21:53:27: 3501223.68,5872796.70
+21:53:27: 3501252.38,5872778.98
+21:53:27: 3501247.19,5872799.54
+21:53:27: 3501251.37,5872756.84
+21:53:27: 3501224.29,5872735.89
+21:53:27: 3501228.82,5872755.92
+21:53:27: 3501268.13,5872734.01
+21:53:27: 3501269.92,5872776.05
+21:53:27: 3501269.96,5872796.88
+21:53:27: 3501287.77,5872773.87
+21:53:27: 3501292.04,5872794.99
+21:53:27: 3501309.00,5872778.76
+21:53:27: 3501290.72,5872735.69
+21:53:27: 3501294.92,5872755.97
+21:53:27: 3501273.90,5872755.56
+21:53:27: 3501267.86,5872712.83
+21:53:27: 3501289.02,5872713.12
+21:53:27: 3501246.92,5872651.20
+21:53:27: 3501229.01,5872694.63
+21:53:27: 3501231.16,5872717.20
+21:53:27: 3501251.37,5872696.43
+21:53:27: 3501249.43,5872715.24
+21:53:27: 3501249.95,5872674.10
+21:53:27: 3501228.69,5872657.13
+21:53:27: 3501229.44,5872674.50
+21:53:27: 3501249.38,5872633.13
+21:53:27: 3501249.74,5872614.46
+21:53:27: 3501228.59,5872638.46
+21:53:27: 3501227.10,5872617.03
+21:53:27: 3501253.84,5872596.37
+21:53:27: 3501245.91,5872584.12
+21:53:27: 3501233.91,5872598.50
+21:53:27: 3501221.09,5872587.02
+21:53:27: 3501229.17,5872566.01
+21:53:27: 3501235.75,5872537.12
+21:53:27: 3501221.53,5872504.89
+21:53:27: 3501208.92,5872628.63
+21:53:27: 3501168.87,5872632.40
+21:53:27: 3501145.49,5872636.07
+21:53:27: 3501130.61,5872615.00
+21:53:27: 3501149.72,5872617.40
+21:53:27: 3501166.18,5872610.15
+21:53:27: 3501171.45,5872592.84
+21:53:27: 3501154.94,5872577.85
+21:53:27: 3501146.63,5872595.74
+21:53:27: 3501215.25,5872598.93
+21:53:27: 3501190.90,5872636.44
+21:53:27: 3501186.70,5872618.93
+21:53:27: 3501204.96,5872609.52
+21:53:27: 3501196.27,5872589.93
+21:53:27: 3501185.64,5872601.20
+21:53:27: 3501200.73,5872573.39
+21:53:27: 3501175.15,5872570.49
+21:53:27: 3501198.38,5872544.26
+21:53:27: 3501185.98,5872511.14
+21:53:27: 3501157.49,5872542.35
+21:53:27: 3501134.63,5872572.55
+21:53:27: 3501149.75,5872502.63
+21:53:27: 3501313.28,5872798.83
+21:53:27: 3501190.54,5872476.55
+21:53:27: 3501158.30,5872464.89
+21:53:27: 3501146.03,5872431.03
+21:53:27: 3501188.70,5872434.92
+21:53:27: 3501191.42,5872395.80
+21:53:27: 3501197.21,5872360.71
+21:53:27: 3501153.26,5872393.92
+21:53:27: 3501161.53,5872356.63
+21:53:27: 3501228.07,5872468.26
+21:53:27: 3501149.64,5872322.94
+21:53:27: 3501151.77,5872285.31
+21:53:27: 3501186.94,5872320.54
+21:53:27: 3501161.56,5872244.95
+21:53:27: 3501145.72,5872206.68
+21:53:27: 3500854.22,5872197.56
+21:53:27: 3500927.33,5872161.12
+21:53:27: 3500816.58,5872175.26
+21:53:27: 3500778.68,5872198.44
+21:53:27: 3500779.77,5872160.21
+21:53:27: 3500778.74,5872129.13
+21:53:27: 3500815.96,5872127.14
+21:53:27: 3500815.54,5872069.75
+21:53:27: 3500778.23,5872088.68
+21:53:27: 3500891.58,5872175.92
+21:53:27: 3500853.63,5872160.36
+21:53:27: 3500853.43,5872129.54
+21:53:27: 3500928.83,5872130.70
+21:53:27: 3500891.12,5872129.13
+21:53:27: 3500931.36,5872094.45
+21:53:27: 3500889.75,5872079.02
+21:53:27: 3500852.79,5872090.85
+21:53:27: 3500920.49,5872045.31
+21:53:27: 3500854.99,5872024.70
+21:53:27: 3500905.33,5871992.51
+21:53:27: 3500922.91,5871936.17
+21:53:27: 3500777.28,5872008.56
+21:53:27: 3500840.99,5871944.30
+21:53:27: 3500768.58,5871929.93
+21:53:27: 3501114.99,5872177.32
+21:53:27: 3501000.39,5872163.85
+21:53:27: 3500961.83,5872173.37
+21:53:27: 3500964.61,5872134.63
+21:53:27: 3501003.83,5872123.68
+21:53:27: 3501004.68,5872085.01
+21:53:27: 3501003.75,5872053.96
+21:53:27: 3500970.68,5872097.71
+21:53:27: 3500966.41,5872054.34
+21:53:27: 3501078.10,5872161.09
+21:53:27: 3501041.10,5872176.30
+21:53:27: 3501041.03,5872139.33
+21:53:27: 3501117.52,5872138.91
+21:53:27: 3501078.55,5872122.63
+21:53:27: 3501116.03,5872100.44
+21:53:27: 3501078.56,5872085.16
+21:53:27: 3501078.32,5872054.46
+21:53:27: 3501041.31,5872100.06
+21:53:27: 3501040.97,5872051.99
+21:53:27: 3501077.72,5872015.58
+21:53:27: 3501040.56,5871994.57
+21:53:27: 3501079.95,5871949.46
+21:53:27: 3501003.24,5872013.49
+21:53:27: 3500961.04,5871998.43
+21:53:27: 3501002.28,5871933.36
+21:53:27: 3500993.59,5871854.72
+21:53:27: 3501009.73,5871783.70
+21:53:27: 3500995.69,5871708.12
+21:53:27: 3500861.08,5871875.95
+21:53:27: 3500793.26,5871863.77
+21:53:27: 3500762.15,5871794.93
+21:53:27: 3500928.45,5871864.52
+21:53:27: 3500926.18,5871790.29
+21:53:27: 3500847.80,5871798.46
+21:53:27: 3500855.74,5871717.74
+21:53:27: 3500927.97,5871716.56
+21:53:27: 3500788.08,5871729.94
+21:53:27: 3500746.73,5872548.92
+21:53:27: 3500741.50,5872515.34
+21:53:27: 3500554.52,5872536.05
+21:53:27: 3500553.66,5872655.76
+21:53:27: 3500514.07,5872737.50
+21:53:27: 3500557.26,5872742.45
+21:53:27: 3500523.52,5872766.56
+21:53:27: 3500547.05,5872758.16
+21:53:27: 3500550.10,5872691.87
+21:53:27: 3500542.43,5872723.04
+21:53:27: 3500520.03,5872661.30
+21:53:27: 3500510.78,5872695.85
+21:53:27: 3500557.04,5872578.11
+21:53:27: 3500512.85,5872622.81
+21:53:27: 3500553.08,5872618.96
+21:53:27: 3500521.05,5872586.92
+21:53:27: 3500521.06,5872511.64
+21:53:27: 3500512.49,5872548.24
+21:53:27: 3500740.71,5872581.44
+21:53:27: 3500625.25,5872653.51
+21:53:27: 3500594.12,5872741.34
+21:53:27: 3500570.58,5872749.75
+21:53:27: 3500617.65,5872732.94
+21:53:27: 3500652.04,5872779.45
+21:53:27: 3500639.07,5872740.47
+21:53:27: 3500653.76,5872759.24
+21:53:27: 3500613.07,5872743.49
+21:53:27: 3500631.11,5872753.51
+21:53:27: 3500644.85,5872684.21
+21:53:27: 3500622.57,5872708.21
+21:53:27: 3500647.70,5872706.55
+21:53:27: 3500641.19,5872724.53
+21:53:27: 3500617.00,5872682.26
+21:53:27: 3500589.07,5872654.43
+21:53:27: 3500572.74,5872723.89
+21:53:27: 3500586.97,5872692.10
+21:53:27: 3500596.78,5872722.05
+21:53:27: 3500703.36,5872658.44
+21:53:27: 3500697.32,5872737.95
+21:53:27: 3500673.33,5872774.86
+21:53:27: 3500679.06,5872796.81
+21:53:27: 3500692.57,5872778.51
+21:53:27: 3500698.80,5872794.78
+21:53:27: 3500694.37,5872758.01
+21:53:27: 3500657.48,5872737.33
+21:53:27: 3500673.09,5872754.41
+21:53:27: 3500676.93,5872736.94
+21:53:27: 3500732.62,5872736.91
+21:53:27: 3500711.90,5872776.04
+21:53:27: 3500718.17,5872798.99
+21:53:27: 3500731.92,5872776.60
+21:53:27: 3500740.66,5872797.00
+21:53:27: 3500740.88,5872756.05
+21:53:27: 3500714.23,5872734.19
+21:53:27: 3500717.99,5872754.77
+21:53:27: 3500736.14,5872669.34
+21:53:27: 3500711.79,5872699.31
+21:53:27: 3500720.38,5872716.36
+21:53:27: 3500735.33,5872690.90
+21:53:27: 3500740.00,5872720.23
+21:53:27: 3500735.93,5872703.47
+21:53:27: 3500712.63,5872682.28
+21:53:27: 3500665.69,5872652.65
+21:53:27: 3500666.67,5872691.00
+21:53:27: 3500666.91,5872707.30
+21:53:27: 3500664.72,5872716.12
+21:53:27: 3500688.26,5872707.71
+21:53:27: 3500682.40,5872721.75
+21:53:27: 3500700.68,5872718.41
+21:53:27: 3500687.42,5872683.86
+21:53:27: 3500737.44,5872615.10
+21:53:27: 3500697.67,5872619.98
+21:53:27: 3500661.45,5872614.15
+21:53:27: 3500665.40,5872581.10
+21:53:27: 3500703.43,5872581.99
+21:53:27: 3500729.43,5872643.94
+21:53:27: 3500711.01,5872543.86
+21:53:27: 3500700.87,5872502.87
+21:53:27: 3500674.94,5872544.30
+21:53:27: 3500662.87,5872511.75
+21:53:27: 3500636.71,5872544.82
+21:53:27: 3500595.33,5872586.04
+21:53:27: 3500590.02,5872618.88
+21:53:27: 3500627.80,5872580.06
+21:53:27: 3500628.60,5872619.05
+21:53:27: 3500625.04,5872504.51
+21:53:27: 3500595.65,5872548.26
+21:53:27: 3500585.02,5872512.61
+21:53:27: 3500740.12,5872477.95
+21:53:27: 3500633.41,5872464.78
+21:53:27: 3500594.14,5872472.82
+21:53:27: 3500586.26,5872435.47
+21:53:27: 3500621.32,5872431.77
+21:53:27: 3500629.55,5872394.19
+21:53:27: 3500631.67,5872354.02
+21:53:27: 3500591.61,5872401.83
+21:53:27: 3500591.30,5872363.83
+21:53:27: 3500741.41,5872438.62
+21:53:27: 3500702.79,5872461.27
+21:53:27: 3500667.06,5872476.86
+21:53:27: 3500663.34,5872434.95
+21:53:27: 3500738.26,5872397.28
+21:53:27: 3500703.37,5872424.36
+21:53:27: 3500703.49,5872394.22
+21:53:27: 3500744.17,5872353.91
+21:53:27: 3500704.88,5872362.83
+21:53:27: 3500667.89,5872391.45
+21:53:27: 3500671.33,5872351.55
+21:53:27: 3500740.91,5872319.59
+21:53:27: 3500658.64,5872318.54
+21:53:27: 3500671.37,5872286.53
+21:53:27: 3500741.22,5872288.53
+21:53:27: 3500703.30,5872319.13
+21:53:27: 3500741.27,5872251.42
+21:53:27: 3500704.23,5872274.00
+21:53:27: 3500739.28,5872210.16
+21:53:27: 3500703.76,5872205.92
+21:53:27: 3500703.07,5872236.08
+21:53:27: 3500665.88,5872250.36
+21:53:27: 3500666.09,5872204.34
+21:53:27: 3500623.55,5872313.96
+21:53:27: 3500590.65,5872327.99
+21:53:27: 3500592.06,5872288.78
+21:53:27: 3500631.62,5872277.10
+21:53:27: 3500628.41,5872236.08
+21:53:27: 3500628.42,5872204.88
+21:53:27: 3500591.72,5872250.62
+21:53:27: 3500590.94,5872202.42
+21:53:27: 3500552.66,5872496.27
+21:53:27: 3500552.76,5872460.53
+21:53:27: 3500513.01,5872471.98
+21:53:27: 3500516.07,5872432.57
+21:53:27: 3500553.45,5872423.76
+21:53:27: 3500523.29,5872394.52
+21:53:27: 3500558.79,5872388.63
+21:53:27: 3500550.62,5872352.44
+21:53:27: 3500511.11,5872362.02
+21:53:27: 3500553.05,5872311.19
+21:53:27: 3500514.04,5872285.62
+21:53:27: 3500516.25,5872326.35
+21:53:27: 3500553.70,5872273.28
+21:53:27: 3500520.54,5872248.16
+21:53:27: 3500554.69,5872235.29
+21:53:27: 3500553.69,5872204.37
+21:53:27: 3500516.18,5872204.69
+21:53:27: 3500481.36,5872244.86
+21:53:27: 3500745.65,5872172.94
+21:53:27: 3500552.45,5872083.72
+21:53:27: 3500397.99,5872087.39
+21:53:27: 3500396.78,5872167.26
+21:53:27: 3500455.14,5872143.54
+21:53:27: 3500553.23,5872163.90
+21:53:27: 3500510.96,5872149.13
+21:53:27: 3500469.87,5872195.85
+21:53:27: 3500472.20,5872085.07
+21:53:27: 3500543.58,5872005.13
+21:53:27: 3500477.48,5872015.71
+21:53:27: 3500560.21,5871934.17
+21:53:27: 3500488.57,5871951.37
+21:53:27: 3500402.48,5872016.05
+21:53:27: 3500411.44,5871936.00
+21:53:27: 3500706.36,5872169.66
+21:53:27: 3500629.99,5872099.90
+21:53:27: 3500590.54,5872144.97
+21:53:27: 3500627.78,5872166.07
+21:53:27: 3500741.40,5872129.51
+21:53:27: 3500664.75,5872154.22
+21:53:27: 3500736.04,5872073.62
+21:53:27: 3500695.48,5872120.52
+21:53:27: 3500680.32,5872067.71
+21:53:27: 3500697.90,5872011.37
+21:53:27: 3500703.18,5871939.50
+21:53:27: 3500615.99,5872019.51
+21:53:27: 3500636.02,5871950.86
+21:53:27: 3500708.26,5871858.66
+21:53:27: 3500623.89,5871873.10
+21:53:27: 3500637.94,5871805.31
+21:53:27: 3500689.98,5871777.60
+21:53:27: 3500712.05,5871710.13
+21:53:27: 3500621.23,5871727.03
+21:53:27: 3500640.64,5871658.27
+21:53:27: 3500545.81,5871858.97
+21:53:27: 3500392.05,5871856.69
+21:53:27: 3500409.63,5871797.55
+21:53:27: 3500470.74,5871877.22
+21:53:27: 3500562.22,5871786.24
+21:53:27: 3500480.84,5871795.79
+21:53:27: 3500546.42,5871710.56
+21:53:27: 3500478.48,5871721.86
+21:53:27: 3500328.59,5872089.91
+21:53:27: 3500325.72,5872016.30
+21:53:27: ->Auswertung der Kommandozeilen-Parameter gestartet
+21:53:27: Parameterdatei: 'test_daten\test.par'
+21:53:27: ->Laden der Parameterdatei 'test_daten\test.par' gestartet
+21:53:27: <-Laden der Parameterdatei 'test_daten\test.par' beendet
+21:53:27: DGM-Datei: 'egal.shp'
+21:53:27: Profillagen-Datei: 'egal.shp'
+21:53:27: WSP-Datei: 'egal.shp'
+21:53:27: Gewässerachse: 'egal.shp'
+21:53:27: Bruch- und Sperr-Datei: 'egal.shp'
+21:53:27: Gelände wirkt als Sperre
+21:53:27: Delta: Von = 0.00 Bis = 1.00 Diff = 0.23
+21:53:27: Ausgabe-Datei: 'egal.shp'
+21:53:27: <-Auswertung der Kommandozeilen-Parameter beendet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
+21:53:27: ->Laden der Knoten gestartet
+21:53:27: 118 Werten gelesen, 114 von 114 Knoten im Speicher
+21:53:27: <-Laden der Knoten beendet
+21:53:27: ->Laden der Elemente gestartet
+21:53:27: 230 Werte geladen, 218 von 230 Elementen im Speicher
+21:53:27: <-Laden der Elemente beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
+21:53:27: ->Suche nach doppelten Knoten gestartet
+21:53:27: 114 Knoten und 218 Elemente vorhanden
+21:53:27: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:27: <-Suche nach doppelten Knoten beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
+21:53:27: ->Laden der Knoten gestartet
+21:53:27: 118 Werten gelesen, 52 von 52 Knoten im Speicher
+21:53:27: <-Laden der Knoten beendet
+21:53:27: ->Laden der Elemente gestartet
+21:53:27: 230 Werte geladen, 72 von 230 Elementen im Speicher
+21:53:27: <-Laden der Elemente beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
+21:53:27: ->Suche nach doppelten Knoten gestartet
+21:53:27: 52 Knoten und 72 Elemente vorhanden
+21:53:27: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:27: <-Suche nach doppelten Knoten beendet
+21:53:27: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm.grd' gestartet
+21:53:27: ->Laden des DGM in Datei 'test_daten/dgm.grd' als GRD gestartet
+21:53:27: 10000 von 71250 Werten gelesen, 0 von 0 Knoten im Speicher
+21:53:28: 20000 von 71250 Werten gelesen, 5130 von 5130 Knoten im Speicher
+21:53:28: 30000 von 71250 Werten gelesen, 11135 von 11135 Knoten im Speicher
+21:53:28: 40000 von 71250 Werten gelesen, 17145 von 17145 Knoten im Speicher
+21:53:28: 50000 von 71250 Werten gelesen, 23155 von 23155 Knoten im Speicher
+21:53:28: 60000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:28: 70000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:28: 71250 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm.grd' als GRD beendet
+21:53:28: ->Suche nach doppelten Knoten gestartet
+21:53:28: 24624 Knoten und keine Elemente vorhanden
+21:53:28: 10000 von 24624 Knoten, 0 Knoten gelöscht
+21:53:28: 20000 von 24624 Knoten, 0 Knoten gelöscht
+21:53:28: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:28: <-Suche nach doppelten Knoten beendet
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm.grd' beendet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm.xyz' gestartet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ gestartet
+21:53:28: 10 Werte gelesen, 10 von 10 Knoten im Speicher
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ beendet
+21:53:28: ->Suche nach doppelten Knoten gestartet
+21:53:28: 10 Knoten und keine Elemente vorhanden
+21:53:28: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:28: <-Suche nach doppelten Knoten beendet
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm.xyz' beendet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
+21:53:28: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
+21:53:28: ->Suche nach doppelten Knoten gestartet
+21:53:28: 1126 Knoten und keine Elemente vorhanden
+21:53:28: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:28: <-Suche nach doppelten Knoten beendet
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' gestartet
+21:53:28: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ gestartet
+21:53:28: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
+21:53:28: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
+21:53:28: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
+21:53:28: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
+21:53:28: 43332 Werte gelesen, 43332 von 43332 Knoten im Speicher
+21:53:28: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ beendet
+21:53:28: ->Suche nach doppelten Knoten gestartet
+21:53:28: 43332 Knoten und keine Elemente vorhanden
+21:53:29: 10000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:29: 20000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:29: 30000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:29: 40000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:29: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:29: <-Suche nach doppelten Knoten beendet
+21:53:29: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' beendet
+21:53:29: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' gestartet
+21:53:29: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ gestartet
+21:53:29: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
+21:53:29: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
+21:53:29: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
+21:53:29: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
+21:53:30: 50000 Werte gelesen, 49999 von 49999 Knoten im Speicher
+21:53:30: 60000 Werte gelesen, 59999 von 59999 Knoten im Speicher
+21:53:30: 70000 Werte gelesen, 69999 von 69999 Knoten im Speicher
+21:53:30: 80000 Werte gelesen, 79999 von 79999 Knoten im Speicher
+21:53:30: 90000 Werte gelesen, 89999 von 89999 Knoten im Speicher
+21:53:30: 98636 Werte gelesen, 98636 von 98636 Knoten im Speicher
+21:53:30: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ beendet
+21:53:30: ->Suche nach doppelten Knoten gestartet
+21:53:30: 98636 Knoten und keine Elemente vorhanden
+21:53:31: 10000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 20000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 30000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 40000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 50000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 60000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 70000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 80000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 90000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:31: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:31: <-Suche nach doppelten Knoten beendet
+21:53:31: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' beendet
+21:53:31: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
+21:53:31: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
+21:53:31: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
+21:53:31: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
+21:53:31: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
+21:53:31: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
+21:53:31: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
+21:53:31: ->Suche nach doppelten Knoten gestartet
+21:53:31: 114 Knoten und keine Elemente vorhanden
+21:53:31: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:31: <-Suche nach doppelten Knoten beendet
+21:53:31: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
+21:53:31: ->Laden des DGM in Datei 'test_daten/dgm2.shp' gestartet
+21:53:31: ->Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP gestartet
+21:53:31: ->Laden der Projektionsdatei zu 'test_daten/dgm2.shp' gestartet
+21:53:31: Projektionsdatei 'test_daten/dgm2.PRJ' konnte nicht geöffnet werden
+21:53:31: <-Laden der Projektionsdatei zu 'test_daten/dgm2.shp' beendet
+21:53:31: 10000 von 156249 Objekten gelesen, 9247 von 9247 Knoten im Speicher
+21:53:31: 20000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:31: 30000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:32: 40000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:32: 50000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:32: 60000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:32: 70000 von 156249 Objekten gelesen, 12088 von 12088 Knoten im Speicher
+21:53:32: 80000 von 156249 Objekten gelesen, 13793 von 13793 Knoten im Speicher
+21:53:32: 90000 von 156249 Objekten gelesen, 15747 von 15747 Knoten im Speicher
+21:53:33: 100000 von 156249 Objekten gelesen, 17727 von 17727 Knoten im Speicher
+21:53:33: 110000 von 156249 Objekten gelesen, 19707 von 19707 Knoten im Speicher
+21:53:33: 120000 von 156249 Objekten gelesen, 21687 von 21687 Knoten im Speicher
+21:53:33: 130000 von 156249 Objekten gelesen, 23667 von 23667 Knoten im Speicher
+21:53:33: 140000 von 156249 Objekten gelesen, 25482 von 25482 Knoten im Speicher
+21:53:33: 150000 von 156249 Objekten gelesen, 27462 von 27462 Knoten im Speicher
+21:53:33: 156249 von 156249 Objekten gelesen, 28287 von 28287 Knoten im Speicher
+21:53:33: <-Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP beendet
+21:53:33: ->Suche nach doppelten Knoten gestartet
+21:53:33: 28287 Knoten und keine Elemente vorhanden
+21:53:33: 10000 von 28287 Knoten, 0 Knoten gelöscht
+21:53:33: 20000 von 28287 Knoten, 0 Knoten gelöscht
+21:53:33: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:33: <-Suche nach doppelten Knoten beendet
+21:53:33: <-Laden des DGM in Datei 'test_daten/dgm2.shp' beendet
+21:53:33: ->Laden des DGM in Datei 'test_daten/dgm.2dm' gestartet
+21:53:33: ->Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM gestartet
+21:53:34: 2225 Elemente und 1126 Knoten geladen
+21:53:34: 1126 Knoten insgesamt
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM beendet
+21:53:34: ->Suche nach doppelten Knoten gestartet
+21:53:34: 1126 Knoten und 2225 Elemente vorhanden
+21:53:34: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:34: <-Suche nach doppelten Knoten beendet
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.2dm' beendet
+21:53:34: ->Laden der Profilspuren gestartet
+21:53:34: ->Laden der Projektionsdatei zu 'test_daten/profile.shp' gestartet
+21:53:34: Projektionsdatei 'test_daten/profile.PRJ' konnte nicht geöffnet werden
+21:53:34: <-Laden der Projektionsdatei zu 'test_daten/profile.shp' beendet
+21:53:34: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:53:34: 8 von 8 Objekten geladen, 8 Profilspuren im Speicher
+21:53:34: <-Laden der Profilspuren beendet
+21:53:34: ->Ausrichten der Profilspuren gestartet
+21:53:34: 8 von 8 Profilspuren ausgerichtet, 3 gedreht
+21:53:34: <-Ausrichten der Profilspuren beendet
+21:53:34: ->Laden der Profilspuren gestartet
+21:53:34: ->Laden der Projektionsdatei zu 'test_daten/profilez.shp' gestartet
+21:53:34: Projektionsdatei 'test_daten/profilez.PRJ' konnte nicht geöffnet werden
+21:53:34: <-Laden der Projektionsdatei zu 'test_daten/profilez.shp' beendet
+21:53:34: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:53:34: 5 von 5 Objekten geladen, 5 Profilspuren im Speicher
+21:53:34: <-Laden der Profilspuren beendet
+21:53:34: ->Ausrichten der Profilspuren gestartet
+21:53:34: 5 von 5 Profilspuren ausgerichtet, 0 gedreht
+21:53:34: <-Ausrichten der Profilspuren beendet
+21:53:34: ->Laden der Linien Strukturen (Sperren, Gräben und Rohre) gestartet
+21:53:34: ->Laden der Projektionsdatei zu 'test_daten/linien.shp' gestartet
+21:53:34: Projektionsdatei 'test_daten/linien.PRJ' konnte nicht geöffnet werden
+21:53:34: <-Laden der Projektionsdatei zu 'test_daten/linien.shp' beendet
+21:53:34: 9 von 9 Liniensstrukturen geladen, 5 Sperren, 4 Gräben, 0 Rohre
+21:53:34: <-Laden der Linien Strukturen (Sperren, Gräben und Rohre) beendet
+21:53:34: ->Laden der Wasserstände gestartet
+21:53:34: ->Laden der Wasserstände im ASCII-Format gestartet
+21:53:34: 100 Zeilen geladen, 99 Wasserstände im Speicher
+21:53:34: 200 Zeilen geladen, 199 Wasserstände im Speicher
+21:53:34: 300 Zeilen geladen, 299 Wasserstände im Speicher
+21:53:34: 400 Zeilen geladen, 399 Wasserstände im Speicher
+21:53:34: 500 Zeilen geladen, 499 Wasserstände im Speicher
+21:53:34: 600 Zeilen geladen, 599 Wasserstände im Speicher
+21:53:34: 700 Zeilen geladen, 699 Wasserstände im Speicher
+21:53:34: 800 Zeilen geladen, 799 Wasserstände im Speicher
+21:53:34: 900 Zeilen geladen, 899 Wasserstände im Speicher
+21:53:34: 1000 Zeilen geladen, 999 Wasserstände im Speicher
+21:53:34: 1100 Zeilen geladen, 1099 Wasserstände im Speicher
+21:53:34: 1200 Zeilen geladen, 1199 Wasserstände im Speicher
+21:53:34: 1300 Zeilen geladen, 1299 Wasserstände im Speicher
+21:53:34: 1400 Zeilen geladen, 1399 Wasserstände im Speicher
+21:53:34: 1500 Zeilen geladen, 1499 Wasserstände im Speicher
+21:53:34: 1600 Zeilen geladen, 1599 Wasserstände im Speicher
+21:53:34: 1700 Zeilen geladen, 1699 Wasserstände im Speicher
+21:53:34: 1800 Zeilen geladen, 1799 Wasserstände im Speicher
+21:53:34: 1900 Zeilen geladen, 1899 Wasserstände im Speicher
+21:53:34: 2000 Zeilen geladen, 1999 Wasserstände im Speicher
+21:53:34: 2100 Zeilen geladen, 2099 Wasserstände im Speicher
+21:53:34: 2200 Zeilen geladen, 2199 Wasserstände im Speicher
+21:53:34: 2300 Zeilen geladen, 2299 Wasserstände im Speicher
+21:53:34: 2400 Zeilen geladen, 2399 Wasserstände im Speicher
+21:53:34: 2500 Zeilen geladen, 2499 Wasserstände im Speicher
+21:53:34: 2600 Zeilen geladen, 2599 Wasserstände im Speicher
+21:53:34: 2700 Zeilen geladen, 2699 Wasserstände im Speicher
+21:53:34: 2800 Zeilen geladen, 2799 Wasserstände im Speicher
+21:53:34: 2900 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3000 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3100 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3200 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3300 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3400 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3500 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3600 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3700 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3800 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 3900 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4000 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4100 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4200 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4300 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4400 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4500 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4600 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4700 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4800 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 4900 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5000 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5100 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5200 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5300 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5400 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5500 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5600 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: 5669 Zeilen geladen, 2834 Wasserstände im Speicher
+21:53:34: <-Laden der Wasserstände im ASCII-Format beendet
+21:53:34: <-Laden der Wasserstände beendet
+21:53:34: ->Laden der Wasserstände gestartet
+21:53:34: ->Laden der Wasserstände im DBF-Format gestartet
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (6.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (8.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (9.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (4.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (7.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (10.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (1.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (2.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (3.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+Warnung (2111)
+In der DBD-Datei 'test_daten/wsp.DBF' kommt der Wasserstand (5.0000) mehrfach vor.
+Es wird nur die erste Definition berücksichtigt.
+Warnung (2111)
+21:53:34: 32 von 42 Objekten gelesen, 32 Wasserstände im Speicher
+21:53:34: <-Laden der Wasserstände im DBF-Format beendet
+21:53:34: <-Laden der Wasserstände beendet
+21:53:34: ->Laden der Gewässerachsen gestartet
+21:53:34: ->Laden der Projektionsdatei zu 'test_daten/achse.shp' gestartet
+21:53:34: Projektionsdatei 'test_daten/achse.PRJ' konnte nicht geöffnet werden
+21:53:34: <-Laden der Projektionsdatei zu 'test_daten/achse.shp' beendet
+21:53:34: 10 von 14 Objekten gelesen, 10 Gewässerachsen im Speicher
+21:53:34: 14 von 14 Objekten gelesen, 14 Gewässerachsen im Speicher
+21:53:34: <-Laden der Gewässerachsen beendet
+21:53:34: ->Triangulierung der Knoten gestartet
+21:53:34: ->Sortieren Knoten gestartet
+21:53:34: <-Sortieren der Knoten beendet
+21:53:34: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:34: <-Löschen des Knoten/Kanten-Index beendet
+21:53:34: ->Suchen der Startkante gestartet
+21:53:34: Kante: 1 - 2 als Startkante
+21:53:34: <-Suchen der Startkante beendet
+21:53:34: <-Triangulierung der Knoten beendet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm.xyz' gestartet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ gestartet
+21:53:34: 10 Werte gelesen, 10 von 10 Knoten im Speicher
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ beendet
+21:53:34: ->Suche nach doppelten Knoten gestartet
+21:53:34: 10 Knoten und keine Elemente vorhanden
+21:53:34: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:34: <-Suche nach doppelten Knoten beendet
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.xyz' beendet
+21:53:34: ->Triangulierung der Knoten gestartet
+21:53:34: ->Sortieren Knoten gestartet
+21:53:34: <-Sortieren der Knoten beendet
+21:53:34: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:34: <-Löschen des Knoten/Kanten-Index beendet
+21:53:34: ->Suchen der Startkante gestartet
+21:53:34: Kante: 7 - 1 als Startkante
+21:53:34: <-Suchen der Startkante beendet
+21:53:34: <-Triangulierung der Knoten beendet
+21:53:34: ->Triangulierung der Knoten gestartet
+21:53:34: ->Sortieren Knoten gestartet
+21:53:34: <-Sortieren der Knoten beendet
+21:53:34: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:34: <-Löschen des Knoten/Kanten-Index beendet
+21:53:34: ->Suchen der Startkante gestartet
+21:53:34: Kante: 1 - 4 als Startkante
+21:53:34: <-Suchen der Startkante beendet
+21:53:34: <-Triangulierung der Knoten beendet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
+21:53:34: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
+21:53:34: Projektionsdatei 'test_daten/dgm.PRJ' konnte nicht geöffnet werden
+21:53:34: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
+21:53:34: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
+21:53:34: ->Suche nach doppelten Knoten gestartet
+21:53:34: 114 Knoten und keine Elemente vorhanden
+21:53:34: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:34: <-Suche nach doppelten Knoten beendet
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
+21:53:34: ->Triangulierung der Knoten gestartet
+21:53:34: ->Sortieren Knoten gestartet
+21:53:34: <-Sortieren der Knoten beendet
+21:53:34: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:34: <-Löschen des Knoten/Kanten-Index beendet
+21:53:34: ->Suchen der Startkante gestartet
+21:53:34: Kante: 59 - 58 als Startkante
+21:53:34: <-Suchen der Startkante beendet
+21:53:34: <-Triangulierung der Knoten beendet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
+21:53:34: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
+21:53:34: ->Suche nach doppelten Knoten gestartet
+21:53:34: 1126 Knoten und keine Elemente vorhanden
+21:53:34: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:34: <-Suche nach doppelten Knoten beendet
+21:53:34: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
+21:53:34: ->Triangulierung der Knoten gestartet
+21:53:34: ->Sortieren Knoten gestartet
+21:53:34: <-Sortieren der Knoten beendet
+21:53:34: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:34: <-Löschen des Knoten/Kanten-Index beendet
+21:53:34: ->Suchen der Startkante gestartet
+21:53:34: Kante: 1126 - 1125 als Startkante
+21:53:34: <-Suchen der Startkante beendet
+21:53:34: <-Triangulierung der Knoten beendet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' gestartet
+21:53:34: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ gestartet
+21:53:34: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
+21:53:34: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
+21:53:34: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
+21:53:34: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
+21:53:35: 43332 Werte gelesen, 43332 von 43332 Knoten im Speicher
+21:53:35: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ beendet
+21:53:35: ->Suche nach doppelten Knoten gestartet
+21:53:35: 43332 Knoten und keine Elemente vorhanden
+21:53:35: 10000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:35: 20000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:35: 30000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:35: 40000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:35: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:35: <-Suche nach doppelten Knoten beendet
+21:53:35: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' beendet
+21:53:35: ->Triangulierung der Knoten gestartet
+21:53:35: ->Sortieren Knoten gestartet
+21:53:35: <-Sortieren der Knoten beendet
+21:53:35: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:35: <-Löschen des Knoten/Kanten-Index beendet
+21:53:35: ->Suchen der Startkante gestartet
+21:53:35: Kante: 41055 - 41054 als Startkante
+21:53:35: <-Suchen der Startkante beendet
+21:53:36: 15955 von ca. 86664 Elementen erzeugt (31050 von 31913 Kanten)
+21:53:36: 1.02 sec -> 0.0001 sec pro Element, Dauer noch ca. 9 sec
+21:53:37: 57776 von ca. 86664 Elementen erzeugt (114418 von 115555 Kanten)
+21:53:37: 2.03 sec -> 0.0000 sec pro Element, Dauer noch ca. 2 sec
+21:53:38: <-Triangulierung der Knoten beendet
+21:53:38: ->Laden des DGM in Datei 'test_daten/dgm.grd' gestartet
+21:53:38: ->Laden des DGM in Datei 'test_daten/dgm.grd' als GRD gestartet
+21:53:38: 10000 von 71250 Werten gelesen, 9999 von 9999 Knoten im Speicher
+21:53:38: 20000 von 71250 Werten gelesen, 19999 von 19999 Knoten im Speicher
+21:53:38: 30000 von 71250 Werten gelesen, 29999 von 29999 Knoten im Speicher
+21:53:39: 40000 von 71250 Werten gelesen, 39999 von 39999 Knoten im Speicher
+21:53:39: 50000 von 71250 Werten gelesen, 49999 von 49999 Knoten im Speicher
+21:53:39: 60000 von 71250 Werten gelesen, 59999 von 59999 Knoten im Speicher
+21:53:39: 70000 von 71250 Werten gelesen, 69999 von 69999 Knoten im Speicher
+21:53:39: 71250 von 71250 Werten gelesen, 71250 von 71250 Knoten im Speicher
+21:53:39: <-Laden des DGM in Datei 'test_daten/dgm.grd' als GRD beendet
+21:53:39: ->Suche nach doppelten Knoten gestartet
+21:53:39: 71250 Knoten und keine Elemente vorhanden
+21:53:39: 10000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 20000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 30000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 40000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 50000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 60000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 70000 von 71250 Knoten, 0 Knoten gelöscht
+21:53:39: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:39: <-Suche nach doppelten Knoten beendet
+21:53:39: <-Laden des DGM in Datei 'test_daten/dgm.grd' beendet
+21:53:39: ->Triangulierung der Knoten gestartet
+21:53:39: ->Sortieren Knoten gestartet
+21:53:39: <-Sortieren der Knoten beendet
+21:53:39: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:39: <-Löschen des Knoten/Kanten-Index beendet
+21:53:39: ->Suchen der Startkante gestartet
+21:53:39: Kante: 1 - 286 als Startkante
+21:53:39: <-Suchen der Startkante beendet
+21:53:40: 54465 von ca. 142500 Elementen erzeugt (108331 von 108933 Kanten)
+21:53:40: 1.01 sec -> 0.0000 sec pro Element, Dauer noch ca. 3 sec
+21:53:41: 109248 von ca. 142500 Elementen erzeugt (217830 von 218499 Kanten)
+21:53:41: 2.03 sec -> 0.0000 sec pro Element, Dauer noch ca. 1 sec
+21:53:42: <-Triangulierung der Knoten beendet
+21:53:43: ->Laden des DGM in Datei 'test_daten/dgm2.shp' gestartet
+21:53:43: ->Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP gestartet
+21:53:43: ->Laden der Projektionsdatei zu 'test_daten/dgm2.shp' gestartet
+21:53:43: Projektionsdatei 'test_daten/dgm2.PRJ' konnte nicht geöffnet werden
+21:53:43: <-Laden der Projektionsdatei zu 'test_daten/dgm2.shp' beendet
+21:53:43: 10000 von 156249 Objekten gelesen, 9999 von 9999 Knoten im Speicher
+21:53:43: 20000 von 156249 Objekten gelesen, 19999 von 19999 Knoten im Speicher
+21:53:43: 30000 von 156249 Objekten gelesen, 29999 von 29999 Knoten im Speicher
+21:53:44: 40000 von 156249 Objekten gelesen, 39999 von 39999 Knoten im Speicher
+21:53:44: 50000 von 156249 Objekten gelesen, 49999 von 49999 Knoten im Speicher
+21:53:44: 60000 von 156249 Objekten gelesen, 59999 von 59999 Knoten im Speicher
+21:53:44: 70000 von 156249 Objekten gelesen, 69999 von 69999 Knoten im Speicher
+21:53:44: 80000 von 156249 Objekten gelesen, 79999 von 79999 Knoten im Speicher
+21:53:44: 90000 von 156249 Objekten gelesen, 89999 von 89999 Knoten im Speicher
+21:53:45: 100000 von 156249 Objekten gelesen, 99999 von 99999 Knoten im Speicher
+21:53:45: 110000 von 156249 Objekten gelesen, 109999 von 109999 Knoten im Speicher
+21:53:45: 120000 von 156249 Objekten gelesen, 119999 von 119999 Knoten im Speicher
+21:53:45: 130000 von 156249 Objekten gelesen, 129999 von 129999 Knoten im Speicher
+21:53:45: 140000 von 156249 Objekten gelesen, 139999 von 139999 Knoten im Speicher
+21:53:45: 150000 von 156249 Objekten gelesen, 149999 von 149999 Knoten im Speicher
+21:53:46: 156249 von 156249 Objekten gelesen, 156249 von 156249 Knoten im Speicher
+21:53:46: <-Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP beendet
+21:53:46: ->Suche nach doppelten Knoten gestartet
+21:53:46: 156249 Knoten und keine Elemente vorhanden
+21:53:46: 10000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 20000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 30000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 40000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 50000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 60000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 70000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 80000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 90000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 100000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 110000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 120000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 130000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 140000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 150000 von 156249 Knoten, 0 Knoten gelöscht
+21:53:46: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:46: <-Suche nach doppelten Knoten beendet
+21:53:46: <-Laden des DGM in Datei 'test_daten/dgm2.shp' beendet
+21:53:46: ->Triangulierung der Knoten gestartet
+21:53:46: ->Sortieren Knoten gestartet
+21:53:46: <-Sortieren der Knoten beendet
+21:53:46: ->Löschen des Knoten/Kanten-Index gestartet
+21:53:46: <-Löschen des Knoten/Kanten-Index beendet
+21:53:46: ->Suchen der Startkante gestartet
+21:53:46: Kante: 156260 - 44106 als Startkante
+21:53:46: <-Suchen der Startkante beendet
+21:53:47: 21213 von ca. 312538 Elementen erzeugt (41390 von 42429 Kanten)
+21:53:47: 1.02 sec -> 0.0000 sec pro Element, Dauer noch ca. 28 sec
+21:53:48: 46659 von ca. 312538 Elementen erzeugt (91768 von 93321 Kanten)
+21:53:48: 2.09 sec -> 0.0000 sec pro Element, Dauer noch ca. 24 sec
+21:53:49: 71977 von ca. 312538 Elementen erzeugt (142030 von 143957 Kanten)
+21:53:49: 3.16 sec -> 0.0000 sec pro Element, Dauer noch ca. 21 sec
+21:53:50: 114706 von ca. 312538 Elementen erzeugt (227411 von 229415 Kanten)
+21:53:50: 4.17 sec -> 0.0000 sec pro Element, Dauer noch ca. 14 sec
+21:53:51: 156911 von ca. 312538 Elementen erzeugt (311853 von 313825 Kanten)
+21:53:51: 5.19 sec -> 0.0000 sec pro Element, Dauer noch ca. 10 sec
+21:53:52: 203312 von ca. 312538 Elementen erzeugt (404757 von 406627 Kanten)
+21:53:52: 6.20 sec -> 0.0000 sec pro Element, Dauer noch ca. 7 sec
+21:53:53: 248682 von ca. 312538 Elementen erzeugt (495709 von 497367 Kanten)
+21:53:53: 7.22 sec -> 0.0000 sec pro Element, Dauer noch ca. 4 sec
+21:53:54: 278653 von ca. 312538 Elementen erzeugt (555861 von 557309 Kanten)
+21:53:54: 8.23 sec -> 0.0000 sec pro Element, Dauer noch ca. 2 sec
+21:53:55: 301248 von ca. 312538 Elementen erzeugt (601313 von 602499 Kanten)
+21:53:55: 9.27 sec -> 0.0000 sec pro Element, Dauer noch ca. 1 sec
+21:53:56: 310150 von ca. 312538 Elementen erzeugt (619734 von 620303 Kanten)
+21:53:56: 10.28 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
+21:53:57: 312311 von ca. 312538 Elementen erzeugt (624621 von 624625 Kanten)
+21:53:57: 11.30 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
+21:53:59: 312397 von ca. 312538 Elementen erzeugt (624793 von 624797 Kanten)
+21:53:59: 12.31 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
+21:54:00: 312481 von ca. 312538 Elementen erzeugt (624961 von 624965 Kanten)
+21:54:00: 13.33 sec -> 0.0000 sec pro Element, Dauer noch ca. 0 sec
+21:54:01: <-Triangulierung der Knoten beendet
Modified: trunk/src/Makefile
===================================================================
--- trunk/src/Makefile 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/Makefile 2006-06-09 19:54:01 UTC (rev 51)
@@ -12,7 +12,7 @@
PROJECT=wsplgen.exe
TEST=test.exe
OBJFILES=tools.o xy.o tri.o parameter.o file.o shape.o quadtree.o
-TESTOBJFILES= test_profil.o test_tools.o test_xy.o test_tri.o test_file.o test_nodes.o test_quadtree.o
+TESTOBJFILES=test_profil.o test_tools.o test_xy.o test_tri.o test_file.o test_nodes.o test_quadtree.o
all: ../bin/test.exe ../bin/wsplgen.exe
@@ -25,9 +25,6 @@
%.o: %.cpp %.h Makefile
$(CC) -c $(CPPFLAGS) $*.cpp
-# %.o: %.cpp Makefile
-# $(CC) -c $(CPPFLAGS) $*.cpp
-
clean:
rm -f *.o
Modified: trunk/src/file.cpp
===================================================================
--- trunk/src/file.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/file.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -697,9 +697,14 @@
}
if (ZFieldIndex == -1)
{
- ZName = "m";
+ ZName = "Hoehe";
ZFieldIndex = DBFGetFieldIndex(hDBF, ZName.c_str());
}
+ if (ZFieldIndex == -1)
+ {
+ ZName = "HOEHE";
+ ZFieldIndex = DBFGetFieldIndex(hDBF, ZName.c_str());
+ }
if (ShapeType != SHPT_POINTZ && ZFieldIndex == -1)
{
@@ -1014,41 +1019,6 @@
write_error(2206, "In der DBD-Datei %s' sind keine Attribute definiert\nEs müssen aber mindestens die Attibute Z und STATION definiert sein.\n", DBFFileName.c_str());
}
- std::string GewName = "GEW";
- int GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- if (GewFieldIndex == -1)
- {
- GewName = "Gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "GEWÄSSER";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "Gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
-
- if (GewFieldIndex == -1)
- {
- SHPClose(hSHP);
- DBFClose(hDBF);
- write_error(2207, "In der DBD-Datei %s' ist das Attribut 'GEW' nicht definiert\nEs muss aber vorhanden sein.\n", DBFFileName.c_str());
- }
-
std::string StationName = "STATION";
int StationFieldIndex = DBFGetFieldIndex(hDBF, StationName.c_str());
if (StationFieldIndex == -1)
@@ -1101,13 +1071,6 @@
int Width = 0;
int Decimals = 0;
- if (DBFGetFieldInfo(hDBF, GewFieldIndex, NULL, &Width, &Decimals) != FTString)
- {
- SHPClose(hSHP);
- DBFClose(hDBF);
- write_error(2209, "In der DBD-Datei '%s' ist der Attribut-Typ des Attributes '%s' nicht Text.\n", DBFFileName.c_str(), GewName.c_str());
- }
-
if (DBFGetFieldInfo(hDBF, StationFieldIndex, NULL, &Width, &Decimals) != FTDouble)
{
SHPClose(hSHP);
@@ -1118,17 +1081,16 @@
int Count = 0;
for (int i = 0; i<RecordCount; i++)
{
- std::string Gewaesser = DBFReadStringAttribute(hDBF, i, GewFieldIndex);
- double S = DBFReadDoubleAttribute(hDBF, i, StationFieldIndex);
+ double StationD = DBFReadDoubleAttribute(hDBF, i, StationFieldIndex);
- int Station = (int)(S * 10000.0 + 0.5);
- if (S < 0) Station = (int)(S * 10000.0 - 0.5);
+ int Station = (int)(StationD * 10000.0 + 0.5);
+ if (StationD < 0) Station = (int)(StationD * 10000.0 - 0.5);
if (Station >= VonKm * 10000 && Station <= BisKm * 10000)
{
- if (ProfilList->Find(Gewaesser, Station))
+ if (ProfilList->Find(Station))
{
- write_warning(2111, "In der DBD-Datei '%s' kommt das Profil ('%s',%.4f) mehrfach vor.\nEs wird nur die erste Definition berücksichtigt.\n", DBFFileName.c_str(), Gewaesser.c_str(), Station / 10000.0);
+ write_warning(2111, "In der DBD-Datei '%s' kommt das Profil (%.4f) mehrfach vor.\nEs wird nur die erste Definition berücksichtigt.\n", DBFFileName.c_str(), Station / 10000.0);
continue;
}
@@ -1138,11 +1100,11 @@
if (AnzVert <= 0)
{
- write_warning(2112, "In der DBD-Datei '%s' hat das Profil ('%s',%.4f) keine Stützstellen.\nEs wird ignoriert.\n", DBFFileName.c_str(), Gewaesser.c_str(), Station / 10000.0);
+ write_warning(2112, "In der DBD-Datei '%s' hat das Profil (%.4f) keine Stützstellen.\nEs wird ignoriert.\n", DBFFileName.c_str(), Station / 10000.0);
continue;
}
- TProfil* Profil = new TProfil(Gewaesser, Station);
+ TProfil* Profil = new TProfil(Station);
ProfilList->insert(Profil);
@@ -1179,7 +1141,7 @@
for (TProfilList::iterator i = ProfilList->begin(); i != ProfilList->end(); i++)
{
TProfil* Profil = *i;
- write_fortschritt("%s %d\n", Profil->Gewaesser.c_str(), Profil->Station);
+ write_fortschritt("%d\n", Profil->Station);
}
}
@@ -1208,59 +1170,49 @@
continue;
}
- if (VorProfil->Gewaesser != NachProfil->Gewaesser)
- {
- i++;
- continue;
- }
-
TPoint* VorAnfang = *VorProfil->PointList->begin();
TPoint* VorEnde = *VorProfil->PointList->rbegin();
TPoint* NachAnfang = *NachProfil->PointList->begin();
TPoint* NachEnde = *NachProfil->PointList->rbegin();
- double VAx = VorAnfang->X;
- double VAy = VorAnfang->Y;
- double VEx = VorEnde->X;
- double VEy = VorEnde->Y;
- double NAx = NachAnfang->X;
- double NAy = NachAnfang->Y;
- double NEx = NachEnde->X;
- double NEy = NachEnde->Y;
+ long VAx = VorAnfang->X;
+ long VAy = VorAnfang->Y;
+ long VEx = VorEnde->X;
+ long VEy = VorEnde->Y;
+ long NAx = NachAnfang->X;
+ long NAy = NachAnfang->Y;
+ long NEx = NachEnde->X;
+ long NEy = NachEnde->Y;
- double ADx = NAx - VAx;
- double ADy = NAy - VAy;
- if (fabs(ADx) < 0.00000001 && fabs(ADy) < 0.00000001)
+ long ADx = NAx - VAx;
+ long ADy = NAy - VAy;
+ if (ADx == 0 && ADy == 0)
{
- write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", VAx, VAy, NAx, NAy);
+ write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", VAx / 100.0, VAy / 100.0, NAx / 100.0, NAy / 100.0);
}
- double EDx = NEx - VEx;
- double EDy = NEy - VEy;
- if (fabs(EDx) < 0.00000001 && fabs(EDy) < 0.00000001)
+ long EDx = NEx - VEx;
+ long EDy = NEy - VEy;
+ if (EDx == 0 && EDy == 0)
{
- write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", VEx, VEy, NEx, NEy);
+ write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", VEx / 100.0, VEy / 100.0, NEx / 100.0, NEy / 100.0);
}
double X = 0.0;
double Y = 0.0;
- double LambdaA = -1;
- double LambdaE = -1;
- if (Calc2Schnitt(VAx, VAy, NAx, NAy, VEx, VEy, NEx, NEy, &X, &Y, &LambdaA, &LambdaE))
+ if (Calc2Schnitt(VAx, VAy, NAx, NAy, VEx, VEy, NEx, NEy, &X, &Y))
{
- if (LambdaA < 0 || LambdaA > 1 || LambdaE < 0 || LambdaE > 1) continue;
-
// Hier ist ein echter Schnittpunkt gefunden
// Jetzt muss das NachProfil in seiner Reihenfolge vertauscht werden
SwitchCount++;
- TProfil* ExChangeProfil = new TProfil(NachProfil->Gewaesser, NachProfil->Station);
+ TProfil* ExChangeProfil = new TProfil(NachProfil->Station);
for (TPointList::reverse_iterator j = NachProfil->PointList->rbegin(); j != NachProfil->PointList->rend(); j++)
{
- long X = (*j)->X;
- long Y = (*j)->Y;
+ long X = (long)((*j)->X + 0.5);
+ long Y = (long)((*j)->Y + 0.5);
ExChangeProfil->AddPoint(X, Y);
}
@@ -1414,13 +1366,11 @@
if (Typ == "SPERRE" || Typ == "Sperre" || Typ == "sperre")
{
- Typ = "SPERRE";
+ Typ = "DAMM";
}
else if (Typ == "DAMM" || Typ == "Damm" || Typ == "damm")
{
- // Der Typ 'DAMM' wurde noch nicht benutzt und wird immer schon mal unterstützt
- write_warning(9999, "Der Typ 'Damm' wurde in der Datei '%s' benutzt.\nEr wird noch nicht offiziell unterstützt.\n", DBFFileName.c_str());
- Typ = "SPERRE";
+ Typ = "DAMM";
}
else if (Typ == "GRABEN" || Typ == "Graben" || Typ == "graben")
{
@@ -1428,8 +1378,6 @@
}
else if (Typ == "BRUCH" || Typ == "Bruch" || Typ == "bruch")
{
- // Der Typ 'BRUCH' wurde früher benutzt und wird immer noch unterstützt
- write_warning(9999, "Der Typ 'Bruch' wurde in der Datei '%s' benutzt.\nEr wird nur noch ubergangweise unterstützt.\nBitte ändern sie ihn in 'GRABEN'.\n", DBFFileName.c_str());
Typ = "GRABEN";
}
else if (Typ == "ROHR" || Typ == "Rohr" || Typ == "rohr")
@@ -1438,7 +1386,7 @@
}
else
{
- write_warning(3112, "Das Attribut 'TYP' (%s) in der Datei '%s' darf nur die Werte 'SPERRE' oder 'BRUCH' haben.\nDas Linienobjekt wird ignoriert.\n", Typ.c_str(), DBFFileName.c_str());
+ write_warning(3112, "Das Attribut 'TYP' in der Datei '%s' darf nur die Werte 'Damm', 'Graben' oder 'Rohr' haben.\nDas Linienobjekt '%s' wird ignoriert.\n", DBFFileName.c_str(), Typ.c_str());
continue;
}
@@ -1454,9 +1402,9 @@
}
// Der Wasserstand muss so hoch sein, damit später auch alle Knoten der Bruckkante erzeugt werden können
- TProfil* Linie = new TProfil(Typ, i, 999999);
+ TProfil* Linie = new TProfil(i, 999999);
- if (Typ == "SPERRE") SperrenList->insert(Linie);
+ if (Typ == "DAMM") SperrenList->insert(Linie);
else if (Typ == "GRABEN") GrabenList->insert(Linie);
else if (Typ == "ROHR") RohreList->insert(Linie);
else dump_error(__FILE__, __LINE__, "Unbekannter Typ '%s' in der Datei '%s'\n", Typ.c_str(), DBFFileName.c_str());
@@ -1529,7 +1477,6 @@
write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", FileName.c_str());
}
- int GewCol =0;
int StationCol =0;
int WspCol =0;
@@ -1547,7 +1494,6 @@
char* End = line + strlen(line);
- std::string Gewaesser = "";
double StationD = 0.0;
double WspD = 0.0;
@@ -1564,11 +1510,6 @@
if (AktZeile == 1)
{
- if (strcmp(Col, "GEW") == 0 || strcmp(Col, "Gew") == 0 || strcmp(Col, "gew") == 0 || strcmp(Col, "GEWÄSSER") == 0 || strcmp(Col, "Gewässer") == 0 || strcmp(Col, "gewässer") == 0)
- {
- GewCol = AktCol;
- ColOk++;
- }
if (strcmp(Col, "STATION") == 0 || strcmp(Col, "Station") == 0 || strcmp(Col, "station") == 0 || strcmp(Col, "KILOMETER") == 0 || strcmp(Col, "Kilometer") == 0 || strcmp(Col, "kilometer") == 0 || strcmp(Col, "KM") == 0 || strcmp(Col, "Km") == 0 || strcmp(Col, "km") == 0)
{
StationCol = AktCol;
@@ -1582,11 +1523,6 @@
}
else
{
- if (AktCol == GewCol)
- {
- Gewaesser = Col;
- ColOk++;
- }
if (AktCol == StationCol)
{
if (1 != sscanf(Col, "%lf", &StationD))
@@ -1604,14 +1540,14 @@
ColOk++;
}
}
- if (ColOk == 3) break;
+ if (ColOk == 2) break;
P = P + strlen(Col) + 1;
}
- if (ColOk != 3 && AktZeile == 1) write_error(2215, "Nicht genug Informationen in der ersten Zeile\nEs müssen die Feldnamen GEW, STATION und WSP vorkommen.\n");
+ if (ColOk != 2 && AktZeile == 1) write_error(2215, "Nicht genug Informationen in der ersten Zeile\nEs müssen die Feldnamen STATION und WSP vorkommen.\n");
- if (ColOk != 3 && AktZeile > 1) write_error(2215, "Nicht genug Informationen in der Zeile %d.\n", AktZeile);
+ if (ColOk != 2 && AktZeile > 1) write_error(2215, "Nicht genug Informationen in der Zeile %d.\nEs müssen die Feldnamen STATION und WSP vorkommen.\n", AktZeile);
if (AktZeile == 1) continue;
@@ -1621,7 +1557,7 @@
int Wsp = (int)(WspD * 100.0 + 0.5);
if (WspD < 0) Wsp = (int)(WspD * 100.0 - 0.5);
- TProfil* Profil = new TProfil(Gewaesser, Station, Wsp);
+ TProfil* Profil = new TProfil(Station, Wsp);
ProfilList->insert(Profil);
@@ -1677,41 +1613,6 @@
write_error(2206, "In der DBD-Datei %s' sind keine Attribute definiert\nEs müssen aber mindestens die Attibute GEW und STATION definiert sein.\n", DBFFileName.c_str());
}
- std::string GewName = "GEW";
- int GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- if (GewFieldIndex == -1)
- {
- GewName = "Gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "GEWÄSSER";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "Gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
-
- if (GewFieldIndex == -1)
- {
- DBFClose(hDBF);
-
- write_error(2207, "In der DBD-Datei %s' ist das Attribut 'GEW' nicht definiert\nEs muss aber vorhanden sein.\n", DBFFileName.c_str());
- }
-
std::string StationName = "STATION";
int StationFieldIndex = DBFGetFieldIndex(hDBF, StationName.c_str());
if (StationFieldIndex == -1)
@@ -1799,13 +1700,7 @@
int Width = 0;
int Decimals = 0;
- if (DBFGetFieldInfo(hDBF, GewFieldIndex, NULL, &Width, &Decimals) != FTString)
- {
- DBFClose(hDBF);
- write_error(2209, "In der DBD-Datei '%s' ist der Attribut-Typ des Attributes '%s' nicht Text.\n", DBFFileName.c_str(), GewName.c_str());
- }
-
if (DBFGetFieldInfo(hDBF, StationFieldIndex, NULL, &Width, &Decimals) != FTDouble)
{
DBFClose(hDBF);
@@ -1823,23 +1718,22 @@
int Count = 0;
for (int i = 0; i<RecordCount; i++)
{
- std::string Gewaesser = DBFReadStringAttribute(hDBF, i, GewFieldIndex);
double StationD = DBFReadDoubleAttribute(hDBF, i, StationFieldIndex);
double WspD = DBFReadDoubleAttribute(hDBF, i, WspFieldIndex);
int Station = (int)(StationD * 10000.0 + 0.5);
- if (StationD) Station = (int)(StationD * 10000.0 - 0.5);
+ if (StationD < 0) Station = (int)(StationD * 10000.0 - 0.5);
int Wsp = (int)(WspD * 100.0 + 0.5);
if (WspD < 0) Wsp = (int)(WspD * 100.0 - 0.5);
- if (ProfilList->Find(Gewaesser, Station))
+ if (ProfilList->Find(Station))
{
- write_warning(2111, "In der DBD-Datei '%s' kommt der Wasserstand ('%s',%.4f) mehrfach vor.\nEs wird nur die erste Definition berücksichtigt.\n", DBFFileName.c_str(), Gewaesser.c_str(), Station / 10000.0);
+ write_warning(2111, "In der DBD-Datei '%s' kommt der Wasserstand (%.4f) mehrfach vor.\nEs wird nur die erste Definition berücksichtigt.\n", DBFFileName.c_str(), Station / 10000.0);
continue;
}
- TProfil* Profil = new TProfil(Gewaesser, Station, Wsp);
+ TProfil* Profil = new TProfil(Station, Wsp);
ProfilList->insert(Profil);
@@ -1929,80 +1823,22 @@
int RecordCount = SHPRecordCount;
- int FieldCount = DBFGetFieldCount(hDBF);
-
- if (FieldCount == 0)
- {
- SHPClose(hSHP);
- DBFClose(hDBF);
-
- write_error(2206, "In der DBD-Datei %s' sind keine Attribute definiert\nEs müssen aber mindestens die Attibute GEW und STATION definiert sein.\n", DBFFileName.c_str());
- }
-
- std::string GewName = "GEW";
- int GewFieldIndex = DBFGetFieldIndex(hDBF, "GEW");
- if (GewFieldIndex == -1)
- {
- GewName = "Gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gew";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "GEWÄSSER";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "Gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
- if (GewFieldIndex == -1)
- {
- GewName = "gewässer";
- GewFieldIndex = DBFGetFieldIndex(hDBF, GewName.c_str());
- }
-
- if (GewFieldIndex == -1)
- {
- SHPClose(hSHP);
- DBFClose(hDBF);
-
- write_error(2207, "In der DBD-Datei %s' ist das Attribut 'GEW' nicht definiert\nEs muss aber vorhanden sein.\n", DBFFileName.c_str());
- }
-
- int Width = 0;
- int Decimals = 0;
- if (DBFGetFieldInfo(hDBF, GewFieldIndex, NULL, &Width, &Decimals) != FTString)
- {
- SHPClose(hSHP);
- DBFClose(hDBF);
-
- write_error(2209, "In der DBD-Datei '%s' ist der Attribut-Typ des Attributes 'GEW' nicht Text.\n", DBFFileName.c_str());
- }
-
int Count = 0;
for (int i = 0; i<RecordCount; i++)
{
- std::string Gewaesser = DBFReadStringAttribute(hDBF, i, GewFieldIndex);
-
SHPObject *psCShape = SHPReadObject(hSHP, i);
int AnzVert = psCShape->nVertices;
if (AnzVert <= 0)
{
- write_warning(2118, "In der DBD-Datei '%s' hat eine Gewässerachse ('%s') keine Stützstellen.\nSie wird ignoriert.\n", DBFFileName.c_str(), Gewaesser.c_str());
+ write_warning(2118, "In der SHP-Datei '%s' hat eine Gewässerachse keine Stützstellen.\nSie wird ignoriert.\n", SHPFileName.c_str());
continue;
}
- TGewaesserAchse* GewaesserAchse = new TGewaesserAchse(Gewaesser, i);
+ TGewaesserAchse* GewaesserAchse = new TGewaesserAchse();
- GewaesserAchseList->insert(GewaesserAchse);
+ GewaesserAchseList->push_back(GewaesserAchse);
for (int j=0; j < AnzVert; j++)
{
@@ -2240,12 +2076,6 @@
write_error(4201, "Kann Datei '%s' nicht zum Schreiben öffnen\n", FileName.c_str());
}
- if (DBFAddField(DBFHandle, "GEW", FTString, 255, 0) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'GEW' nicht erzeugen\n", FileName.c_str());
- }
-
if (DBFAddField(DBFHandle, "STATION", FTDouble, 10, 4) == -1)
{
DBFClose(DBFHandle);
@@ -2266,9 +2096,8 @@
{
TProfil* Profil = *i;
- std::string Gewaesser = Profil->Gewaesser;
double Station = Profil->Station / 10000.0;
- double Wsp = Profil->Wsp / 100;
+ double Wsp = Profil->Wsp / 100.0;
double *x = (double *)malloc(sizeof(double) * (Profil->PointList->size() + 1));
double *y = (double *)malloc(sizeof(double) * (Profil->PointList->size() + 1));
@@ -2293,9 +2122,8 @@
SHPWriteObject(SHPHandle, -1, psShape);
SHPDestroyObject(psShape);
- DBFWriteStringAttribute(DBFHandle, AnzProfil, 0, Gewaesser.c_str());
- DBFWriteDoubleAttribute(DBFHandle, AnzProfil, 1, Station);
- DBFWriteDoubleAttribute(DBFHandle, AnzProfil, 2, Wsp);
+ DBFWriteDoubleAttribute(DBFHandle, AnzProfil, 0, Station);
+ DBFWriteDoubleAttribute(DBFHandle, AnzProfil, 1, Wsp);
free(x);
free(y);
@@ -2319,7 +2147,7 @@
}
//---------------------------------------------------------------------------
-bool SavePolygon(std::string FileName, std::string Gewaesser, int Von, int Bis, TXYList *XyList, int DebugLevel)
+bool SavePolygon(std::string FileName, TXYList *XyList, int DebugLevel)
{
write_fortschritt("->Speichern des Polygons gestartet\n");
@@ -2331,27 +2159,14 @@
write_error(4201, "Kann Datei '%s' nicht zum Schreiben öffnen\n", FileName.c_str());
}
- if (DBFAddField(DBFHandle, "GEW", FTString, 255, 0) == -1)
+ if (DBFAddField(DBFHandle, "ID", FTInteger, 10, 0) == -1)
{
DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'GEW' nicht erzeugen\n", FileName.c_str());
+ write_error(4204, "Kann bei Datei '%s' das Attribut 'ID' nicht erzeugen\n", FileName.c_str());
}
- if (DBFAddField(DBFHandle, "VON", FTInteger, 10, 0) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'VON' nicht erzeugen\n", FileName.c_str());
- }
-
- if (DBFAddField(DBFHandle, "BIS", FTInteger, 10, 0) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'BIS' nicht erzeugen\n", FileName.c_str());
- }
-
SHPHandle SHPHandle = SHPCreate(FileName.c_str(), SHPT_POLYGON);
-
double *x = (double *)malloc(sizeof(double) * (XyList->size()+1));
double *y = (double *)malloc(sizeof(double) * (XyList->size()+1));
double *z = (double *)malloc(sizeof(double) * (XyList->size()+1));
@@ -2392,9 +2207,7 @@
SHPWriteObject(SHPHandle, -1, psShape);
SHPDestroyObject(psShape);
- DBFWriteStringAttribute(DBFHandle, 0, 0, Gewaesser.c_str());
- DBFWriteDoubleAttribute(DBFHandle, 0, 1, Von);
- DBFWriteDoubleAttribute(DBFHandle, 0, 2, Bis);
+ DBFWriteIntegerAttribute(DBFHandle, 0, 0, 0);
free(x);
free(y);
@@ -2423,30 +2236,12 @@
write_error(4201, "Kann Datei '%s' nicht zum Schreiben öffnen\n", FileName.c_str());
}
- if (DBFAddField(DBFHandle, "GEW", FTString, 255, 0) == -1)
+ if (DBFAddField(DBFHandle, "DIFF", FTDouble, 12, 4) == -1)
{
DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'GEW' nicht erzeugen\n", FileName.c_str());
+ write_error(4204, "Kann bei Datei '%s' das Attribut 'DIFF' nicht erzeugen\n", FileName.c_str());
}
- if (DBFAddField(DBFHandle, "VONKM", FTDouble, 12, 4) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'VON' nicht erzeugen\n", FileName.c_str());
- }
-
- if (DBFAddField(DBFHandle, "BISKM", FTDouble, 12, 4) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'BIS' nicht erzeugen\n", FileName.c_str());
- }
-
- if (DBFAddField(DBFHandle, "DELTA", FTDouble, 12, 4) == -1)
- {
- DBFClose(DBFHandle);
- write_error(4204, "Kann bei Datei '%s' das Attribut 'BIS' nicht erzeugen\n", FileName.c_str());
- }
-
TErgebnisPolygonList *ErgebnisPolygonList = PolygonList->Copy();
SHPHandle SHPHandle = SHPCreate(FileName.c_str(), SHPT_POLYGON);
@@ -2457,9 +2252,6 @@
{
TErgebnisPolygon* ErgebnisPolygon = *i;
- std::string AktGewaesser = ErgebnisPolygon->Gewaesser;
- double AktVonKm = ErgebnisPolygon->VonKm;
- double AktBisKm = ErgebnisPolygon->BisKm;
double AktDiff = ErgebnisPolygon->Diff;
size_t Size = 0;
@@ -2476,9 +2268,9 @@
for (TErgebnisPolygonList::iterator j = ErgebnisPolygonList->begin(); j != ErgebnisPolygonList->end(); j++)
{
TErgebnisPolygon* EP1 = *j;
- if (EP1->Gewaesser != AktGewaesser || EP1->VonKm != AktVonKm || EP1->BisKm != AktBisKm || EP1->Diff != AktDiff)
+ if (EP1->Diff != AktDiff)
{
- // Andere Gewässer oder Abschnitte werden im Moment noch nicht bearbeitet
+ // Diffs werden im Moment noch nicht bearbeitet
continue;
}
@@ -2500,9 +2292,9 @@
continue;
}
- if (EP2->Gewaesser != AktGewaesser || EP2->VonKm != AktVonKm || EP2->BisKm != AktBisKm || EP2->Diff != AktDiff)
+ if (EP2->Diff != AktDiff)
{
- // Andere Gewässer oder Abschnitte werden im Moment noch nicht bearbeitet
+ // Andere Diffs werden im Moment noch nicht bearbeitet
continue;
}
@@ -2547,14 +2339,11 @@
}
}
- if (DebugLevel >= 1) write_fortschritt("%d. Polygon Gewässer %s %.4f - %.4f, Wassertiefe %.2f, %d Teile, %d Ecken\n", Count+1, AktGewaesser.c_str(), AktVonKm, AktBisKm, AktDiff, AnzPolyParts, AnzPolyPoints);
+ if (DebugLevel >= 1) write_fortschritt("%d. Polygon Wassertiefe %.2f, %d Teile, %d Ecken\n", Count+1, AktDiff / 100.0, AnzPolyParts, AnzPolyPoints);
if (AnzPolyParts > 0 && AnzPolyPoints > 0)
{
- DBFWriteStringAttribute(DBFHandle, Count, 0, AktGewaesser.c_str());
- DBFWriteDoubleAttribute(DBFHandle, Count, 1, AktVonKm);
- DBFWriteDoubleAttribute(DBFHandle, Count, 2, AktBisKm);
- DBFWriteDoubleAttribute(DBFHandle, Count, 3, AktDiff);
+ DBFWriteDoubleAttribute(DBFHandle, Count, 0, AktDiff / 100.0);
SHPObject *psShape = SHPCreateObject(SHPT_POLYGON, -1, AnzPolyParts, ps, NULL, AnzPolyPoints, x, y, z, m);
SHPRewindObject(SHPHandle, psShape);
@@ -2575,7 +2364,7 @@
while (j != ErgebnisPolygonList->end())
{
TErgebnisPolygon* EP1 = *j;
- if (EP1->Gewaesser == AktGewaesser && EP1->VonKm == AktVonKm && EP1->BisKm == AktBisKm && EP1->Diff == AktDiff)
+ if (EP1->Diff == AktDiff)
{
delete EP1;
ErgebnisPolygonList->erase(j);
Modified: trunk/src/file.h
===================================================================
--- trunk/src/file.h 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/file.h 2006-06-09 19:54:01 UTC (rev 51)
@@ -44,7 +44,7 @@
bool SaveNodes(std::string FileName, TNodeList *NodeList, int DebugLevel);
bool SaveElements(std::string FileName, TElementList *ElementList, int DebugLevel);
bool SaveProfile(std::string FileName, TProfilList *ProfilList, int DebugLevel);
-bool SavePolygon(std::string FileName, std::string Gewaesser, int Von, int Bis, TXYList *XyList, int DebugLevel);
+bool SavePolygon(std::string FileName, TXYList *XyList, int DebugLevel);
bool SavePolygone(std::string FileName, TErgebnisPolygonList *ErgebnisPolygonList, int DebugLevel);
bool SaveEdges(std::string FileName, TEdgeList *EdgeList, int DebugLevel);
Modified: trunk/src/parameter.cpp
===================================================================
--- trunk/src/parameter.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/parameter.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -263,12 +263,14 @@
{
IsSetVon = true;
Von = (int)(D * 100.0 + 0.5);
+ if (D < 0.0) Von = (int)(D * 100.0 - 0.5);
}
if (1 == sscanf(Parameter.substr(FirstKommaPos + 1).c_str(), "%lf", &D))
{
IsSetBis = true;
Bis = (int)(D * 100.0 + 0.5);
+ if (D < 0.0) Bis = (int)(D * 100.0 - 0.5);
}
if (1 == sscanf(Parameter.substr(SecondKommaPos + 1).c_str(), "%lf", &D))
Modified: trunk/src/quadtree.cpp
===================================================================
--- trunk/src/quadtree.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/quadtree.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -1,5 +1,5 @@
//
-// $Id: quadtree.cpp 49 2006-05-26 05:12:48Z mrchip $
+// $Id$
//
// Copyright (C) 2005 STADT-LAND-FLUSS INGENIEURDIENSTE GmbH
//
Property changes on: trunk/src/quadtree.cpp
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: trunk/src/quadtree.h
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: trunk/src/test_file.cpp
===================================================================
--- trunk/src/test_file.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/test_file.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -379,7 +379,7 @@
LoadWsp(WSPFILE, WspList, 8);
- if (WspList->size() != 5668) printf("Failed\n");
+ if (WspList->size() != 2834) printf("Failed\n");
else printf("Pass\n");
delete WspList;
@@ -396,7 +396,7 @@
LoadWsp(WSPFILE2, WspList, 8);
- if (WspList->size() != 42) printf("Failed\n");
+ if (WspList->size() != 32) printf("Failed\n");
else printf("Pass\n");
delete WspList;
Modified: trunk/src/test_profil.cpp
===================================================================
--- trunk/src/test_profil.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/test_profil.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -31,8 +31,8 @@
printf ("Test Profile erzeugen: ");
- TProfil *Profil1 = new TProfil("Weser", 2502000);
- TProfil *Profil2 = new TProfil("Weser", 2507000);
+ TProfil *Profil1 = new TProfil(2502000);
+ TProfil *Profil2 = new TProfil(2507000);
Profil1->AddPoint(1, 2);
Profil1->AddPoint(3, 2, 1);
@@ -86,7 +86,7 @@
printf ("Test Profilliste: ");
- TProfil *Profil4 = new TProfil("Weser", 1050000);
+ TProfil *Profil4 = new TProfil(1050000);
Profil4->AddPoint(4, 2);
Profil4->AddPoint(5, 3);
@@ -94,7 +94,7 @@
Profil4->AddPoint(7, 5);
Profil4->AddPoint(8, 6);
- TProfil *Profil5 = new TProfil("Weser", 1015000);
+ TProfil *Profil5 = new TProfil(1015000);
Profil5->AddPoint(14, 22);
Profil5->AddPoint(15, 23);
@@ -102,7 +102,7 @@
Profil5->AddPoint(17, 25);
Profil5->AddPoint(18, 26);
- TProfil *Profil6 = new TProfil("Aller", 994000);
+ TProfil *Profil6 = new TProfil(994000);
Profil6->AddPoint(4, 2);
Profil6->AddPoint(1, 2);
@@ -126,7 +126,7 @@
// Jetzt nochmal mit dynamisch erzeugt Pointern
for (unsigned int i=0; i < 113; i++)
{
- TProfil *Profil = new TProfil("Weser", (i * 79) % 113);
+ TProfil *Profil = new TProfil((i * 79) % 113);
Profil->AddPoint(i, i+0, 11000);
Profil->AddPoint(i, i+1, 22000);
@@ -139,14 +139,14 @@
int Size2 = ProfilList->size();
- TProfil *Profil10 = new TProfil("Aller", 100000);
+ TProfil *Profil10 = new TProfil(100000);
Profil10->AddPoint(101, 101, 101);
Profil10->AddPoint(102, 102, 102);
ProfilList->insert(Profil10);
- TProfil *Profil11 = new TProfil("Aller", 110000);
+ TProfil *Profil11 = new TProfil(110000);
Profil11->AddPoint(111, 111, 111);
Profil11->AddPoint(112, 112, 112);
@@ -160,20 +160,6 @@
else if (Size3 != 115) printf("Failed\n");
else printf("Pass\n");
- ////////////////////////////////////////
- ////////////////////////////////////////
-
- printf ("Test Profilsuche: ");
-
- TProfil* FoundProfil1 = ProfilList->Find("Weser", 79);
- TProfil* FoundProfil2 = ProfilList->Find("Aller", 100000);
-
- if (0 == FoundProfil1) printf("Failed\n");
- else if (0 == FoundProfil2) printf("Failed\n");
- else if (FoundProfil1->Station != 79) printf("Failed\n");
- else if (FoundProfil2->Station != 100000) printf("Failed\n");
- else printf("Pass\n");
-
printf ("*************************************************************************\n");
}
Modified: trunk/src/test_quadtree.cpp
===================================================================
--- trunk/src/test_quadtree.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/test_quadtree.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -40,7 +40,7 @@
printf ("Test QuadTree\n");
{
- printf ("Test QuadTree 1 Knoten : ");
+ printf ("Test QuadTree 1 Knoten: ");
// Zuerst einen paar Punkte generieren
TNode *Node = new TNode(1, 1, 1, 0);
@@ -65,7 +65,7 @@
}
{
- printf ("Test QuadTree 4 Knoten : ");
+ printf ("Test QuadTree 4 Knoten: ");
// Zuerst einen paar Punkte generieren
TNode *Node1 = new TNode(1, 1, 1, 0);
@@ -105,7 +105,7 @@
}
{
- printf ("Test QuadTree 7 Knoten : ");
+ printf ("Test QuadTree 7 Knoten: ");
// Zuerst einen paar Punkte generieren
TNode *Node1 = new TNode(1, 1, 1, 0);
@@ -152,7 +152,7 @@
}
{
- printf ("Test QuadTree 9 Knoten : ");
+ printf ("Test QuadTree 9 Knoten: ");
TNode *Node01 = new TNode(1, 1, 1, 0);
TNode *Node02 = new TNode(2, 1, 2, 0);
TNode *Node03 = new TNode(3, 1, 3, 0);
@@ -201,7 +201,7 @@
}
{
- printf ("Test QuadTree 12 Knoten : ");
+ printf ("Test QuadTree 12 Knoten: ");
TNode *Node01 = new TNode(1, 1, 1, 0);
TNode *Node02 = new TNode(2, 9, 1, 0);
TNode *Node03 = new TNode(3, 9, 9, 0);
@@ -259,7 +259,7 @@
}
{
- printf ("Test QuadTree 1126 Knoten : ");
+ printf ("Test QuadTree 1126 Knoten: ");
TNodeList *NodeList = new TNodeList();
TElementList *ElementList = new TElementList();
Modified: trunk/src/test_tools.cpp
===================================================================
--- trunk/src/test_tools.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/test_tools.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -39,20 +39,83 @@
printf ("Test Tools\n");
////////////////////////////////////////
+ // Test von Calc2Schnitt
+ ////////////////////////////////////////
+
+ {
+ printf ("Test Calc2Schnitt: ");
+
+ TNode N1(1, 1, 1, 1);
+ TNode N2(2, 4, 4, 1);
+ TNode N3(3, 1, 4, 1);
+ TNode N4(4, 4, 1, 1);
+
+ TNode N5(5, 350000000, 580000000, 100);
+ TNode N6(5, 350000100, 580000200, 100);
+ TNode N7(7, 350000060, 580000060, 100);
+ TNode N8(8, 350000060, 580000250, 100);
+
+ TNode N9 ( 9, 350000000, 580000000, 100);
+ TNode N10(10, 350000110, 580000200, 100);
+ TNode N11(11, 349999390, 579998780, 100);
+ TNode N12(12, 350000890, 580001750, 100);
+
+ double X1, Y1;
+ bool OK1 = Calc2Schnitt(N1.X, N1.Y, N2.X, N2.Y, N3.X, N3.Y, N4.X, N4.Y, &X1, &Y1);
+
+ double X2, Y2;
+ bool OK2 = Calc2Schnitt(N1.X, N1.Y, N3.X, N3.Y, N2.X, N2.Y, N4.X, N4.Y, &X2, &Y2);
+
+ double X3, Y3;
+ bool OK3 = Calc2Schnitt(N1.X, N1.Y, N4.X, N4.Y, N2.X, N2.Y, N3.X, N3.Y, &X3, &Y3);
+
+ double X4, Y4;
+ bool OK4 = Calc2Schnitt(N5.X, N5.Y, N6.X, N6.Y, N7.X, N7.Y, N8.X, N8.Y, &X4, &Y4);
+
+ double X5, Y5;
+ bool OK5 = Calc2Schnitt(N7.X, N7.Y, N8.X, N8.Y, N5.X, N5.Y, N6.X, N6.Y, &X5, &Y5);
+
+ double X6, Y6;
+ bool OK6 = Calc2Schnitt(N9.X, N9.Y, N10.X, N10.Y, N11.X, N11.Y, N12.X, N12.Y, &X6, &Y6);
+
+ double X7, Y7;
+ bool OK7 = Calc2Schnitt(N11.X, N11.Y, N12.X, N12.Y, N9.X, N9.Y, N10.X, N10.Y, &X7, &Y7);
+
+ if (false == OK1) printf("Failed\n");
+ else if (fabs(X1 - 2.5) > 0.01) printf("Failed\n");
+ else if (fabs(Y1 - 2.5) > 0.01) printf("Failed\n");
+ else if (true == OK2) printf("Failed\n");
+ else if (true == OK3) printf("Failed\n");
+ else if (false == OK4) printf("Failed\n");
+ else if (fabs(X4 - 350000060) > 0.01) printf("Failed\n");
+ else if (fabs(Y4 - 580000120) > 0.01) printf("Failed\n");
+ else if (false == OK5) printf("Failed\n");
+ else if (fabs(X5 - 350000060) > 0.01) printf("Failed\n");
+ else if (fabs(Y5 - 580000120) > 0.01) printf("Failed\n");
+ else if (false == OK6) printf("Failed\n");
+ else if (fabs(X6 - 350000075.39) > 0.01) printf("Failed\n");
+ else if (fabs(Y6 - 580000137.08) > 0.01) printf("Failed\n");
+ else if (false == OK7) printf("Failed\n");
+ else if (fabs(X7 - 350000075.39) > 0.01) printf("Failed\n");
+ else if (fabs(Y7 - 580000137.08) > 0.01) printf("Failed\n");
+ else printf("Pass\n");
+ }
+
+ ////////////////////////////////////////
// Test von CircumCircle
////////////////////////////////////////
{
- printf ("Test CircumCircle : ");
+ printf ("Test CircumCircle: ");
TNode N1(1, 1, 1, 1);
TNode N2(2, 3, 4, 1);
TNode N3(3, 3, 6, 1);
TNode N4(4, 3, 7, 1);
- TNode N5(5, 350083339,587315140, 100);
- TNode N6(6, 350083554,587315565, 100);
- TNode N7(7, 350080924,587315903, 100);
- TNode N8(8, 350081510,587317062, 100);
+ TNode N5(5, 350083339, 587315140, 100);
+ TNode N6(6, 350083554, 587315565, 100);
+ TNode N7(7, 350080924, 587315903, 100);
+ TNode N8(8, 350081510, 587317062, 100);
double CX1, CY1, R1;
bool OK1 = CircumCircle(N1.X, N1.Y, N2.X, N2.Y, N3.X, N3.Y, &CX1, &CY1, &R1);
@@ -87,7 +150,7 @@
////////////////////////////////////////
{
- printf ("Test ToUpperCase : ");
+ printf ("Test ToUpperCase: ");
std::string Lower = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaabbccddeeff";
std::string Upper = ToUpperCase(Lower);
@@ -245,7 +308,7 @@
////////////////////////////////////////
{
- printf ("Test BuildEdgeList : ");
+ printf ("Test BuildEdgeList: ");
TNodeList *NodeList = new TNodeList();
TElementList *ElementList = new TElementList();
Modified: trunk/src/test_tri.cpp
===================================================================
--- trunk/src/test_tri.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/test_tri.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -51,7 +51,7 @@
printf ("Test Triangulierung\n");
{
- printf ("Test Triangulierung 3 Knoten : ");
+ printf ("Test Triangulierung 3 Knoten: ");
// Zuerst ein paar Punkte generieren
TNode *N01 = new TNode(1, 1, 1, 0);
Modified: trunk/src/tools.cpp
===================================================================
--- trunk/src/tools.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/tools.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -371,83 +371,6 @@
}
//---------------------------------------------------------------------------
-long CheckSpeed(int DebugLevel)
-{
- write_fortschritt("->Ermitteln der Geschwindigkeit\n");
-
- long Duration = 10 * 1000;
-
- unsigned long MemSegSize = 0;
- long DiffMSec = 0;
-
- if (DebugLevel >= 8)
- {
- // Dies ist nur für reproduzierbare Debug-Ergebnisse auf
- // verschiedenen Computern drin
-
- MemSegSize = 300 * 1024 * 1024;
- DiffMSec = Duration;
- write_fortschritt("Aufgrund des DebugLevels wird die Geschwindigkeit nicht ermittelt sondern fest gesetzt.\n");
- }
- else
- {
- struct timeb Start;
- ftime (&Start);
-
long StartMSec = Start.time * 1000 + Start.millitm;
-
- struct timeb Now;
- ftime (&Now);
-
long NowMSec = Now.time * 1000 + Now.millitm;
-
-
unsigned long MemSegSizeInc = 50 * 1024 * 1024; // 20 MB Blöcke
- MemSegSize = MemSegSizeInc;
- unsigned long *Mem = 0;
-
- DiffMSec = NowMSec - StartMSec;
- while (DiffMSec < Duration)
- {
- write_fortschritt("%.2f von %.2f Sekunden getestet\n", DiffMSec / 1000.0, Duration / 1000.0);
-
- Mem = (unsigned long *)SfRealloc(Mem, MemSegSize);
-
- for (unsigned long i = 0L; i < MemSegSize / sizeof(*Mem); i=i+sizeof(*Mem))
- {
- Mem[i] = i;
-
- if (i % 100000 == 0)
- {
- ftime (&Now);
- NowMSec = Now.time * 1000 + Now.millitm;
- DiffMSec = NowMSec - StartMSec;
-
- if (DiffMSec > Duration) break;
- }
- }
-
- MemSegSize = MemSegSize + MemSegSizeInc;
-
- ftime (&Now);
- NowMSec = Now.time * 1000 + Now.millitm;
- DiffMSec = NowMSec - StartMSec;
- }
-
- write_fortschritt("Gebe %.2f MB Speicher wieder frei\n", MemSegSize / 1024.0 / 1024.0);
-
- free(Mem);
-
- ftime (&Now);
- NowMSec = Now.time * 1000 + Now.millitm;
- DiffMSec = NowMSec - StartMSec;
- }
-
- write_fortschritt("%.2f MB Speicher in %.2f sec bearbeitet (%.2f MB/s)\n", MemSegSize / 1024.0 / 1024.0, DiffMSec / 1000.0, MemSegSize / 1024.0 / 1024.0 / (DiffMSec / 1000.0));
-
- write_fortschritt("Ermitteln der Geschwindigkeit beendet\n");
-
- return (MemSegSize / DiffMSec);
-}
-
-//---------------------------------------------------------------------------
const char *ShapeTypeName(TShpType ShapeType)
{
switch(ShapeType)
@@ -529,29 +452,29 @@
{
TProfil* WspProfil = *j;
- if (WspProfil->Gewaesser == Profil->Gewaesser && WspProfil->Station == Profil->Station)
+ if (WspProfil->Station == Profil->Station)
{
UnderProfil = WspProfil;
OverProfil = WspProfil;
break;
}
- if (WspProfil->Gewaesser == Profil->Gewaesser && WspProfil->Station <= Profil->Station) UnderProfil = WspProfil;
- if (WspProfil->Gewaesser == Profil->Gewaesser && WspProfil->Station >= Profil->Station) OverProfil = WspProfil;
+ if (WspProfil->Station <= Profil->Station) UnderProfil = WspProfil;
+ if (WspProfil->Station >= Profil->Station) OverProfil = WspProfil;
}
if (UnderProfil->Station == Profil->Station)
{
Profil->Wsp = UnderProfil->Wsp;
- if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f übernommen werden\n", Profil->Station / 10000.0, Profil->Wsp);
+ if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f übernommen werden\n", Profil->Station / 10000.0, Profil->Wsp / 100.0);
}
else if (OverProfil->Station == Profil->Station)
{
Profil->Wsp = OverProfil->Wsp;
- if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f übernommen werden ßn", Profil->Station / 10000.0, Profil->Wsp);
+ if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f übernommen werden ßn", Profil->Station / 10000.0, Profil->Wsp / 100.0);
}
else if (UnderProfil->Station <= Profil->Station && OverProfil->Station >= Profil->Station)
{
Profil->Wsp = UnderProfil->Wsp + (OverProfil->Wsp - UnderProfil->Wsp) * (Profil->Station - UnderProfil->Station) / (OverProfil->Station - UnderProfil->Station);
- if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f interpoliert werden\n", Profil->Station / 10000.0, Profil->Wsp);
+ if (DebugLevel >= 2) write_fortschritt("Bei Profil %.4f konnte der Wasserstand %.2f interpoliert werden\n", Profil->Station / 10000.0, Profil->Wsp / 100.0);
}
else
{
@@ -571,56 +494,6 @@
}
//---------------------------------------------------------------------------
-TProfilMap BuildGewaesserListen(TProfilList *ProfilList, int DebugLevel)
-{
- write_fortschritt ("->Erzeugung der Gewässerlisten gestartet\n");
-
- TProfilMap ProfilMap;
-
- for (TProfilList::iterator i = ProfilList->begin(); i != ProfilList->end(); i++)
- {
- TProfil* Profil = *i;
-
- TProfilMap::iterator p = ProfilMap.find(Profil->Gewaesser);
-
- if (p == ProfilMap.end())
- {
- TProfilList *MapProfilList = new TProfilList;
-
- MapProfilList->insert(Profil);
-
- ProfilMap[Profil->Gewaesser] = MapProfilList;
- }
- else
- {
- TProfilList *MapProfilList = p->second;
-
- MapProfilList->insert(Profil);
- }
- }
-
- if (DebugLevel >= 3)
- {
- for (TProfilMap::iterator i = ProfilMap.begin(); i != ProfilMap.end(); i++)
- {
- std::string Gewaesser = i->first;
- write_fortschritt("Gewaesser '%s'\n", Gewaesser.c_str());
-
- TProfilList* ProfilList = i->second;
- for (TProfilList::iterator j = ProfilList->begin(); j != ProfilList->end(); j++)
- {
- TProfil* Profil = *j;
- write_fortschritt("Profil '%s' '%.4f'\n", Profil->Gewaesser.c_str(), Profil->Station / 10000.0);
- }
- }
- }
-
- write_fortschritt ("<-Erzeugung der Gewässerlisten beendet\n");
-
- return (ProfilMap);
-}
-
-//---------------------------------------------------------------------------
void BuildPolygon(TProfilList *ProfilList, TXYList *XyList, int DebugLevel)
{
write_fortschritt ("->Erzeugung des Begrenzungspolygons gestartet\n");
@@ -733,59 +606,47 @@
{
TNode *Node2 = NodeList->FindByXY(Node1->X, Node1->Y);
- if (Node2->Nr != 0)
+ if (Node1->Nr != Node2->Nr)
{
- if (Node1->Nr != Node2->Nr)
+ if (DebugLevel >= 9)
{
- if (DebugLevel >= 9)
- {
- write_fortschritt("Lösche Knoten %d (%.3f, %.3f) ident mit Knoten %d (%.3f, %.3f)\n", Node2->Nr, Node2->X, Node2->Y, Node1->Nr, Node1->X, Node1->Y);
- }
+ write_fortschritt("Lösche Knoten %d (%.3f, %.3f) ident mit Knoten %d (%.3f, %.3f)\n", Node1->Nr, Node1->X, Node1->Y, Node2->Nr, Node2->X, Node2->Y);
+ }
- for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
- {
- TElement *Element2 = *k;
+ for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
+ {
+ TElement *Element2 = *k;
- if (Element2->Node1 == Node2) Element2->Node1 = Node1;
- if (Element2->Node2 == Node2) Element2->Node2 = Node1;
- if (Element2->Node3 == Node2) Element2->Node3 = Node1;
- }
- if (Node2->Nr > 0)
- {
- Node2->Nr = 0;
- SollKnotenGeloescht++;
- }
+ if (Element2->Node1 == Node1) Element2->Node1 = Node2;
+ if (Element2->Node2 == Node1) Element2->Node2 = Node2;
+ if (Element2->Node3 == Node1) Element2->Node3 = Node2;
}
- }
- }
+ Node1->Nr = 0;
+ SollKnotenGeloescht++;
+ }
+ }
Node1 = Element->Node2;
if (Node1->Nr != 0)
{
TNode *Node2 = NodeList->FindByXY(Node1->X, Node1->Y);
- if (Node2->Nr != 0)
+ if (Node1->Nr != Node2->Nr)
{
- if (Node1->Nr != Node2->Nr)
+ if (DebugLevel >= 9)
{
- if (DebugLevel >= 9)
- {
- write_fortschritt("Lösche Knoten %d (%.2f, %.2f) ident mit Knoten %d (%.2f, %.2f)\n", Node2->Nr, Node2->X, Node2->Y, Node1->Nr, Node1->X, Node1->Y);
- }
- for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
- {
- TElement *Element2 = *k;
+ write_fortschritt("Lösche Knoten %d (%.2f, %.2f) ident mit Knoten %d (%.2f, %.2f)\n", Node1->Nr, Node1->X, Node1->Y, Node2->Nr, Node2->X, Node2->Y);
+ }
+ for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
+ {
+ TElement *Element2 = *k;
- if (Element2->Node1 == Node2) Element2->Node1 = Node1;
- if (Element2->Node2 == Node2) Element2->Node2 = Node1;
- if (Element2->Node3 == Node2) Element2->Node3 = Node1;
- }
- if (Node2->Nr > 0)
- {
- Node2->Nr = 0;
- KnotenGeloescht++;
- }
+ if (Element2->Node1 == Node1) Element2->Node1 = Node2;
+ if (Element2->Node2 == Node1) Element2->Node2 = Node2;
+ if (Element2->Node3 == Node1) Element2->Node3 = Node2;
}
+ Node1->Nr = 0;
+ KnotenGeloescht++;
}
}
@@ -794,28 +655,22 @@
{
TNode *Node2 = NodeList->FindByXY(Node1->X, Node1->Y);
- if (Node2->Nr != 0)
+ if (Node1->Nr != Node2->Nr)
{
- if (Node1->Nr != Node2->Nr)
+ if (DebugLevel >= 9)
{
- if (DebugLevel >= 9)
- {
- write_fortschritt("Lösche Knoten %d (%.2f, %.2f) ident mit Knoten %d (%.2f, %.2f)\n", Node2->Nr, Node2->X, Node2->Y, Node1->Nr, Node1->X, Node1->Y);
- }
- for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
- {
- TElement *Element2 = *k;
+ write_fortschritt("Lösche Knoten %d (%.2f, %.2f) ident mit Knoten %d (%.2f, %.2f)\n", Node1->Nr, Node1->X, Node1->Y, Node2->Nr, Node2->X, Node2->Y);
+ }
+ for (TElementList::iterator k = ElementList->begin(); k != ElementList->end(); k++)
+ {
+ TElement *Element2 = *k;
- if (Element2->Node1 == Node2) Element2->Node1 = Node1;
- if (Element2->Node2 == Node2) Element2->Node2 = Node1;
- if (Element2->Node3 == Node2) Element2->Node3 = Node1;
- }
- if (Node2->Nr > 0)
- {
- Node2->Nr = 0;
- KnotenGeloescht++;
- }
+ if (Element2->Node1 == Node1) Element2->Node1 = Node2;
+ if (Element2->Node2 == Node1) Element2->Node2 = Node2;
+ if (Element2->Node3 == Node1) Element2->Node3 = Node2;
}
+ Node1->Nr = 0;
+ KnotenGeloescht++;
}
}
Count++;
@@ -1123,11 +978,10 @@
{
TProfil* Profil = *i;
- std::string Gewaesser = Profil->Gewaesser;
int Station = Profil->Station;
int Wsp = Profil->Wsp;
- if (Wsp < -9999) continue;
+ if (Wsp == NoWsp) continue;
double Meter = 0.0;
@@ -1137,7 +991,7 @@
if (Meter < 0)
{
- write_error(3206, "Die Gewässerachse für das Gewässer '%s' schneidet die Profilspur %.4f nicht\n", Gewaesser.c_str(), Station / 10000.0);
+ write_error(3206, "Die Gewässerachse schneidet die Profilspur %.4f nicht\n", Station / 10000.0);
}
}
@@ -1154,19 +1008,17 @@
if (NextPoint && SperrenList->size() > 0)
{
- double X = 0.0;
- double Y = 0.0;
- double Lambda = 0.0;
- double Meter = 0.0;
-
- double PDx = NextPoint->X - Point->X;
- double PDy = NextPoint->Y - Point->Y;
- if (fabs(PDx) < 0.00000001 && fabs(PDy) < 0.00000001)
+ long PDx = NextPoint->X - Point->X;
+ long PDy = NextPoint->Y - Point->Y;
+ if (PDx == 0 && PDy == 0)
{
write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Point->X, Point->Y, NextPoint->X, NextPoint->Y);
}
- bool Found = CalcProfilSchnitt(Point->X, Point->Y, NextPoint->X, NextPoint->Y, SperrenList, &X, &Y, &Lambda, &Meter);
+ double DummyX = 0.0;
+ double DummyY = 0.0;
+ double DummyMeter = 0.0;
+ bool Found = CalcProfilSchnitt(Point->X, Point->Y, NextPoint->X, NextPoint->Y, SperrenList, &DummyX, &DummyY, &DummyMeter);
if (Found)
{
@@ -1221,11 +1073,6 @@
if (NextPoint && SperrenList->size() > 0)
{
- double X = 0.0;
- double Y = 0.0;
- double Lambda = 0.0;
- double Meter = 0.0;
-
double PDx = NextPoint->X - Point->X;
double PDy = NextPoint->Y - Point->Y;
if (fabs(PDx) < 0.00000001 && fabs(PDy) < 0.00000001)
@@ -1233,7 +1080,10 @@
write_error(3207, "Profil-Punkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Point->X, Point->Y, NextPoint->X, NextPoint->Y);
}
- bool Found = CalcProfilSchnitt(Point->X, Point->Y, NextPoint->X, NextPoint->Y, SperrenList, &X, &Y, &Lambda, &Meter);
+ double DummyX = 0.0;
+ double DummyY = 0.0;
+ double DummyMeter = 0.0;
+ bool Found = CalcProfilSchnitt(Point->X, Point->Y, NextPoint->X, NextPoint->Y, SperrenList, &DummyX, &DummyY, &DummyMeter);
if (Found)
{
@@ -1323,12 +1173,12 @@
}
else
{
- Node->Wsp = -999999;
+ Node->Wsp = NoWsp;
}
}
else
{
- Node->Wsp = -999999;
+ Node->Wsp = NoWsp;
}
Count++;
}
@@ -1473,12 +1323,10 @@
}
//---------------------------------------------------------------------------
-bool Calc2Schnitt (double P0x, double P0y, double P1x, double P1y, double S0x, double S0y, double S1x, double S1y, double *x, double *y, double *lambdap, double *lambdas)
+bool Calc2Schnitt (long P0x, long P0y, long P1x, long P1y, long S0x, long S0y, long S1x, long S1y, double *x, double *y)
{
*x = 0.0;
*y = 0.0;
- *lambdap = -9999;
- *lambdas = 9999;
if (P0x < S0x && P1x < S0x && P0x < S1x && P1x < S1x) return (false);
if (P0x > S0x && P1x > S0x && P0x > S1x && P1x > S1x) return (false);
@@ -1491,41 +1339,62 @@
long double SDx = S1x - S0x;
long double SDy = S1y - S0y;
- long double LambdaP = 0.0;
- long double LambdaS = 0.0;
+ long double Lambda = 0.0;
+ double Px = 0.0;
+ double Py = 0.0;
- if (fabs(PDx) < 0.00000001 && fabs(PDy) < 0.00000001)
+ if (PDx == 0 && PDy == 0)
{
dump_error(__FILE__, __LINE__, "Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x, P0y, P1x, P1y);
}
- else if (fabs(SDx) < 0.00000001 && fabs(SDy) < 0.00000001)
+ else if (SDx == 0 && SDy == 0)
{
dump_error(__FILE__, __LINE__, "Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x, P0y, P1x, P1y);
}
- else if (fabs(PDx) < 0.00000001 && fabs(SDx) < 0.00000001)
+ else if (PDx == 0 && SDx == 0)
{
// S-Strecke und P-Stecke sind beide senkrecht (parallel)
// Eigentlich müsse man hier noch auf identität testen
return (false);
}
- else if (fabs(PDy) < 0.00000001 && fabs(SDy) < 0.00000001)
+ else if (PDy == 0 && SDy == 0)
{
// S-Strecke und P-Stecke sind beide waagerecht (parallel)
// Eigentlich müsse man hier noch auf identität testen
return (false);
}
- else if (fabs(PDx) < 0.00000001)
+ else if (PDx == 0)
{
// P-Abschnitt senkrecht aber Spur-Abschnitt nicht
- LambdaS = (P0x - S0x) / SDx;
- LambdaP = ((S0y + LambdaS * SDy) - P0y) / PDy;
+ Lambda = (P0x - S0x) / SDx;
+
+ Px = P0x;
+ Py = S0y + Lambda * SDy;
}
- else if (fabs(PDy) < 0.00000001)
+ else if (PDy == 0)
{
// P-Abschnitt waagerecht aber Spur-Abschnitt nicht
- LambdaS = (P0y - S0y) / SDy;
- LambdaP = ((S0x + LambdaS * SDx) - P0x) / PDx;
+ Lambda = (P0y - S0y) / SDy;
+
+ Px = S0x + Lambda * SDx;
+ Py = P0y;
}
+ else if (SDx == 0)
+ {
+ // S-Abschnitt senkrecht aber P-Abschnitt nicht
+ Lambda = (S0x - P0x) / PDx;
+
+ Px = S0x;
+ Py = P0y + Lambda * PDy;
+ }
+ else if (SDy == 0)
+ {
+ // S-Abschnitt waagerecht aber P-Abschnitt nicht
+ Lambda = (S0y - P0y) / PDy;
+
+ Px = P0x + Lambda * PDx;
+ Py = S0y;
+ }
else if (fabs((SDy / PDy) - (SDx / PDx)) < 0.0001)
{
// Spur-Segment und PaPe->Abschnitt sind parallel
@@ -1538,40 +1407,105 @@
return (false);
}
- else
+ else if (fabs((PDy / SDy) - (PDx / SDx)) < 0.0001)
{
- LambdaS = (P0x + (S0y - P0y) / PDy * PDx - S0x) / (SDx - SDy / PDy * PDx); // !!!!
- LambdaP = (S0y + LambdaS * SDy - P0y) / PDy;
+ // Spur-Segment und PaPe->Abschnitt sind parallel
+ // fabs((SDy / PDy) - (SDx / PDx)) < 0.00001 entspricht
+ // SDy / PDy = SDx / PDx entspricht
+ // SDy / SDx = PDy / PDx (P-Steigung gleich S-Steigung) entspricht
+ // SDy / PDy = SDx / PDx entspricht
+ // SDy / PDy * PDx = SDx entspricht
+ // 0 = SDx - SDy / PDy * PDx (siehe unten !!!!)
+
+ return (false);
}
+ else if (fabs(PDy) >= fabs(SDy) && fabs(PDy) >= fabs(SDx) && fabs(PDy) >= fabs(PDx))
+ {
+ Lambda = (P0x - S0x + (S0y - P0y) * PDx / PDy) / (SDx - SDy * PDx / PDy); // !!!!
+ Px = S0x + Lambda * SDx;
+ Py = S0y + Lambda * SDy;
+ }
+ else if (fabs(PDx) >= fabs(SDy) && fabs(PDx) >= fabs(SDx) && fabs(PDx) >= fabs(PDy))
+ {
+ Lambda = (P0y + (S0x - P0x) / PDx * PDy - S0y) / (SDy - SDx / PDx * PDy); // !!!!
+ Px = S0x + Lambda * SDx;
+ Py = S0y + Lambda * SDy;
+ }
+ else if (fabs(SDy) >= fabs(PDy) && fabs(SDy) >= fabs(SDx) && fabs(SDy) >= fabs(PDx))
+ {
+ Lambda = (S0x + (P0y - S0y) / SDy * SDx - P0x) / (PDx - PDy / SDy * SDx); // !!!!
+ Px = P0x + Lambda * PDx;
+ Py = P0y + Lambda * PDy;
+ }
+ else if (fabs(SDx) >= fabs(SDy) && fabs(SDx) >= fabs(PDy) && fabs(SDx) >= fabs(PDx))
+ {
+ Lambda = (S0y + (P0x - S0x) / SDx * SDy - P0y) / (PDy - PDx / SDx * SDy); // !!!!
+ Px = P0x + Lambda * PDx;
+ Py = P0y + Lambda * PDy;
+ }
- long double Px = P0x + LambdaP * PDx;
- long double Py = P0y + LambdaP * PDy;
+ double LambdaP = 0.0;
+ if (PDx != 0) LambdaP = (Px - P0x) / PDx;
+ else LambdaP = (Py - P0y) / PDy;
- long double Sx = S0x + LambdaS * SDx;
- long double Sy = S0y + LambdaS * SDy;
+ double LambdaS = 0.0;
+ if (SDx != 0) LambdaS = (Px - S0x) / SDx;
+ else LambdaS = (Py - S0y) / SDy;
+ double TPX = P0x + LambdaP * PDx;
+ double TPY = P0y + LambdaP * PDy;
+
+ double TSX = S0x + LambdaS * SDx;
+ double TSY = S0y + LambdaS * SDy;
+
+ if (fabs(TPX - Px) > 0.1)
+ {
+ write_fortschritt("%d,%d %d,%d\n", P0x, P0y, P1x, P1y);
+ write_fortschritt("%d,%d %d,%d\n", S0x, S0y, S1x, S1y);
+ write_fortschritt("%.2f,%.2f\n", Px, Py);
+ dump_error(__FILE__, __LINE__, "TPX nicht koorekt");
+ }
+
+ if (fabs(TPY - Py) > 0.1)
+ {
+ write_fortschritt("%d,%d %d,%d\n", P0x, P0y, P1x, P1y);
+ write_fortschritt("%d,%d %d,%d\n", S0x, S0y, S1x, S1y);
+ write_fortschritt("%.2f,%.2f\n", Px, Py);
+ dump_error(__FILE__, __LINE__, "TPY nicht koorekt");
+ }
+
+ if (fabs(TSX - Px) > 0.1)
+ {
+ write_fortschritt("%d,%d %d,%d\n", P0x, P0y, P1x, P1y);
+ write_fortschritt("%d,%d %d,%d\n", S0x, S0y, S1x, S1y);
+ write_fortschritt("%.2f,%.2f\n", Px, Py);
+ dump_error(__FILE__, __LINE__, "TSX nicht koorekt");
+ }
+
+ if (fabs(TSY - Py) > 0.1)
+ {
+ write_fortschritt("%d,%d %d,%d\n", P0x, P0y, P1x, P1y);
+ write_fortschritt("%d,%d %d,%d\n", S0x, S0y, S1x, S1y);
+ write_fortschritt("%.2f,%.2f\n", Px, Py);
+ dump_error(__FILE__, __LINE__, "TSY nicht koorekt");
+ }
+
+
*x = Px;
*y = Py;
- *lambdap = LambdaP;
- *lambdas = LambdaS;
if (LambdaP < 0.0 || LambdaP > 1.0) return (false);
if (LambdaS < 0.0 || LambdaS > 1.0) return (false);
- if (fabs(Px-Sx) > 0.001 || fabs(Py-Sy) > 0.001)
- {
- dump_error (__FILE__, __LINE__, "Errechnete Punkte sind nicht identisch (%10.5f,%10.5f) und (%10.5f,%10.5f)\n", Px, Py, Sx, Sy);
- }
-
return (true);
}
//---------------------------------------------------------------------
-bool CalcProfilSchnitt (double P0x, double P0y, double P1x, double P1y, TProfilList *ProfilList, double *x, double *y, double *lambdap, double *meter)
+bool CalcProfilSchnitt (long P0x, long P0y, long P1x, long P1y, TProfilList *ProfilList, double *x, double *y, double *meter)
{
- double PDx = P1x - P0x;
- double PDy = P1y - P0y;
- if (fabs(PDx) < 0.00000001 && fabs(PDy) < 0.00000001)
+ long PDx = P1x - P0x;
+ long PDy = P1y - P0y;
+ if (PDx == 0 && PDy == 0)
{
dump_error(__FILE__, __LINE__, "Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x, P0y, P1x, P1y);
}
@@ -1596,25 +1530,29 @@
S1 = *j;
}
- double S0x = S0->X;
- double S0y = S0->Y;
- double S1x = S1->X;
- double S1y = S1->Y;
+ long S0x = S0->X;
+ long S0y = S0->Y;
+ long S1x = S1->X;
+ long S1y = S1->Y;
- double SDx = S1x - S0x;
- double SDy = S1y - S0y;
- if (fabs(SDx) < 0.00000001 && fabs(SDy) < 0.00000001)
+ long SDx = S1x - S0x;
+ long SDy = S1y - S0y;
+ if (SDx == 0 && SDy == 0)
{
- write_error(3207, "Profil-Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", S0x, S0y, S1x, S1y);
+ write_error(3207, "Profil-Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", S0x / 100.0, S0y / 100.0, S1x / 100.0, S1y / 100.0);
}
- double LambdaS;
- bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, x, y, lambdap, &LambdaS);
+ bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, x, y);
if (Found)
{
- *meter = S0->Meter + LambdaS * (S1->Meter - S0->Meter);
+ double Lambda = 0.0;
+ if (PDx != 0) Lambda = (*x - P0x) / PDx;
+ else if (PDy != 0) Lambda = (*y - P0y) / PDy;
+ else dump_error(__FILE__, __LINE__, "Profil-Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x / 100.0, P0y / 100.0, P1x / 100.0, P1y / 100.0);
+ *meter = S0->Meter + Lambda * (S1->Meter - S0->Meter);
+
return (true);
}
}
@@ -1738,7 +1676,7 @@
OnBoundary = false;
}
- if (Edge->X > 0.0 && Edge->Y > 0.0)
+ if (Edge->X > 0 && Edge->Y > 0)
{
if (Edge->Ready) return(false);
@@ -1868,41 +1806,12 @@
{
TNode *Node = *n++;
TNode *SaveNode = *s++;
- if (SaveNode->Z > -9999 && SaveNode->Z < 9999) Node->Z = SaveNode->Z + DeltaTopo;
- else Node->Z = SaveNode->Z;
- if (SaveNode->Wsp > Node->Z + Eps)
- {
- Node->Wsp = SaveNode->Wsp;
- }
- else
- {
- Node->Wsp = SaveNode->Wsp;
- }
- }
+ if (SaveNode->Z != GrabenZ && SaveNode->Z != DammZ) Node->Z = SaveNode->Z + DeltaTopo;
+ else Node->Z = SaveNode->Z;
- // Alle trockenen Werte in der Topographie etwas verändert
-/*
- for (int i=0; i<Net2->AnzNodes(); i++)
- {
- TNode *NodeNeu = Net2->FindNodeByIndex(i);
-
- TNode *NodeAlt = Net->FindNodeByXY(NodeNeu->X, NodeNeu->Y);
-
- if (NodeAlt->Wsp <= EPS)
- {
- NodeNeu->Z = NodeNeu->Z + OptionenTopoDiff;
- NodeNeu->Vx = 0.0;
- NodeNeu->Vy = 0.0;
- NodeNeu->Wsp = -9999.9;
- }
- else
- {
- NodeNeu->Wsp = NodeAlt->Wsp;
- NodeNeu->Vx = NodeAlt->Vx;
- NodeNeu->Vy = NodeAlt->Vy;
- }
+ if (SaveNode->Wsp > Node->Z + Eps) Node->Wsp = SaveNode->Wsp;
+ else Node->Wsp = SaveNode->Wsp;
}
-*/
if (DebugLevel >= 2) write_fortschritt("Maximalen Wasserstand ermitteln\n");
@@ -1924,7 +1833,7 @@
{
TNode *Node = *i;
- if (Node->Wsp > -9999 || Node->Z > MaxWsp) Ready++;
+ if (Node->Wsp != NoWsp || Node->Z > MaxWsp) Ready++;
}
if (DebugLevel >= 2) write_fortschritt("Erste Kanten mit Nass/Trocken-Übergang ermitteln\n");
@@ -1936,11 +1845,11 @@
{
TEdge *Edge = *i;
- if (Edge->Node1->Wsp < -9999 && Edge->Node2->Wsp > -9999 && Edge->Node2->Wsp > Edge->Node2->Z + Eps)
+ if (Edge->Node1->Wsp == NoWsp && Edge->Node2->Wsp != NoWsp && Edge->Node2->Wsp > Edge->Node2->Z + Eps)
{
Temp2EdgeList->Add(Edge);
}
- else if (Edge->Node2->Wsp < -9999 && Edge->Node1->Wsp > -9999 && Edge->Node1->Wsp > Edge->Node1->Z + Eps)
+ else if (Edge->Node2->Wsp == NoWsp && Edge->Node1->Wsp != NoWsp && Edge->Node1->Wsp > Edge->Node1->Z + Eps)
{
Temp2EdgeList->Add(Edge);
}
@@ -1966,11 +1875,11 @@
{
TEdge *Edge = *i;
- if (Edge->Node1->Wsp < -9999 && Edge->Node2->Wsp > -9999 && Edge->Node2->Wsp > Edge->Node2->Z + Eps)
+ if (Edge->Node1->Wsp == NoWsp && Edge->Node2->Wsp != NoWsp && Edge->Node2->Wsp > Edge->Node2->Z + Eps)
{
TempEdgeList->Add(Edge);
}
- else if (Edge->Node2->Wsp < -9999 && Edge->Node1->Wsp > -9999 && Edge->Node1->Wsp > Edge->Node1->Z + Eps)
+ else if (Edge->Node2->Wsp == NoWsp && Edge->Node1->Wsp != NoWsp && Edge->Node1->Wsp > Edge->Node1->Z + Eps)
{
TempEdgeList->Add(Edge);
}
@@ -1985,14 +1894,13 @@
{
TEdge *Edge = *i;
- if (Edge->Node1->Wsp < -9999 && Edge->Node2->Wsp > -9999)
+ if (Edge->Node1->Wsp == NoWsp && Edge->Node2->Wsp != NoWsp)
{
if (Edge->Node2->Wsp <= Edge->Node2->Z + Eps)
{
dump_error(__FILE__, __LINE__, "Ein Knoten Kantenendknoten %d ist unter Gelände aber nass", Edge->Node2->Nr);
}
-// !!! hier war früher ein negativ setzen
Edge->Node1->Wsp = Edge->Node2->Wsp;
// Hier jetzt neue potentielle Kanten aufnehmen
@@ -2010,14 +1918,13 @@
Changed++;
}
- else if (Edge->Node2->Wsp < -9999.0 && Edge->Node1->Wsp > -9999)
+ else if (Edge->Node2->Wsp == NoWsp && Edge->Node1->Wsp != NoWsp)
{
if (Edge->Node1->Wsp <= Edge->Node1->Z + Eps)
{
dump_error(__FILE__, __LINE__, "Ein Knoten Kantenstartknoten %d ist unter Gelände aber nass", Edge->Node1->Nr);
}
-// !!! hier war früher ein negativ setzen
Edge->Node2->Wsp = Edge->Node1->Wsp;
// Hier jetzt neue potentielle Kanten aufnehmen
@@ -2037,23 +1944,6 @@
}
}
-/*
- Hier musste man früher die negativen umdrehen
- for (TEdgeListDistanceSorted::iterator i = TempEdgeList->EdgeListDistanceSorted.begin(); i != TempEdgeList->EdgeListDistanceSorted.end(); i++)
- {
- TEdge *Edge = *i;
-
- if (Edge->Node1->Wsp > -9999 && Edge->Node1->Wsp < -9999)
- {
- Edge->Node1->Wsp = -Edge->Node1->Wsp;
- }
- if (Edge->Node2->Wsp > -9999 && Edge->Node2->Wsp < -9999)
- {
- Edge->Node2->Wsp = -Edge->Node2->Wsp;
- }
- }
-*/
-
Ready = Ready + Changed;
} while (Changed > 0);
@@ -2126,11 +2016,11 @@
if (fabs(D2) >= 0.00001) Faktor = 1 / (1 + D1/D2);
- if (Z1 < -9999 || Z1 > 9999)
+ if (Z1 == GrabenZ || Z1 == DammZ)
{
- Faktor = 0.99;
- }
- else if (Z2 < -9999 || Z2 > 9999)
+ Faktor = 0.99;
+ }
+ else if (Z2 == GrabenZ || Z2 == DammZ)
{
Faktor = 0.01;
}
Modified: trunk/src/tools.h
===================================================================
--- trunk/src/tools.h 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/tools.h 2006-06-09 19:54:01 UTC (rev 51)
@@ -54,17 +54,15 @@
std::string ToUpperCase(std::string InString);
long double CrossProduct(double X1, double Y1, double X2, double Y2, double X3, double Y3);
bool CircumCircle(double X1, double Y1, double X2, double Y2, double X3, double Y3, double *CX, double *CY, double *CR);
-long CheckSpeed(int DebugLevel);
const char* ShapeTypeName(TShpType ShapeType);
const char* ShapePartTypeName(TPartType PartType);
char* SkipSpaces(char* P);
char* GetCol(char* P);
double TwoToWin (double x0, double y0, double x1, double y1);
double ThreeToWin (double x0, double y0, double x1, double y1, double x2, double y2, int turn);
-bool Calc2Schnitt (double P0x, double P0y, double P1x, double P1y, double S0x, double S0y, double S1x, double S1y, double *x, double *y, double *lambdap, double *lambdas);
-bool CalcProfilSchnitt (double P0x, double P0y, double P1x, double P1y, TProfilList *ProfilList, double *x, double *y, double *lambdap, double *meter);
+bool Calc2Schnitt (long P0x, long P0y, long P1x, long P1y, long S0x, long S0y, long S1x, long S1y, double *x, double *y);
+bool CalcProfilSchnitt (long P0x, long P0y, long P1x, long P1y, TProfilList *ProfilList, double *x, double *y, double *meter);
void InterpolateWsp(TProfilList *ProfilList, TProfilList *WspProfilList, int DebugLevel);
-TProfilMap BuildGewaesserListen(TProfilList *ProfilList, int DebugLevel);
void BuildPolygon(TProfilList *ProfilList, TXYList *XyList, int DebugLevel);
void EqualizeProfil(TProfil *ProfilOne, TProfil *ProfilTwo);
void CheckForDuplicates(TNodeList *NodeList, TElementList *ElementList, int DebugLevel);
Modified: trunk/src/tri.cpp
===================================================================
--- trunk/src/tri.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/tri.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -324,7 +324,7 @@
long X = (long)(SX + SR * cos(i * 2.0 * M_PI / Anz) + 0.5);
long Y = (long)(SY + SR * sin(i * 2.0 * M_PI / Anz) + 0.5);
- TNode* NewNode = new TNode(NodeList->MaxNr+1, X, Y, 9999);
+ TNode* NewNode = new TNode(NodeList->MaxNr+1, X, Y, 12345);
NodeList->Add(NewNode);
}
Modified: trunk/src/wsplgen.cpp
===================================================================
--- trunk/src/wsplgen.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/wsplgen.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -83,8 +83,8 @@
TProfilList GrabenList;
TProfilList RohreList;
- // Hier wird das aktuelle Begrenzungspolygon für den aktuellen Bereich drin verwaltet
- TXYList Bereichspolygon;
+ // Hier wird das aktuelle Begrenzungspolygon drin verwaltet
+ TXYList BegrenzungsPolygon;
// Hier werden dir Knoten des DGM drin verwaltet
// (und an andere Klassen in Form von Pointern ausgeliehen)
@@ -154,296 +154,230 @@
LoadLinien(Parameter.FileNameLin, &SperrenList, &GrabenList, &RohreList, Parameter.DebugLevel);
}
- // Jetzt die Profile nach Gewaessern trennen
- TProfilMap ProfilMap = BuildGewaesserListen(&ProfilList, Parameter.DebugLevel);
-
- // Ab jetzt werden die Profile nur noch über die GewProfilList verwaltet
- ProfilList.clear();
-
- // Ungefähre Geschwindigkeit ermitteln, als Grundlage für die Entscheidung
- // ob in Scheiben gearbeitet werden soll
int MaxNodesPerSlice = Parameter.MaxNodesPerSlice;
if (false == Parameter.IsSetMaxNodesPerSlice)
{
- long Speed = CheckSpeed(Parameter.DebugLevel);
- // Eine rein empirische Formel
- MaxNodesPerSlice = Speed * 11;
- write_fortschritt("Es können ca. %d Geländepunkte pro Bearbeitungsabschnitt eingelesen werden\n", MaxNodesPerSlice);
+ MaxNodesPerSlice = 2000000000;
+ write_fortschritt("Es wird versucht beliebig viele (%d) Geländepunkte einzulesen\n", MaxNodesPerSlice);
}
- // Jetzt die Gewasser der Reihe nach bearbeiten
- // Für jedes Gewaesser gibt es eine Profilliste in der ProfilMap
- for (TProfilMap::iterator GewaesserIter = ProfilMap.begin(); GewaesserIter != ProfilMap.end(); GewaesserIter++)
- {
- std::string Gewaesser = GewaesserIter->first;
+ // Jetzt ein Polygon bilden, das die Profile begrenzt
+ BuildPolygon(&ProfilList, &BegrenzungsPolygon, Parameter.DebugLevel);
- write_fortschritt("->Bearbeitung von Gewässer '%s' gestartet\n", Gewaesser.c_str());
+ if (Parameter.DebugLevel >= 4) SavePolygon("debug_output\\03_Polygon.shp", &BegrenzungsPolygon, Parameter.DebugLevel);
- TProfilList *GewProfilList = GewaesserIter->second;
+ if (ProfilList.size() < 100)
+ {
+ TProfil* FirstProfil = *ProfilList.begin();
+ TProfil* LastProfil = *ProfilList.rbegin();
- TProfil *FirstProfil = *GewProfilList->begin();
- TProfil *LastProfil = *GewProfilList->rbegin();
+ double SollAbstand = (LastProfil->Station - FirstProfil->Station) / 100.0;
+ SollAbstand = (int)(SollAbstand * 10000.0 + 0.5) / 10000.0;
- // Jetzt ein Polygon bilden, das die Profile begrenzt
- BuildPolygon(GewProfilList, &Bereichspolygon, Parameter.DebugLevel);
+ ProfilList.InterpoliereProfile(SollAbstand);
+ }
- if (Parameter.DebugLevel >= 4) SavePolygon("debug_output\\03_" + Gewaesser + "_Polygon" + ".shp", Gewaesser, 0, 0, &Bereichspolygon, Parameter.DebugLevel);
+ // Mal wieder Zwischenergebnisse produzieren
+ if (Parameter.DebugLevel >= 5) SaveProfile("debug_output\\04_Profile_100.shp", &ProfilList, Parameter.DebugLevel);
- if (GewProfilList->size() < 100)
- {
- double SollAbstand = (LastProfil->Station - FirstProfil->Station) / 100.0;
- SollAbstand = (int)(SollAbstand * 10000.0 + 0.5) / 10000.0;
+ // Hier werden die Elemente drin verwaltet
+ // Die Elemente werden aus ausgeliehenen Knoten gebildet
+ // Daher muss man immer erst die Knoten einlesen und dann die Elemente
+ // Eigentlich braucht man die Elemente nicht
+ TElementList *ElementList = new TElementList;
- GewProfilList->InterpoliereProfile(SollAbstand);
- }
+ unsigned int AnzScheiben = LoadDGM(Parameter.FileNameDgm, &NodeList, ElementList, &BegrenzungsPolygon, MaxNodesPerSlice, Parameter.DebugLevel);
- // Hier werden die Elemente drin verwaltet
- // Die Elemente werden aus ausgeliehenen Knoten gebildet
- // Daher muss man immer erst die Knoten einlesen und dann die Elemente
- // Eigentlich braucht man die Elemente nicht
- TElementList *ElementList = new TElementList;
+ // Wenn LoadDGM eine Scheibenanzahl von mehr als 1 ergeben hat, ist das DGM nicht vollständig,
+ // es muss jetzt mit Scheiben gearbeitet werden.
+ if (AnzScheiben > 1)
+ {
+ write_warning(3103, "Die Anzahl der gewünschten Bearbeitungsabschnitte (%d) ist größer als 1.\nEs wird nicht das ganze DGM verwendet.\n", AnzScheiben);
+ }
- // Mal wieder Zwischenergebnisse produzieren
- if (Parameter.DebugLevel >= 5) SaveProfile("debug_output\\04_" + Gewaesser + "_Profile_100" + ".shp", GewProfilList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 7) SaveNet("debug_output\\05_Net.2dm", &NodeList, ElementList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveNodes("debug_output\\05_Nodes.shp", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\05_Elements.shp", ElementList, Parameter.DebugLevel);
- unsigned int AnzScheiben = LoadDGM(Parameter.FileNameDgm, &NodeList, ElementList, &Bereichspolygon, MaxNodesPerSlice, Parameter.DebugLevel);
+ // Wenn die Elementliste noch leer ist, müssen die Knoten noch trianguliert werden.
+ if (ElementList->size() == 0)
+ {
+ double MinX = NodeList.MinX;
+ double MaxX = NodeList.MaxX;
+ double MinY = NodeList.MinY;
+ double MaxY = NodeList.MaxY;
- // Wenn LoadDGM eine Scheibenanzahl von mehr als 1 ergeben hat, ist das DGM nicht geladen,
- // es muss jetzt mit Scheiben gearbeitet werden.
- if (GewProfilList->size() - 1 < AnzScheiben)
- {
- write_warning(3103, "Die Anzahl der gewünschten Bearbeitungsabschnitte (%d) ist größer als die Anzahl der Profile minus 1 (%d).\n", AnzScheiben, GewProfilList->size() - 1);
- AnzScheiben = GewProfilList->size() - 1;
- }
+ double KreisX = (MinX + MaxX) /2.0;
+ double KreisY = (MinY + MaxY) /2.0;
- write_fortschritt("Das Gewässer '%s' wird in %d Bearbeitungsabschnitte aufgeteilt\n", Gewaesser.c_str(), AnzScheiben);
+ double R1 = 1.1 * sqrt((MaxX - KreisX) * (MaxX - KreisX) + (MaxY - KreisY) * (MaxY - KreisY));
+ double R2 = 1.1 * sqrt((MaxX - KreisX) * (MaxX - KreisX) + (MinY - KreisY) * (MinY - KreisY));
- TBereichsList BereichsList(GewProfilList, AnzScheiben);
+ double KreisR = R1;
+ if (R2 > R1) KreisR = R2;
- int Count = 0;
- for (TBereichsList::iterator i=BereichsList.begin(); i != BereichsList.end(); i++)
- {
- Count++;
+ int KreisAnz = 0;
- TProfilList::iterator Von = i->first;
- TProfilList::iterator Bis = i->second;
+ if (false == Triangulate (&NodeList, ElementList, Parameter.DebugLevel, KreisAnz, KreisX, KreisY, KreisR)) return (false);
+ }
- TProfil *VonProfil = *Von;
- TProfil *BisProfil = *Bis;
+ NodeList.SortByNr();
- char VC[100];
- char NC[100];
+ if (Parameter.DebugLevel >= 7) SaveNet("debug_output\\06_Net_Tri.2dm", &NodeList, ElementList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveNodes("debug_output\\06_Nodes_Tri.shp", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\06_Elements_Tri.shp", ElementList, Parameter.DebugLevel);
- sprintf (VC, "_Von%d", VonProfil->Station);
- sprintf (NC, "_Bis%d", BisProfil->Station);
+ if (SperrenList.size() > 0 || GrabenList.size() > 0)
+ {
+ // Jetzt die gesperrten Elemente entfernen
+ ElementList->ChangeElements(&NodeList, &SperrenList, &GrabenList, Parameter.DebugLevel);
+ CheckForDuplicates(&NodeList, ElementList, Parameter.DebugLevel);
+ }
- write_fortschritt("->Bearbeitung vom %d. von %d Bereichen gestartet\n", Count, BereichsList.size());
- write_fortschritt("Gewässer %s, Bereich %.4f bis %.4f\n", Gewaesser.c_str(), VonProfil->Station / 10000.0, BisProfil->Station / 10000.0);
+ if (Parameter.DebugLevel >= 7) SaveNet("debug_output\\07_Net_Lines.2dm", &NodeList, ElementList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveNodes("debug_output\\07_Nodes_Lines.shp", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\07_Elements_Lines.shp", ElementList, Parameter.DebugLevel);
- // Als Endemarkierung
- Bis++;
+ // Hier werden die Kanten drin verwaltet
+ // Die Kanten werden im Moment noch aus den Elementen generiert
+ // Dieser Umweg ist eigendlich nicht notwendig
+ // Der durchschnittliche Abstand der Knoten (bzw. die Kantenlänge) wird dabei mit ermittelt.
+ // Das DGM sollte einigermassen homogen sein
+ TEdgeList* EdgeList = new TEdgeList;
+ BuildEdgeList(&NodeList, ElementList, EdgeList, Parameter.DebugLevel);
- TProfilList *TempProfilList = new TProfilList;
- for (TProfilList::iterator P = Von; P != Bis; P++)
- {
- TProfil *TempProfil = new TProfil(*P);
- TempProfilList->insert(TempProfil);
- }
+ // Die Elemete werden nun nicht mehr gebraucht
+ // delete ElementList;
+ // ElementList = 0;
- // Jetzt das Polygon bilden, das die Profile begrenzen
- BuildPolygon(TempProfilList, &Bereichspolygon, Parameter.DebugLevel);
+ // Den alten Knoten Kanten Index löschen
+ NodeList.ClearEdgeIndex();
- if (Parameter.DebugLevel >= 4) SavePolygon("debug_output\\05_" + Gewaesser + "_Polygon_" + VC + NC + ".shp", Gewaesser, 0, 0, &Bereichspolygon, Parameter.DebugLevel);
+ // Einen neuen Knoten Kanten Index aufbauen
+ EdgeList->BuildEdgeIndex();
- if (AnzScheiben > 1)
- {
- LoadDGM(Parameter.FileNameDgm, &NodeList, ElementList, &Bereichspolygon, 99999999, Parameter.DebugLevel);
- }
+ if (Parameter.DebugLevel >= 4) SaveEdges("debug_output\\08_Edges.shp", EdgeList, Parameter.DebugLevel);
- // Wenn die Elementliste noch leer ist, müssen die Knoten noch trianguliert werden.
- if (ElementList->size() == 0)
- {
- if (false == Triangulate (&NodeList, ElementList, Parameter.DebugLevel)) return (false);
- }
+ // Nachdem die durchschnittliche Kantenlänge bekannt ist,
+ // wird sie für die spätere Verwendung zwischengespeichert
+ double AvgDistance = EdgeList->AvgDistance;
- NodeList.SortByNr();
+ write_fortschritt("Die mittlere Kantenlänge beträgt %.2f.\n", AvgDistance / 100.0);
- if (Parameter.DebugLevel >= 7) SaveNet("debug_output\\06_" + Gewaesser + "_Net_" + VC + NC + ".2dm", &NodeList, ElementList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 5) SaveNodes("debug_output\\07_" + Gewaesser + "_Nodes_" + VC + NC + ".shp", &NodeList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\08_" + Gewaesser + "_Elements_" + VC + NC + ".shp", ElementList, Parameter.DebugLevel);
+ // Nachdem die durchschnittliche Kantenlänge bekannt ist,
+ // werden die Profile entsprechend fein interpoliert
+ // Dabei muss der Faktor zwischen Kantenlänge in Metern
+ // und Station in Centimetern beachtet werden
+ ProfilList.InterpoliereProfile(AvgDistance * 10.0);
- if (SperrenList.size() > 0 || GrabenList.size() > 0)
- {
- // Jetzt die gesperrten Elemente entfernen
- ElementList->ChangeElements(&NodeList, &SperrenList, &GrabenList, Parameter.DebugLevel);
- CheckForDuplicates(&NodeList, ElementList, Parameter.DebugLevel);
- }
+ // Mal wieder Zwischenergebnisse produzieren
+ if (Parameter.DebugLevel >= 5) SaveProfile("debug_output\\09_Profile_all.shp", &ProfilList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 7) SaveNet("debug_output\\09_" + Gewaesser + "_Net_" + VC + NC + ".2dm", &NodeList, ElementList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 5) SaveNodes("debug_output\\10_" + Gewaesser + "_Nodes_" + VC + NC + ".shp", &NodeList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\11_" + Gewaesser + "_Elements_" + VC + NC + ".shp", ElementList, Parameter.DebugLevel);
+ // Jetzt die Stützstellen auffüllen
+ ProfilList.FillProfile(AvgDistance / 2.0, -1, Parameter.DebugLevel);
- // Hier werden die Kanten drin verwaltet
- // Die Kanten werden im Moment noch aus den Elementen generiert
- // Dieser Umweg ist eigendlich nicht notwendig
- // Der durchschnittliche Abstand der Knoten (bzw. die Kantenlänge) wird dabei mit ermittelt.
- // Das DGM sollte einigermassen homogen sein
- TEdgeList* EdgeList = new TEdgeList;
- BuildEdgeList(&NodeList, ElementList, EdgeList, Parameter.DebugLevel);
+ // Mal wieder Zwischenergebnisse produzieren
+ if (Parameter.DebugLevel >= 7) SaveProfile("debug_output\\10_Profile_fill.shp", &ProfilList, Parameter.DebugLevel);
- // Die Elemete werden nun nicht mehr gebraucht
- delete ElementList;
- ElementList = 0;
+ // Jetzt eine neue Knotenliste aus den Profilen generienen
+ BuildProfilNodeList(&ProfilList, &NodeList, &GewaesserAchseList, &SperrenList, &ProfilNodeList, AvgDistance * 2.0, Parameter.Sperre, Parameter.DebugLevel);
- // Den alten Knoten Kanten Index löschen
- NodeList.ClearEdgeIndex();
+ if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\11_ProfilNodes.shp", &ProfilNodeList, Parameter.DebugLevel);
- // Einen neuen Knoten Kanten Index aufbauen
- EdgeList->BuildEdgeIndex();
+ // Jetzt die Wasserstände der Profile übertragen
+ TransferWsp(&ProfilNodeList, &NodeList, &SperrenList, AvgDistance / 2.0, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 4) SaveEdges("debug_output\\12_" + Gewaesser + "_Edges_" + VC + NC + ".shp", EdgeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\12_Nodes_mit_WSP.shp", &NodeList, Parameter.DebugLevel);
- // Nachdem die durchschnittliche Kantenlänge bekannt ist,
- // wird sie für die spätere Verwendung zwischengespeichert
- double AvgDistance = EdgeList->AvgDistance;
+ if (RohreList.size() > 0)
+ {
+ // Jetzt den Wasserstand aus der NodeList extrahieren
+ GetWspFromNodeList(&NodeList, &RohreList, AvgDistance * 2.0, Parameter.DebugLevel);
- write_fortschritt("Die mittlere Kantenlänge beträgt %.2f.\n", AvgDistance);
+ // Jetzt die Wasserstände der Rohre übertragen
+ TransferWsp(&RohreList, &NodeList, AvgDistance * 2.0, Parameter.DebugLevel);
+ }
- // Nachdem die durchschnittliche Kantenlänge bekannt ist,
- // werden die Profile entsprechend fein interpoliert
- // Dabei muss der Faktor zwischen Kantenlänge in Metern
- // und Station in Centimetern beachtet werden
- TempProfilList->InterpoliereProfile(AvgDistance * 10.0);
+ ProfilNodeList.Clear();
- // Mal wieder Zwischenergebnisse produzieren
- if (Parameter.DebugLevel >= 5) SaveProfile("debug_output\\13_" + Gewaesser + "_Profile_all_" + VC + NC + ".shp", TempProfilList, Parameter.DebugLevel);
+ ProfilList.Clear();
- // Jetzt die Stützstellen auffüllen
- TempProfilList->FillProfile(AvgDistance / 2.0, -1, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\13_Nodes_mit_WSP_mit_rohr.shp", &NodeList, Parameter.DebugLevel);
- // Mal wieder Zwischenergebnisse produzieren
- if (Parameter.DebugLevel >= 7) SaveProfile("debug_output\\14_" + Gewaesser + "_Profile_fill_" + VC + NC + ".shp", TempProfilList, Parameter.DebugLevel);
+ // Wurde der Wert für das Argument 'Bis' beim Parameter -DELTA nicht gesetzt
+ // so ist jetzt die Zeit das nachzuholen
+ if (false == Parameter.IsSetBis)
+ {
+ Parameter.Bis = NodeList.GetMaxDepth(Parameter.DebugLevel);
+ }
- // Jetzt eine neue Knotenliste aus den Profilen generienen
- BuildProfilNodeList(TempProfilList, &NodeList, &GewaesserAchseList, &SperrenList, &ProfilNodeList, AvgDistance * 2.0, Parameter.Sperre, Parameter.DebugLevel);
+ // Nachdem nun 'Bis' sicher gesetzt ist, kann nun auch Diff bestimmt werden,
+ // wenn es nicht schon bestimmt wurde
+ if (false == Parameter.IsSetDiff)
+ {
+ Parameter.Diff = (int)((Parameter.Bis - Parameter.Von) / 10.0 + 0.5);
+ if (Parameter.Bis - Parameter.Von < 0) Parameter.Diff = (int)((Parameter.Bis - Parameter.Von) / 10.0 - 0.5);
+ }
- if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\15_" + Gewaesser + "_ProfilNodes_" + VC + NC + ".shp", &ProfilNodeList, Parameter.DebugLevel);
+ if (Parameter.Von > Parameter.Bis)
+ {
+ write_error(1210, "Das Argument <Von> (%.2f) ist größer als das Argument <Bis> (%.2f).\nGeben sie bitte sowohl den Parameter <Von> als auch den Parameter <Bis> sinnvoll an.\n", Parameter.Von / 100.0, Parameter.Bis / 100.0);
+ }
- // Jetzt die Wasserstände der Profile übertragen
- TransferWsp(&ProfilNodeList, &NodeList, &SperrenList, AvgDistance / 2.0, Parameter.DebugLevel);
+ if (Parameter.Diff <= 0.0)
+ {
+ if (Parameter.Bis != Parameter.Von)
+ {
+ write_error(1212, "Das Argument <Diff> darf nur dann Null sein, wenn <Von> (%.2f) und <Bis> (%.2f) gleich sind.\n", Parameter.Von / 100.0, Parameter.Bis / 100.0);
+ }
+ else
+ {
+ // Wenn 'Von' == 'Bis' ist
+ // wird Diff auf 1 gesetzt
+ // Der Wert spielt keine Rolle, nur größer als Null sollte er sein.
+ Parameter.Diff = 1;
+ }
+ }
- if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\16_" + Gewaesser + "_Nodes_mit_WSP_" + VC + NC + ".shp", &NodeList, Parameter.DebugLevel);
+ TErgebnisPolygonList* TempErgebnisPolygone = new TErgebnisPolygonList;
+ NassTrockenBerechnung(&NodeList, EdgeList, TempErgebnisPolygone, Parameter.Von, Parameter.Bis, Parameter.Diff, Parameter.DebugLevel);
- if (RohreList.size() > 0)
- {
- // Jetzt den Wasserstand aus der NodeList extrahieren
- GetWspFromNodeList(&NodeList, &RohreList, AvgDistance * 2.0, Parameter.DebugLevel);
+ NodeList.SortByNr();
- // Jetzt die Wasserstände der Rohre übertragen
- TransferWsp(&RohreList, &NodeList, AvgDistance * 2.0, Parameter.DebugLevel);
- }
+ if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\14_Nodes_mit_WSP_fertig.shp", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 4) SaveSol("debug_output\\14_Nodes_mit_WSP_fertig.sol", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 4) SaveNet("debug_output\\14_Nodes_mit_WSP_fertig.2dm", &NodeList, 0, Parameter.DebugLevel);
- ProfilNodeList.Clear();
+ ErgebnisPolygonList.Append(TempErgebnisPolygone);
- delete TempProfilList;
+ if (Parameter.DebugLevel >= 8)
+ {
+ for (TErgebnisPolygonList::iterator i = ErgebnisPolygonList.begin(); i != ErgebnisPolygonList.end(); i++)
+ {
+ TErgebnisPolygon* ErgebnisPolygon = *i;
+ double AktDiff = ErgebnisPolygon->Diff;
- if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\17_" + Gewaesser + "_Nodes_mit_WSP_" + VC + NC + ".shp", &NodeList, Parameter.DebugLevel);
+ if (Parameter.DebugLevel >= 9) write_fortschritt("Wassertiefe %.2f\n", AktDiff / 100.0);
+ }
+ }
- // Wurde der Wert für das Argument 'Bis' beim Parameter -DELTA nicht gesetzt
- // so ist jetzt die Zeit das nachzuholen
- if (false == Parameter.IsSetBis)
- {
- Parameter.Bis = NodeList.GetMaxDepth(Parameter.DebugLevel);
- }
+ if (Parameter.DebugLevel >= 5) SaveElements("debug_output\\15_Elements.shp", ElementList, Parameter.DebugLevel);
- // Nachdem nun 'Bis' sicher gesetzt ist, kann nun auch Diff bestimmt werden,
- // wenn es nicht schon bestimmt wurde
- if (false == Parameter.IsSetDiff)
- {
- Parameter.Diff = (int)((Parameter.Bis - Parameter.Von) / 10.0 + 0.5);
- }
+ ElementList->Clear();
- if (Parameter.Von > Parameter.Bis)
- {
- write_error(1210, "Das Argument <Von> (%.2f) ist größer als das Argument <Bis> (%.2f).\nGeben sie bitte sowohl den Parameter <Von> als auch den Parameter <Bis> sinnvoll an.\n", Parameter.Von / 100.0, Parameter.Bis / 100.0);
- }
+ TempErgebnisPolygone->clear();
+ delete TempErgebnisPolygone;
- if (Parameter.Diff <= 0.0)
- {
- if (Parameter.Bis != Parameter.Von)
- {
- write_error(1212, "Das Argument <Diff> darf nur dann Null sein, wenn <Von> (%.2f) und <Bis> (%.2f) gleich sind.\n", Parameter.Von / 100.0, Parameter.Bis / 100.0);
-
- }
- else
- {
- // Wenn 'Von' == 'Bis' ist
- // wird Diff auf 1 gesetzt
- // Der Wert spielt keine Rolle, nur größer als Null sollte er sein.
- Parameter.Diff = 1;
- }
- }
+ // Löscht nur die Verwaltung und nicht die Knoten der Kanten,
+ // die Knoten waren nur geliehen
+ delete EdgeList;
- TErgebnisPolygonList* TempErgebnisPolygone = new TErgebnisPolygonList;
- NassTrockenBerechnung(&NodeList, EdgeList, TempErgebnisPolygone, Parameter.Von, Parameter.Bis, Parameter.Diff, Parameter.DebugLevel);
+ delete ElementList;
+ ElementList = 0;
- NodeList.SortByNr();
-
- if (Parameter.DebugLevel >= 4) SaveNodes("debug_output\\18_" + Gewaesser + "_Nodes_mit_WSP_" + VC + NC + ".shp", &NodeList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 4) SaveSol("debug_output\\19_" + Gewaesser + "_Nodes_mit_WSP_" + VC + NC + ".sol", &NodeList, Parameter.DebugLevel);
- if (Parameter.DebugLevel >= 4) SaveNet("debug_output\\20_" + Gewaesser + "_Nodes_mit_WSP_" + VC + NC + ".2dm", &NodeList, 0, Parameter.DebugLevel);
-
- for (TErgebnisPolygonList::iterator i = TempErgebnisPolygone->begin(); i != TempErgebnisPolygone->end(); i++)
- {
- TErgebnisPolygon* ErgebnisPolygon = *i;
-
- ErgebnisPolygon->Gewaesser = Gewaesser;
- ErgebnisPolygon->VonKm = VonProfil->Station / 10000.0;
- ErgebnisPolygon->BisKm = BisProfil->Station / 10000.0;
- }
-
- ErgebnisPolygonList.Append(TempErgebnisPolygone);
-
- // Speichern der Ergebnispolygone
- SavePolygone(Gewaesser + VC + NC + ".shp", TempErgebnisPolygone, Parameter.DebugLevel);
-
- if (Parameter.DebugLevel >= 8)
- {
- for (TErgebnisPolygonList::iterator i = ErgebnisPolygonList.begin(); i != ErgebnisPolygonList.end(); i++)
- {
- TErgebnisPolygon* ErgebnisPolygon = *i;
-
- std::string AktGewaesser = ErgebnisPolygon->Gewaesser;
- double AktVonKm = ErgebnisPolygon->VonKm;
- double AktBisKm = ErgebnisPolygon->BisKm;
- double AktDiff = ErgebnisPolygon->Diff;
-
- write_fortschritt("Gewässer %s %.4f - %.4f Wassertiefe %.2f\n", AktGewaesser.c_str(), AktVonKm, AktBisKm, AktDiff);
- }
- }
-
- TempErgebnisPolygone->clear();
- delete TempErgebnisPolygone;
-
- // Löscht nur die Verwaltung und nicht die Knoten der Kanten,
- // die Knoten waren nur geliehen
- delete EdgeList;
-
- write_fortschritt("<-Bearbeitung vom %d. von %d Bereichen beendet\n", Count, BereichsList.size());
- }
- write_fortschritt("<-Bearbeitung von Gewässer '%s' beendet\n", Gewaesser.c_str());
- }
-
// Speichern der Ergebnispolygone
SavePolygone(Parameter.FileNameAusgabe, &ErgebnisPolygonList, Parameter.DebugLevel);
-
- // Die Profile wieder freigeben
- for (TProfilMap::iterator i = ProfilMap.begin(); i != ProfilMap.end(); i++)
- {
- TProfilList* GewProfilList = i->second;
- delete GewProfilList;
- }
}
catch (TFehler fehler)
{
Modified: trunk/src/wsplgen.h
===================================================================
--- trunk/src/wsplgen.h 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/wsplgen.h 2006-06-09 19:54:01 UTC (rev 51)
@@ -10,8 +10,17 @@
// Read the file COPYING coming with WSPLGEN for details.
//
-const char Version[] = "0.9.8 r1";
+const char Version[] = "0.9.10 r1";
+// Es wurden eine Menge kleine und grosse Fehler korrigiert, die mit der Umstellung auf long zusammenhingen
+// Das Attribut 'Gew' und die BearbeitungsBereiche wurde ersatzlos gestrichen
+
+// const char Version[] = "0.9.9 r1";
+
+//Es wurde das Gesamte Koordinaten-System auf long umgestellt
+
+// const char Version[] = "0.9.8 r1";
+
// Es wurde die Triangulierung und die Verwaltung der Kanten deutlich verbessert
// const char Version[] = "0.9.7 r2";
Modified: trunk/src/xy.cpp
===================================================================
--- trunk/src/xy.cpp 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/xy.cpp 2006-06-09 19:54:01 UTC (rev 51)
@@ -52,7 +52,7 @@
{
Nr = nr;
Z = z;
- Wsp = -999999;
+ Wsp = NoWsp;
EdgeIndex = 0;
}
@@ -163,13 +163,6 @@
//---------------------------------------------------------------------
//---------------------------------------------------------------------
-TPoint::TPoint(long x, long y, int meter) : TXY (x, y)
-{
- Z = -999999;
- Meter = meter;
-}
-
-//---------------------------------------------------------------------
TPoint::TPoint(long x, long y, int z, int meter) : TXY (x, y)
{
Z = z;
@@ -470,6 +463,27 @@
}
//---------------------------------------------------------------------
+bool TNodeList::AddWithQuadTree(TNode *Node)
+{
+ if (Node->X < MinX || Node->X > MaxX || Node->Y < MinY || Node->Y > MaxY)
+ {
+ dump_error(__FILE__, __LINE__, "AddWithQuadTree funktioniert nicht mit Knoten die ausserhalb legen\nKnoten %d %d %d\nBounding Box %d %d %d %d\n", Node->Nr, Node->X, Node->Y, MinX, MaxX, MinY, MaxY);
+ }
+
+ // Es werden nur neue Knoten aufgenommen
+ // Doppelte werden so vermieden
+ if (QuadTree->Insert(MinX, MaxX, MinY, MaxY, Node))
+ {
+ Add(Node);
+ return (true);
+ }
+ else
+ {
+ return (false);
+ }
+}
+
+//---------------------------------------------------------------------
void TNodeList::SortByXY(void)
{
if (QuadTree) delete QuadTree;
@@ -478,6 +492,7 @@
for (iterator i = begin(); i != end(); i++)
{
TNode* Node = *i;
+
QuadTree->Insert(MinX, MaxX, MinY, MaxY, Node);
}
}
@@ -560,7 +575,7 @@
TNodeList* TNodeList::FindAllByXY(double X, double Y, double R)
{
// Wichtig ist das kleingeschriebene clear
- // In dieser Nodelist sind vielleicht Knoten drin, die nur geliehen sind.
+ // In dieser SearchNodelist sind Knoten drin, die nur geliehen sind.
// Die Knoten selbst sollen nicht gelöscht werden
if (SearchNodeList) SearchNodeList->clear();
@@ -606,10 +621,9 @@
double DummyX = 0.0;
double DummyY = 0.0;
- double DummyLambda = 0.0;
double DummyMeter = 0.0;
- if (SperrenList->size() > 0 && CalcProfilSchnitt(Node->X, Node->Y, X, Y, SperrenList, &DummyX, &DummyY, &DummyLambda, &DummyMeter)) continue;
+ if (SperrenList->size() > 0 && CalcProfilSchnitt(Node->X, Node->Y, X, Y, SperrenList, &DummyX, &DummyY, &DummyMeter)) continue;
if (Node->X >= X && Node->Y > Y)
{
@@ -730,7 +744,7 @@
ZSumme = ZSumme + 1 / TLD;
ZAnzahl++;
- if (TLNode->Wsp > -9999.0)
+ if (TLNode->Wsp != NoWsp)
{
WspSumme = WspSumme + 1 / TLD;
WspAnzahl++;
@@ -742,7 +756,7 @@
ZSumme = ZSumme + 1 / TRD;
ZAnzahl++;
- if (TRNode->Wsp > -9999.0)
+ if (TRNode->Wsp != NoWsp)
{
WspSumme = WspSumme + 1 / TRD;
WspAnzahl++;
@@ -754,7 +768,7 @@
ZSumme = ZSumme + 1 / BLD;
ZAnzahl++;
- if (BLNode->Wsp > -9999.0)
+ if (BLNode->Wsp != NoWsp)
{
WspSumme = WspSumme + 1 / BLD;
WspAnzahl++;
@@ -766,7 +780,7 @@
ZSumme = ZSumme + 1 / BRD;
ZAnzahl++;
- if (BRNode->Wsp > -9999.0)
+ if (BRNode->Wsp != NoWsp)
{
WspSumme = WspSumme + 1 / BRD;
WspAnzahl++;
@@ -777,16 +791,16 @@
{
int Wsp = 0;
- if (TLNode != 0 && TLNode->Wsp > -9999) Wsp = Wsp + (int)(1 / TLD / WspSumme * TLNode->Wsp + 0.5);
- if (TRNode != 0 && TRNode->Wsp > -9999) Wsp = Wsp + (int)(1 / TRD / WspSumme * TRNode->Wsp + 0.5);
- if (BLNode != 0 && BLNode->Wsp > -9999) Wsp = Wsp + (int)(1 / BLD / WspSumme * BLNode->Wsp + 0.5);
- if (BRNode != 0 && BRNode->Wsp > -9999) Wsp = Wsp + (int)(1 / BRD / WspSumme * BRNode->Wsp + 0.5);
+ if (TLNode != 0 && TLNode->Wsp != NoWsp) Wsp = Wsp + (int)(1 / TLD / WspSumme * TLNode->Wsp + 0.5);
+ if (TRNode != 0 && TRNode->Wsp != NoWsp) Wsp = Wsp + (int)(1 / TRD / WspSumme * TRNode->Wsp + 0.5);
+ if (BLNode != 0 && BLNode->Wsp != NoWsp) Wsp = Wsp + (int)(1 / BLD / WspSumme * BLNode->Wsp + 0.5);
+ if (BRNode != 0 && BRNode->Wsp != NoWsp) Wsp = Wsp + (int)(1 / BRD / WspSumme * BRNode->Wsp + 0.5);
*WspWert = Wsp;
}
else
{
- *WspWert = -999999;
+ *WspWert = NoWsp;
}
if (ZAnzahl > 0)
@@ -827,7 +841,7 @@
{
TNode* Node = *i;
- if (Node->Wsp < -9999) continue;
+ if (Node->Wsp == NoWsp) continue;
int Depth = Node->Wsp - Node->Z;
@@ -865,7 +879,7 @@
{
TNode* Node = *i;
- if (Node->Wsp > 9999) continue;
+ if (Node->Wsp == NoWsp) continue;
int Wsp = Node->Wsp;
@@ -948,23 +962,14 @@
{
write_fortschritt("->Anpassung der Elemente an Sperren und Gräben gestartet\n");
- write_fortschritt("->Ermittlung der größten Knotenummer gestartet\n");
- int MaxNodeNr = 0;
- for (TNodeList::iterator i=NodeList->begin(); i!=NodeList->end(); i++)
- {
- TNode* Node = *i;
+ int MaxNodeNr = NodeList->MaxNr;
- if (MaxNodeNr < Node->Nr) MaxNodeNr = Node->Nr;
- }
- write_fortschritt("<-Ermittlung der größten Knotenummer beendet\n");
+ NodeList->SortByXY();
write_fortschritt("->Anpassung der Elemente an Sperren gestartet\n");
int ChangeCount = 0;
- int SperrZ = 999999;
- int GrabenZ = -999999;
-
int Count = 0;
for (TElementList::iterator i = begin(); i != end(); i++)
{
@@ -986,35 +991,63 @@
TElement* NewElement = 0;
- double Lambda = 0.0;
- double Meter = 0.0;
double XD = 0.0;
double YD = 0.0;
+ double Meter = 0.0;
if (Node1->X == Node2->X && Node1->Y == Node2->Y)
{
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node1->X / 100.0, Node1->Y / 100.0, Node2->X / 100.0, Node2->Y / 100.0);
}
- if (CalcProfilSchnitt(Node1->X, Node1->Y, Node2->X, Node2->Y, SperrenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node1->X, Node1->Y, Node2->X, Node2->Y, SperrenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node1->X == X && Node1->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node1->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node1->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node2->X == X && Node2->Y == Y)
+
+ if (MustNewElement)
{
- Node2->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node2->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, SperrZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = DammZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, DammZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node1, Node, Node3);
push_back(NewElement);
@@ -1035,25 +1068,54 @@
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node2->X / 100.0, Node2->Y / 100.0, Node3->X / 100.0, Node3->Y / 100.0);
}
- if (CalcProfilSchnitt(Node2->X, Node2->Y, Node3->X, Node3->Y, SperrenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node2->X, Node2->Y, Node3->X, Node3->Y, SperrenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node2->X == X && Node2->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node2->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node2->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node3->X == X && Node3->Y == Y)
+
+ if (MustNewElement)
{
- Node3->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node3->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, SperrZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = DammZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, DammZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node2, Node, Node1);
push_back(NewElement);
@@ -1074,25 +1136,54 @@
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node3->X / 100.0, Node3->Y / 100.0, Node1->X / 100.0, Node1->Y / 100.0);
}
- if (CalcProfilSchnitt(Node3->X, Node3->Y, Node1->X, Node1->Y, SperrenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node3->X, Node3->Y, Node1->X, Node1->Y, SperrenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node3->X == X && Node3->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node3->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node3->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = DammZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node1->X == X && Node1->Y == Y)
+
+ if (MustNewElement)
{
- Node1->Z = SperrZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node1->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, SperrZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = DammZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, DammZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node3, Node, Node2);
push_back(NewElement);
@@ -1142,7 +1233,6 @@
TElement* NewElement = 0;
- double Lambda = 0.0;
double Meter = 0.0;
double XD = 0.0;
double YD = 0.0;
@@ -1152,25 +1242,54 @@
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node1->X / 100.0, Node1->Y / 100.0, Node2->X / 100.0, Node2->Y / 100.0);
}
- if (CalcProfilSchnitt(Node1->X, Node1->Y, Node2->X, Node2->Y, GrabenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node1->X, Node1->Y, Node2->X, Node2->Y, GrabenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node1->X == X && Node1->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node1->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird abgesenkt (Lambda = %.5f)\n", Node1->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node2->X == X && Node2->Y == Y)
+
+ if (MustNewElement)
{
- Node2->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird abgesenkt (Lambda = %.5f)\n", Node2->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = GrabenZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node1, Node, Node3);
push_back(NewElement);
@@ -1191,25 +1310,54 @@
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node2->X / 100.0, Node2->Y / 100.0, Node3->X / 100.0, Node3->Y / 100.0);
}
- if (CalcProfilSchnitt(Node2->X, Node2->Y, Node3->X, Node3->Y, GrabenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node2->X, Node2->Y, Node3->X, Node3->Y, GrabenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node2->X == X && Node2->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node2->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird abgesenkt (Lambda = %.5f)\n", Node2->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node3->X == X && Node3->Y == Y)
+
+ if (MustNewElement)
{
- Node3->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird erhöht (Lambda = %.5f)\n", Node3->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = GrabenZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node2, Node, Node1);
push_back(NewElement);
@@ -1230,25 +1378,54 @@
write_error(3214, "Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", Node3->X / 100.0, Node3->Y / 100.0, Node1->X / 100.0, Node1->Y / 100.0);
}
- if (CalcProfilSchnitt(Node3->X, Node3->Y, Node1->X, Node1->Y, GrabenList, &XD, &YD, &Lambda, &Meter))
+ if (CalcProfilSchnitt(Node3->X, Node3->Y, Node1->X, Node1->Y, GrabenList, &XD, &YD, &Meter))
{
long X = (long)(XD + 0.5);
long Y = (long)(YD + 0.5);
- if (Node3->X == X && Node3->Y == Y)
+ TNodeList* FoundNodeList = NodeList->FindAllByXY(X, Y, 4);
+
+ bool MustNewElement = true;
+ TNode* Node = 0;
+ if (FoundNodeList->size() > 0)
{
- Node3->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird abgesenkt (Lambda = %.5f)\n", Node3->Nr, Lambda);
+ for (TNodeList::iterator i=FoundNodeList->begin(); i != FoundNodeList->end(); i++)
+ {
+ Node = *i;
+
+ if (Node1->X == Node->X && Node1->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node2->X == Node->X && Node2->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ else if (Node3->X == Node->X && Node3->Y == Node->Y)
+ {
+ Node->Z = GrabenZ;
+ MustNewElement = false;
+ }
+ }
}
- else if (Node1->X == X && Node1->Y == Y)
+
+ if (MustNewElement)
{
- Node1->Z = GrabenZ;
- if (DebugLevel >= 9) write_fortschritt("Knoten %d wird abgesenkt (Lambda = %.5f)\n", Node1->Nr, Lambda);
- }
- else
- {
- TNode* Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
- NodeList->Add(Node);
+ if (FoundNodeList->size() == 1)
+ {
+ Node = *FoundNodeList->begin();
+ Node->Z = GrabenZ;
+ }
+ else
+ {
+ Node = new TNode(++MaxNodeNr, X, Y, GrabenZ);
+ if(false == NodeList->AddWithQuadTree(Node))
+ {
+ dump_error(__FILE__, __LINE__, "Der Knoten (%.2f, %.2f) wurde nicht gefunden und konnte nicht eigefüht werden\n", X / 100.0, Y / 100.0);
+ }
+ }
NewElement = new TElement(Node3, Node, Node2);
push_back(NewElement);
@@ -1280,9 +1457,6 @@
//---------------------------------------------------------------------
TErgebnisPolygon::TErgebnisPolygon(double diff)
{
- Gewaesser = "dummy";
- VonKm = 0.0;
- BisKm = 0.0;
Diff = diff;
}
@@ -1318,10 +1492,6 @@
TErgebnisPolygon *NewErgebnisPolygon = new TErgebnisPolygon(OldErgebnisPolygon->Diff);
- NewErgebnisPolygon->Gewaesser = OldErgebnisPolygon->Gewaesser;
- NewErgebnisPolygon->VonKm = OldErgebnisPolygon->VonKm;
- NewErgebnisPolygon->BisKm = OldErgebnisPolygon->BisKm;
-
for (unsigned int j=0; j<OldErgebnisPolygon->size(); j++)
{
TXY *OldXy = (*OldErgebnisPolygon)[j];
@@ -1579,9 +1749,8 @@
//---------------------------------------------------------------------
//---------------------------------------------------------------------
-TProfil::TProfil(std::string gewaesser, int station, int wsp)
+TProfil::TProfil(int station, int wsp)
{
- Gewaesser = gewaesser;
Station = station;
Wsp = wsp;
@@ -1591,7 +1760,6 @@
//---------------------------------------------------------------------
TProfil::TProfil(TProfil *profil)
{
- Gewaesser = profil->Gewaesser;
Station = profil->Station;
Wsp = profil->Wsp;
@@ -1845,14 +2013,12 @@
}
//---------------------------------------------------------------------------
-double TProfil::CalcSchnitt(TGewaesserAchseList *GewaesserAchseList)
+int TProfil::CalcSchnitt(TGewaesserAchseList *GewaesserAchseList)
{
for (TGewaesserAchseList::iterator g=GewaesserAchseList->begin(); g != GewaesserAchseList->end(); g++)
{
TGewaesserAchse* GewaesserAchse = *g;
- if (Gewaesser != GewaesserAchse->Gewaesser) continue;
-
TPoint* P0 = 0;
TPoint* P1 = 0;
for (TPointList::iterator p = PointList->begin(); p != PointList->end(); p++)
@@ -1868,21 +2034,21 @@
P1 = *p;
}
- double P0x = P0->X;
- double P0y = P0->Y;
- double P1x = P1->X;
- double P1y = P1->Y;
+ long P0x = P0->X;
+ long P0y = P0->Y;
+ long P1x = P1->X;
+ long P1y = P1->Y;
if (P0x < GewaesserAchse->MinX && P1x < GewaesserAchse->MinX) continue;
if (P0x > GewaesserAchse->MaxX && P1x > GewaesserAchse->MaxX) continue;
if (P0y < GewaesserAchse->MinY && P1y < GewaesserAchse->MinY) continue;
if (P0y > GewaesserAchse->MaxY && P1y > GewaesserAchse->MaxY) continue;
- double PDx = P1x - P0x;
- double PDy = P1y - P0y;
- if (fabs(PDx) < 0.00000001 && fabs(PDy) < 0.00000001)
+ long PDx = P1x - P0x;
+ long PDy = P1y - P0y;
+ if (PDx == 0 && PDy == 0)
{
- write_error(3207, "Profil-Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x, P0y, P1x, P1y);
+ write_error(3207, "Profil-Punktabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", P0x / 100.0, P0y / 100.0, P1x / 100.0, P1y / 100.0);
}
// Es heisst hier s für spur und nicht g für gewässerachse
@@ -1902,24 +2068,24 @@
S1 = *s;
}
- double S0x = S0->X;
- double S0y = S0->Y;
- double S1x = S1->X;
- double S1y = S1->Y;
+ long S0x = S0->X;
+ long S0y = S0->Y;
+ long S1x = S1->X;
+ long S1y = S1->Y;
- double SDx = S1x - S0x;
- double SDy = S1y - S0y;
- if (fabs(SDx) < 0.00000001 && fabs(SDy) < 0.00000001)
+ long SDx = S1x - S0x;
+ long SDy = S1y - S0y;
+ if (SDx == 0 && SDy == 0)
{
- write_error(3208, "Gewässerachsen-Stützpunkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", S0x, S0y, S1x, S1y);
+ write_error(3208, "Gewässerachsen-Stützpunkteabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", S0x / 100.0, S0y / 100.0, S1x / 100.0, S1y / 100.0);
}
- double X, Y, LambdaP, LambdaS;
- bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, &X, &Y, &LambdaP, &LambdaS);
+ double X, Y;
+ bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, &X, &Y);
if (Found)
{
- double Meter = (P0->Meter + P1->Meter) / 2;
+ int Meter = (P0->Meter + P1->Meter) / 2;
return (Meter);
}
@@ -1930,7 +2096,7 @@
// Das ist ein wenig gefährlich
// Eigentlich sollte es keine negativen Meter geben
// Daher bedeutet -1.0 nicht gefunden
- return (-1.0);
+ return (-1);
}
//---------------------------------------------------------------------
@@ -1957,13 +2123,13 @@
}
//---------------------------------------------------------------------
-TProfil* TProfilList::Find(std::string Gewaesser, int Station)
+TProfil* TProfilList::Find(int Station)
{
for (iterator i = begin(); i != end(); i++)
{
TProfil *Profil = *i;
- if (Gewaesser == Profil->Gewaesser && Station == Profil->Station)
+ if (Station == Profil->Station)
{
return (Profil);
}
@@ -1976,7 +2142,7 @@
{
write_fortschritt("->Interpolation der Profile gestartet\n");
- write_fortschritt("Gewünschter Abstand der Profile: %.4f\n", SollAbstand);
+ write_fortschritt("Gewünschter Abstand der Profile: %.4f\n", SollAbstand / 100.0);
TProfil *FirstProfil = 0;
TProfil *NextProfil = 0;
@@ -2022,7 +2188,7 @@
int NewStation = (int)(FirstProfil->Station + j * Abstand + 0.5);
int NewWsp = (int)(FirstProfil->Wsp + Prozent * (NextProfil->Wsp - FirstProfil->Wsp) + 0.5);
- TProfil* NewProfil = new TProfil(FirstProfil->Gewaesser, NewStation, NewWsp);
+ TProfil* NewProfil = new TProfil(NewStation, NewWsp);
NewProfil->InterpolateProfil(FirstProfilNeu, NextProfilNeu, Prozent);
NewProfilList->insert(NewProfil);
@@ -2049,8 +2215,6 @@
{
write_fortschritt("->Auffüllen der Profile mit Stützstellen gestartet\n");
- double Abstand = 1.0;
-
int Count = 0;
for (iterator i = begin(); i != end(); i++)
{
@@ -2059,7 +2223,9 @@
TPoint* LastPoint = *Profil->PointList->rbegin();
double Laenge = LastPoint->Meter;
- if (SollAnz >= 0)
+ double Abstand = 0.0;
+
+ if (SollAnz > 0)
{
Abstand = Laenge / SollAnz;
}
@@ -2104,7 +2270,7 @@
Count++;
- if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 500 == 0) || (Count > 0 && Count % 5000 == 0))
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 100 == 0) || (Count > 0 && Count % 1000 == 0))
{
write_fortschritt("Profil %d von %d aufgefüllt\n", Count, size());
}
@@ -2116,64 +2282,12 @@
}
//---------------------------------------------------------------------
-// TBereichsList
-//---------------------------------------------------------------------
-
-//---------------------------------------------------------------------
-TBereichsList::TBereichsList(TProfilList* ProfilList, int AnzBereiche)
-{
- // An dieser Stelle wird bereits davon ausgegangen das es mindestens 2 Querprofilspuren gibt und
- // das alle Profile zum selben Gewaesser gehören
-
- int Anfang = (*ProfilList->begin())->Station;
- int Ende = (*ProfilList->rbegin())->Station;
-
- double Diff = (Ende - Anfang) / AnzBereiche;
-
- TProfilList::iterator Start = ProfilList->begin();
- TProfilList::iterator P = ProfilList->begin();
- for (int i=1; i<=AnzBereiche; i++)
- {
- int SollStation = (int)(Anfang + i * Diff + 0.5);
-
- TProfilList::iterator T = P;
- T++;
- while (T != ProfilList->end() && (*T)->Station < SollStation)
- {
- P++;
- T++;
- }
-
- if (T == ProfilList->end()) dump_error(__FILE__, __LINE__, "Konnte nicht alle Bereiche generieren\n");
-
- if (P == Start) dump_error(__FILE__, __LINE__, "Bin nicht von der Stelle gekommen\n");
-
-/*
- if ((*T)->Station - SollStation < SollStation - (*P)->Station)
- {
- (*this)[Start] = T;
- Start = T;
- }
- else
- {
- (*this)[Start] = P;
- Start = P;
- }
-*/
- (*this)[Start] = T;
- Start = P;
- }
-}
-
-//---------------------------------------------------------------------
// TGewaesserAchse
//---------------------------------------------------------------------
//---------------------------------------------------------------------
-TGewaesserAchse::TGewaesserAchse(std::string gewaesser, int id)
+TGewaesserAchse::TGewaesserAchse(void)
{
- Gewaesser = gewaesser;
- ID = id;
MinX = 999999999;
MaxX = -999999999;
MinY = 999999999;
@@ -2185,9 +2299,6 @@
//---------------------------------------------------------------------
TGewaesserAchse::TGewaesserAchse(TGewaesserAchse *gewaesserAchse)
{
- Gewaesser = gewaesserAchse->Gewaesser;
- ID = gewaesserAchse->ID;
-
MinX = 999999999;
MaxX = -999999999;
MinY = 999999999;
@@ -2415,18 +2526,6 @@
clear();
}
-//---------------------------------------------------------------------
-TGewaesserAchse* TGewaesserAchseList::Find(std::string Gewaesser, int ID)
-{
- for (iterator i = begin(); i != end(); i++)
- {
- TGewaesserAchse *GewaesserAchse = *i;
- if (Gewaesser == GewaesserAchse->Gewaesser && ID == GewaesserAchse->ID)
- {
- return (GewaesserAchse);
- }
- }
- return (0);
-}
+
Modified: trunk/src/xy.h
===================================================================
--- trunk/src/xy.h 2006-06-04 23:49:03 UTC (rev 50)
+++ trunk/src/xy.h 2006-06-09 19:54:01 UTC (rev 51)
@@ -38,6 +38,10 @@
typedef enum { NO_ELEMENT, TRI, QUAD } TElementTyp;
typedef enum { NOT_INSIDE, INSIDE, ON_LINE, UNDEFINED } TInsideTyp;
+const int NoWsp = -999999;
+const int GrabenZ = -999999;
+const int DammZ = 999999;
+
//----------------------------------------------------------------------------
class TXY;
class TNode;
@@ -116,7 +120,6 @@
int Z;
int Meter;
- TPoint(long X, long Y, int Meter);
TPoint(long X, long Y, int Z, int Meter);
TPoint(TPoint *Point);
};
@@ -214,20 +217,6 @@
};
//----------------------------------------------------------------------------
-// Ein spezielles Polygon zum Speichern der Ergebnispolygone der Nass/Trockenberechnung
-//----------------------------------------------------------------------------
-class TErgebnisPolygon : public TXYList
-{
- public:
- std::string Gewaesser;
- double VonKm;
- double BisKm;
- double Diff;
-
- TErgebnisPolygon(double Diff);
-};
-
-//----------------------------------------------------------------------------
// TnodeList dient zum Verwalten der Knoten (TNode)
// Nur TNodeList gibt den Speicher für die Knoten wieder frei
//----------------------------------------------------------------------------
@@ -250,6 +239,7 @@
TNodeList* Copy(void);
void Add(TNode *Node);
+ bool AddWithQuadTree(TNode *Node);
void SortByXY(void);
void SortByNr(void);
TNode* FindByXY(long X, long Y);
@@ -300,7 +290,7 @@
TEdgeVector EdgeVector;
unsigned int Anz;
- unsigned int AvgDistance;
+ double AvgDistance;
void Clear(void); // Wird verwendet, wenn auch die Kanten selbst gelöscht werden sollen
void Empty(void); // Wird verwendet, wenn es es nur geliehene Kanten waren
@@ -313,6 +303,17 @@
};
//----------------------------------------------------------------------------
+// Ein spezielles Polygon zum Speichern der Ergebnispolygone der Nass/Trockenberechnung
+//----------------------------------------------------------------------------
+class TErgebnisPolygon : public TXYList
+{
+ public:
+ double Diff;
+
+ TErgebnisPolygon(double Diff);
+};
+
+//----------------------------------------------------------------------------
// List von Ergebnispolygonen
//----------------------------------------------------------------------------
class TErgebnisPolygonList : public std::vector<TErgebnisPolygon *>
@@ -347,14 +348,13 @@
class TProfil
{
public:
- std::string Gewaesser;
int Station;
TPointList* PointList;
long Wsp;
- TProfil(std::string Gewaesser, int Station, int Wsp = 0);
+ TProfil(int Station, int Wsp = 0);
TProfil(TProfil *Profil);
~TProfil(void);
@@ -363,7 +363,7 @@
bool GetXY(int Meter, long *X, long *Y);
void EqualizeProfil(TProfil *Profil);
void InterpolateProfil(TProfil *VorProfil, TProfil *NachProfil, double Prozent);
- double CalcSchnitt(TGewaesserAchseList *GewaesserAchseList);
+ int CalcSchnitt(TGewaesserAchseList *GewaesserAchseList);
double Length(TPoint *Point1, TPoint *Point2);
double Length(long X1, long Y1, long X2, long Y2);
TPoint* FindNearest(long X, long Y);
@@ -377,8 +377,6 @@
public:
bool operator()(TProfil* const &Profil1, TProfil* const &Profil2) const
{
- if (Profil1->Gewaesser < Profil2->Gewaesser) return (true);
- if (Profil2->Gewaesser < Profil1->Gewaesser) return (false);
return (Profil1->Station < Profil2->Station);
}
};
@@ -392,53 +390,20 @@
~TProfilList(void);
void Clear(void);
- TProfil* Find(std::string Gewaesser, int Station);
+ TProfil* Find(int Station);
void InterpoliereProfile(double SollAbstand);
void FillProfile(double SollAbstand, int SollAnz, int DebugLevel);
double GetMaxWsp(int DebugLevel);
};
//----------------------------------------------------------------------------
-// TProfilMap trennt die Profile nach Gewässern und benutzt die
-// Standardsortierung von std::string
-//----------------------------------------------------------------------------
-typedef std::map<std::string, TProfilList *> TProfilMap;
-
-//----------------------------------------------------------------------------
-// Hilfsklasse für die Sortierung von Bearbeitungsbereichen
-//----------------------------------------------------------------------------
-class TBereichCompStation
-{
- public:
- bool operator()(TProfilList::iterator const &Profil1Iter, TProfilList::iterator const &Profil2Iter) const
- {
- if ((*Profil1Iter)->Gewaesser < (*Profil2Iter)->Gewaesser) return (true);
- if ((*Profil2Iter)->Gewaesser > (*Profil2Iter)->Gewaesser) return (false);
- return ((*Profil1Iter)->Station < (*Profil2Iter)->Station);
- }
-};
-
-//----------------------------------------------------------------------------
-// Hier werden die Profile den Bereich zu geordnet
-//----------------------------------------------------------------------------
-class TBereichsList : public std::map<TProfilList::iterator, TProfilList::iterator, TBereichCompStation>
-{
- private:
- TProfilList::iterator FindBestBereich(TProfilList* ProfilList, TProfilList::iterator StartIterator, int AnzBereiche);
-
- public:
- TBereichsList(TProfilList* ProfilList, int AnzBereiche);
-};
-
-//----------------------------------------------------------------------------
// Hier wird eine Gewaesserachse gespeichert
// Eine Punktliste und ein paar Zusatzinformationen
//----------------------------------------------------------------------------
class TGewaesserAchse
{
public:
- std::string Gewaesser;
- int ID;
+// int ID;
long MinX;
long MaxX;
@@ -447,7 +412,7 @@
TPointList* PointList;
- TGewaesserAchse(std::string Gewaesser, int ID);
+ TGewaesserAchse(void);
TGewaesserAchse(TGewaesserAchse *GewaesserAchse);
~TGewaesserAchse(void);
@@ -460,29 +425,14 @@
};
//----------------------------------------------------------------------------
-// Hilfsklasse für das automatische Sortieren der Gewässerachsen
-//----------------------------------------------------------------------------
-class TGewaesserAchseComp
-{
- public:
- bool operator()(TGewaesserAchse* const &GewaesserAchse1, TGewaesserAchse* const &GewaesserAchse2) const
- {
- if (GewaesserAchse1->Gewaesser < GewaesserAchse2->Gewaesser) return (true);
- if (GewaesserAchse2->Gewaesser > GewaesserAchse2->Gewaesser) return (false);
- return (GewaesserAchse1->ID < GewaesserAchse2->ID);
- }
-};
-
-//----------------------------------------------------------------------------
// Hier werden die Gewässerachsen drin verwaltet
//----------------------------------------------------------------------------
-class TGewaesserAchseList : public std::set<TGewaesserAchse *, TGewaesserAchseComp>
+class TGewaesserAchseList : public std::vector<TGewaesserAchse *>
{
public:
~TGewaesserAchseList(void);
void Clear(void);
- TGewaesserAchse* Find(std::string Gewaesser, int ID);
};
#endif
More information about the Wsplgen-commits
mailing list