[Wsplgen-commits] r92 - in trunk: bin bin/test_daten bin/test_daten/dgmtin2 bin/test_results src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Sun Sep 2 22:13:55 CEST 2007
Author: mrchip
Date: 2007-09-02 22:13:20 +0200 (Sun, 02 Sep 2007)
New Revision: 92
Added:
trunk/bin/test_daten/achse2.dbf
trunk/bin/test_daten/achse2.shp
trunk/bin/test_daten/achse2.shx
trunk/bin/test_daten/dgm2.2dm
trunk/bin/test_daten/dgmtin2/
trunk/bin/test_daten/dgmtin2/tdenv.adf
trunk/bin/test_daten/dgmtin2/tedg.adf
trunk/bin/test_daten/dgmtin2/thul.adf
trunk/bin/test_daten/dgmtin2/tmsk.adf
trunk/bin/test_daten/dgmtin2/tmsx.adf
trunk/bin/test_daten/dgmtin2/tnod.adf
trunk/bin/test_daten/dgmtin2/tnxy.adf
trunk/bin/test_daten/dgmtin2/tnxy_huelle.dbf
trunk/bin/test_daten/dgmtin2/tnxy_huelle.shp
trunk/bin/test_daten/dgmtin2/tnxy_huelle.shx
trunk/bin/test_daten/dgmtin2/tnz.adf
trunk/bin/test_daten/ergebnispolygone.dbf
trunk/bin/test_daten/ergebnispolygone.shp
trunk/bin/test_daten/ergebnispolygone.shx
trunk/bin/test_daten/linien2.dbf
trunk/bin/test_daten/linien2.shp
trunk/bin/test_daten/linien2.shx
trunk/bin/test_daten/profile2.dbf
trunk/bin/test_daten/profile2.shp
trunk/bin/test_daten/profile2.shx
Modified:
trunk/bin/test.exe
trunk/bin/test_results/test.txt
trunk/bin/wsplgen.exe
trunk/src/file.cpp
trunk/src/file.h
trunk/src/parameter.cpp
trunk/src/parameter.h
trunk/src/shape.cpp
trunk/src/shape.h
trunk/src/test_file.cpp
trunk/src/test_tools.cpp
trunk/src/test_xy.cpp
trunk/src/tools.cpp
trunk/src/tools.h
trunk/src/wsplgen.cpp
trunk/src/wsplgen.h
trunk/src/xy.cpp
trunk/src/xy.h
Log:
Es wurden massive Speicheroptimierungen und diverse Verbesserungen durchgef?\195?\188hrt. Siehe WSPLGEN.h
Modified: trunk/bin/test.exe
===================================================================
(Binary files differ)
Added: trunk/bin/test_daten/achse2.dbf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/achse2.dbf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/achse2.shp
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/achse2.shp
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/achse2.shx
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/achse2.shx
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgm2.2dm
===================================================================
--- trunk/bin/test_daten/dgm2.2dm 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/bin/test_daten/dgm2.2dm 2007-09-02 20:13:20 UTC (rev 92)
@@ -0,0 +1,255 @@
+MESH2D
+E3T 5 1 3 2 1
+E3T 6 36 1 2 1
+E3T 9 3 71 4 1
+E3T 10 2 3 5 1
+E3T 11 36 2 37 1
+E3T 12 38 36 37 1
+E3T 15 71 73 72 1
+E3T 16 4 71 70 1
+E3T 17 3 4 6 1
+E3T 18 5 3 6 1
+E3T 19 2 5 37 1
+E3T 20 38 37 39 1
+E3T 21 40 38 41 1
+E3T 24 72 73 66 1
+E3T 25 71 72 70 1
+E3T 26 4 70 69 1
+E3T 27 6 4 69 1
+E3T 28 5 6 7 1
+E3T 29 37 5 7 1
+E3T 30 39 37 7 1
+E3T 31 38 39 41 1
+E3T 32 40 41 42 1
+E3T 33 44 40 42 1
+E3T 36 73 74 63 1
+E3T 37 66 73 63 1
+E3T 38 72 66 68 1
+E3T 39 70 72 68 1
+E3T 40 69 70 68 1
+E3T 41 6 69 67 1
+E3T 42 7 6 8 1
+E3T 43 39 7 9 1
+E3T 44 41 39 11 1
+E3T 45 42 41 43 1
+E3T 46 44 42 43 1
+E3T 47 48 44 46 1
+E3T 50 74 75 58 1
+E3T 51 63 74 60 1
+E3T 52 66 63 62 1
+E3T 53 68 66 65 1
+E3T 54 69 68 67 1
+E3T 55 6 67 8 1
+E3T 56 7 8 9 1
+E3T 57 39 9 11 1
+E3T 58 41 11 13 1
+E3T 59 43 41 17 1
+E3T 60 44 43 45 1
+E3T 61 46 44 45 1
+E3T 62 48 46 47 1
+E3T 65 75 76 56 1
+E3T 66 58 75 56 1
+E3T 67 74 58 60 1
+E3T 68 63 60 62 1
+E3T 69 66 62 65 1
+E3T 70 68 65 67 1
+E3T 71 8 67 10 1
+E3T 72 9 8 10 1
+E3T 73 11 9 10 1
+E3T 74 13 11 12 1
+E3T 75 41 13 15 1
+E3T 76 17 41 15 1
+E3T 77 43 17 19 1
+E3T 78 45 43 19 1
+E3T 79 46 45 47 1
+E3T 80 48 47 49 1
+E3T 81 50 48 49 1
+E3T 84 76 77 54 1
+E3T 85 56 76 54 1
+E3T 86 58 56 78 1
+E3T 87 60 58 79 1
+E3T 88 62 60 61 1
+E3T 89 65 62 64 1
+E3T 90 67 65 64 1
+E3T 91 10 67 64 1
+E3T 92 11 10 12 1
+E3T 93 13 12 14 1
+E3T 94 15 13 14 1
+E3T 95 17 15 16 1
+E3T 96 19 17 20 1
+E3T 97 45 19 21 1
+E3T 98 47 45 27 1
+E3T 99 49 47 29 1
+E3T 100 50 49 35 1
+E3T 103 77 51 52 1
+E3T 104 54 77 52 1
+E3T 105 56 54 78 1
+E3T 106 58 78 79 1
+E3T 107 60 79 59 1
+E3T 108 61 60 59 1
+E3T 109 62 61 64 1
+E3T 110 10 64 12 1
+E3T 111 14 12 61 1
+E3T 112 15 14 16 1
+E3T 113 17 16 18 1
+E3T 114 20 17 18 1
+E3T 115 19 20 21 1
+E3T 116 45 21 23 1
+E3T 117 27 45 25 1
+E3T 118 47 27 29 1
+E3T 119 49 29 31 1
+E3T 120 35 49 33 1
+E3T 121 51 35 34 1
+E3T 122 52 51 54 1
+E3T 123 78 54 53 1
+E3T 124 79 78 57 1
+E3T 125 59 79 57 1
+E3T 126 61 59 14 1
+E3T 127 64 61 12 1
+E3T 128 16 14 59 1
+E3T 129 18 16 59 1
+E3T 130 20 18 59 1
+E3T 131 21 20 22 1
+E3T 132 23 21 22 1
+E3T 133 45 23 25 1
+E3T 134 27 25 26 1
+E3T 135 29 27 28 1
+E3T 136 31 29 30 1
+E3T 137 49 31 33 1
+E3T 138 35 33 34 1
+E3T 139 51 34 53 1
+E3T 140 54 51 53 1
+E3T 141 78 53 55 1
+E3T 142 57 78 55 1
+E3T 143 59 57 20 1
+E3T 144 22 20 57 1
+E3T 145 23 22 24 1
+E3T 146 25 23 24 1
+E3T 147 26 25 24 1
+E3T 148 27 26 28 1
+E3T 149 29 28 30 1
+E3T 150 31 30 32 1
+E3T 151 33 31 32 1
+E3T 152 34 33 32 1
+E3T 153 53 34 32 1
+E3T 154 55 53 30 1
+E3T 155 57 55 24 1
+E3T 156 22 57 24 1
+E3T 157 26 24 55 1
+E3T 158 28 26 55 1
+E3T 159 30 28 55 1
+E3T 160 32 30 53 1
+ND 1 1.154000000e+01 3.660000000e+01 2.000000000e+01
+ND 2 1.369000000e+01 3.348000000e+01 1.900000000e+01
+ND 3 1.374000000e+01 2.908000000e+01 1.700000000e+01
+ND 4 1.430000000e+01 2.755000000e+01 1.700000000e+01
+ND 5 1.538000000e+01 2.985000000e+01 1.700000000e+01
+ND 6 1.599000000e+01 2.801000000e+01 1.800000000e+01
+ND 7 1.809000000e+01 3.067000000e+01 1.700000000e+01
+ND 8 1.875000000e+01 2.898000000e+01 1.700000000e+01
+ND 9 1.967000000e+01 3.108000000e+01 1.700000000e+01
+ND 10 2.034000000e+01 2.949000000e+01 1.700000000e+01
+ND 11 2.141000000e+01 3.154000000e+01 1.700000000e+01
+ND 12 2.233000000e+01 2.980000000e+01 1.700000000e+01
+ND 13 2.326000000e+01 3.210000000e+01 1.700000000e+01
+ND 14 2.428000000e+01 3.072000000e+01 1.700000000e+01
+ND 15 2.484000000e+01 3.261000000e+01 1.700000000e+01
+ND 16 2.592000000e+01 3.097000000e+01 1.700000000e+01
+ND 17 2.627000000e+01 3.297000000e+01 1.700000000e+01
+ND 18 2.725000000e+01 3.144000000e+01 1.800000000e+01
+ND 19 2.832000000e+01 3.425000000e+01 1.700000000e+01
+ND 20 2.919000000e+01 3.241000000e+01 1.700000000e+01
+ND 21 3.006000000e+01 3.404000000e+01 1.700000000e+01
+ND 22 3.067000000e+01 3.287000000e+01 1.700000000e+01
+ND 23 3.154000000e+01 3.445000000e+01 1.700000000e+01
+ND 24 3.262000000e+01 3.323000000e+01 1.700000000e+01
+ND 25 3.354000000e+01 3.502000000e+01 1.700000000e+01
+ND 26 3.451000000e+01 3.374000000e+01 1.700000000e+01
+ND 27 3.492000000e+01 3.553000000e+01 1.700000000e+01
+ND 28 3.615000000e+01 3.435000000e+01 1.700000000e+01
+ND 29 3.646000000e+01 3.594000000e+01 1.700000000e+01
+ND 30 3.768000000e+01 3.471000000e+01 1.700000000e+01
+ND 31 3.860000000e+01 3.660000000e+01 1.700000000e+01
+ND 32 3.922000000e+01 3.481000000e+01 1.700000000e+01
+ND 33 4.040000000e+01 3.711000000e+01 1.800000000e+01
+ND 34 4.178000000e+01 3.558000000e+01 1.700000000e+01
+ND 35 4.213000000e+01 3.747000000e+01 1.800000000e+01
+ND 36 1.533000000e+01 3.788000000e+01 2.000000000e+01
+ND 37 1.599000000e+01 3.435000000e+01 1.900000000e+01
+ND 38 1.891000000e+01 3.855000000e+01 2.000000000e+01
+ND 39 1.957000000e+01 3.450000000e+01 1.900000000e+01
+ND 40 2.280000000e+01 3.947000000e+01 2.000000000e+01
+ND 41 2.305000000e+01 3.563000000e+01 1.900000000e+01
+ND 42 2.576000000e+01 3.988000000e+01 2.000000000e+01
+ND 43 2.704000000e+01 3.624000000e+01 1.900000000e+01
+ND 44 2.940000000e+01 4.172000000e+01 2.000000000e+01
+ND 45 3.139000000e+01 3.747000000e+01 1.900000000e+01
+ND 46 3.236000000e+01 4.105000000e+01 2.000000000e+01
+ND 47 3.426000000e+01 3.921000000e+01 1.900000000e+01
+ND 48 3.600000000e+01 4.320000000e+01 2.000000000e+01
+ND 49 3.773000000e+01 3.972000000e+01 1.900000000e+01
+ND 50 4.075000000e+01 4.356000000e+01 2.000000000e+01
+ND 51 4.300000000e+01 3.230000000e+01 1.800000000e+01
+ND 52 4.280000000e+01 2.826000000e+01 1.900000000e+01
+ND 53 3.917000000e+01 3.266000000e+01 1.800000000e+01
+ND 54 3.942000000e+01 2.837000000e+01 1.900000000e+01
+ND 55 3.553000000e+01 3.230000000e+01 1.800000000e+01
+ND 56 3.671000000e+01 2.770000000e+01 1.850000000e+01
+ND 57 3.170000000e+01 3.097000000e+01 1.800000000e+01
+ND 58 3.369000000e+01 2.647000000e+01 1.850000000e+01
+ND 59 2.735000000e+01 2.877000000e+01 1.800000000e+01
+ND 60 2.817000000e+01 2.606000000e+01 1.850000000e+01
+ND 61 2.428000000e+01 2.729000000e+01 1.900000000e+01
+ND 62 2.479000000e+01 2.473000000e+01 1.850000000e+01
+ND 63 2.566000000e+01 2.320000000e+01 1.850000000e+01
+ND 64 2.182000000e+01 2.647000000e+01 1.900000000e+01
+ND 65 2.193000000e+01 2.443000000e+01 1.850000000e+01
+ND 66 2.198000000e+01 2.279000000e+01 1.850000000e+01
+ND 67 1.962000000e+01 2.647000000e+01 1.800000000e+01
+ND 68 1.896000000e+01 2.351000000e+01 1.900000000e+01
+ND 69 1.522000000e+01 2.555000000e+01 1.800000000e+01
+ND 70 1.507000000e+01 2.269000000e+01 1.900000000e+01
+ND 71 1.466000000e+01 2.084000000e+01 1.800000000e+01
+ND 72 1.824000000e+01 2.156000000e+01 1.800000000e+01
+ND 73 2.285000000e+01 2.131000000e+01 1.800000000e+01
+ND 74 2.955000000e+01 2.325000000e+01 1.900000000e+01
+ND 75 3.477000000e+01 2.437000000e+01 1.900000000e+01
+ND 76 3.866000000e+01 2.504000000e+01 1.900000000e+01
+ND 77 4.352000000e+01 2.550000000e+01 1.800000000e+01
+ND 78 3.538000000e+01 3.000000000e+01 1.850000000e+01
+ND 79 3.247000000e+01 2.842000000e+01 1.850000000e+01
+BEGPARAMDEF
+GM HYDRO_AS-2D
+SI 1
+DY 1
+TD 500 20000
+KEY "hydro_as-2d"
+PD "Rechenlauf fortsetzen ?" 0 0
+PD "Zeitintervall SMS [s]" 2 5000
+PD "Hmin [m]" 2 0.01
+PD "VELMAX [m/s]" 2 15
+PD "Amin" 2 1e-015
+PD "CMUVISC" 2 0.6
+NUME 2
+BD 0 "KUK / Druckabfluss" 1 1 "KUK [m ü NN]"
+BCDISP 0 1 1 0 0 0 0
+BD 0 "Pegelpunkt" 2 0
+BCDISP 0 2 1 0 0 0 0
+BD 1 "Zulauf" 1 2 "Abfluss [m^3/s]" "Richtung CCW °"
+BCDISP 1 1 1 0 255 0 0
+BD 1 "Auslauf / Ie" 2 1 "EL_Gefälle [Promille]"
+BCDISP 1 2 1 0 0 0 255
+BD 1 "Auslauf / W-Q" 3 11 "dQ [m^3/s]" "WSP_0 [m Ü NN]" "WSP_1 [m Ü NN]" "WSP_2 [m Ü NN]" "WSP_3 [m Ü NN]" "WSP_4 [m Ü NN]" "WSP_5 [m Ü NN]" "WSP_6 [m Ü NN]" "WSP_7 [m Ü NN]" "WSP_8 [m Ü NN]" "WSP_9 [m Ü NN]"
+BCDISP 1 3 1 0 0 255 255
+BD 1 "Durchlass / Rechteck" 4 6 "Abflusskoeffizient" "Breite [m]" "Höhe [m]" "Sohlhöhe z1 [m ü NN]" "Sohlhöhe z2 [m ü NN]" "Formel: 0=Poleni / 1=DU_BUAT"
+BCDISP 1 4 1 0 255 255 0
+BD 1 "Durchlass / kreisförmig" 5 5 "Abflusskoeffizient" "Durchmesser [m]" "Sohlhöhe z1 [m ü NN]" "Sohlhöhe z2 [m ü NN]" "Formel: 0=Poleni / 1=DU_BUAT"
+BCDISP 1 5 1 0 128 255 0
+BD 1 "Wehrüberfall" 6 4 "Überfallbeiwert" "Segmentbreite [m]" "Kronenhöhe [m ü NN]" "Formel: 0=Poleni / 1=DU_BUAT"
+BCDISP 1 6 1 0 255 0 255
+BD 1 "Kontrollquerschnitt" 7 0
+BCDISP 1 7 1 0 0 0 0
+MD 2 "Strickler" "Wirbelviskosität"
+ENDPARAMDEF
+BEG2DMBC
+END2DMBC
Added: trunk/bin/test_daten/dgmtin2/tdenv.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tdenv.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tedg.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tedg.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/thul.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/thul.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tmsk.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tmsk.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tmsx.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tmsx.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tnod.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tnod.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tnxy.adf
===================================================================
--- trunk/bin/test_daten/dgmtin2/tnxy.adf 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/bin/test_daten/dgmtin2/tnxy.adf 2007-09-02 20:13:20 UTC (rev 92)
@@ -0,0 +1,3 @@
+À!C>?áS§
O
+?ÚÖµkZÖ@½Îsç:@|uøëñ?áS§
O
+?ÚÖµkZÖÀµ$I$?Ê<*xV?çöíÚ??ÊR¥)JR?×öíÚ??ä8 q@â?èB!B?äB!B?×/0^`½?ÙêÃÕ«?âô3ègÐ?àÑÄL?å"8/O?à}æ?è-£]n
æ?àAد?ÞÃ8
|?àhþÑý¤?Û5j,ÔX?Ö:üuøëó?Û"6DlÙ?Ö0~M@%$?àPÊL?Ö"ñÃt?ãÛçÔøÎ\?Öæ¼8*?èó´QÛ?Ò<*xU?å~º%àÚ?Ò<*xU?èU]Lý?Ò<*xU?ãcÕæ
h?Ò<*xU?Ý2ÖSêÎM?Ò<*xU?ÙÞß07?Ò<*xT?×ã¼Í¯mÔ
\ No newline at end of file
Added: trunk/bin/test_daten/dgmtin2/tnxy_huelle.dbf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tnxy_huelle.dbf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tnxy_huelle.shp
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tnxy_huelle.shp
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tnxy_huelle.shx
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tnxy_huelle.shx
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/dgmtin2/tnz.adf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/dgmtin2/tnz.adf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/ergebnispolygone.dbf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/ergebnispolygone.dbf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/ergebnispolygone.shp
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/ergebnispolygone.shp
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/ergebnispolygone.shx
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/ergebnispolygone.shx
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/linien2.dbf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/linien2.dbf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/linien2.shp
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/linien2.shp
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/linien2.shx
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/linien2.shx
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/profile2.dbf
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/profile2.dbf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/profile2.shp
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/profile2.shp
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/bin/test_daten/profile2.shx
===================================================================
(Binary files differ)
Property changes on: trunk/bin/test_daten/profile2.shx
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/bin/test_results/test.txt
===================================================================
--- trunk/bin/test_results/test.txt 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/bin/test_results/test.txt 2007-09-02 20:13:20 UTC (rev 92)
@@ -1,8 +1,2757 @@
-10:25:12: ->Erzeugen des Begrenzungspolygons gestartet
-10:25:12: <-Erzeugen des Begrenzungspolygons beendet
-10:25:12: ->Erzeugen des Begrenzungspolygons gestartet
-10:25:12: <-Erzeugen des Begrenzungspolygons beendet
-10:25:12: ->Erzeugen des Begrenzungspolygons gestartet
-10:25:12: <-Erzeugen des Begrenzungspolygons beendet
-10:25:12: ->Erzeugen des Begrenzungspolygons gestartet
-10:25:12: <-Erzeugen des Begrenzungspolygons beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm2.2dm' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm2.2dm' als 2DM gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: Kapazität der Elementliste wurde auf 200000 erhöht
+21:48:40: 140 Elemente und 79 Knoten geladen
+21:48:40: 79 Knoten insgesamt
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm2.2dm' als 2DM beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 79 Knoten und 140 Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm2.2dm' beendet
+21:48:40: ->Laden der Profilspuren gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/profile2.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/profile2.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/profile2.shp' beendet
+21:48:40: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 3 von 3 Objekten geladen, 3 Profilspuren im Speicher
+21:48:40: <-Laden der Profilspuren beendet
+21:48:40: ->Ausrichten der Profilspuren gestartet
+21:48:40: 3 von 3 Profilspuren ausgerichtet, 0 gedreht
+21:48:40: <-Ausrichten der Profilspuren beendet
+21:48:40: ->Überprüfung der Profilspuren gestartet
+21:48:40: 3 von 3 Profilspuren überprüft
+21:48:40: <-Überprüfung der Profilspuren beendet
+21:48:40: ->Laden der Gewässerachsen gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/achse2.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/achse2.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/achse2.shp' beendet
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 1 von 1 Objekten gelesen, 1 Gewässerachsen im Speicher
+21:48:40: <-Laden der Gewässerachsen beendet
+21:48:40: ->Zusammenführen von Achsensegmenten gestart
+21:48:40: <-Zusammenführen von Achsensegmenten beendet
+21:48:40: ->Laden der Wasserstände gestartet
+21:48:40: ->Laden der Wasserstände im DBF-Format gestartet
+21:48:40: 3 von 3 Objekten gelesen, 3 Wasserstände im Speicher
+21:48:40: <-Laden der Wasserstände im DBF-Format beendet
+21:48:40: <-Laden der Wasserstände beendet
+21:48:40: ->Interpolieren der Wasserstände gestartet
+21:48:40: Bei Profil 1.0000 konnte der Wasserstand 17.80 übernommen werden
+21:48:40: Bei Profil 2.0000 konnte der Wasserstand 18.60 übernommen werden
+21:48:40: Bei Profil 3.0000 konnte der Wasserstand 19.20 übernommen werden
+21:48:40: 3 Profile bearbeitet
+21:48:40: <-Interpolieren der Wasserstände beendet
+21:48:40: 3 Objekte freigegeben
+21:48:40: ->Laden der Linien Strukturen (Sperren, Gräben und Rohre) gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/linien2.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/linien2.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/linien2.shp' beendet
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 2 von 2 Liniensstrukturen geladen, 2 Sperren, 0 Gräben, 0 Rohre Typ 1, 0 Rohre Typ 2
+21:48:40: <-Laden der Linien Strukturen (Sperren, Gräben und Rohre) beendet
+21:48:40: ->Erzeugung der Kanten gestartet
+21:48:40: ->Löschen des Knoten/Kanten-Index gestartet
+21:48:40: <-Löschen des Knoten/Kanten-Index beendet
+21:48:40: Kapazität der Kantenliste wurde auf 281 erhöht
+21:48:40: 140 von 140 Elementen, 218 Kanten erzeugt
+21:48:40: 0 von 218 Kanten getestet
+21:48:40: 218 von 218 Kanten getestet
+21:48:40: <-Erzeugung der Kanten beendet
+21:48:40: ->Löschen des Knoten/Kanten-Index gestartet
+21:48:40: <-Löschen des Knoten/Kanten-Index beendet
+21:48:40: ->Übertragen der Wasserstände gestartet
+21:48:40: 0 von 3 Profilen übertragen, 0 Wasserstände übertragen
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: 3 von 79 Knoten getestet, 27 Wasserstände übertragen
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: <-Übertragen der Wasserstände beendet
+21:48:40: 2 Objekte freigegeben
+21:48:40: 3 Objekte freigegeben
+21:48:40: 218 Objekte freigegeben
+21:48:40: 140 Objekte freigegeben
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 79 Objekte freigegeben
+21:48:40: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: 13 Werte gelesen, 13 von 13 Knoten im Speicher
+21:48:40: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' als XYZ beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 13 Knoten und keine Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/test_buildedgelist.xyz' beendet
+21:48:40: ->Triangulierung der Knoten gestartet
+21:48:40: ->Verschiebung des Koordinatensystems gestartet
+21:48:40: <-Verschiebung des Koordinatensystems beendet
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: ->Löschen des Knoten/Kanten-Index gestartet
+21:48:40: <-Löschen des Knoten/Kanten-Index beendet
+21:48:40: Kapazität der Elementliste wurde auf 37 erhöht
+21:48:40: Kapazität der Kantenliste wurde auf 82 erhöht
+21:48:40: ->Freigeben des Speichers der Kanten gestartet
+21:48:40: 58 Objekte freigegeben
+21:48:40: <-Freigeben des Speichers der Kanten beendet
+21:48:40: ->Zurückverschiebung des Koordinatensystems gestartet
+21:48:40: <-Zurückverschiebung des Koordinatensystems beendet
+21:48:40: ->Löschen der überschüssigen Elemente gestartet
+21:48:40: <-Löschen der überschüssigen Elemente beendet
+21:48:40: <-Triangulierung der Knoten beendet
+21:48:40: ->Erzeugung der Kanten gestartet
+21:48:40: ->Löschen des Knoten/Kanten-Index gestartet
+21:48:40: <-Löschen des Knoten/Kanten-Index beendet
+21:48:40: Kapazität der Kantenliste wurde auf 57 erhöht
+21:48:40: 17 von 28 Elementen, 29 Kanten erzeugt
+21:48:40: 0 von 29 Kanten getestet
+21:48:40: 29 von 29 Kanten getestet
+21:48:40: <-Erzeugung der Kanten beendet
+21:48:40: 29 Objekte freigegeben
+21:48:40: 28 Objekte freigegeben
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 17 Objekte freigegeben
+21:48:40: ->Sortieren der Punkte gestartet
+21:48:40: <-Sortieren der Punkte beendet
+21:48:40: ->Beschneiden des Begrenzungspolygon gestartet
+21:48:40: Beschneidung mit Profil 0.0000
+21:48:40: <-Beschneiden des Begrenzungspolygon beendet
+21:48:40: ->Beschneiden des Begrenzungspolygon gestartet
+21:48:40: Beschneidung mit Profil 0.0001
+21:48:40: <-Beschneiden des Begrenzungspolygon beendet
+21:48:40: ->Laden der hydraulischen Grenze gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/test1.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/test1.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/test1.shp' beendet
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: <-Laden der hydraulischen Grenze beendet
+21:48:40: ->Laden der Profilspuren gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/test1p.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/test1p.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/test1p.shp' beendet
+21:48:40: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 5 von 5 Objekten geladen, 5 Profilspuren im Speicher
+21:48:40: <-Laden der Profilspuren beendet
+21:48:40: ->Ausrichten der Profilspuren gestartet
+21:48:40: 5 von 5 Profilspuren ausgerichtet, 3 gedreht
+21:48:40: <-Ausrichten der Profilspuren beendet
+21:48:40: ->Überprüfung der Profilspuren gestartet
+21:48:40: 5 von 5 Profilspuren überprüft
+21:48:40: <-Überprüfung der Profilspuren beendet
+21:48:40: ->Erzeugung des Begrenzungspolygons gestartet
+21:48:40: ->Erzeugen des Begrenzungspolygons gestartet
+21:48:40: <-Erzeugen des Begrenzungspolygons beendet
+21:48:40: 7 Begrenzungspunkte erzeugt
+21:48:40: <-Erzeugung des Begrenzungspolygons beendet
+21:48:40: ->Beschneiden des Begrenzungspolygon gestartet
+21:48:40: Beschneidung mit Profil 0.0000
+21:48:40: <-Beschneiden des Begrenzungspolygon beendet
+21:48:40: 5 Objekte freigegeben
+21:48:40: 6 Objekte freigegeben
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
+21:48:40: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
+21:48:40: Projektionsdatei 'test_daten/dgm.Prj' konnte nicht geöffnet werden
+21:48:40: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 114 Knoten und keine Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0.01,0.01
+21:48:40: 0.01,0.01
+21:48:40: 0.01,0.02
+21:48:40: 0.02,0.02
+21:48:40: 0.02,0.01
+21:48:40: 0.01,0.01
+21:48:40: 0.01,0.02
+21:48:40: 0.02,0.02
+21:48:40: 0.02,0.01
+21:48:40: 0.01,0.01
+21:48:40: 0.01,0.02
+21:48:40: 0.01,0.03
+21:48:40: 0.02,0.02
+21:48:40: 0.02,0.03
+21:48:40: 0.03,0.02
+21:48:40: 0.03,0.03
+21:48:40: 0.02,0.01
+21:48:40: 0.03,0.01
+21:48:40: 0.01,0.01
+21:48:40: 0.01,0.09
+21:48:40: 0.04,0.09
+21:48:40: 0.03,0.06
+21:48:40: 0.04,0.05
+21:48:40: 0.09,0.09
+21:48:40: 0.07,0.09
+21:48:40: 0.07,0.07
+21:48:40: 0.07,0.06
+21:48:40: 0.09,0.01
+21:48:40: 0.07,0.04
+21:48:40: 0.03,0.04
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 1126 Knoten und keine Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
+21:48:40: 3501267.49,5872612.21
+21:48:40: 3500741.94,5873010.11
+21:48:40: 3500733.82,5872983.87
+21:48:40: 3500726.79,5873108.23
+21:48:40: 3500727.21,5873257.13
+21:48:40: 3500730.52,5873329.20
+21:48:40: 3500734.91,5873293.44
+21:48:40: 3500685.45,5873261.49
+21:48:40: 3500699.93,5873298.09
+21:48:40: 3500738.07,5873147.90
+21:48:40: 3500691.05,5873185.69
+21:48:40: 3500692.77,5873223.67
+21:48:40: 3500724.99,5873180.90
+21:48:40: 3500730.53,5873216.57
+21:48:40: 3500685.70,5873112.11
+21:48:40: 3500700.42,5873147.47
+21:48:40: 3500733.86,5873038.63
+21:48:40: 3500726.38,5873069.66
+21:48:40: 3500695.85,5873035.94
+21:48:40: 3500695.28,5873076.51
+21:48:40: 3500731.87,5872960.78
+21:48:40: 3500713.94,5873006.84
+21:48:40: 3500710.48,5872981.53
+21:48:40: 3500714.77,5872967.93
+21:48:40: 3500733.58,5872944.56
+21:48:40: 3501269.86,5872816.42
+21:48:40: 3501099.88,5873416.41
+21:48:40: 3501063.99,5873407.92
+21:48:40: 3501022.45,5873411.00
+21:48:40: 3500987.30,5873417.60
+21:48:40: 3500955.14,5873404.00
+21:48:40: 3500922.33,5873416.94
+21:48:40: 3500879.94,5873411.35
+21:48:40: 3500835.30,5873410.84
+21:48:40: 3500797.71,5873412.18
+21:48:40: 3501251.80,5873408.21
+21:48:40: 3501334.15,5873408.58
+21:48:40: 3501410.39,5873416.02
+21:48:40: 3501444.14,5873404.29
+21:48:40: 3501375.52,5873411.84
+21:48:40: 3501213.20,5873407.85
+21:48:40: 3501293.31,5873419.57
+21:48:40: 3501177.16,5873415.15
+21:48:40: 3501136.19,5873411.35
+21:48:40: 3501251.95,5872819.23
+21:48:40: 3501247.91,5873111.14
+21:48:40: 3501177.23,5873257.77
+21:48:40: 3501147.48,5873340.62
+21:48:40: 3501142.70,5873374.43
+21:48:40: 3501183.79,5873333.72
+21:48:40: 3501180.31,5873373.97
+21:48:40: 3501217.95,5873373.52
+21:48:40: 3501213.19,5873304.01
+21:48:40: 3501184.45,5873293.37
+21:48:40: 3501136.62,5873261.72
+21:48:40: 3501145.77,5873302.23
+21:48:40: 3501263.50,5873260.93
+21:48:40: 3501259.17,5873331.73
+21:48:40: 3501256.42,5873367.06
+21:48:40: 3501224.98,5873337.01
+21:48:40: 3501296.42,5873339.25
+21:48:40: 3501293.05,5873382.51
+21:48:40: 3501298.37,5873266.32
+21:48:40: 3501284.76,5873299.04
+21:48:40: 3501221.67,5873264.43
+21:48:40: 3501247.43,5873298.09
+21:48:40: 3501288.19,5873113.25
+21:48:40: 3501256.03,5873186.16
+21:48:40: 3501248.53,5873224.43
+21:48:40: 3501293.02,5873187.36
+21:48:40: 3501289.61,5873226.83
+21:48:40: 3501300.28,5873152.80
+21:48:40: 3501262.38,5873148.08
+21:48:40: 3501221.72,5873152.04
+21:48:40: 3501210.24,5873111.86
+21:48:40: 3501147.05,5873190.51
+21:48:40: 3501142.62,5873224.06
+21:48:40: 3501217.82,5873192.87
+21:48:40: 3501180.39,5873216.01
+21:48:40: 3501212.35,5873229.77
+21:48:40: 3501181.50,5873177.77
+21:48:40: 3501177.08,5873105.90
+21:48:40: 3501180.06,5873140.75
+21:48:40: 3501139.21,5873112.89
+21:48:40: 3501142.94,5873156.09
+21:48:40: 3501326.44,5873107.03
+21:48:40: 3501331.45,5873253.41
+21:48:40: 3501335.30,5873331.59
+21:48:40: 3501330.44,5873366.95
+21:48:40: 3501369.03,5873336.90
+21:48:40: 3501368.22,5873374.38
+21:48:40: 3501405.85,5873336.38
+21:48:40: 3501367.01,5873268.75
+21:48:40: 3501363.40,5873303.35
+21:48:40: 3501403.28,5873295.62
+21:48:40: 3501401.10,5873257.08
+21:48:40: 3501325.99,5873295.48
+21:48:40: 3501440.19,5873265.38
+21:48:40: 3501443.83,5873343.78
+21:48:40: 3501407.30,5873377.34
+21:48:40: 3501443.41,5873374.10
+21:48:40: 3501442.85,5873306.61
+21:48:40: 3501410.28,5873227.36
+21:48:40: 3501364.60,5873113.67
+21:48:40: 3501330.36,5873176.63
+21:48:40: 3501330.04,5873215.80
+21:48:40: 3501363.44,5873191.14
+21:48:40: 3501371.23,5873226.76
+21:48:40: 3501405.96,5873185.52
+21:48:40: 3501402.31,5873106.54
+21:48:40: 3501369.06,5873156.21
+21:48:40: 3501405.50,5873141.20
+21:48:40: 3501331.89,5873138.57
+21:48:40: 3501323.29,5872851.93
+21:48:40: 3501322.72,5872961.19
+21:48:40: 3501329.42,5873027.24
+21:48:40: 3501334.53,5873069.66
+21:48:40: 3501362.75,5873041.40
+21:48:40: 3501375.73,5873073.47
+21:48:40: 3501364.72,5872965.28
+21:48:40: 3501368.01,5873006.17
+21:48:40: 3501335.84,5872992.78
+21:48:40: 3501332.60,5872865.63
+21:48:40: 3501330.76,5872887.44
+21:48:40: 3501335.29,5872925.67
+21:48:40: 3501290.05,5872816.47
+21:48:40: 3501147.89,5872960.56
+21:48:40: 3501137.56,5873041.01
+21:48:40: 3501150.96,5873073.29
+21:48:40: 3501214.91,5873038.09
+21:48:40: 3501188.50,5873072.32
+21:48:40: 3501173.03,5873035.24
+21:48:40: 3501180.24,5872961.77
+21:48:40: 3501183.47,5872996.92
+21:48:40: 3501210.46,5872961.30
+21:48:40: 3501140.95,5873001.24
+21:48:40: 3501284.89,5872962.09
+21:48:40: 3501255.33,5873027.33
+21:48:40: 3501223.54,5873077.76
+21:48:40: 3501259.03,5873069.47
+21:48:40: 3501292.63,5873043.39
+21:48:40: 3501297.30,5873077.96
+21:48:40: 3501296.77,5873002.29
+21:48:40: 3501247.70,5872961.39
+21:48:40: 3501226.84,5872999.13
+21:48:40: 3501262.40,5872991.16
+21:48:40: 3501233.71,5872816.50
+21:48:40: 3501239.10,5872876.42
+21:48:40: 3501221.78,5872925.08
+21:48:40: 3501259.53,5872925.33
+21:48:40: 3501256.06,5872889.47
+21:48:40: 3501237.33,5872898.41
+21:48:40: 3501274.61,5872876.44
+21:48:40: 3501297.60,5872925.39
+21:48:40: 3501293.36,5872888.43
+21:48:40: 3501312.18,5872897.81
+21:48:40: 3501274.47,5872898.46
+21:48:40: 3501310.44,5872816.53
+21:48:40: 3501273.70,5872858.16
+21:48:40: 3501298.49,5872855.04
+21:48:40: 3501291.41,5872868.26
+21:48:40: 3501312.06,5872872.11
+21:48:40: 3501308.56,5872835.82
+21:48:40: 3501267.74,5872835.91
+21:48:40: 3501287.18,5872837.17
+21:48:40: 3501245.66,5872835.10
+21:48:40: 3501231.54,5872851.41
+21:48:40: 3501224.10,5872864.38
+21:48:40: 3501260.98,5872849.75
+21:48:40: 3501248.90,5872861.27
+21:48:40: 3501258.31,5872869.82
+21:48:40: 3501247.51,5872851.07
+21:48:40: 3501224.15,5872834.64
+21:48:40: 3501210.50,5872814.37
+21:48:40: 3501142.37,5872889.76
+21:48:40: 3501142.36,5872919.79
+21:48:40: 3501162.30,5872894.94
+21:48:40: 3501125.47,5872894.52
+21:48:40: 3501218.32,5872886.87
+21:48:40: 3501180.42,5872927.13
+21:48:40: 3501199.62,5872896.32
+21:48:40: 3501182.02,5872888.23
+21:48:40: 3501187.96,5872817.11
+21:48:40: 3501185.26,5872853.86
+21:48:40: 3501174.50,5872870.61
+21:48:40: 3501208.65,5872851.45
+21:48:40: 3501199.30,5872867.49
+21:48:40: 3501214.97,5872870.87
+21:48:40: 3501205.55,5872832.66
+21:48:40: 3501187.15,5872835.82
+21:48:40: 3501166.84,5872816.82
+21:48:40: 3501146.79,5872851.56
+21:48:40: 3501129.24,5872860.15
+21:48:40: 3501165.39,5872857.58
+21:48:40: 3501149.71,5872873.72
+21:48:40: 3501165.59,5872837.46
+21:48:40: 3501146.76,5872815.84
+21:48:40: 3501128.45,5872819.34
+21:48:40: 3501144.14,5872833.69
+21:48:40: 3501107.18,5872815.07
+21:48:40: 3500912.76,5873116.86
+21:48:40: 3500840.35,5873264.82
+21:48:40: 3500767.75,5873344.49
+21:48:40: 3500767.78,5873381.38
+21:48:40: 3500807.89,5873333.43
+21:48:40: 3500805.86,5873373.64
+21:48:40: 3500838.21,5873303.01
+21:48:40: 3500805.11,5873291.43
+21:48:40: 3500800.94,5873256.04
+21:48:40: 3500767.07,5873268.41
+21:48:40: 3500768.94,5873307.67
+21:48:40: 3500913.32,5873265.15
+21:48:40: 3500876.57,5873340.25
+21:48:40: 3500845.54,5873372.09
+21:48:40: 3500885.10,5873370.29
+21:48:40: 3500847.14,5873332.02
+21:48:40: 3500916.54,5873336.09
+21:48:40: 3500917.84,5873381.57
+21:48:40: 3500922.64,5873294.86
+21:48:40: 3500879.77,5873254.67
+21:48:40: 3500880.51,5873298.62
+21:48:40: 3500926.60,5873149.37
+21:48:40: 3500879.61,5873193.06
+21:48:40: 3500849.25,5873223.58
+21:48:40: 3500880.80,5873223.73
+21:48:40: 3500913.31,5873181.35
+21:48:40: 3500919.01,5873223.93
+21:48:40: 3500876.98,5873107.08
+21:48:40: 3500847.98,5873143.55
+21:48:40: 3500883.38,5873151.96
+21:48:40: 3500834.23,5873110.17
+21:48:40: 3500760.19,5873186.29
+21:48:40: 3500770.45,5873227.14
+21:48:40: 3500839.62,5873182.20
+21:48:40: 3500813.51,5873223.01
+21:48:40: 3500797.99,5873187.01
+21:48:40: 3500813.75,5873148.92
+21:48:40: 3500796.43,5873110.44
+21:48:40: 3500776.41,5873148.75
+21:48:40: 3500762.14,5873115.93
+21:48:40: 3501098.09,5873109.81
+21:48:40: 3501000.29,5873260.77
+21:48:40: 3500955.63,5873336.67
+21:48:40: 3500955.20,5873366.47
+21:48:40: 3500994.13,5873337.42
+21:48:40: 3500993.10,5873380.95
+21:48:40: 3501022.86,5873298.52
+21:48:40: 3500987.23,5873294.02
+21:48:40: 3500955.67,5873261.70
+21:48:40: 3500955.47,5873305.97
+21:48:40: 3501105.69,5873261.31
+21:48:40: 3501064.19,5873340.74
+21:48:40: 3501032.54,5873371.46
+21:48:40: 3501073.24,5873369.69
+21:48:40: 3501034.48,5873331.90
+21:48:40: 3501105.70,5873335.98
+21:48:40: 3501105.46,5873381.14
+21:48:40: 3501105.34,5873293.22
+21:48:40: 3501074.61,5873261.24
+21:48:40: 3501065.41,5873301.97
+21:48:40: 3501038.47,5873261.35
+21:48:40: 3501062.38,5873115.47
+21:48:40: 3501064.09,5873182.03
+21:48:40: 3501064.90,5873220.27
+21:48:40: 3501105.11,5873186.61
+21:48:40: 3501104.79,5873229.40
+21:48:40: 3501110.44,5873143.84
+21:48:40: 3501076.58,5873149.19
+21:48:40: 3501037.63,5873148.04
+21:48:40: 3501026.69,5873107.74
+21:48:40: 3500951.62,5873188.63
+21:48:40: 3500954.81,5873224.11
+21:48:40: 3501030.10,5873186.27
+21:48:40: 3500985.27,5873224.11
+21:48:40: 3501023.11,5873223.69
+21:48:40: 3500992.60,5873186.29
+21:48:40: 3500984.92,5873110.95
+21:48:40: 3501001.35,5873147.88
+21:48:40: 3500949.26,5873110.68
+21:48:40: 3500963.93,5873149.18
+21:48:40: 3501124.15,5872838.14
+21:48:40: 3501025.76,5872962.80
+21:48:40: 3500956.03,5873027.96
+21:48:40: 3500957.26,5873069.06
+21:48:40: 3501026.72,5873031.73
+21:48:40: 3500997.39,5873078.42
+21:48:40: 3501031.11,5873065.63
+21:48:40: 3500992.65,5873043.10
+21:48:40: 3500989.14,5872962.66
+21:48:40: 3500996.81,5873002.11
+21:48:40: 3500950.22,5872962.71
+21:48:40: 3500960.82,5872994.52
+21:48:40: 3501109.08,5872963.52
+21:48:40: 3501065.72,5873040.07
+21:48:40: 3501067.86,5873080.47
+21:48:40: 3501105.27,5873028.74
+21:48:40: 3501108.66,5873070.37
+21:48:40: 3501101.44,5872993.67
+21:48:40: 3501067.75,5872963.78
+21:48:40: 3501038.13,5872998.98
+21:48:40: 3501072.08,5873003.81
+21:48:40: 3501101.81,5872836.95
+21:48:40: 3501042.01,5872875.95
+21:48:40: 3501049.13,5872935.85
+21:48:40: 3501068.33,5872925.32
+21:48:40: 3501075.31,5872883.06
+21:48:40: 3501066.74,5872902.35
+21:48:40: 3501065.34,5872889.34
+21:48:40: 3501050.51,5872886.17
+21:48:40: 3501033.08,5872903.34
+21:48:40: 3501049.64,5872911.19
+21:48:40: 3501124.91,5872876.83
+21:48:40: 3501089.36,5872932.76
+21:48:40: 3501116.95,5872935.34
+21:48:40: 3501109.02,5872887.71
+21:48:40: 3501108.76,5872909.18
+21:48:40: 3501100.11,5872879.94
+21:48:40: 3501084.77,5872907.14
+21:48:40: 3501093.11,5872891.98
+21:48:40: 3501086.13,5872821.18
+21:48:40: 3501082.61,5872839.63
+21:48:40: 3501079.70,5872871.28
+21:48:40: 3501090.27,5872858.11
+21:48:40: 3501110.25,5872853.02
+21:48:40: 3501109.41,5872869.13
+21:48:40: 3501068.00,5872814.42
+21:48:40: 3501042.65,5872857.60
+21:48:40: 3501065.35,5872853.75
+21:48:40: 3501060.70,5872872.06
+21:48:40: 3501064.53,5872833.30
+21:48:40: 3501047.52,5872817.09
+21:48:40: 3501044.11,5872837.33
+21:48:40: 3501023.73,5872817.36
+21:48:40: 3500976.12,5872895.51
+21:48:40: 3500956.28,5872926.96
+21:48:40: 3500938.25,5872914.04
+21:48:40: 3500974.87,5872914.20
+21:48:40: 3500973.99,5872936.29
+21:48:40: 3500964.72,5872878.32
+21:48:40: 3500958.83,5872907.54
+21:48:40: 3500951.32,5872898.62
+21:48:40: 3501025.72,5872889.28
+21:48:40: 3500993.38,5872926.09
+21:48:40: 3501030.67,5872925.41
+21:48:40: 3501011.42,5872935.20
+21:48:40: 3501012.50,5872909.90
+21:48:40: 3501006.08,5872877.51
+21:48:40: 3500992.09,5872905.90
+21:48:40: 3501000.92,5872892.40
+21:48:40: 3500986.33,5872876.32
+21:48:40: 3501026.19,5872839.59
+21:48:40: 3501000.81,5872857.91
+21:48:40: 3501020.57,5872854.31
+21:48:40: 3501023.76,5872870.61
+21:48:40: 3501001.25,5872814.92
+21:48:40: 3501004.85,5872835.50
+21:48:40: 3500982.32,5872817.64
+21:48:40: 3500957.59,5872858.04
+21:48:40: 3500942.94,5872874.58
+21:48:40: 3500983.78,5872837.83
+21:48:40: 3500978.29,5872857.54
+21:48:40: 3500965.97,5872841.75
+21:48:40: 3500961.93,5872821.83
+21:48:40: 3500940.00,5872815.40
+21:48:40: 3500947.10,5872836.70
+21:48:40: 3500937.49,5872855.01
+21:48:40: 3500841.93,5872957.06
+21:48:40: 3500770.03,5873039.00
+21:48:40: 3500765.42,5873077.17
+21:48:40: 3500840.16,5873040.20
+21:48:40: 3500808.78,5873070.45
+21:48:40: 3500801.01,5873031.95
+21:48:40: 3500816.97,5872973.22
+21:48:40: 3500809.91,5873002.22
+21:48:40: 3500789.69,5872970.41
+21:48:40: 3500770.53,5872997.97
+21:48:40: 3500769.28,5872963.04
+21:48:40: 3500750.76,5872969.58
+21:48:40: 3500751.90,5872950.19
+21:48:40: 3500913.32,5872962.89
+21:48:40: 3500880.41,5873027.26
+21:48:40: 3500847.20,5873077.54
+21:48:40: 3500880.99,5873065.10
+21:48:40: 3500918.91,5873044.15
+21:48:40: 3500917.47,5873080.60
+21:48:40: 3500921.53,5873002.66
+21:48:40: 3500876.00,5872962.78
+21:48:40: 3500848.17,5872998.34
+21:48:40: 3500886.12,5872994.25
+21:48:40: 3500937.36,5872892.10
+21:48:40: 3500883.43,5872926.01
+21:48:40: 3500862.10,5872931.81
+21:48:40: 3500882.18,5872895.73
+21:48:40: 3500876.93,5872907.96
+21:48:40: 3500877.64,5872877.13
+21:48:40: 3500852.13,5872911.07
+21:48:40: 3500862.37,5872894.75
+21:48:40: 3500855.33,5872877.12
+21:48:40: 3500936.74,5872935.56
+21:48:40: 3500900.25,5872934.30
+21:48:40: 3500920.39,5872929.76
+21:48:40: 3500915.48,5872914.84
+21:48:40: 3500926.52,5872901.73
+21:48:40: 3500922.77,5872880.33
+21:48:40: 3500912.77,5872892.31
+21:48:40: 3500901.73,5872904.85
+21:48:40: 3500896.40,5872890.05
+21:48:40: 3500917.25,5872817.03
+21:48:40: 3500905.58,5872837.85
+21:48:40: 3500901.20,5872873.38
+21:48:40: 3500898.20,5872854.69
+21:48:40: 3500918.99,5872859.22
+21:48:40: 3500925.41,5872836.61
+21:48:40: 3500896.30,5872817.09
+21:48:40: 3500875.50,5872817.45
+21:48:40: 3500859.20,5872857.55
+21:48:40: 3500879.92,5872857.92
+21:48:40: 3500884.79,5872837.31
+21:48:40: 3500855.15,5872816.69
+21:48:40: 3500863.69,5872837.35
+21:48:40: 3500842.46,5872927.13
+21:48:40: 3500788.09,5872946.59
+21:48:40: 3500770.46,5872940.66
+21:48:40: 3500755.77,5872933.07
+21:48:40: 3500757.95,5872913.49
+21:48:40: 3500787.86,5872928.78
+21:48:40: 3500777.96,5872921.57
+21:48:40: 3500794.25,5872897.66
+21:48:40: 3500781.43,5872911.91
+21:48:40: 3500777.30,5872878.18
+21:48:40: 3500772.67,5872896.66
+21:48:40: 3500823.51,5872930.12
+21:48:40: 3500809.91,5872947.81
+21:48:40: 3500802.53,5872917.30
+21:48:40: 3500803.36,5872929.93
+21:48:40: 3500827.33,5872914.18
+21:48:40: 3500839.00,5872894.88
+21:48:40: 3500815.41,5872897.61
+21:48:40: 3500818.54,5872878.10
+21:48:40: 3500797.60,5872878.09
+21:48:40: 3500836.45,5872874.95
+21:48:40: 3500818.43,5872857.50
+21:48:40: 3500800.61,5872860.50
+21:48:40: 3500819.00,5872838.01
+21:48:40: 3500839.00,5872857.09
+21:48:40: 3500836.52,5872814.29
+21:48:40: 3500840.94,5872835.88
+21:48:40: 3500818.63,5872817.37
+21:48:40: 3500800.95,5872820.10
+21:48:40: 3500796.28,5872839.60
+21:48:40: 3500772.62,5872837.50
+21:48:40: 3500782.20,5872857.64
+21:48:40: 3500782.21,5872817.07
+21:48:40: 3500758.25,5872815.41
+21:48:40: 3501270.00,5872629.60
+21:48:40: 3501122.32,5872634.24
+21:48:40: 3500920.58,5872543.15
+21:48:40: 3500829.46,5872657.27
+21:48:40: 3500775.86,5872737.11
+21:48:40: 3500752.90,5872775.57
+21:48:40: 3500759.85,5872793.77
+21:48:40: 3500776.55,5872778.50
+21:48:40: 3500776.04,5872799.11
+21:48:40: 3500780.52,5872758.67
+21:48:40: 3500753.50,5872736.52
+21:48:40: 3500761.61,5872756.10
+21:48:40: 3500835.29,5872735.63
+21:48:40: 3500818.23,5872780.39
+21:48:40: 3500797.68,5872796.19
+21:48:40: 3500798.40,5872772.36
+21:48:40: 3500836.01,5872773.44
+21:48:40: 3500820.87,5872799.15
+21:48:40: 3500841.36,5872794.51
+21:48:40: 3500843.44,5872755.12
+21:48:40: 3500820.43,5872757.97
+21:48:40: 3500816.02,5872737.94
+21:48:40: 3500798.14,5872751.41
+21:48:40: 3500798.14,5872731.31
+21:48:40: 3500805.93,5872665.68
+21:48:40: 3500798.83,5872695.26
+21:48:40: 3500817.26,5872716.74
+21:48:40: 3500820.10,5872696.38
+21:48:40: 3500839.67,5872694.61
+21:48:40: 3500838.95,5872715.10
+21:48:40: 3500822.62,5872677.10
+21:48:40: 3500843.03,5872671.82
+21:48:40: 3500803.40,5872680.06
+21:48:40: 3500777.26,5872653.82
+21:48:40: 3500757.68,5872699.44
+21:48:40: 3500758.04,5872717.86
+21:48:40: 3500778.26,5872695.59
+21:48:40: 3500777.64,5872716.40
+21:48:40: 3500795.80,5872712.66
+21:48:40: 3500782.39,5872674.09
+21:48:40: 3500761.30,5872668.45
+21:48:40: 3500758.86,5872682.49
+21:48:40: 3500897.89,5872651.18
+21:48:40: 3500877.56,5872737.67
+21:48:40: 3500855.41,5872775.99
+21:48:40: 3500863.79,5872796.29
+21:48:40: 3500875.34,5872776.16
+21:48:40: 3500884.94,5872796.92
+21:48:40: 3500884.56,5872756.12
+21:48:40: 3500857.78,5872733.39
+21:48:40: 3500864.05,5872755.62
+21:48:40: 3500922.89,5872733.79
+21:48:40: 3500896.06,5872776.82
+21:48:40: 3500905.37,5872797.16
+21:48:40: 3500917.45,5872776.54
+21:48:40: 3500925.86,5872796.41
+21:48:40: 3500921.55,5872755.51
+21:48:40: 3500899.20,5872736.77
+21:48:40: 3500903.53,5872758.44
+21:48:40: 3500917.39,5872656.45
+21:48:40: 3500898.72,5872695.92
+21:48:40: 3500903.21,5872717.77
+21:48:40: 3500922.34,5872692.44
+21:48:40: 3500919.04,5872712.09
+21:48:40: 3500924.13,5872671.82
+21:48:40: 3500902.94,5872673.91
+21:48:40: 3500863.65,5872659.67
+21:48:40: 3500855.96,5872691.76
+21:48:40: 3500860.35,5872710.50
+21:48:40: 3500876.05,5872695.88
+21:48:40: 3500882.04,5872716.91
+21:48:40: 3500882.92,5872659.10
+21:48:40: 3500881.72,5872676.90
+21:48:40: 3500863.28,5872677.84
+21:48:40: 3500932.76,5872579.75
+21:48:40: 3500850.35,5872578.79
+21:48:40: 3500864.11,5872627.62
+21:48:40: 3500853.00,5872648.86
+21:48:40: 3500887.29,5872617.03
+21:48:40: 3500876.53,5872640.46
+21:48:40: 3500870.71,5872605.35
+21:48:40: 3500928.58,5872611.24
+21:48:40: 3500900.07,5872632.05
+21:48:40: 3500909.95,5872639.29
+21:48:40: 3500923.60,5872623.64
+21:48:40: 3500925.70,5872640.40
+21:48:40: 3500891.48,5872577.00
+21:48:40: 3500909.44,5872608.12
+21:48:40: 3500899.53,5872505.24
+21:48:40: 3500886.12,5872537.71
+21:48:40: 3500853.71,5872543.18
+21:48:40: 3500856.95,5872502.88
+21:48:40: 3500820.23,5872548.97
+21:48:40: 3500774.30,5872576.19
+21:48:40: 3500756.75,5872646.65
+21:48:40: 3500778.43,5872614.65
+21:48:40: 3500796.74,5872647.50
+21:48:40: 3500810.24,5872582.64
+21:48:40: 3500815.22,5872620.62
+21:48:40: 3500817.46,5872647.41
+21:48:40: 3500841.29,5872635.38
+21:48:40: 3500842.84,5872608.02
+21:48:40: 3500817.21,5872513.96
+21:48:40: 3500782.56,5872540.34
+21:48:40: 3501121.81,5872598.65
+21:48:40: 3501019.35,5872654.55
+21:48:40: 3500979.76,5872733.04
+21:48:40: 3500960.15,5872778.46
+21:48:40: 3500944.33,5872794.53
+21:48:40: 3500939.44,5872774.38
+21:48:40: 3500981.33,5872778.05
+21:48:40: 3500963.88,5872799.18
+21:48:40: 3500962.34,5872739.70
+21:48:40: 3500962.37,5872760.17
+21:48:40: 3500944.53,5872732.39
+21:48:40: 3500941.67,5872751.87
+21:48:40: 3501024.02,5872734.91
+21:48:40: 3501002.68,5872772.57
+21:48:40: 3500985.20,5872798.95
+21:48:40: 3501005.18,5872794.70
+21:48:40: 3501023.44,5872776.30
+21:48:40: 3501025.93,5872794.89
+21:48:40: 3501021.79,5872758.07
+21:48:40: 3500999.64,5872735.39
+21:48:40: 3500984.41,5872754.54
+21:48:40: 3501005.83,5872752.74
+21:48:40: 3501025.85,5872675.02
+21:48:40: 3501006.54,5872694.40
+21:48:40: 3500985.24,5872716.77
+21:48:40: 3501003.58,5872714.96
+21:48:40: 3501023.70,5872694.34
+21:48:40: 3501024.09,5872711.88
+21:48:40: 3500999.00,5872653.89
+21:48:40: 3500985.41,5872671.67
+21:48:40: 3501003.29,5872674.51
+21:48:40: 3500978.44,5872653.61
+21:48:40: 3500958.75,5872694.55
+21:48:40: 3500939.98,5872713.54
+21:48:40: 3500941.39,5872694.44
+21:48:40: 3500982.65,5872694.61
+21:48:40: 3500963.86,5872715.98
+21:48:40: 3500966.44,5872674.88
+21:48:40: 3500959.29,5872656.97
+21:48:40: 3500943.85,5872675.41
+21:48:40: 3500940.14,5872653.50
+21:48:40: 3501124.54,5872713.13
+21:48:40: 3501062.87,5872732.89
+21:48:40: 3501042.20,5872778.44
+21:48:40: 3501044.10,5872797.35
+21:48:40: 3501063.19,5872777.58
+21:48:40: 3501062.28,5872798.81
+21:48:40: 3501066.70,5872754.34
+21:48:40: 3501046.54,5872738.13
+21:48:40: 3501042.91,5872757.62
+21:48:40: 3501124.38,5872757.75
+21:48:40: 3501084.77,5872776.09
+21:48:40: 3501083.68,5872798.76
+21:48:40: 3501124.81,5872798.41
+21:48:40: 3501103.24,5872794.15
+21:48:40: 3501108.10,5872774.75
+21:48:40: 3501110.30,5872735.44
+21:48:40: 3501103.32,5872752.88
+21:48:40: 3501085.20,5872735.50
+21:48:40: 3501087.59,5872758.25
+21:48:40: 3501107.74,5872655.44
+21:48:40: 3501083.39,5872692.30
+21:48:40: 3501087.50,5872712.39
+21:48:40: 3501106.21,5872698.61
+21:48:40: 3501103.19,5872718.29
+21:48:40: 3501106.11,5872678.25
+21:48:40: 3501083.07,5872652.54
+21:48:40: 3501088.43,5872671.12
+21:48:40: 3501061.08,5872655.24
+21:48:40: 3501040.37,5872694.44
+21:48:40: 3501045.80,5872716.46
+21:48:40: 3501060.57,5872694.50
+21:48:40: 3501069.11,5872714.57
+21:48:40: 3501069.37,5872673.58
+21:48:40: 3501039.44,5872655.25
+21:48:40: 3501048.44,5872674.05
+21:48:40: 3501115.29,5872578.40
+21:48:40: 3501072.16,5872604.47
+21:48:40: 3501042.90,5872621.64
+21:48:40: 3501047.12,5872638.76
+21:48:40: 3501063.65,5872616.36
+21:48:40: 3501066.31,5872634.53
+21:48:40: 3501057.54,5872591.37
+21:48:40: 3501047.34,5872607.37
+21:48:40: 3501037.96,5872597.83
+21:48:40: 3501040.42,5872577.91
+21:48:40: 3501109.16,5872615.97
+21:48:40: 3501086.08,5872618.17
+21:48:40: 3501085.36,5872634.95
+21:48:40: 3501102.06,5872635.09
+21:48:40: 3501099.55,5872590.34
+21:48:40: 3501084.08,5872595.98
+21:48:40: 3501096.98,5872601.56
+21:48:40: 3501078.23,5872579.53
+21:48:40: 3501117.18,5872538.63
+21:48:40: 3501097.28,5872569.03
+21:48:40: 3501078.77,5872546.75
+21:48:40: 3501111.32,5872501.40
+21:48:40: 3501075.10,5872509.26
+21:48:40: 3501040.94,5872538.96
+21:48:40: 3501059.49,5872568.87
+21:48:40: 3501036.13,5872501.02
+21:48:40: 3501000.21,5872540.43
+21:48:40: 3500966.11,5872584.15
+21:48:40: 3500948.06,5872619.02
+21:48:40: 3500941.10,5872634.03
+21:48:40: 3500972.88,5872616.09
+21:48:40: 3500962.34,5872636.44
+21:48:40: 3501022.52,5872610.28
+21:48:40: 3500997.70,5872613.19
+21:48:40: 3500985.70,5872633.81
+21:48:40: 3501006.78,5872634.11
+21:48:40: 3501028.24,5872636.30
+21:48:40: 3501019.38,5872620.14
+21:48:40: 3501018.89,5872590.18
+21:48:40: 3500996.17,5872597.86
+21:48:40: 3501002.82,5872504.66
+21:48:40: 3500993.51,5872570.39
+21:48:40: 3501021.62,5872568.54
+21:48:40: 3500960.32,5872544.50
+21:48:40: 3500969.85,5872510.23
+21:48:40: 3500938.44,5872507.21
+21:48:40: 3501124.90,5872469.44
+21:48:40: 3501010.66,5872468.95
+21:48:40: 3500967.61,5872469.72
+21:48:40: 3500960.00,5872426.24
+21:48:40: 3500995.84,5872432.90
+21:48:40: 3501011.33,5872393.41
+21:48:40: 3501000.95,5872353.37
+21:48:40: 3500974.22,5872393.15
+21:48:40: 3500961.63,5872360.89
+21:48:40: 3501086.22,5872469.19
+21:48:40: 3501050.00,5872468.05
+21:48:40: 3501075.11,5872428.77
+21:48:40: 3501033.83,5872432.08
+21:48:40: 3501110.97,5872436.38
+21:48:40: 3501113.65,5872397.35
+21:48:40: 3501119.99,5872353.74
+21:48:40: 3501084.17,5872361.10
+21:48:40: 3501074.74,5872389.75
+21:48:40: 3501045.74,5872398.81
+21:48:40: 3501043.45,5872359.11
+21:48:40: 3501115.81,5872311.04
+21:48:40: 3501041.63,5872319.47
+21:48:40: 3501074.73,5872285.20
+21:48:40: 3501033.93,5872280.15
+21:48:40: 3501079.03,5872326.51
+21:48:40: 3501111.12,5872275.51
+21:48:40: 3501124.82,5872244.39
+21:48:40: 3501086.06,5872243.80
+21:48:40: 3501109.72,5872211.91
+21:48:40: 3501048.90,5872244.38
+21:48:40: 3501074.92,5872202.83
+21:48:40: 3501036.06,5872212.33
+21:48:40: 3501008.37,5872314.87
+21:48:40: 3500969.06,5872322.43
+21:48:40: 3500963.12,5872278.45
+21:48:40: 3500997.83,5872285.43
+21:48:40: 3501003.58,5872244.52
+21:48:40: 3501007.92,5872201.54
+21:48:40: 3500961.78,5872238.88
+21:48:40: 3500973.90,5872206.31
+21:48:40: 3500923.76,5872475.45
+21:48:40: 3500816.62,5872479.09
+21:48:40: 3500779.10,5872499.54
+21:48:40: 3500779.96,5872459.99
+21:48:40: 3500815.38,5872439.43
+21:48:40: 3500813.62,5872399.18
+21:48:40: 3500821.37,5872362.92
+21:48:40: 3500777.95,5872422.73
+21:48:40: 3500773.13,5872387.98
+21:48:40: 3500786.31,5872356.18
+21:48:40: 3500928.16,5872438.87
+21:48:40: 3500886.82,5872466.21
+21:48:40: 3500848.88,5872463.97
+21:48:40: 3500855.02,5872427.59
+21:48:40: 3500896.12,5872428.30
+21:48:40: 3500928.40,5872393.15
+21:48:40: 3500887.33,5872398.52
+21:48:40: 3500888.67,5872359.68
+21:48:40: 3500851.89,5872386.38
+21:48:40: 3500929.24,5872349.43
+21:48:40: 3500890.00,5872290.11
+21:48:40: 3500850.64,5872349.88
+21:48:40: 3500856.65,5872314.33
+21:48:40: 3500930.28,5872310.92
+21:48:40: 3500895.97,5872324.49
+21:48:40: 3500924.45,5872276.70
+21:48:40: 3500928.54,5872243.07
+21:48:40: 3500931.49,5872202.39
+21:48:40: 3500892.61,5872214.33
+21:48:40: 3500889.81,5872250.70
+21:48:40: 3500852.39,5872272.75
+21:48:40: 3500853.62,5872235.57
+21:48:40: 3500815.42,5872326.63
+21:48:40: 3500776.58,5872315.36
+21:48:40: 3500816.70,5872289.28
+21:48:40: 3500816.74,5872251.90
+21:48:40: 3500815.84,5872214.07
+21:48:40: 3500778.79,5872273.93
+21:48:40: 3500778.32,5872235.27
+21:48:40: 3501268.36,5872651.95
+21:48:40: 3501273.15,5872673.37
+21:48:40: 3501206.84,5872652.17
+21:48:40: 3501167.57,5872735.36
+21:48:40: 3501147.20,5872772.03
+21:48:40: 3501128.97,5872779.53
+21:48:40: 3501167.38,5872776.57
+21:48:40: 3501148.91,5872795.04
+21:48:40: 3501171.45,5872796.38
+21:48:40: 3501165.70,5872754.56
+21:48:40: 3501150.83,5872735.34
+21:48:40: 3501144.10,5872753.21
+21:48:40: 3501130.40,5872735.15
+21:48:40: 3501205.11,5872732.35
+21:48:40: 3501189.78,5872777.25
+21:48:40: 3501190.31,5872799.48
+21:48:40: 3501213.01,5872776.02
+21:48:40: 3501205.77,5872793.33
+21:48:40: 3501206.44,5872754.65
+21:48:40: 3501186.51,5872737.79
+21:48:40: 3501185.49,5872758.31
+21:48:40: 3501212.00,5872673.73
+21:48:40: 3501189.91,5872696.99
+21:48:40: 3501187.52,5872714.94
+21:48:40: 3501206.30,5872691.87
+21:48:40: 3501210.65,5872712.82
+21:48:40: 3501183.73,5872653.67
+21:48:40: 3501189.75,5872675.30
+21:48:40: 3501163.20,5872653.46
+21:48:40: 3501144.34,5872696.90
+21:48:40: 3501146.94,5872714.93
+21:48:40: 3501126.51,5872689.86
+21:48:40: 3501167.28,5872694.24
+21:48:40: 3501167.71,5872718.18
+21:48:40: 3501169.69,5872671.83
+21:48:40: 3501149.03,5872676.32
+21:48:40: 3501144.43,5872656.58
+21:48:40: 3501126.33,5872670.15
+21:48:40: 3501128.73,5872650.84
+21:48:40: 3501270.19,5872694.10
+21:48:40: 3501244.83,5872735.84
+21:48:40: 3501233.49,5872775.89
+21:48:40: 3501223.68,5872796.70
+21:48:40: 3501252.38,5872778.98
+21:48:40: 3501247.19,5872799.54
+21:48:40: 3501251.37,5872756.84
+21:48:40: 3501224.29,5872735.89
+21:48:40: 3501228.82,5872755.92
+21:48:40: 3501268.13,5872734.01
+21:48:40: 3501269.92,5872776.05
+21:48:40: 3501269.96,5872796.88
+21:48:40: 3501287.77,5872773.87
+21:48:40: 3501292.04,5872794.99
+21:48:40: 3501309.00,5872778.76
+21:48:40: 3501290.72,5872735.69
+21:48:40: 3501294.92,5872755.97
+21:48:40: 3501273.90,5872755.56
+21:48:40: 3501267.86,5872712.83
+21:48:40: 3501289.02,5872713.12
+21:48:40: 3501246.92,5872651.20
+21:48:40: 3501229.01,5872694.63
+21:48:40: 3501231.16,5872717.20
+21:48:40: 3501251.37,5872696.43
+21:48:40: 3501249.43,5872715.24
+21:48:40: 3501249.95,5872674.10
+21:48:40: 3501228.69,5872657.13
+21:48:40: 3501229.44,5872674.50
+21:48:40: 3501249.38,5872633.13
+21:48:40: 3501249.74,5872614.46
+21:48:40: 3501228.59,5872638.46
+21:48:40: 3501227.10,5872617.03
+21:48:40: 3501253.84,5872596.37
+21:48:40: 3501245.91,5872584.12
+21:48:40: 3501233.91,5872598.50
+21:48:40: 3501221.09,5872587.02
+21:48:40: 3501229.17,5872566.01
+21:48:40: 3501235.75,5872537.12
+21:48:40: 3501221.53,5872504.89
+21:48:40: 3501208.92,5872628.63
+21:48:40: 3501168.87,5872632.40
+21:48:40: 3501145.49,5872636.07
+21:48:40: 3501130.61,5872615.00
+21:48:40: 3501149.72,5872617.40
+21:48:40: 3501166.18,5872610.15
+21:48:40: 3501171.45,5872592.84
+21:48:40: 3501154.94,5872577.85
+21:48:40: 3501146.63,5872595.74
+21:48:40: 3501215.25,5872598.93
+21:48:40: 3501190.90,5872636.44
+21:48:40: 3501186.70,5872618.93
+21:48:40: 3501204.96,5872609.52
+21:48:40: 3501196.27,5872589.93
+21:48:40: 3501185.64,5872601.20
+21:48:40: 3501200.73,5872573.39
+21:48:40: 3501175.15,5872570.49
+21:48:40: 3501198.38,5872544.26
+21:48:40: 3501185.98,5872511.14
+21:48:40: 3501157.49,5872542.35
+21:48:40: 3501134.63,5872572.55
+21:48:40: 3501149.75,5872502.63
+21:48:40: 3501313.28,5872798.83
+21:48:40: 3501190.54,5872476.55
+21:48:40: 3501158.30,5872464.89
+21:48:40: 3501146.03,5872431.03
+21:48:40: 3501188.70,5872434.92
+21:48:40: 3501191.42,5872395.80
+21:48:40: 3501197.21,5872360.71
+21:48:40: 3501153.26,5872393.92
+21:48:40: 3501161.53,5872356.63
+21:48:40: 3501228.07,5872468.26
+21:48:40: 3501149.64,5872322.94
+21:48:40: 3501151.77,5872285.31
+21:48:40: 3501186.94,5872320.54
+21:48:40: 3501161.56,5872244.95
+21:48:40: 3501145.72,5872206.68
+21:48:40: 3500854.22,5872197.56
+21:48:40: 3500927.33,5872161.12
+21:48:40: 3500816.58,5872175.26
+21:48:40: 3500778.68,5872198.44
+21:48:40: 3500779.77,5872160.21
+21:48:40: 3500778.74,5872129.13
+21:48:40: 3500815.96,5872127.14
+21:48:40: 3500815.54,5872069.75
+21:48:40: 3500778.23,5872088.68
+21:48:40: 3500891.58,5872175.92
+21:48:40: 3500853.63,5872160.36
+21:48:40: 3500853.43,5872129.54
+21:48:40: 3500928.83,5872130.70
+21:48:40: 3500891.12,5872129.13
+21:48:40: 3500931.36,5872094.45
+21:48:40: 3500889.75,5872079.02
+21:48:40: 3500852.79,5872090.85
+21:48:40: 3500920.49,5872045.31
+21:48:40: 3500854.99,5872024.70
+21:48:40: 3500905.33,5871992.51
+21:48:40: 3500922.91,5871936.17
+21:48:40: 3500777.28,5872008.56
+21:48:40: 3500840.99,5871944.30
+21:48:40: 3500768.58,5871929.93
+21:48:40: 3501114.99,5872177.32
+21:48:40: 3501000.39,5872163.85
+21:48:40: 3500961.83,5872173.37
+21:48:40: 3500964.61,5872134.63
+21:48:40: 3501003.83,5872123.68
+21:48:40: 3501004.68,5872085.01
+21:48:40: 3501003.75,5872053.96
+21:48:40: 3500970.68,5872097.71
+21:48:40: 3500966.41,5872054.34
+21:48:40: 3501078.10,5872161.09
+21:48:40: 3501041.10,5872176.30
+21:48:40: 3501041.03,5872139.33
+21:48:40: 3501117.52,5872138.91
+21:48:40: 3501078.55,5872122.63
+21:48:40: 3501116.03,5872100.44
+21:48:40: 3501078.56,5872085.16
+21:48:40: 3501078.32,5872054.46
+21:48:40: 3501041.31,5872100.06
+21:48:40: 3501040.97,5872051.99
+21:48:40: 3501077.72,5872015.58
+21:48:40: 3501040.56,5871994.57
+21:48:40: 3501079.95,5871949.46
+21:48:40: 3501003.24,5872013.49
+21:48:40: 3500961.04,5871998.43
+21:48:40: 3501002.28,5871933.36
+21:48:40: 3500993.59,5871854.72
+21:48:40: 3501009.73,5871783.70
+21:48:40: 3500995.69,5871708.12
+21:48:40: 3500861.08,5871875.95
+21:48:40: 3500793.26,5871863.77
+21:48:40: 3500762.15,5871794.93
+21:48:40: 3500928.45,5871864.52
+21:48:40: 3500926.18,5871790.29
+21:48:40: 3500847.80,5871798.46
+21:48:40: 3500855.74,5871717.74
+21:48:40: 3500927.97,5871716.56
+21:48:40: 3500788.08,5871729.94
+21:48:40: 3500746.73,5872548.92
+21:48:40: 3500741.50,5872515.34
+21:48:40: 3500554.52,5872536.05
+21:48:40: 3500553.66,5872655.76
+21:48:40: 3500514.07,5872737.50
+21:48:40: 3500557.26,5872742.45
+21:48:40: 3500523.52,5872766.56
+21:48:40: 3500547.05,5872758.16
+21:48:40: 3500550.10,5872691.87
+21:48:40: 3500542.43,5872723.04
+21:48:40: 3500520.03,5872661.30
+21:48:40: 3500510.78,5872695.85
+21:48:40: 3500557.04,5872578.11
+21:48:40: 3500512.85,5872622.81
+21:48:40: 3500553.08,5872618.96
+21:48:40: 3500521.05,5872586.92
+21:48:40: 3500521.06,5872511.64
+21:48:40: 3500512.49,5872548.24
+21:48:40: 3500740.71,5872581.44
+21:48:40: 3500625.25,5872653.51
+21:48:40: 3500594.12,5872741.34
+21:48:40: 3500570.58,5872749.75
+21:48:40: 3500617.65,5872732.94
+21:48:40: 3500652.04,5872779.45
+21:48:40: 3500639.07,5872740.47
+21:48:40: 3500653.76,5872759.24
+21:48:40: 3500613.07,5872743.49
+21:48:40: 3500631.11,5872753.51
+21:48:40: 3500644.85,5872684.21
+21:48:40: 3500622.57,5872708.21
+21:48:40: 3500647.70,5872706.55
+21:48:40: 3500641.19,5872724.53
+21:48:40: 3500617.00,5872682.26
+21:48:40: 3500589.07,5872654.43
+21:48:40: 3500572.74,5872723.89
+21:48:40: 3500586.97,5872692.10
+21:48:40: 3500596.78,5872722.05
+21:48:40: 3500703.36,5872658.44
+21:48:40: 3500697.32,5872737.95
+21:48:40: 3500673.33,5872774.86
+21:48:40: 3500679.06,5872796.81
+21:48:40: 3500692.57,5872778.51
+21:48:40: 3500698.80,5872794.78
+21:48:40: 3500694.37,5872758.01
+21:48:40: 3500657.48,5872737.33
+21:48:40: 3500673.09,5872754.41
+21:48:40: 3500676.93,5872736.94
+21:48:40: 3500732.62,5872736.91
+21:48:40: 3500711.90,5872776.04
+21:48:40: 3500718.17,5872798.99
+21:48:40: 3500731.92,5872776.60
+21:48:40: 3500740.66,5872797.00
+21:48:40: 3500740.88,5872756.05
+21:48:40: 3500714.23,5872734.19
+21:48:40: 3500717.99,5872754.77
+21:48:40: 3500736.14,5872669.34
+21:48:40: 3500711.79,5872699.31
+21:48:40: 3500720.38,5872716.36
+21:48:40: 3500735.33,5872690.90
+21:48:40: 3500740.00,5872720.23
+21:48:40: 3500735.93,5872703.47
+21:48:40: 3500712.63,5872682.28
+21:48:40: 3500665.69,5872652.65
+21:48:40: 3500666.67,5872691.00
+21:48:40: 3500666.91,5872707.30
+21:48:40: 3500664.72,5872716.12
+21:48:40: 3500688.26,5872707.71
+21:48:40: 3500682.40,5872721.75
+21:48:40: 3500700.68,5872718.41
+21:48:40: 3500687.42,5872683.86
+21:48:40: 3500737.44,5872615.10
+21:48:40: 3500697.67,5872619.98
+21:48:40: 3500661.45,5872614.15
+21:48:40: 3500665.40,5872581.10
+21:48:40: 3500703.43,5872581.99
+21:48:40: 3500729.43,5872643.94
+21:48:40: 3500711.01,5872543.86
+21:48:40: 3500700.87,5872502.87
+21:48:40: 3500674.94,5872544.30
+21:48:40: 3500662.87,5872511.75
+21:48:40: 3500636.71,5872544.82
+21:48:40: 3500595.33,5872586.04
+21:48:40: 3500590.02,5872618.88
+21:48:40: 3500627.80,5872580.06
+21:48:40: 3500628.60,5872619.05
+21:48:40: 3500625.04,5872504.51
+21:48:40: 3500595.65,5872548.26
+21:48:40: 3500585.02,5872512.61
+21:48:40: 3500740.12,5872477.95
+21:48:40: 3500633.41,5872464.78
+21:48:40: 3500594.14,5872472.82
+21:48:40: 3500586.26,5872435.47
+21:48:40: 3500621.32,5872431.77
+21:48:40: 3500629.55,5872394.19
+21:48:40: 3500631.67,5872354.02
+21:48:40: 3500591.61,5872401.83
+21:48:40: 3500591.30,5872363.83
+21:48:40: 3500741.41,5872438.62
+21:48:40: 3500702.79,5872461.27
+21:48:40: 3500667.06,5872476.86
+21:48:40: 3500663.34,5872434.95
+21:48:40: 3500738.26,5872397.28
+21:48:40: 3500703.37,5872424.36
+21:48:40: 3500703.49,5872394.22
+21:48:40: 3500744.17,5872353.91
+21:48:40: 3500704.88,5872362.83
+21:48:40: 3500667.89,5872391.45
+21:48:40: 3500671.33,5872351.55
+21:48:40: 3500740.91,5872319.59
+21:48:40: 3500658.64,5872318.54
+21:48:40: 3500671.37,5872286.53
+21:48:40: 3500741.22,5872288.53
+21:48:40: 3500703.30,5872319.13
+21:48:40: 3500741.27,5872251.42
+21:48:40: 3500704.23,5872274.00
+21:48:40: 3500739.28,5872210.16
+21:48:40: 3500703.76,5872205.92
+21:48:40: 3500703.07,5872236.08
+21:48:40: 3500665.88,5872250.36
+21:48:40: 3500666.09,5872204.34
+21:48:40: 3500623.55,5872313.96
+21:48:40: 3500590.65,5872327.99
+21:48:40: 3500592.06,5872288.78
+21:48:40: 3500631.62,5872277.10
+21:48:40: 3500628.41,5872236.08
+21:48:40: 3500628.42,5872204.88
+21:48:40: 3500591.72,5872250.62
+21:48:40: 3500590.94,5872202.42
+21:48:40: 3500552.66,5872496.27
+21:48:40: 3500552.76,5872460.53
+21:48:40: 3500513.01,5872471.98
+21:48:40: 3500516.07,5872432.57
+21:48:40: 3500553.45,5872423.76
+21:48:40: 3500523.29,5872394.52
+21:48:40: 3500558.79,5872388.63
+21:48:40: 3500550.62,5872352.44
+21:48:40: 3500511.11,5872362.02
+21:48:40: 3500553.05,5872311.19
+21:48:40: 3500514.04,5872285.62
+21:48:40: 3500516.25,5872326.35
+21:48:40: 3500553.70,5872273.28
+21:48:40: 3500520.54,5872248.16
+21:48:40: 3500554.69,5872235.29
+21:48:40: 3500553.69,5872204.37
+21:48:40: 3500516.18,5872204.69
+21:48:40: 3500481.36,5872244.86
+21:48:40: 3500745.65,5872172.94
+21:48:40: 3500552.45,5872083.72
+21:48:40: 3500397.99,5872087.39
+21:48:40: 3500396.78,5872167.26
+21:48:40: 3500455.14,5872143.54
+21:48:40: 3500553.23,5872163.90
+21:48:40: 3500510.96,5872149.13
+21:48:40: 3500469.87,5872195.85
+21:48:40: 3500472.20,5872085.07
+21:48:40: 3500543.58,5872005.13
+21:48:40: 3500477.48,5872015.71
+21:48:40: 3500560.21,5871934.17
+21:48:40: 3500488.57,5871951.37
+21:48:40: 3500402.48,5872016.05
+21:48:40: 3500411.44,5871936.00
+21:48:40: 3500706.36,5872169.66
+21:48:40: 3500629.99,5872099.90
+21:48:40: 3500590.54,5872144.97
+21:48:40: 3500627.78,5872166.07
+21:48:40: 3500741.40,5872129.51
+21:48:40: 3500664.75,5872154.22
+21:48:40: 3500736.04,5872073.62
+21:48:40: 3500695.48,5872120.52
+21:48:40: 3500680.32,5872067.71
+21:48:40: 3500697.90,5872011.37
+21:48:40: 3500703.18,5871939.50
+21:48:40: 3500615.99,5872019.51
+21:48:40: 3500636.02,5871950.86
+21:48:40: 3500708.26,5871858.66
+21:48:40: 3500623.89,5871873.10
+21:48:40: 3500637.94,5871805.31
+21:48:40: 3500689.98,5871777.60
+21:48:40: 3500712.05,5871710.13
+21:48:40: 3500621.23,5871727.03
+21:48:40: 3500640.64,5871658.27
+21:48:40: 3500545.81,5871858.97
+21:48:40: 3500392.05,5871856.69
+21:48:40: 3500409.63,5871797.55
+21:48:40: 3500470.74,5871877.22
+21:48:40: 3500562.22,5871786.24
+21:48:40: 3500480.84,5871795.79
+21:48:40: 3500546.42,5871710.56
+21:48:40: 3500478.48,5871721.86
+21:48:40: 3500328.59,5872089.91
+21:48:40: 3500325.72,5872016.30
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 1126 Objekte freigegeben
+21:48:40: ->Speichern der Ergebnispolygone gestartet
+21:48:40: Keine Projektionsinformationen vorhanden
+21:48:40: ->Löschen der zu kleinen Ringe gestartet
+21:48:40: 1 von 3 Polygonen, 0 Polygone gelöscht
+21:48:40: 2 von 3 Polygonen, 0 Polygone gelöscht
+21:48:40: 3 von 3 Polygonen, 0 Polygone gelöscht
+21:48:40: 0 Ringe gelöscht
+21:48:40: kleinste Ringfläche: 5000.000
+21:48:40: <-Löschen der zu kleinen Ringe beendet
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 100.00 100.00
+21:48:40: 300.00 100.00
+21:48:40: 300.00 300.00
+21:48:40: 100.00 300.00
+21:48:40: 100.00 100.00
+21:48:40: 150.00 150.00
+21:48:40: 250.00 150.00
+21:48:40: 250.00 250.00
+21:48:40: 150.00 250.00
+21:48:40: 200.00 200.00
+21:48:40: 150.00 150.00
+21:48:40: 450.00 250.00
+21:48:40: 550.00 250.00
+21:48:40: 550.00 150.00
+21:48:40: 450.00 250.00
+21:48:40: 1. Ergebnispolygon (Wassertiefe 0.00, 3 Ringe, 15 Stützstellen)
+21:48:40: <-Speichern der Ergebnispolygone beendet
+21:48:40: ->Auswertung der Kommandozeilen-Parameter gestartet
+21:48:40: Parameterdatei: 'test_daten\test.par'
+21:48:40: ->Laden der Parameterdatei 'test_daten\test.par' gestartet
+21:48:40: <-Laden der Parameterdatei 'test_daten\test.par' beendet
+21:48:40: DGM-Datei: 'egal.shp'
+21:48:40: Profillagen-Datei: 'egal.shp'
+21:48:40: WSP-Datei: 'egal.shp'
+21:48:40: WSP-Bezeichner: 'HQ(100a) '
+21:48:40: Gewässerachse: 'egal.shp'
+21:48:40: Hydraulische Grenze: 'total egal.shp'
+21:48:40: Bruch- und Sperr-Datei: 'egal.shp'
+21:48:40: Gelände wirkt als Sperre
+21:48:40: Delta: Von = 0.00 Bis = 1.00 Diff = 0.23
+21:48:40: Strecke: Von = 123.340 km, Bis = 123.780 km
+21:48:40: Triangulation wird gespeichert
+21:48:40: Ausgabe-Datei: 'egal.shp'
+21:48:40: <-Auswertung der Kommandozeilen-Parameter beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
+21:48:40: ->Laden der Umhüllung gestartet
+21:48:40: 8 Stützstellen gelesen
+21:48:40: ->Speichern des Begrenzungspolygons gestartet
+21:48:40: Keine Projektionsinformationen vorhanden
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 9 von 9 Stützstellen gespeichert
+21:48:40: <-Speichern des Begrenzungspolygons beendet
+21:48:40: <-Laden der Umhüllung beendet
+21:48:40: ->Laden der Elemente gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Elementliste wurde auf 200000 erhöht
+21:48:40: 218 von 230 Elementen im Speicher
+21:48:40: <-Laden der Elemente beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 114 Knoten und 218 Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 114 Objekte freigegeben
+21:48:40: 218 Objekte freigegeben
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN gestartet
+21:48:40: ->Laden der Umhüllung gestartet
+21:48:40: 8 Stützstellen gelesen
+21:48:40: ->Speichern des Begrenzungspolygons gestartet
+21:48:40: Keine Projektionsinformationen vorhanden
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 9 von 9 Stützstellen gespeichert
+21:48:40: <-Speichern des Begrenzungspolygons beendet
+21:48:40: <-Laden der Umhüllung beendet
+21:48:40: ->Laden der Elemente gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Elementliste wurde auf 200000 erhöht
+21:48:40: 110 von 230 Elementen im Speicher
+21:48:40: <-Laden der Elemente beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' als TIN beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 71 Knoten und 110 Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin/tnxy.adf' beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 71 Objekte freigegeben
+21:48:40: 110 Objekte freigegeben
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin2/tnxy.adf' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin2/tnxy.adf' als TIN gestartet
+21:48:40: ->Laden der Umhüllung gestartet
+21:48:40: 8 Stützstellen gelesen
+21:48:40: ->Speichern des Begrenzungspolygons gestartet
+21:48:40: Keine Projektionsinformationen vorhanden
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 9 von 9 Stützstellen gespeichert
+21:48:40: <-Speichern des Begrenzungspolygons beendet
+21:48:40: <-Laden der Umhüllung beendet
+21:48:40: ->Laden der Elemente gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Elementliste wurde auf 200000 erhöht
+21:48:40: 28 von 40 Elementen im Speicher
+21:48:40: <-Laden der Elemente beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin2/tnxy.adf' als TIN beendet
+21:48:40: ->Suche nach doppelten Knoten gestartet
+21:48:40: 19 Knoten und 28 Elemente vorhanden
+21:48:40: ->Sortieren der Knoten gestartet
+21:48:40: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:48:40: <-Sortieren der Knoten beendet
+21:48:40: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:48:40: <-Suche nach doppelten Knoten beendet
+21:48:40: <-Laden des DGM in Datei 'test_daten/dgmtin2/tnxy.adf' beendet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: 19 Objekte freigegeben
+21:48:40: 28 Objekte freigegeben
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin3/tnxy.adf' gestartet
+21:48:40: ->Löschen des Suchbaumes der Knoten gestartet
+21:48:40: <-Löschen des Suchbaumes der Knoten beendet
+21:48:40: ->Laden des DGM in Datei 'test_daten/dgmtin3/tnxy.adf' als TIN gestartet
+21:48:40: ->Laden der Umhüllung gestartet
+21:48:40: 100 Stützstellen gelesen
+21:48:40: 200 Stützstellen gelesen
+21:48:40: 300 Stützstellen gelesen
+21:48:40: 400 Stützstellen gelesen
+21:48:40: 500 Stützstellen gelesen
+21:48:40: 600 Stützstellen gelesen
+21:48:40: 700 Stützstellen gelesen
+21:48:40: 800 Stützstellen gelesen
+21:48:40: 900 Stützstellen gelesen
+21:48:40: 1000 Stützstellen gelesen
+21:48:40: 1100 Stützstellen gelesen
+21:48:40: 1200 Stützstellen gelesen
+21:48:40: 1300 Stützstellen gelesen
+21:48:40: 1400 Stützstellen gelesen
+21:48:40: 1500 Stützstellen gelesen
+21:48:40: 1600 Stützstellen gelesen
+21:48:40: 1700 Stützstellen gelesen
+21:48:40: 1800 Stützstellen gelesen
+21:48:40: 1900 Stützstellen gelesen
+21:48:40: 2000 Stützstellen gelesen
+21:48:40: 2100 Stützstellen gelesen
+21:48:40: 2200 Stützstellen gelesen
+21:48:40: 2300 Stützstellen gelesen
+21:48:40: 2400 Stützstellen gelesen
+21:48:40: 2500 Stützstellen gelesen
+21:48:40: 2600 Stützstellen gelesen
+21:48:40: 2700 Stützstellen gelesen
+21:48:40: 2800 Stützstellen gelesen
+21:48:40: 2900 Stützstellen gelesen
+21:48:40: 3000 Stützstellen gelesen
+21:48:40: 3100 Stützstellen gelesen
+21:48:40: 3200 Stützstellen gelesen
+21:48:40: 3300 Stützstellen gelesen
+21:48:40: 3400 Stützstellen gelesen
+21:48:40: 3500 Stützstellen gelesen
+21:48:40: 3600 Stützstellen gelesen
+21:48:40: 3700 Stützstellen gelesen
+21:48:40: 3800 Stützstellen gelesen
+21:48:40: 3900 Stützstellen gelesen
+21:48:40: 4000 Stützstellen gelesen
+21:48:40: 4100 Stützstellen gelesen
+21:48:40: 4200 Stützstellen gelesen
+21:48:40: 4300 Stützstellen gelesen
+21:48:40: 4400 Stützstellen gelesen
+21:48:40: 4500 Stützstellen gelesen
+21:48:40: 4600 Stützstellen gelesen
+21:48:40: 4700 Stützstellen gelesen
+21:48:40: 4800 Stützstellen gelesen
+21:48:40: 4900 Stützstellen gelesen
+21:48:40: 5000 Stützstellen gelesen
+21:48:40: 5100 Stützstellen gelesen
+21:48:40: 5200 Stützstellen gelesen
+21:48:40: 5300 Stützstellen gelesen
+21:48:40: 5400 Stützstellen gelesen
+21:48:40: 5500 Stützstellen gelesen
+21:48:40: 5600 Stützstellen gelesen
+21:48:40: 5700 Stützstellen gelesen
+21:48:40: 5800 Stützstellen gelesen
+21:48:40: 5900 Stützstellen gelesen
+21:48:40: 6000 Stützstellen gelesen
+21:48:40: 6100 Stützstellen gelesen
+21:48:40: 6200 Stützstellen gelesen
+21:48:40: 6300 Stützstellen gelesen
+21:48:40: 6400 Stützstellen gelesen
+21:48:40: 6500 Stützstellen gelesen
+21:48:40: 6600 Stützstellen gelesen
+21:48:40: 6700 Stützstellen gelesen
+21:48:40: 6800 Stützstellen gelesen
+21:48:40: 6900 Stützstellen gelesen
+21:48:40: 7000 Stützstellen gelesen
+21:48:40: 7100 Stützstellen gelesen
+21:48:40: 7200 Stützstellen gelesen
+21:48:40: 7300 Stützstellen gelesen
+21:48:40: 7400 Stützstellen gelesen
+21:48:40: 7500 Stützstellen gelesen
+21:48:40: 7600 Stützstellen gelesen
+21:48:40: 7700 Stützstellen gelesen
+21:48:40: 7800 Stützstellen gelesen
+21:48:40: 7900 Stützstellen gelesen
+21:48:40: 8000 Stützstellen gelesen
+21:48:40: 8100 Stützstellen gelesen
+21:48:40: 8200 Stützstellen gelesen
+21:48:40: 8300 Stützstellen gelesen
+21:48:40: 8400 Stützstellen gelesen
+21:48:40: 8500 Stützstellen gelesen
+21:48:40: 8600 Stützstellen gelesen
+21:48:40: 8700 Stützstellen gelesen
+21:48:40: 8800 Stützstellen gelesen
+21:48:40: 8900 Stützstellen gelesen
+21:48:40: 9000 Stützstellen gelesen
+21:48:40: 9100 Stützstellen gelesen
+21:48:40: 9200 Stützstellen gelesen
+21:48:40: 9300 Stützstellen gelesen
+21:48:40: 9400 Stützstellen gelesen
+21:48:40: 9500 Stützstellen gelesen
+21:48:40: 9600 Stützstellen gelesen
+21:48:40: 9700 Stützstellen gelesen
+21:48:40: 9800 Stützstellen gelesen
+21:48:40: 9900 Stützstellen gelesen
+21:48:40: 10000 Stützstellen gelesen
+21:48:40: 10100 Stützstellen gelesen
+21:48:40: 10200 Stützstellen gelesen
+21:48:40: 10300 Stützstellen gelesen
+21:48:40: 10400 Stützstellen gelesen
+21:48:40: 10500 Stützstellen gelesen
+21:48:40: 10600 Stützstellen gelesen
+21:48:40: 10700 Stützstellen gelesen
+21:48:40: 10800 Stützstellen gelesen
+21:48:40: 10900 Stützstellen gelesen
+21:48:40: 11000 Stützstellen gelesen
+21:48:40: 11100 Stützstellen gelesen
+21:48:40: 11197 Stützstellen gelesen
+21:48:40: ->Speichern des Begrenzungspolygons gestartet
+21:48:40: Keine Projektionsinformationen vorhanden
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 1000 von 11198 Stützstellen gespeichert
+21:48:40: 2000 von 11198 Stützstellen gespeichert
+21:48:40: 3000 von 11198 Stützstellen gespeichert
+21:48:40: 4000 von 11198 Stützstellen gespeichert
+21:48:40: 5000 von 11198 Stützstellen gespeichert
+21:48:40: 6000 von 11198 Stützstellen gespeichert
+21:48:40: 7000 von 11198 Stützstellen gespeichert
+21:48:40: 8000 von 11198 Stützstellen gespeichert
+21:48:40: 9000 von 11198 Stützstellen gespeichert
+21:48:40: 10000 von 11198 Stützstellen gespeichert
+21:48:40: 11000 von 11198 Stützstellen gespeichert
+21:48:40: 10 Speicherblöcke wurden angefordert
+21:48:40: 11198 von 11198 Stützstellen gespeichert
+21:48:40: <-Speichern des Begrenzungspolygons beendet
+21:48:40: <-Laden der Umhüllung beendet
+21:48:40: ->Laden der Elemente gestartet
+21:48:40: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:48:40: Kapazität der Elementliste wurde auf 200000 erhöht
+21:48:40: 9 von 5000 Elementen im Speicher
+21:48:41: 15 von 10000 Elementen im Speicher
+21:48:41: 19 von 15000 Elementen im Speicher
+21:48:41: 24 von 20000 Elementen im Speicher
+21:48:42: 24 von 25000 Elementen im Speicher
+21:48:42: 24 von 30000 Elementen im Speicher
+21:48:42: 24 von 35000 Elementen im Speicher
+21:48:43: 24 von 40000 Elementen im Speicher
+21:48:43: 98 von 45000 Elementen im Speicher
+21:48:43: 596 von 50000 Elementen im Speicher
+21:48:44: 1142 von 55000 Elementen im Speicher
+21:48:44: 1694 von 60000 Elementen im Speicher
+21:48:45: 2454 von 65000 Elementen im Speicher
+21:48:45: 3097 von 70000 Elementen im Speicher
+21:48:46: 3795 von 75000 Elementen im Speicher
+21:48:47: 4569 von 80000 Elementen im Speicher
+21:48:47: 5219 von 85000 Elementen im Speicher
+21:48:48: 6005 von 90000 Elementen im Speicher
+21:48:48: 6849 von 95000 Elementen im Speicher
+21:48:49: 7567 von 100000 Elementen im Speicher
+21:48:49: 8359 von 105000 Elementen im Speicher
+21:48:50: 9210 von 110000 Elementen im Speicher
+21:48:50: 9750 von 115000 Elementen im Speicher
+21:48:50: 10118 von 120000 Elementen im Speicher
+21:48:51: 10511 von 125000 Elementen im Speicher
+21:48:51: 10933 von 130000 Elementen im Speicher
+21:48:52: 11496 von 135000 Elementen im Speicher
+21:48:52: 12088 von 140000 Elementen im Speicher
+21:48:53: 12645 von 145000 Elementen im Speicher
+21:48:53: 13379 von 150000 Elementen im Speicher
+21:48:54: 14218 von 155000 Elementen im Speicher
+21:48:54: 15012 von 160000 Elementen im Speicher
+21:48:55: 15677 von 165000 Elementen im Speicher
+21:48:55: 16292 von 170000 Elementen im Speicher
+21:48:56: 16871 von 175000 Elementen im Speicher
+21:48:56: 17498 von 180000 Elementen im Speicher
+21:48:57: 18445 von 185000 Elementen im Speicher
+21:48:57: 19305 von 190000 Elementen im Speicher
+21:48:58: 20154 von 195000 Elementen im Speicher
+21:48:58: 20877 von 200000 Elementen im Speicher
+21:48:59: 21861 von 205000 Elementen im Speicher
+21:48:59: 22869 von 210000 Elementen im Speicher
+21:49:00: 23809 von 215000 Elementen im Speicher
+21:49:00: 24807 von 220000 Elementen im Speicher
+21:49:01: 25839 von 225000 Elementen im Speicher
+21:49:02: 26924 von 230000 Elementen im Speicher
+21:49:02: 27978 von 235000 Elementen im Speicher
+21:49:03: 28763 von 240000 Elementen im Speicher
+21:49:03: 29402 von 245000 Elementen im Speicher
+21:49:04: 30937 von 250000 Elementen im Speicher
+21:49:04: 32969 von 255000 Elementen im Speicher
+21:49:05: 37927 von 260000 Elementen im Speicher
+21:49:06: 42914 von 265000 Elementen im Speicher
+21:49:07: 47905 von 270000 Elementen im Speicher
+21:49:08: 52889 von 275000 Elementen im Speicher
+21:49:09: 57018 von 280000 Elementen im Speicher
+21:49:09: 61922 von 285000 Elementen im Speicher
+21:49:10: 66843 von 290000 Elementen im Speicher
+21:49:11: 71778 von 295000 Elementen im Speicher
+21:49:12: 76682 von 300000 Elementen im Speicher
+21:49:13: 81587 von 305000 Elementen im Speicher
+21:49:13: 86489 von 310000 Elementen im Speicher
+21:49:14: 91397 von 315000 Elementen im Speicher
+21:49:15: 96308 von 320000 Elementen im Speicher
+21:49:16: 101228 von 325000 Elementen im Speicher
+21:49:16: 105966 von 330000 Elementen im Speicher
+21:49:17: 110966 von 335000 Elementen im Speicher
+21:49:18: 115966 von 340000 Elementen im Speicher
+21:49:18: Kapazität der Knotenliste wurde auf 210000 erhöht
+21:49:18: 120966 von 345000 Elementen im Speicher
+21:49:19: 125966 von 350000 Elementen im Speicher
+21:49:20: 130966 von 355000 Elementen im Speicher
+21:49:21: 135966 von 360000 Elementen im Speicher
+21:49:21: 140966 von 365000 Elementen im Speicher
+21:49:22: 145966 von 370000 Elementen im Speicher
+21:49:23: 149970 von 375000 Elementen im Speicher
+21:49:23: 151874 von 380000 Elementen im Speicher
+21:49:24: 156441 von 385000 Elementen im Speicher
+21:49:25: 161022 von 390000 Elementen im Speicher
+21:49:25: 165584 von 395000 Elementen im Speicher
+21:49:26: 170167 von 400000 Elementen im Speicher
+21:49:27: 174729 von 405000 Elementen im Speicher
+21:49:27: 179301 von 410000 Elementen im Speicher
+21:49:28: 183879 von 415000 Elementen im Speicher
+21:49:29: 188450 von 420000 Elementen im Speicher
+21:49:29: 192941 von 425000 Elementen im Speicher
+21:49:30: 193719 von 430000 Elementen im Speicher
+21:49:31: 198718 von 435000 Elementen im Speicher
+21:49:31: Kapazität der Elementliste wurde auf 420000 erhöht
+21:49:32: 203540 von 440000 Elementen im Speicher
+21:49:32: 208367 von 445000 Elementen im Speicher
+21:49:33: 213268 von 450000 Elementen im Speicher
+21:49:34: 218119 von 455000 Elementen im Speicher
+21:49:35: 222846 von 460000 Elementen im Speicher
+21:49:36: 227695 von 465000 Elementen im Speicher
+21:49:36: Kapazität der Knotenliste wurde auf 331000 erhöht
+21:49:37: 232655 von 470000 Elementen im Speicher
+21:49:37: 237639 von 475000 Elementen im Speicher
+21:49:38: 242610 von 480000 Elementen im Speicher
+21:49:39: 247486 von 485000 Elementen im Speicher
+21:49:40: 252364 von 490000 Elementen im Speicher
+21:49:41: 257247 von 495000 Elementen im Speicher
+21:49:41: 262128 von 500000 Elementen im Speicher
+21:49:42: 267017 von 505000 Elementen im Speicher
+21:49:43: 271899 von 510000 Elementen im Speicher
+21:49:44: 276787 von 515000 Elementen im Speicher
+21:49:45: 281669 von 520000 Elementen im Speicher
+21:49:45: 286551 von 525000 Elementen im Speicher
+21:49:46: 291415 von 530000 Elementen im Speicher
+21:49:47: 296281 von 535000 Elementen im Speicher
+21:49:48: 301158 von 540000 Elementen im Speicher
+21:49:48: 306042 von 545000 Elementen im Speicher
+21:49:49: 310924 von 550000 Elementen im Speicher
+21:49:50: 315811 von 555000 Elementen im Speicher
+21:49:51: 320690 von 560000 Elementen im Speicher
+21:49:52: 325568 von 565000 Elementen im Speicher
+21:49:52: 330448 von 570000 Elementen im Speicher
+21:49:53: 335331 von 575000 Elementen im Speicher
+21:49:54: 340212 von 580000 Elementen im Speicher
+21:49:55: 345000 von 585000 Elementen im Speicher
+21:49:55: 349767 von 590000 Elementen im Speicher
+21:49:56: 354532 von 595000 Elementen im Speicher
+21:49:57: 359282 von 600000 Elementen im Speicher
+21:49:58: 364060 von 605000 Elementen im Speicher
+21:49:59: 368808 von 610000 Elementen im Speicher
+21:49:59: 373563 von 615000 Elementen im Speicher
+21:50:00: 378307 von 620000 Elementen im Speicher
+21:50:01: 383054 von 625000 Elementen im Speicher
+21:50:02: 387828 von 630000 Elementen im Speicher
+21:50:03: 392624 von 635000 Elementen im Speicher
+21:50:03: 397489 von 640000 Elementen im Speicher
+21:50:04: 402347 von 645000 Elementen im Speicher
+21:50:05: 407226 von 650000 Elementen im Speicher
+21:50:06: 412102 von 655000 Elementen im Speicher
+21:50:07: 416968 von 660000 Elementen im Speicher
+21:50:07: Kapazität der Elementliste wurde auf 662000 erhöht
+21:50:07: 421832 von 665000 Elementen im Speicher
+21:50:08: 426746 von 670000 Elementen im Speicher
+21:50:09: 431621 von 675000 Elementen im Speicher
+21:50:10: 436483 von 680000 Elementen im Speicher
+21:50:10: 441448 von 685000 Elementen im Speicher
+21:50:11: 446448 von 690000 Elementen im Speicher
+21:50:12: 451448 von 695000 Elementen im Speicher
+21:50:13: 456448 von 700000 Elementen im Speicher
+21:50:14: 461448 von 705000 Elementen im Speicher
+21:50:14: 466448 von 710000 Elementen im Speicher
+21:50:15: 471448 von 715000 Elementen im Speicher
+21:50:16: 476448 von 720000 Elementen im Speicher
+21:50:17: 481448 von 725000 Elementen im Speicher
+21:50:17: 486448 von 730000 Elementen im Speicher
+21:50:18: 491433 von 735000 Elementen im Speicher
+21:50:19: 496433 von 740000 Elementen im Speicher
+21:50:20: 501433 von 745000 Elementen im Speicher
+21:50:20: 506433 von 750000 Elementen im Speicher
+21:50:21: 511433 von 755000 Elementen im Speicher
+21:50:22: 516433 von 760000 Elementen im Speicher
+21:50:22: 521433 von 765000 Elementen im Speicher
+21:50:23: 526433 von 770000 Elementen im Speicher
+21:50:24: 531433 von 775000 Elementen im Speicher
+21:50:24: 536424 von 780000 Elementen im Speicher
+21:50:25: 541241 von 785000 Elementen im Speicher
+21:50:26: 546241 von 790000 Elementen im Speicher
+21:50:27: 551241 von 795000 Elementen im Speicher
+21:50:27: 556240 von 800000 Elementen im Speicher
+21:50:27: Kapazität der Knotenliste wurde auf 464100 erhöht
+21:50:28: 561240 von 805000 Elementen im Speicher
+21:50:29: 566240 von 810000 Elementen im Speicher
+21:50:29: 571237 von 815000 Elementen im Speicher
+21:50:30: 576237 von 820000 Elementen im Speicher
+21:50:31: 581237 von 825000 Elementen im Speicher
+21:50:32: 586235 von 830000 Elementen im Speicher
+21:50:32: 591227 von 835000 Elementen im Speicher
+21:50:33: 596201 von 840000 Elementen im Speicher
+21:50:34: 600990 von 845000 Elementen im Speicher
+21:50:35: 605568 von 850000 Elementen im Speicher
+21:50:36: 610543 von 855000 Elementen im Speicher
+21:50:37: 615527 von 860000 Elementen im Speicher
+21:50:37: 620514 von 865000 Elementen im Speicher
+21:50:38: 625502 von 870000 Elementen im Speicher
+21:50:39: 630489 von 875000 Elementen im Speicher
+21:50:40: 635489 von 880000 Elementen im Speicher
+21:50:41: 640489 von 885000 Elementen im Speicher
+21:50:41: 645489 von 890000 Elementen im Speicher
+21:50:42: 650489 von 895000 Elementen im Speicher
+21:50:43: 655369 von 900000 Elementen im Speicher
+21:50:44: 660111 von 905000 Elementen im Speicher
+21:50:44: Kapazität der Elementliste wurde auf 928200 erhöht
+21:50:45: 664848 von 910000 Elementen im Speicher
+21:50:45: 669580 von 915000 Elementen im Speicher
+21:50:46: 674312 von 920000 Elementen im Speicher
+21:50:47: 679037 von 925000 Elementen im Speicher
+21:50:48: 683756 von 930000 Elementen im Speicher
+21:50:49: 688494 von 935000 Elementen im Speicher
+21:50:49: 693218 von 940000 Elementen im Speicher
+21:50:50: 697933 von 945000 Elementen im Speicher
+21:50:51: 701874 von 950000 Elementen im Speicher
+21:50:52: 706708 von 955000 Elementen im Speicher
+21:50:53: 711694 von 960000 Elementen im Speicher
+21:50:54: 716678 von 965000 Elementen im Speicher
+21:50:54: 721655 von 970000 Elementen im Speicher
+21:50:55: 726629 von 975000 Elementen im Speicher
+21:50:56: 731603 von 980000 Elementen im Speicher
+21:50:57: 736590 von 985000 Elementen im Speicher
+21:50:58: 741575 von 990000 Elementen im Speicher
+21:50:59: 746572 von 995000 Elementen im Speicher
+21:50:59: 751572 von 1000000 Elementen im Speicher
+21:51:00: 756572 von 1005000 Elementen im Speicher
+21:51:01: 761572 von 1010000 Elementen im Speicher
+21:51:02: 766572 von 1015000 Elementen im Speicher
+21:51:03: 771572 von 1020000 Elementen im Speicher
+21:51:04: 776572 von 1025000 Elementen im Speicher
+21:51:04: 781572 von 1030000 Elementen im Speicher
+21:51:05: 786572 von 1035000 Elementen im Speicher
+21:51:06: 791569 von 1040000 Elementen im Speicher
+21:51:07: 796559 von 1045000 Elementen im Speicher
+21:51:08: 801552 von 1050000 Elementen im Speicher
+21:51:09: 806552 von 1055000 Elementen im Speicher
+21:51:09: 811552 von 1060000 Elementen im Speicher
+21:51:10: 816552 von 1065000 Elementen im Speicher
+21:51:11: 821552 von 1070000 Elementen im Speicher
+21:51:11: 826552 von 1075000 Elementen im Speicher
+21:51:12: 831552 von 1080000 Elementen im Speicher
+21:51:13: 836552 von 1085000 Elementen im Speicher
+21:51:14: 841552 von 1090000 Elementen im Speicher
+21:51:14: 846552 von 1095000 Elementen im Speicher
+21:51:15: 851552 von 1100000 Elementen im Speicher
+21:51:16: Kapazität der Knotenliste wurde auf 610510 erhöht
+21:51:16: 856552 von 1105000 Elementen im Speicher
+21:51:17: 861552 von 1110000 Elementen im Speicher
+21:51:17: 866552 von 1115000 Elementen im Speicher
+21:51:18: 871552 von 1120000 Elementen im Speicher
+21:51:19: 876552 von 1125000 Elementen im Speicher
+21:51:20: 881552 von 1130000 Elementen im Speicher
+21:51:20: 886552 von 1135000 Elementen im Speicher
+21:51:21: 891552 von 1140000 Elementen im Speicher
+21:51:22: 896552 von 1145000 Elementen im Speicher
+21:51:23: 901552 von 1150000 Elementen im Speicher
+21:51:23: 906552 von 1155000 Elementen im Speicher
+21:51:24: 911552 von 1160000 Elementen im Speicher
+21:51:25: 916552 von 1165000 Elementen im Speicher
+21:51:26: 921552 von 1170000 Elementen im Speicher
+21:51:26: 926552 von 1175000 Elementen im Speicher
+21:51:27: Kapazität der Elementliste wurde auf 1221020 erhöht
+21:51:27: 931552 von 1180000 Elementen im Speicher
+21:51:28: 936552 von 1185000 Elementen im Speicher
+21:51:29: 941552 von 1190000 Elementen im Speicher
+21:51:29: 946552 von 1195000 Elementen im Speicher
+21:51:30: 951552 von 1200000 Elementen im Speicher
+21:51:31: 956552 von 1205000 Elementen im Speicher
+21:51:32: 961552 von 1210000 Elementen im Speicher
+21:51:33: 966552 von 1215000 Elementen im Speicher
+21:51:33: 971552 von 1220000 Elementen im Speicher
+21:51:34: 976552 von 1225000 Elementen im Speicher
+21:51:35: 981552 von 1230000 Elementen im Speicher
+21:51:36: 986552 von 1235000 Elementen im Speicher
+21:51:37: 991552 von 1240000 Elementen im Speicher
+21:51:37: 996552 von 1245000 Elementen im Speicher
+21:51:38: 1000092 von 1250000 Elementen im Speicher
+21:51:39: 1002140 von 1255000 Elementen im Speicher
+21:51:39: 1004180 von 1260000 Elementen im Speicher
+21:51:40: 1006180 von 1265000 Elementen im Speicher
+21:51:40: 1008212 von 1270000 Elementen im Speicher
+21:51:41: 1012725 von 1275000 Elementen im Speicher
+21:51:42: 1017598 von 1280000 Elementen im Speicher
+21:51:42: 1022468 von 1285000 Elementen im Speicher
+21:51:43: 1027362 von 1290000 Elementen im Speicher
+21:51:44: 1032241 von 1295000 Elementen im Speicher
+21:51:45: 1037118 von 1300000 Elementen im Speicher
+21:51:45: 1041999 von 1305000 Elementen im Speicher
+21:51:46: 1046878 von 1310000 Elementen im Speicher
+21:51:47: 1051757 von 1315000 Elementen im Speicher
+21:51:48: 1054964 von 1320000 Elementen im Speicher
+21:51:48: 1057098 von 1325000 Elementen im Speicher
+21:51:49: 1061978 von 1330000 Elementen im Speicher
+21:51:50: 1066850 von 1335000 Elementen im Speicher
+21:51:51: 1071722 von 1340000 Elementen im Speicher
+21:51:52: 1076602 von 1345000 Elementen im Speicher
+21:51:52: 1081474 von 1350000 Elementen im Speicher
+21:51:53: 1086354 von 1355000 Elementen im Speicher
+21:51:54: 1091227 von 1360000 Elementen im Speicher
+21:51:55: 1096099 von 1365000 Elementen im Speicher
+21:51:56: 1100979 von 1370000 Elementen im Speicher
+21:51:56: 1105573 von 1375000 Elementen im Speicher
+21:51:57: 1110409 von 1380000 Elementen im Speicher
+21:51:58: 1115305 von 1385000 Elementen im Speicher
+21:51:59: 1120305 von 1390000 Elementen im Speicher
+21:51:59: 1125305 von 1395000 Elementen im Speicher
+21:52:00: 1130305 von 1400000 Elementen im Speicher
+21:52:01: 1135305 von 1405000 Elementen im Speicher
+21:52:02: 1140305 von 1410000 Elementen im Speicher
+21:52:02: 1145305 von 1415000 Elementen im Speicher
+21:52:03: 1150305 von 1420000 Elementen im Speicher
+21:52:04: 1155305 von 1425000 Elementen im Speicher
+21:52:05: 1160305 von 1430000 Elementen im Speicher
+21:52:05: Kapazität der Knotenliste wurde auf 771561 erhöht
+21:52:05: 1165305 von 1435000 Elementen im Speicher
+21:52:06: 1170305 von 1440000 Elementen im Speicher
+21:52:07: 1175305 von 1445000 Elementen im Speicher
+21:52:08: 1180305 von 1450000 Elementen im Speicher
+21:52:08: 1185305 von 1455000 Elementen im Speicher
+21:52:09: 1190305 von 1460000 Elementen im Speicher
+21:52:10: 1195305 von 1465000 Elementen im Speicher
+21:52:11: 1200305 von 1470000 Elementen im Speicher
+21:52:12: 1205305 von 1475000 Elementen im Speicher
+21:52:12: 1210305 von 1480000 Elementen im Speicher
+21:52:13: 1215305 von 1485000 Elementen im Speicher
+21:52:14: 1220305 von 1490000 Elementen im Speicher
+21:52:14: Kapazität der Elementliste wurde auf 1543122 erhöht
+21:52:15: 1225305 von 1495000 Elementen im Speicher
+21:52:15: 1228240 von 1500000 Elementen im Speicher
+21:52:16: 1228241 von 1505000 Elementen im Speicher
+21:52:16: 1228246 von 1510000 Elementen im Speicher
+21:52:16: 1228256 von 1515000 Elementen im Speicher
+21:52:17: 1228267 von 1520000 Elementen im Speicher
+21:52:17: 1228271 von 1525000 Elementen im Speicher
+21:52:17: 1228275 von 1530000 Elementen im Speicher
+21:52:18: 1228607 von 1535000 Elementen im Speicher
+21:52:18: 1228607 von 1540000 Elementen im Speicher
+21:52:19: 1228607 von 1545000 Elementen im Speicher
+21:52:19: 1228607 von 1550000 Elementen im Speicher
+21:52:19: 1228607 von 1555000 Elementen im Speicher
+21:52:20: 1228607 von 1560000 Elementen im Speicher
+21:52:20: 1228607 von 1565000 Elementen im Speicher
+21:52:21: 1228607 von 1570000 Elementen im Speicher
+21:52:21: 1228607 von 1575000 Elementen im Speicher
+21:52:22: 1228607 von 1580000 Elementen im Speicher
+21:52:22: 1228607 von 1585000 Elementen im Speicher
+21:52:22: 1228607 von 1590000 Elementen im Speicher
+21:52:23: 1228607 von 1595000 Elementen im Speicher
+21:52:23: 1228607 von 1600000 Elementen im Speicher
+21:52:24: 1228607 von 1605000 Elementen im Speicher
+21:52:24: 1228607 von 1610000 Elementen im Speicher
+21:52:24: 1228607 von 1615000 Elementen im Speicher
+21:52:25: 1228607 von 1620000 Elementen im Speicher
+21:52:25: 1228607 von 1625000 Elementen im Speicher
+21:52:26: 1228607 von 1630000 Elementen im Speicher
+21:52:26: 1228607 von 1635000 Elementen im Speicher
+21:52:26: 1228607 von 1640000 Elementen im Speicher
+21:52:27: 1228607 von 1645000 Elementen im Speicher
+21:52:27: 1228607 von 1650000 Elementen im Speicher
+21:52:27: 1228607 von 1655000 Elementen im Speicher
+21:52:28: 1228607 von 1660000 Elementen im Speicher
+21:52:28: 1228607 von 1665000 Elementen im Speicher
+21:52:28: 1228607 von 1670000 Elementen im Speicher
+21:52:28: 1228607 von 1675000 Elementen im Speicher
+21:52:29: 1228607 von 1680000 Elementen im Speicher
+21:52:29: 1228607 von 1685000 Elementen im Speicher
+21:52:29: 1229988 von 1690000 Elementen im Speicher
+21:52:30: 1234988 von 1695000 Elementen im Speicher
+21:52:31: 1239988 von 1700000 Elementen im Speicher
+21:52:32: 1244988 von 1705000 Elementen im Speicher
+21:52:33: 1249988 von 1710000 Elementen im Speicher
+21:52:33: 1254988 von 1715000 Elementen im Speicher
+21:52:34: 1259988 von 1720000 Elementen im Speicher
+21:52:35: 1263581 von 1725000 Elementen im Speicher
+21:52:35: 1263581 von 1730000 Elementen im Speicher
+21:52:35: 1263581 von 1735000 Elementen im Speicher
+21:52:36: 1263581 von 1740000 Elementen im Speicher
+21:52:36: 1263581 von 1745000 Elementen im Speicher
+21:52:36: 1266115 von 1750000 Elementen im Speicher
+21:52:37: 1271115 von 1755000 Elementen im Speicher
+21:52:37: 1272929 von 1760000 Elementen im Speicher
+21:52:38: 1277161 von 1765000 Elementen im Speicher
+21:52:39: 1282161 von 1770000 Elementen im Speicher
+21:52:40: 1287161 von 1775000 Elementen im Speicher
+21:52:41: 1292161 von 1780000 Elementen im Speicher
+21:52:42: 1297161 von 1785000 Elementen im Speicher
+21:52:42: 1300570 von 1790000 Elementen im Speicher
+21:52:43: 1305278 von 1795000 Elementen im Speicher
+21:52:44: 1310278 von 1800000 Elementen im Speicher
+21:52:45: 1314804 von 1805000 Elementen im Speicher
+21:52:45: 1317515 von 1810000 Elementen im Speicher
+21:52:46: 1322515 von 1815000 Elementen im Speicher
+21:52:47: 1324832 von 1820000 Elementen im Speicher
+21:52:48: 1324832 von 1825000 Elementen im Speicher
+21:52:48: 1324832 von 1830000 Elementen im Speicher
+21:52:48: 1324832 von 1835000 Elementen im Speicher
+21:52:49: 1326186 von 1840000 Elementen im Speicher
+21:52:50: 1331186 von 1845000 Elementen im Speicher
+21:52:50: 1332191 von 1850000 Elementen im Speicher
+21:52:51: 1335400 von 1855000 Elementen im Speicher
+21:52:52: 1340150 von 1860000 Elementen im Speicher
+21:52:53: 1343480 von 1865000 Elementen im Speicher
+21:52:53: 1345306 von 1870000 Elementen im Speicher
+21:52:54: 1350197 von 1875000 Elementen im Speicher
+21:52:55: 1354515 von 1880000 Elementen im Speicher
+21:52:56: 1359402 von 1885000 Elementen im Speicher
+21:52:57: 1364402 von 1890000 Elementen im Speicher
+21:52:58: 1369388 von 1895000 Elementen im Speicher
+21:52:58: 1373609 von 1900000 Elementen im Speicher
+21:52:59: 1375894 von 1905000 Elementen im Speicher
+21:53:00: 1380802 von 1910000 Elementen im Speicher
+21:53:01: 1385694 von 1915000 Elementen im Speicher
+21:53:02: 1390566 von 1920000 Elementen im Speicher
+21:53:03: 1395419 von 1925000 Elementen im Speicher
+21:53:03: 1400278 von 1930000 Elementen im Speicher
+21:53:04: 1405144 von 1935000 Elementen im Speicher
+21:53:05: 1410013 von 1940000 Elementen im Speicher
+21:53:06: 1414861 von 1945000 Elementen im Speicher
+21:53:07: 1419733 von 1950000 Elementen im Speicher
+21:53:07: 1423085 von 1955000 Elementen im Speicher
+21:53:08: 1424820 von 1960000 Elementen im Speicher
+21:53:08: 1426682 von 1965000 Elementen im Speicher
+21:53:09: 1428522 von 1970000 Elementen im Speicher
+21:53:09: 1430294 von 1975000 Elementen im Speicher
+21:53:10: 1432089 von 1980000 Elementen im Speicher
+21:53:10: 1433918 von 1985000 Elementen im Speicher
+21:53:11: 1435802 von 1990000 Elementen im Speicher
+21:53:11: 1437588 von 1995000 Elementen im Speicher
+21:53:12: 1439467 von 2000000 Elementen im Speicher
+21:53:12: 1441298 von 2005000 Elementen im Speicher
+21:53:13: 1442179 von 2010000 Elementen im Speicher
+21:53:13: 1444107 von 2015000 Elementen im Speicher
+21:53:14: 1445956 von 2020000 Elementen im Speicher
+21:53:14: 1447837 von 2025000 Elementen im Speicher
+21:53:15: 1449768 von 2030000 Elementen im Speicher
+21:53:15: 1451584 von 2035000 Elementen im Speicher
+21:53:16: 1453497 von 2040000 Elementen im Speicher
+21:53:16: 1455398 von 2045000 Elementen im Speicher
+21:53:17: 1457237 von 2050000 Elementen im Speicher
+21:53:18: 1459170 von 2055000 Elementen im Speicher
+21:53:18: 1462347 von 2060000 Elementen im Speicher
+21:53:19: 1467201 von 2065000 Elementen im Speicher
+21:53:20: 1472201 von 2070000 Elementen im Speicher
+21:53:21: 1475964 von 2075000 Elementen im Speicher
+21:53:21: Kapazität der Knotenliste wurde auf 948717 erhöht
+21:53:21: 1480935 von 2080000 Elementen im Speicher
+21:53:22: 1485907 von 2085000 Elementen im Speicher
+21:53:23: 1490886 von 2090000 Elementen im Speicher
+21:53:24: 1495866 von 2095000 Elementen im Speicher
+21:53:24: 1500840 von 2100000 Elementen im Speicher
+21:53:25: 1505822 von 2105000 Elementen im Speicher
+21:53:26: 1510804 von 2110000 Elementen im Speicher
+21:53:27: 1515778 von 2115000 Elementen im Speicher
+21:53:28: 1520753 von 2120000 Elementen im Speicher
+21:53:28: 1525741 von 2125000 Elementen im Speicher
+21:53:29: 1530741 von 2130000 Elementen im Speicher
+21:53:30: 1535741 von 2135000 Elementen im Speicher
+21:53:31: 1540741 von 2140000 Elementen im Speicher
+21:53:31: Kapazität der Elementliste wurde auf 1897434 erhöht
+21:53:31: 1545741 von 2145000 Elementen im Speicher
+21:53:32: 1550741 von 2150000 Elementen im Speicher
+21:53:33: 1555741 von 2155000 Elementen im Speicher
+21:53:33: 1560741 von 2160000 Elementen im Speicher
+21:53:34: 1565741 von 2165000 Elementen im Speicher
+21:53:35: 1570741 von 2170000 Elementen im Speicher
+21:53:36: 1575679 von 2175000 Elementen im Speicher
+21:53:36: 1580303 von 2180000 Elementen im Speicher
+21:53:37: 1583798 von 2185000 Elementen im Speicher
+21:53:38: 1585401 von 2190000 Elementen im Speicher
+21:53:38: 1586563 von 2195000 Elementen im Speicher
+21:53:39: 1587723 von 2200000 Elementen im Speicher
+21:53:39: 1587909 von 2205000 Elementen im Speicher
+21:53:40: 1589644 von 2210000 Elementen im Speicher
+21:53:40: 1592893 von 2215000 Elementen im Speicher
+21:53:41: 1592893 von 2220000 Elementen im Speicher
+21:53:41: 1592893 von 2225000 Elementen im Speicher
+21:53:41: 1592893 von 2230000 Elementen im Speicher
+21:53:41: 1592893 von 2235000 Elementen im Speicher
+21:53:41: 1592893 von 2240000 Elementen im Speicher
+21:53:42: 1593959 von 2245000 Elementen im Speicher
+21:53:43: 1596620 von 2250000 Elementen im Speicher
+21:53:43: 1598842 von 2255000 Elementen im Speicher
+21:53:44: 1601000 von 2260000 Elementen im Speicher
+21:53:45: 1603158 von 2265000 Elementen im Speicher
+21:53:46: 1604949 von 2269246 Elementen im Speicher
+21:53:46: <-Laden der Elemente beendet
+21:53:46: <-Laden des DGM in Datei 'test_daten/dgmtin3/tnxy.adf' als TIN beendet
+21:53:46: ->Suche nach doppelten Knoten gestartet
+21:53:46: 808064 Knoten und 1604949 Elemente vorhanden
+21:53:46: ->Sortieren der Knoten gestartet
+21:53:46: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:46: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:46: <-Sortieren der Knoten beendet
+21:53:46: 10000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 20000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 30000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 40000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 50000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 60000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 70000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 80000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 90000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 100000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 110000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 120000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 130000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 140000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 150000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 160000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 170000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 180000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 190000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 200000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 210000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 220000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:46: 230000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 240000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 250000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 260000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 270000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 280000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 290000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 300000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 310000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 320000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 330000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 340000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 350000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 360000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 370000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 380000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 390000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 400000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 410000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 420000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 430000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 440000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 450000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 460000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 470000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 480000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 490000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 500000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 510000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 520000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 530000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 540000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 550000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 560000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 570000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 580000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 590000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 600000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 610000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 620000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 630000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 640000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 650000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 660000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 670000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 680000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 690000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 700000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 710000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 720000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 730000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 740000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 750000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 760000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 770000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 780000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 790000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 800000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 810000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 820000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 830000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 840000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 850000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 860000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 870000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 880000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 890000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 900000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 910000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 920000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 930000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 940000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 950000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 960000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 970000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 980000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 990000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1000000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1010000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1020000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1030000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1040000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1050000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1060000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1070000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1080000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1090000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1100000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1110000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1120000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1130000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1140000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1150000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1160000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1170000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1180000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1190000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1200000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1210000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1220000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1230000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1240000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1250000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1260000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1270000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1280000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1290000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1300000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1310000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1320000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1330000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1340000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1350000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1360000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1370000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1380000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1390000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1400000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1410000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1420000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1430000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1440000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1450000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1460000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1470000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1480000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1490000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1500000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1510000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1520000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1530000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1540000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1550000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1560000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1570000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1580000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1590000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 1600000 von 1604949 Elementen, 0 doppelte Knoten gefunden
+21:53:47: 10000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 20000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 30000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 40000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 50000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 60000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 70000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 80000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 90000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 100000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 110000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 120000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 130000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 140000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 150000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 160000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 170000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 180000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 190000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 200000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 210000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 220000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 230000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 240000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 250000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 260000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 270000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 280000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 290000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 300000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 310000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 320000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 330000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 340000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 350000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 360000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 370000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 380000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 390000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 400000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 410000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 420000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 430000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 440000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 450000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 460000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 470000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 480000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 490000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 500000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 510000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 520000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 530000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 540000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 550000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 560000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 570000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 580000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 590000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 600000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 610000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 620000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 630000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 640000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 650000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 660000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 670000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 680000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 690000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 700000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 710000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 720000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 730000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 740000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 750000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 760000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 770000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 780000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 790000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 800000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 810000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 820000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 830000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 840000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 850000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 860000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 870000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 880000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 890000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 900000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 910000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 920000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 930000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 940000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 950000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 960000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 970000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 980000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 990000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1000000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1010000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1020000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1030000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1040000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1050000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1060000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1070000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1080000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1090000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1100000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1110000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1120000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1130000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1140000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1150000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1160000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1170000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1180000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1190000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1200000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1210000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1220000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1230000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1240000 von 1604949 Elementen, 0 Elemente gelöscht
+21:53:47: 1250000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1260000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1270000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1280000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1290000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1300000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1310000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1320000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1330000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1340000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1350000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1360000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1370000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1380000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1390000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1400000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1410000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1420000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1430000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1440000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1450000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1460000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1470000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1480000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1490000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1500000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1510000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1520000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1530000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1540000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1550000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1560000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1570000 von 1604949 Elementen, 1 Elemente gelöscht
+21:53:47: 1580000 von 1604949 Elementen, 3 Elemente gelöscht
+21:53:47: 1590000 von 1604949 Elementen, 3 Elemente gelöscht
+21:53:47: 1600000 von 1604949 Elementen, 17 Elemente gelöscht
+21:53:47: 0 Knoten gelöscht, 20 Elemente gelöscht
+21:53:47: <-Suche nach doppelten Knoten beendet
+21:53:47: <-Laden des DGM in Datei 'test_daten/dgmtin3/tnxy.adf' beendet
+21:53:47: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:47: <-Löschen des Suchbaumes der Knoten beendet
+21:53:47: 100000 von 808064 Objekte freigegeben
+21:53:47: 200000 von 808064 Objekte freigegeben
+21:53:47: 300000 von 808064 Objekte freigegeben
+21:53:47: 400000 von 808064 Objekte freigegeben
+21:53:48: 500000 von 808064 Objekte freigegeben
+21:53:48: 600000 von 808064 Objekte freigegeben
+21:53:48: 700000 von 808064 Objekte freigegeben
+21:53:48: 800000 von 808064 Objekte freigegeben
+21:53:48: 808064 Objekte freigegeben
+21:53:48: 100000 von 1604949 Objekte freigegeben
+21:53:48: 200000 von 1604949 Objekte freigegeben
+21:53:48: 300000 von 1604949 Objekte freigegeben
+21:53:48: 400000 von 1604949 Objekte freigegeben
+21:53:48: 500000 von 1604949 Objekte freigegeben
+21:53:48: 600000 von 1604949 Objekte freigegeben
+21:53:48: 700000 von 1604949 Objekte freigegeben
+21:53:48: 800000 von 1604949 Objekte freigegeben
+21:53:48: 900000 von 1604949 Objekte freigegeben
+21:53:48: 1000000 von 1604949 Objekte freigegeben
+21:53:48: 1100000 von 1604949 Objekte freigegeben
+21:53:48: 1200000 von 1604949 Objekte freigegeben
+21:53:48: 1300000 von 1604949 Objekte freigegeben
+21:53:48: 1400000 von 1604949 Objekte freigegeben
+21:53:48: 1500000 von 1604949 Objekte freigegeben
+21:53:48: 1600000 von 1604949 Objekte freigegeben
+21:53:48: 1604949 Objekte freigegeben
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm.grd' gestartet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm.grd' als GRD gestartet
+21:53:48: 10000 von 71250 Werten gelesen, 0 von 0 Knoten im Speicher
+21:53:48: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:48: 20000 von 71250 Werten gelesen, 5130 von 5130 Knoten im Speicher
+21:53:48: 30000 von 71250 Werten gelesen, 11135 von 11135 Knoten im Speicher
+21:53:48: 40000 von 71250 Werten gelesen, 17145 von 17145 Knoten im Speicher
+21:53:48: 50000 von 71250 Werten gelesen, 23155 von 23155 Knoten im Speicher
+21:53:48: 60000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:48: 70000 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:48: 71250 von 71250 Werten gelesen, 24624 von 24624 Knoten im Speicher
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm.grd' als GRD beendet
+21:53:48: ->Suche nach doppelten Knoten gestartet
+21:53:48: 24624 Knoten und keine Elemente vorhanden
+21:53:48: ->Sortieren der Knoten gestartet
+21:53:48: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:48: <-Sortieren der Knoten beendet
+21:53:48: 10000 von 24624 Knoten, 0 Knoten gelöscht
+21:53:48: 20000 von 24624 Knoten, 0 Knoten gelöscht
+21:53:48: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:48: <-Suche nach doppelten Knoten beendet
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm.grd' beendet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: 24624 Objekte freigegeben
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm.xyz' gestartet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ gestartet
+21:53:48: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:48: 10 Werte gelesen, 10 von 10 Knoten im Speicher
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm.xyz' als XYZ beendet
+21:53:48: ->Suche nach doppelten Knoten gestartet
+21:53:48: 10 Knoten und keine Elemente vorhanden
+21:53:48: ->Sortieren der Knoten gestartet
+21:53:48: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:48: <-Sortieren der Knoten beendet
+21:53:48: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:48: <-Suche nach doppelten Knoten beendet
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm.xyz' beendet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: 10 Objekte freigegeben
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' gestartet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ gestartet
+21:53:48: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:48: 1126 Werte gelesen, 1126 von 1126 Knoten im Speicher
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' als XYZ beendet
+21:53:48: ->Suche nach doppelten Knoten gestartet
+21:53:48: 1126 Knoten und keine Elemente vorhanden
+21:53:48: ->Sortieren der Knoten gestartet
+21:53:48: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:48: <-Sortieren der Knoten beendet
+21:53:48: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:48: <-Suche nach doppelten Knoten beendet
+21:53:48: <-Laden des DGM in Datei 'test_daten/dgm_gross.xyz' beendet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: 1126 Objekte freigegeben
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' gestartet
+21:53:48: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:48: <-Löschen des Suchbaumes der Knoten beendet
+21:53:48: ->Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ gestartet
+21:53:48: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:48: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
+21:53:48: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
+21:53:49: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
+21:53:49: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
+21:53:49: 43332 Werte gelesen, 43332 von 43332 Knoten im Speicher
+21:53:49: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' als XYZ beendet
+21:53:49: ->Suche nach doppelten Knoten gestartet
+21:53:49: 43332 Knoten und keine Elemente vorhanden
+21:53:49: ->Sortieren der Knoten gestartet
+21:53:49: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:49: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:49: <-Sortieren der Knoten beendet
+21:53:49: 10000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:49: 20000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:49: 30000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:49: 40000 von 43332 Knoten, 0 Knoten gelöscht
+21:53:49: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:49: <-Suche nach doppelten Knoten beendet
+21:53:49: <-Laden des DGM in Datei 'test_daten/dgm_ziemlich_gross.xyz' beendet
+21:53:49: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:49: <-Löschen des Suchbaumes der Knoten beendet
+21:53:49: 43332 Objekte freigegeben
+21:53:49: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' gestartet
+21:53:49: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:49: <-Löschen des Suchbaumes der Knoten beendet
+21:53:49: ->Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ gestartet
+21:53:49: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:49: 10000 Werte gelesen, 9999 von 9999 Knoten im Speicher
+21:53:49: 20000 Werte gelesen, 19999 von 19999 Knoten im Speicher
+21:53:49: 30000 Werte gelesen, 29999 von 29999 Knoten im Speicher
+21:53:49: 40000 Werte gelesen, 39999 von 39999 Knoten im Speicher
+21:53:49: 50000 Werte gelesen, 49999 von 49999 Knoten im Speicher
+21:53:49: 60000 Werte gelesen, 59999 von 59999 Knoten im Speicher
+21:53:50: 70000 Werte gelesen, 69999 von 69999 Knoten im Speicher
+21:53:50: 80000 Werte gelesen, 79999 von 79999 Knoten im Speicher
+21:53:50: 90000 Werte gelesen, 89999 von 89999 Knoten im Speicher
+21:53:50: 98636 Werte gelesen, 98636 von 98636 Knoten im Speicher
+21:53:50: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' als XYZ beendet
+21:53:50: ->Suche nach doppelten Knoten gestartet
+21:53:50: 98636 Knoten und keine Elemente vorhanden
+21:53:50: ->Sortieren der Knoten gestartet
+21:53:50: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:50: <-Sortieren der Knoten beendet
+21:53:50: 10000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 20000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 30000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 40000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 50000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 60000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 70000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 80000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 90000 von 98636 Knoten, 0 Knoten gelöscht
+21:53:50: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:50: <-Suche nach doppelten Knoten beendet
+21:53:50: <-Laden des DGM in Datei 'test_daten/dgm_sehr_gross.xyz' beendet
+21:53:50: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen des Suchbaumes der Knoten beendet
+21:53:50: 98636 Objekte freigegeben
+21:53:50: ->Laden des DGM in Datei 'test_daten/dgm.shp' gestartet
+21:53:50: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen des Suchbaumes der Knoten beendet
+21:53:50: ->Laden des DGM in Datei 'test_daten/dgm.shp' als SHP gestartet
+21:53:50: ->Laden der Projektionsdatei zu 'test_daten/dgm.shp' gestartet
+21:53:50: Projektionsdatei 'test_daten/dgm.Prj' konnte nicht geöffnet werden
+21:53:50: <-Laden der Projektionsdatei zu 'test_daten/dgm.shp' beendet
+21:53:50: 10 Speicherblöcke wurden angefordert
+21:53:50: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:50: 114 von 114 Objekten gelesen, 114 von 114 Knoten im Speicher
+21:53:50: <-Laden des DGM in Datei 'test_daten/dgm.shp' als SHP beendet
+21:53:50: ->Suche nach doppelten Knoten gestartet
+21:53:50: 114 Knoten und keine Elemente vorhanden
+21:53:50: ->Sortieren der Knoten gestartet
+21:53:50: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:50: <-Sortieren der Knoten beendet
+21:53:50: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:50: <-Suche nach doppelten Knoten beendet
+21:53:50: <-Laden des DGM in Datei 'test_daten/dgm.shp' beendet
+21:53:50: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen des Suchbaumes der Knoten beendet
+21:53:50: 114 Objekte freigegeben
+21:53:50: ->Laden des DGM in Datei 'test_daten/dgm2.shp' gestartet
+21:53:50: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:50: <-Löschen des Suchbaumes der Knoten beendet
+21:53:50: ->Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP gestartet
+21:53:50: ->Laden der Projektionsdatei zu 'test_daten/dgm2.shp' gestartet
+21:53:50: Projektionsdatei 'test_daten/dgm2.Prj' konnte nicht geöffnet werden
+21:53:50: <-Laden der Projektionsdatei zu 'test_daten/dgm2.shp' beendet
+21:53:50: 10 Speicherblöcke wurden angefordert
+21:53:50: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:50: 10000 von 156249 Objekten gelesen, 9247 von 9247 Knoten im Speicher
+21:53:50: 20000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:50: 30000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:50: 40000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:50: 50000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:51: 60000 von 156249 Objekten gelesen, 11875 von 11875 Knoten im Speicher
+21:53:51: 70000 von 156249 Objekten gelesen, 12088 von 12088 Knoten im Speicher
+21:53:51: 80000 von 156249 Objekten gelesen, 13793 von 13793 Knoten im Speicher
+21:53:51: 90000 von 156249 Objekten gelesen, 15747 von 15747 Knoten im Speicher
+21:53:51: 100000 von 156249 Objekten gelesen, 17727 von 17727 Knoten im Speicher
+21:53:51: 110000 von 156249 Objekten gelesen, 19707 von 19707 Knoten im Speicher
+21:53:51: 120000 von 156249 Objekten gelesen, 21687 von 21687 Knoten im Speicher
+21:53:51: 130000 von 156249 Objekten gelesen, 23667 von 23667 Knoten im Speicher
+21:53:51: 140000 von 156249 Objekten gelesen, 25482 von 25482 Knoten im Speicher
+21:53:51: 150000 von 156249 Objekten gelesen, 27462 von 27462 Knoten im Speicher
+21:53:51: 156249 von 156249 Objekten gelesen, 28287 von 28287 Knoten im Speicher
+21:53:51: <-Laden des DGM in Datei 'test_daten/dgm2.shp' als SHP beendet
+21:53:51: ->Suche nach doppelten Knoten gestartet
+21:53:51: 28287 Knoten und keine Elemente vorhanden
+21:53:51: ->Sortieren der Knoten gestartet
+21:53:51: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:51: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:51: <-Sortieren der Knoten beendet
+21:53:51: 10000 von 28287 Knoten, 0 Knoten gelöscht
+21:53:51: 20000 von 28287 Knoten, 0 Knoten gelöscht
+21:53:51: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:51: <-Suche nach doppelten Knoten beendet
+21:53:51: <-Laden des DGM in Datei 'test_daten/dgm2.shp' beendet
+21:53:51: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:51: <-Löschen des Suchbaumes der Knoten beendet
+21:53:51: 28287 Objekte freigegeben
+21:53:51: ->Laden des DGM in Datei 'test_daten/dgm.2dm' gestartet
+21:53:51: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:51: <-Löschen des Suchbaumes der Knoten beendet
+21:53:51: ->Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM gestartet
+21:53:51: Kapazität der Knotenliste wurde auf 100000 erhöht
+21:53:51: ->Sortieren der Knoten gestartet
+21:53:51: <-Sortieren der Knoten beendet
+21:53:51: Kapazität der Elementliste wurde auf 200000 erhöht
+21:53:51: 2225 Elemente und 1126 Knoten geladen
+21:53:51: 1126 Knoten insgesamt
+21:53:51: <-Laden des DGM in Datei 'test_daten/dgm.2dm' als 2DM beendet
+21:53:51: ->Suche nach doppelten Knoten gestartet
+21:53:51: 1126 Knoten und 2225 Elemente vorhanden
+21:53:51: ->Sortieren der Knoten gestartet
+21:53:51: ->Löschen und Neuaufbauen des Suchbaumes der Knoten gestartet
+21:53:51: <-Löschen und Neuaufbauen des Suchbaumes der Knoten beendet
+21:53:51: <-Sortieren der Knoten beendet
+21:53:51: 0 Knoten gelöscht, 0 Elemente gelöscht
+21:53:51: <-Suche nach doppelten Knoten beendet
+21:53:51: <-Laden des DGM in Datei 'test_daten/dgm.2dm' beendet
+21:53:51: ->Löschen des Suchbaumes der Knoten gestartet
+21:53:51: <-Löschen des Suchbaumes der Knoten beendet
+21:53:51: 1126 Objekte freigegeben
+21:53:51: 2225 Objekte freigegeben
+21:53:51: ->Laden der Profilspuren gestartet
+21:53:51: ->Laden der Projektionsdatei zu 'test_daten/profile.shp' gestartet
+21:53:51: Projektionsdatei 'test_daten/profile.Prj' konnte nicht geöffnet werden
+21:53:51: <-Laden der Projektionsdatei zu 'test_daten/profile.shp' beendet
+21:53:51: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:53:51: 10 Speicherblöcke wurden angefordert
+21:53:51: 8 von 8 Objekten geladen, 8 Profilspuren im Speicher
+21:53:51: <-Laden der Profilspuren beendet
+21:53:51: ->Ausrichten der Profilspuren gestartet
+21:53:51: 8 von 8 Profilspuren ausgerichtet, 3 gedreht
+21:53:51: <-Ausrichten der Profilspuren beendet
+21:53:51: ->Überprüfung der Profilspuren gestartet
+21:53:51: 8 von 8 Profilspuren überprüft
+21:53:51: <-Überprüfung der Profilspuren beendet
+21:53:51: 8 Objekte freigegeben
+21:53:51: ->Laden der Profilspuren gestartet
+21:53:51: ->Laden der Projektionsdatei zu 'test_daten/profilez.shp' gestartet
+21:53:51: Projektionsdatei 'test_daten/profilez.Prj' konnte nicht geöffnet werden
+21:53:51: <-Laden der Projektionsdatei zu 'test_daten/profilez.shp' beendet
+21:53:51: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+21:53:51: 10 Speicherblöcke wurden angefordert
+21:53:51: 5 von 5 Objekten geladen, 5 Profilspuren im Speicher
+21:53:51: <-Laden der Profilspuren beendet
+21:53:51: ->Ausrichten der Profilspuren gestartet
+21:53:51: 5 von 5 Profilspuren ausgerichtet, 0 gedreht
+21:53:51: <-Ausrichten der Profilspuren beendet
+21:53:51: ->Überprüfung der Profilspuren gestartet
+21:53:51: 5 von 5 Profilspuren überprüft
+21:53:51: <-Überprüfung der Profilspuren beendet
+21:53:51: 5 Objekte freigegeben
+21:53:51: ->Laden der Gewässerachsen gestartet
+21:53:51: ->Laden der Projektionsdatei zu 'test_daten/achse.shp' gestartet
+21:53:51: Projektionsdatei 'test_daten/achse.Prj' konnte nicht geöffnet werden
+21:53:51: <-Laden der Projektionsdatei zu 'test_daten/achse.shp' beendet
+21:53:51: 10 Speicherblöcke wurden angefordert
+21:53:51: 10 von 14 Objekten gelesen, 10 Gewässerachsen im Speicher
+21:53:51: 14 von 14 Objekten gelesen, 14 Gewässerachsen im Speicher
+21:53:51: <-Laden der Gewässerachsen beendet
+21:53:51: ->Zusammenführen von Achsensegmenten gestart
+21:53:51: Teste Segment 0 (1774) von 9 Segmenten mit 4 (490)
+21:53:51: Teste Segment 0 (1850) von 7 Segmenten mit 4 (479)
+21:53:51: Teste Segment 0 (2834) von 5 Segmenten mit 3 (490)
+21:53:52: <-Zusammenführen von Achsensegmenten beendet
+21:53:52: ->Laden der Profilspuren gestartet
+21:53:52: ->Laden der Projektionsdatei zu 'test_daten/profile_dreh.shp' gestartet
+21:53:52: Projektionsdatei 'test_daten/profile_dreh.Prj' konnte nicht geöffnet werden
+21:53:52: <-Laden der Projektionsdatei zu 'test_daten/profile_dreh.shp' beendet
+21:53:52: Nur Profile mit einer Station kleiner als 9999.9000 werden geladen
+->Fehler (2201)
+Konnte 'test_daten/profile_dreh.shp' nicht zum Lesen öffnen
+<-Fehler (2201)
+21:53:52: Fehler wurde korrekt abgefangen
+21:53:52: Programmabbruch
Modified: trunk/bin/wsplgen.exe
===================================================================
(Binary files differ)
Modified: trunk/src/file.cpp
===================================================================
--- trunk/src/file.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/file.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -159,59 +159,42 @@
write_error(1222, "Ungültige Dateinamenserweiterung '%s' beim Dateinamen '%s' für den Parameter -DGM\nErlaubt sind nur ADF, GRD, ASC, 2DM, XYZ, TXT oder SHP\n", ToUpperCase(Ext).c_str(), FileName.c_str());
}
- if (BegrenzungsPolygon)
- {
- write_fortschritt("->Löschen aussenliegender Kanten gestartet\n");
+ write_fortschritt("<-Laden des DGM in Datei '%s' beendet\n", FileName.c_str());
- int Count = 0;
- for (TElementList::iterator i=ElementList->begin(); i != ElementList->end(); i++)
- {
- TElement *Element = *i;
+ return (true);
+}
- TNode* Node1 = Element->Node1;
- TNode* Node2 = Element->Node2;
- TNode* Node3 = Element->Node3;
+//---------------------------------------------------------------------------
+bool LoadXYZ(FILE* fhtnxy, FILE* fhtnz, int Nr, long* XL, long* YL, int* ZI)
+{
+ double X = 0.0;
+ double Y = 0.0;
+ float Z = (float)0.0;
- long X12 = (Node1->X + Node2->X) / 2;
- long Y12 = (Node1->Y + Node2->Y) / 2;
+ fseek (fhtnxy, (Nr-1) * (sizeof(X) + sizeof (Y)), SEEK_SET);
- if (!BegrenzungsPolygon->IsInsideXYList(X12, Y12))
- {
- Element->Typ = NO_ELEMENT;
- continue;
- }
+ if (1 != fread(&X, sizeof(X), 1, fhtnxy) || 1 != fread(&Y, sizeof(Y), 1, fhtnxy))
+ {
+ write_error(8888, "Konnte keine X/Y-Werte für den Knoten %d lesen\n", Nr);
+ }
- long X23 = (Node2->X + Node3->X) / 2;
- long Y23 = (Node2->Y + Node3->Y) / 2;
+ fseek (fhtnz, (Nr-1) * sizeof(Z), SEEK_SET);
- if (!BegrenzungsPolygon->IsInsideXYList(X23, Y23))
- {
- Element->Typ = NO_ELEMENT;
- continue;
- }
+ if (1 != fread(&Z, sizeof(Z), 1, fhtnz))
+ {
+ write_error(8888, "Konnte keinen Z-Wert für den Knoten %d lesen\n", Nr);
+ }
- long X31 = (Node3->X + Node1->X) / 2;
- long Y31 = (Node3->Y + Node1->Y) / 2;
+ Swap8Bytes(&X);
+ Swap8Bytes(&Y);
+ Swap4Bytes(&Z);
- if (!BegrenzungsPolygon->IsInsideXYList(X31, Y31))
- {
- Element->Typ = NO_ELEMENT;
- continue;
- }
+ if (Z > 1e30 || Z < -1e30) return (false);
- Count++;
+ *XL = (long)(X * 100.0 + 0.5);
+ *YL = (long)(Y * 100.0 + 0.5);
+ *ZI = (long)(Z * 100.0 + 0.5);
- if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 5000 == 0) || (Count % 50000 == 0))
- {
- write_fortschritt("%d von %d Elementen überprüft\n", Count, ElementList->size());
- }
- }
-
- write_fortschritt("<-Löschen aussenliegender Kanten beendet\n");
- }
-
- write_fortschritt("<-Laden des DGM in Datei '%s' beendet\n", FileName.c_str());
-
return (true);
}
@@ -220,275 +203,219 @@
{
write_fortschritt("->Laden des DGM in Datei '%s' als TIN gestartet\n", FileName.c_str());
+ std::string ThulFileName = GetFilePath(FileName) + "thul.adf";
std::string TnxyFileName = GetFilePath(FileName) + "tnxy.adf";
std::string TnzFileName = GetFilePath(FileName) + "tnz.adf";
std::string TnodFileName = GetFilePath(FileName) + "tnod.adf";
- std::string TedgFileName = GetFilePath(FileName) + "tedg.adf";
- std::string ThulFileName = GetFilePath(FileName) + "thul.adf";
+// std::string TedgFileName = GetFilePath(FileName) + "tedg.adf";
+ FILE *fhthul = 0;
FILE *fhtnxy = 0;
+ FILE *fhtnod = 0;
FILE *fhtnz = 0;
- FILE *fhtnod = 0;
- FILE *fhtedg = 0;
- FILE *fhthul = 0;
+// FILE *fhtedg = 0;
- try
- {
- write_fortschritt("->Laden der Umhüllung gestartet\n");
+ fhthul = fopen(ThulFileName.c_str(), "rb");
+ if (fhthul == 0) write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", ThulFileName.c_str());
- TXYList Huelle;
+ fhtnxy = fopen(TnxyFileName.c_str(), "rb");
+ if (fhtnxy == 0) write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnxyFileName.c_str());
- fhthul = fopen(ThulFileName.c_str(), "rb");
+ fhtnod = fopen(TnodFileName.c_str(), "rb");
+ if (fhtnod == 0) write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnodFileName.c_str());
- if (fhthul == 0)
- {
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", ThulFileName.c_str());
- }
+ fhtnz = fopen(TnzFileName.c_str(), "rb");
+ if (fhtnz == 0) write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnzFileName.c_str());
- fhtnxy = fopen(TnxyFileName.c_str(), "rb");
- if (fhtnxy == 0)
- {
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnxyFileName.c_str());
- }
- int Nr = 0;
- // Zuerst kommt scheinbar die Umhüllung aller Knoten
- // Also auch oder besser gesagt genau der Wächterknoten
- do
- {
- fread(&Nr, sizeof(Nr), 1, fhthul);
- Swap4Bytes(&Nr);
- } while (Nr > 0);
+ write_fortschritt("->Laden der Umhüllung gestartet\n");
- // Jetzt die eigentlichen Knoten
+ TXYList Huelle;
- unsigned int AnzHul = 0;
+ int Nr = 0;
- while (1 == fread(&Nr, sizeof(Nr), 1, fhthul))
- {
- Swap4Bytes(&Nr);
+ // Zuerst kommt scheinbar die Umhüllung aller Knoten
+ // Also auch oder besser gesagt genau der Wächterknoten
+ do
+ {
+ fread(&Nr, sizeof(Nr), 1, fhthul);
+ Swap4Bytes(&Nr);
+ } while (Nr > 0);
- AnzHul++;
+ // Jetzt die eigentlichen Knoten
- double X = 0.0;
- double Y = 0.0;
+ unsigned int AnzHul = 0;
- fseek (fhtnxy, (Nr-1) * (sizeof(X) + sizeof (Y)), SEEK_SET);
+ while (1 == fread(&Nr, sizeof(Nr), 1, fhthul))
+ {
+ Swap4Bytes(&Nr);
- if (1 != fread(&X, sizeof(X), 1, fhtnxy) || 1 != fread(&Y, sizeof(Y), 1, fhtnxy))
- {
- write_error(8888, "Konnte keine 2 Werte für den Knoten %d lesen\n", Nr);
- }
+ AnzHul++;
- Swap8Bytes(&X);
- Swap8Bytes(&Y);
+ double X = 0.0;
+ double Y = 0.0;
- long XL = (long)(X * 100.0 + 0.5);
- long YL = (long)(Y * 100.0 + 0.5);
+ fseek (fhtnxy, (Nr-1) * (sizeof(X) + sizeof (Y)), SEEK_SET);
- Huelle.Add(XL, YL);
-
- if (DebugLevel >= 9 || (DebugLevel >= 1 && AnzHul % 100 == 0) || (AnzHul > 0 && AnzHul % 1000 == 0))
- {
- write_fortschritt("%d Stütztellen gelesen\n", AnzHul);
- }
+ if (1 != fread(&X, sizeof(X), 1, fhtnxy) || 1 != fread(&Y, sizeof(Y), 1, fhtnxy))
+ {
+ write_error(8888, "Konnte keine 2 Werte für den Knoten %d lesen\n", Nr);
}
- write_fortschritt("%d Stützstellen gelesen\n", AnzHul);
+ Swap8Bytes(&X);
+ Swap8Bytes(&Y);
- fclose(fhtnxy);
- fclose(fhthul);
+ long XL = (long)(X * 100.0 + 0.5);
+ long YL = (long)(Y * 100.0 + 0.5);
- write_fortschritt("<-Laden der Umhüllung beendet\n");
+ Huelle.Add(XL, YL);
- // SavePolygon("Huelle.shp", &Huelle, 8);
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && AnzHul % 100 == 0) || (AnzHul > 0 && AnzHul % 1000 == 0))
+ {
+ write_fortschritt("%d Stützstellen gelesen\n", AnzHul);
+ }
+ }
- write_fortschritt("->Laden der Knoten gestartet\n");
+ write_fortschritt("%d Stützstellen gelesen\n", AnzHul);
- fhtnxy = fopen(TnxyFileName.c_str(), "rb");
- fhtnz = fopen(TnzFileName.c_str(), "rb");
+ fclose(fhthul);
- if (fhtnxy == 0)
- {
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnxyFileName.c_str());
- }
+ if (DebugLevel >= 8)
+ {
+ std::string HuelleFileName = ExchangeFileExt(FileName, "_huelle.shp");
+ SavePolygon(HuelleFileName, &Huelle, DebugLevel);
+ }
- if (fhtnz == 0)
- {
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnzFileName.c_str());
- }
+ write_fortschritt("<-Laden der Umhüllung beendet\n");
- int AnzKnoten = 0;
- int AnzWerte = 0;
- double X = 0.0;
- double Y = 0.0;
- float Z = (float)0.0;
- while (1 == fread(&X, sizeof(X), 1, fhtnxy) && fread(&Y, sizeof(Y), 1, fhtnxy) && 1 == fread(&Z, sizeof(Z), 1, fhtnz))
- {
- Swap8Bytes(&X);
- Swap8Bytes(&Y);
- Swap4Bytes(&Z);
- AnzWerte++;
+ write_fortschritt("->Laden der Elemente gestartet\n");
- if (DebugLevel >= 9 || (DebugLevel >= 1 && AnzWerte % 10000 == 0) || (AnzWerte > 0 && AnzWerte % 100000 == 0))
- {
- write_fortschritt("%d Werten gelesen, %d von %d Knoten im Speicher\n", AnzWerte, NodeList->size(), AnzKnoten);
- }
- if (Z < 1e30 && Z > -1e30)
- {
- long XL = (long)(X * 100.0 + 0.5);
- long YL = (long)(Y * 100.0 + 0.5);
- int ZI = (long)(Z * 100.0 + 0.5);
+ bool IsSetBegrenzung = false;
+ if (Begrenzung && Begrenzung->size() > 0) IsSetBegrenzung = true;
- TInsideTyp InsideBegrenzung = INSIDE;
- if (Begrenzung) InsideBegrenzung = Begrenzung->IsInsideXYList(XL, YL);
- if (InsideBegrenzung == INSIDE || InsideBegrenzung == ON_LINE)
- {
- TInsideTyp InsideHuelle = Huelle.IsInsideXYList(XL, YL);
- if (InsideHuelle != NOT_INSIDE)
- {
- AnzKnoten++;
+ // Nur so funktioniert später AddWithQuadTree
- TNode *Node = new TNode(AnzWerte, XL, YL, ZI);
- NodeList->Add(Node);
- }
- }
- }
- }
- write_fortschritt("%d Werten gelesen, %d von %d Knoten im Speicher\n", AnzWerte, NodeList->size(), AnzKnoten);
+ NodeList->CreateQuadTree(Huelle.MinX, Huelle.MinY, Huelle.MaxX, Huelle.MaxY);
- fclose(fhtnxy);
- fclose(fhtnz);
+ int Nr1 = -1;
+ int Nr2 = -1;
+ int Nr3 = -1;
- write_fortschritt("<-Laden der Knoten beendet\n");
+// int Ei1 = -1;
+// int Ei2 = -1;
+// int Ei3 = -1;
- write_fortschritt("->Laden der Elemente gestartet\n");
+ int AnzElements = 0;
+// while (1 == fread(&Nr1, sizeof(Nr1), 1, fhtnod) && fread(&Nr2, sizeof(Nr2), 1, fhtnod) && 1 == fread(&Nr3, sizeof(Nr3), 1, fhtnod) && 1 == fread(&Ei1, sizeof(Ei1), 1, fhtedg) && fread(&Ei2, sizeof(Ei2), 1, fhtedg) && 1 == fread(&Ei3, sizeof(Ei3), 1, fhtedg))
+ while (1 == fread(&Nr1, sizeof(Nr1), 1, fhtnod) && fread(&Nr2, sizeof(Nr2), 1, fhtnod) && 1 == fread(&Nr3, sizeof(Nr3), 1, fhtnod))
+ {
+ Swap4Bytes((byte *)&Nr1);
+ Swap4Bytes((byte *)&Nr2);
+ Swap4Bytes((byte *)&Nr3);
+// Swap4Bytes((byte *)&Ei1);
+// Swap4Bytes((byte *)&Ei2);
+// Swap4Bytes((byte *)&Ei3);
- fhtnod = fopen(TnodFileName.c_str(), "rb");
- fhtedg = fopen(TedgFileName.c_str(), "rb");
+ AnzElements++;
- if (fhtnod == 0)
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && AnzElements % 5000 == 0) || (AnzElements > 0 && AnzElements % 50000 == 0))
{
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TnodFileName.c_str());
+ write_fortschritt("%d von %d Elementen im Speicher\n", ElementList->size(), AnzElements);
}
+/*
+ TTinTyp TinTyp = TTREGULAR;
- if (fhtedg == 0)
+ if (Ei1 < 0)
{
- write_error(2201, "Konnte '%s' nicht zum Lesen öffnen\n", TedgFileName.c_str());
+ Ei1 = -Ei1;
+ int Typ = Ei1 & 0x40000000;
+
+ if (Typ == 0x00000000) TinTyp = TTSOFT;
+ else TinTyp = TTHARD;
}
+ if (Ei2 < 0)
+ {
+ Ei2 = -Ei2;
+ int Typ = Ei2 & 0x40000000;
- int Nr1 = -1;
- int Nr2 = -1;
- int Nr3 = -1;
+ if (Typ == 0x00000000) TinTyp = TTSOFT;
+ else TinTyp = TTHARD;
+ }
- int Ei1 = -1;
- int Ei2 = -1;
- int Ei3 = -1;
-
- int AnzElements = 0;
- while (1 == fread(&Nr1, sizeof(Nr1), 1, fhtnod) && fread(&Nr2, sizeof(Nr2), 1, fhtnod) && 1 == fread(&Nr3, sizeof(Nr3), 1, fhtnod) && 1 == fread(&Ei1, sizeof(Ei1), 1, fhtedg) && fread(&Ei2, sizeof(Ei2), 1, fhtedg) && 1 == fread(&Ei3, sizeof(Ei3), 1, fhtedg))
-// while (1 == fread(&Nr1, sizeof(Nr1), 1, fhtnod) && fread(&Nr2, sizeof(Nr2), 1, fhtnod) && 1 == fread(&Nr3, sizeof(Nr3), 1, fhtnod))
+ if (Ei3 < 0)
{
- Swap4Bytes((byte *)&Nr1);
- Swap4Bytes((byte *)&Nr2);
- Swap4Bytes((byte *)&Nr3);
- Swap4Bytes((byte *)&Ei1);
- Swap4Bytes((byte *)&Ei2);
- Swap4Bytes((byte *)&Ei3);
+ Ei3 = -Ei3;
+ int Typ = Ei3 & 0x40000000;
- AnzElements++;
+ if (Typ == 0x00000000) TinTyp = TTSOFT;
+ else TinTyp = TTHARD;
+ }
+*/
- if (DebugLevel >= 9 || (DebugLevel >= 1 && AnzElements % 10000 == 0) || (AnzElements > 0 && AnzElements % 100000 == 0))
- {
- write_fortschritt("%d von %d Elementen im Speicher\n", ElementList->size(), AnzElements);
- }
+ long X1 = 0;
+ long Y1 = 0;
+ int Z1 = 0;
+ long X2 = 0;
+ long Y2 = 0;
+ int Z2 = 0;
+ long X3 = 0;
+ long Y3 = 0;
+ int Z3 = 0;
- TTinTyp TinTyp = TTREGULAR;
+ if (false == LoadXYZ(fhtnxy, fhtnz, Nr1, &X1, &Y1, &Z1)) continue;
+ if (false == LoadXYZ(fhtnxy, fhtnz, Nr2, &X2, &Y2, &Z2)) continue;
+ if (false == LoadXYZ(fhtnxy, fhtnz, Nr3, &X3, &Y3, &Z3)) continue;
- if (Ei1 < 0)
- {
- Ei1 = -Ei1;
- int Typ = Ei1 & 0x40000000;
+ long Xm = (long)(X1 / 3.0 + X2 / 3.0 + X3 / 3.0);
+ long Ym = (long)(Y1 / 3.0 + Y2 / 3.0 + Y3 / 3.0);
- if (Typ == 0x00000000) TinTyp = TTSOFT;
- else TinTyp = TTHARD;
- }
+ TInsideTyp InsideBegrenzung = INSIDE;
+ if (IsSetBegrenzung) InsideBegrenzung = Begrenzung->IsInsideXYList(Xm, Ym);
+ if (InsideBegrenzung == NOT_INSIDE) continue;
+ TInsideTyp InsideHuelle = Huelle.IsInsideXYList(Xm, Ym);
+ if (InsideHuelle == NOT_INSIDE) continue;
- if (Ei2 < 0)
- {
- Ei2 = -Ei2;
- int Typ = Ei2 & 0x40000000;
+ TNode *Node1 = NodeList->FindByXY(X1, Y1);
+ if (0 == Node1)
+ {
+ Node1 = new TNode(Nr1, X1, Y1, Z1);
+ NodeList->AddWithQuadTree(Node1);
+ }
- if (Typ == 0x00000000) TinTyp = TTSOFT;
- else TinTyp = TTHARD;
- }
+ TNode *Node2 = NodeList->FindByXY(X2, Y2);
+ if (0 == Node2)
+ {
+ Node2 = new TNode(Nr2, X2, Y2, Z2);
+ NodeList->AddWithQuadTree(Node2);
+ }
- if (Ei3 < 0)
- {
- Ei3 = -Ei3;
- int Typ = Ei3 & 0x40000000;
-
- if (Typ == 0x00000000) TinTyp = TTSOFT;
- else TinTyp = TTHARD;
- }
-
- TNode *Node1 = NodeList->FindByNr(Nr1);
- TNode *Node2 = NodeList->FindByNr(Nr2);
- TNode *Node3 = NodeList->FindByNr(Nr3);
-
- if (Node1 && Node2 && Node3)
- {
- long X12 = (Node1->X + Node2->X) / 2;
- long Y12 = (Node1->Y + Node2->Y) / 2;
- long X23 = (Node2->X + Node3->X) / 2;
- long Y23 = (Node2->Y + Node3->Y) / 2;
- long X31 = (Node3->X + Node1->X) / 2;
- long Y31 = (Node3->Y + Node1->Y) / 2;
-
- TInsideTyp WhereIs = Huelle.IsInsideXYList(X12, Y12);
- if (WhereIs == NOT_INSIDE)
- {
- continue;
- }
- if (WhereIs != INSIDE) WhereIs = Huelle.IsInsideXYList(X23, Y23);
- if (WhereIs == NOT_INSIDE)
- {
- continue;
- }
- if (WhereIs != INSIDE) WhereIs = Huelle.IsInsideXYList(X31, Y31);
- if (WhereIs == NOT_INSIDE)
- {
- continue;
- }
-
- TElement *Element = new TElement(Node1, Node2, Node3);
- ElementList->Add(Element);
- }
+ TNode *Node3 = NodeList->FindByXY(X3, Y3);
+ if (0 == Node3)
+ {
+ Node3 = new TNode(Nr3, X3, Y3, Z3);
+ NodeList->AddWithQuadTree(Node3);
}
-// fclose(fhtedg);
- fclose(fhtnod);
+ TElement *Element = new TElement(Node1, Node2, Node3);
+ ElementList->Add(Element);
+ }
- write_fortschritt("%d Werte geladen, %d von %d Elementen im Speicher\n", AnzWerte, ElementList->size(), AnzElements);
+// fclose(fhtedg);
+ fclose(fhtnxy);
+ fclose(fhtnz);
+ fclose(fhtnod);
- write_fortschritt("<-Laden der Elemente beendet\n");
- }
- catch(...)
- {
- if (fhtnxy) fclose(fhtnxy);
- if (fhtnz) fclose(fhtnz);
- if (fhtnod) fclose(fhtnod);
+ write_fortschritt("%d von %d Elementen im Speicher\n", ElementList->size(), AnzElements);
- write_error(2299, "Es hat einen nicht näher bestimmten Eingabefehler gegeben.\nDer Datenträger könnte beschädigt sein\n");
- }
+ write_fortschritt("<-Laden der Elemente beendet\n");
write_fortschritt("<-Laden des DGM in Datei '%s' als TIN beendet\n", FileName.c_str());
@@ -1117,13 +1044,64 @@
write_fortschritt("%d Elemente und %d Knoten geladen\n", ElementList->size(), NodeList->size());
write_fortschritt("%d Knoten insgesamt\n", AnzKnoten);
+ if (XyList)
+ {
+ write_fortschritt("->Löschen aussenliegender Kanten gestartet\n");
+
+ int Count = 0;
+ for (TElementList::iterator i=ElementList->begin(); i != ElementList->end(); i++)
+ {
+ TElement *Element = *i;
+
+ TNode* Node1 = Element->Node1;
+ TNode* Node2 = Element->Node2;
+ TNode* Node3 = Element->Node3;
+
+ long X12 = (Node1->X + Node2->X) / 2;
+ long Y12 = (Node1->Y + Node2->Y) / 2;
+
+ if (!XyList->IsInsideXYList(X12, Y12))
+ {
+ Element->Typ = NO_ELEMENT;
+ continue;
+ }
+
+ long X23 = (Node2->X + Node3->X) / 2;
+ long Y23 = (Node2->Y + Node3->Y) / 2;
+
+ if (!XyList->IsInsideXYList(X23, Y23))
+ {
+ Element->Typ = NO_ELEMENT;
+ continue;
+ }
+
+ long X31 = (Node3->X + Node1->X) / 2;
+ long Y31 = (Node3->Y + Node1->Y) / 2;
+
+ if (!XyList->IsInsideXYList(X31, Y31))
+ {
+ Element->Typ = NO_ELEMENT;
+ continue;
+ }
+
+ Count++;
+
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 5000 == 0) || (Count % 50000 == 0))
+ {
+ write_fortschritt("%d von %d Elementen überprüft\n", Count, ElementList->size());
+ }
+ }
+
+ write_fortschritt("<-Löschen aussenliegender Kanten beendet\n");
+ }
+
write_fortschritt("<-Laden des DGM in Datei '%s' als 2DM beendet\n", FileName.c_str());
return (true);
}
//---------------------------------------------------------------------
-bool LoadProfile(std::string FileName, TProfilList* ProfilList, double VonKmD, double BisKmD, int DebugLevel)
+bool LoadProfile(std::string FileName, TProfilList* ProfilList, TGewaesserAchseList* GewaesserAchseList, double VonKmD, double BisKmD, int DebugLevel)
{
write_fortschritt("->Laden der Profilspuren gestartet\n");
@@ -1334,95 +1312,216 @@
write_fortschritt("->Ausrichten der Profilspuren gestartet\n");
- TProfil* VorProfil = 0;
- TProfil* NachProfil = 0;
- Count = 0;
- int SwitchCount = 0;
- TProfilList::iterator i = ProfilList->begin();
- while (i != ProfilList->end())
+ if (0 == GewaesserAchseList)
{
- Count++;
-
- if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10 == 0) || (Count > 0 && Count % 100 == 0))
+ TProfil* VorProfil = 0;
+ TProfil* NachProfil = 0;
+ Count = 0;
+ int SwitchCount = 0;
+ TProfilList::iterator i = ProfilList->begin();
+ while (i != ProfilList->end())
{
- write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
- }
+ Count++;
- VorProfil = NachProfil;
- NachProfil = *i;
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10 == 0) || (Count > 0 && Count % 100 == 0))
+ {
+ write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
+ }
- if (VorProfil == 0)
- {
- i++;
- continue;
- }
+ VorProfil = NachProfil;
+ NachProfil = *i;
- TPoint* VorAnfang = *VorProfil->PointList->begin();
- TPoint* VorEnde = *VorProfil->PointList->rbegin();
+ if (VorProfil == 0)
+ {
+ i++;
+ continue;
+ }
- TPoint* NachAnfang = *NachProfil->PointList->begin();
- TPoint* NachEnde = *NachProfil->PointList->rbegin();
+ TPoint* VorAnfang = *VorProfil->PointList->begin();
+ TPoint* VorEnde = *VorProfil->PointList->rbegin();
- 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;
+ TPoint* NachAnfang = *NachProfil->PointList->begin();
+ TPoint* NachEnde = *NachProfil->PointList->rbegin();
- 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 / 100.0, VAy / 100.0, NAx / 100.0, NAy / 100.0);
- }
+ 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;
- 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 / 100.0, VEy / 100.0, NEx / 100.0, NEy / 100.0);
+ 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 / 100.0, VAy / 100.0, NAx / 100.0, NAy / 100.0);
+ }
+
+ 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 / 100.0, VEy / 100.0, NEx / 100.0, NEy / 100.0);
+ }
+
+ double X = 0.0;
+ double Y = 0.0;
+ if (Calc2Schnitt(VAx, VAy, NAx, NAy, VEx, VEy, NEx, NEy, &X, &Y))
+ {
+ // Hier ist ein echter Schnittpunkt gefunden
+ // Jetzt muss das NachProfil in seiner Reihenfolge vertauscht werden
+
+ SwitchCount++;
+
+ TProfil* ExChangeProfil = new TProfil(NachProfil->Station);
+ for (TPointList::reverse_iterator j = NachProfil->PointList->rbegin(); j != NachProfil->PointList->rend(); j++)
+ {
+ long X = (long)((*j)->X + 0.5);
+ long Y = (long)((*j)->Y + 0.5);
+
+ ExChangeProfil->AddPoint(X, Y);
+ }
+
+ TPointList* TempPointList = NachProfil->PointList;
+ NachProfil->PointList = ExChangeProfil->PointList;
+ ExChangeProfil->PointList = TempPointList;
+
+ delete ExChangeProfil;
+ }
+ i++;
}
-
- double X = 0.0;
- double Y = 0.0;
- if (Calc2Schnitt(VAx, VAy, NAx, NAy, VEx, VEy, NEx, NEy, &X, &Y))
+ write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
+ }
+ else
+ {
+ Count = 0;
+ int SwitchCount = 0;
+ TProfilList::iterator i = ProfilList->begin();
+ while (i != ProfilList->end())
{
- // Hier ist ein echter Schnittpunkt gefunden
- // Jetzt muss das NachProfil in seiner Reihenfolge vertauscht werden
+ Count++;
- SwitchCount++;
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10 == 0) || (Count > 0 && Count % 100 == 0))
+ {
+ write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
+ }
- TProfil* ExChangeProfil = new TProfil(NachProfil->Station);
- for (TPointList::reverse_iterator j = NachProfil->PointList->rbegin(); j != NachProfil->PointList->rend(); j++)
+ TProfil* Profil = *i;
+
+ bool Found = false;
+ for (TGewaesserAchseList::iterator g=GewaesserAchseList->begin(); g != GewaesserAchseList->end(); g++)
{
- long X = (long)((*j)->X + 0.5);
- long Y = (long)((*j)->Y + 0.5);
+ TGewaesserAchse* GewaesserAchse = *g;
- ExChangeProfil->AddPoint(X, Y);
- }
+ if (Profil->MaxX < GewaesserAchse->MinX) continue;
+ if (Profil->MinX > GewaesserAchse->MaxX) continue;
+ if (Profil->MaxY < GewaesserAchse->MinY) continue;
+ if (Profil->MinY > GewaesserAchse->MaxY) continue;
- TPointList* TempPointList = NachProfil->PointList;
- NachProfil->PointList = ExChangeProfil->PointList;
- ExChangeProfil->PointList = TempPointList;
+ TPoint* P0 = 0;
+ TPoint* P1 = 0;
+ for (TPointList::iterator p = Profil->PointList->begin(); p != Profil->PointList->end(); p++)
+ {
+ P0 = P1;
+ P1 = *p;
- delete ExChangeProfil;
+ if (P0 == 0) continue;
+
+ 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;
+
+ 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 / 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
+
+ TPoint*S0 = 0;
+ TPoint*S1 = 0;
+ for (TPointList::iterator s = GewaesserAchse->PointList->begin(); s != GewaesserAchse->PointList->end(); s++)
+ {
+ S0 = S1;
+ S1 = *s;
+
+ if (S0 == 0) continue;
+
+ long S0x = S0->X;
+ long S0y = S0->Y;
+ long S1x = S1->X;
+ long S1y = S1->Y;
+
+ 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 / 100.0, S0y / 100.0, S1x / 100.0, S1y / 100.0);
+ }
+
+ double X, Y;
+ Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, &X, &Y);
+
+ if (Found)
+ {
+ // Hier ist ein echter Schnittpunkt gefunden
+ // Jetzt prüfen wo welcher Punkt liegt
+
+ if (CrossProduct(X, Y, P1x, P1y, S1x, S1y) < 0.0)
+ {
+ if (DebugLevel >= 9)
+ {
+ write_fortschritt("Profil '%.4f' wurde umgedreht\n", Profil->Station / 10000.0);
+ }
+
+ SwitchCount++;
+
+ TProfil* ExChangeProfil = new TProfil(Profil->Station);
+ for (TPointList::reverse_iterator j = Profil->PointList->rbegin(); j != Profil->PointList->rend(); j++)
+ {
+ long X = (long)((*j)->X + 0.5);
+ long Y = (long)((*j)->Y + 0.5);
+
+ ExChangeProfil->AddPoint(X, Y);
+ }
+
+ TPointList* TempPointList = Profil->PointList;
+ Profil->PointList = ExChangeProfil->PointList;
+ ExChangeProfil->PointList = TempPointList;
+
+ delete ExChangeProfil;
+ }
+ break; // Schnittpunkt gefunden
+ }
+ } // Ende der Iteration über die Punkte der Achse
+ if (Found) break;
+ } // Ende der Iteration über die Punkte eins Profils
+ if (Found) break;
+ } // Ende der Iteration über die Achsen
+ i++;
}
- i++;
+ write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
}
- write_fortschritt("%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
write_fortschritt("<-Ausrichten der Profilspuren beendet\n");
write_fortschritt("->Überprüfung der Profilspuren gestartet\n");
- VorProfil = 0;
- NachProfil = 0;
+ TProfil* VorProfil = 0;
+ TProfil* NachProfil = 0;
Count = 0;
- i = ProfilList->begin();
+ TProfilList::iterator i = ProfilList->begin();
while (i != ProfilList->end())
{
Count++;
@@ -2353,6 +2452,156 @@
write_fortschritt("<-Laden der Gewässerachsen beendet\n");
+ write_fortschritt("->Zusammenführen von Achsensegmenten gestart\n");
+
+ TGewaesserAchseList::iterator FirstAchseIter = GewaesserAchseList->begin();
+ int FirstCount = 0;
+ TGewaesserAchseList::iterator TestAchseIter = FirstAchseIter;
+ int TestCount = FirstCount;
+ Count = 0;
+ while (FirstAchseIter != GewaesserAchseList->end())
+ {
+ Count++;
+
+ TestAchseIter++;
+ TestCount++;
+
+ if (TestAchseIter == GewaesserAchseList->end())
+ {
+ FirstAchseIter++;
+ FirstCount++;
+ TestAchseIter = FirstAchseIter;
+ TestCount = FirstCount;
+ continue;
+ }
+
+ TGewaesserAchse* FirstAchse = *FirstAchseIter;
+ TGewaesserAchse* TestAchse = *TestAchseIter;
+
+ if (DebugLevel >= 9 || (DebugLevel >= 8 && Count % 10 == 0) || Count % 100 == 0)
+ {
+ write_fortschritt("Teste Segment %d (%d) von %d Segmenten mit %d (%d)\n", FirstCount, FirstAchse->PointList->size(), GewaesserAchseList->size(), TestCount, TestAchse->PointList->size());
+ }
+
+ // Point First von FirstAchse (PfFirst) und Point Last von Firstachse(PlFirst)
+ TPoint* PfFirst = *(FirstAchse->PointList->begin());
+ TPoint*PlFirst = *(FirstAchse->PointList->rbegin());
+
+ TPoint*PfTest = *(TestAchse->PointList->begin());
+ TPoint*PlTest = *(TestAchse->PointList->rbegin());
+
+ TXYList* NewXyList = 0;
+
+ double ffDx = PfFirst->X - PfTest->X;
+ double ffDy = PfFirst->Y - PfTest->Y;
+ double flDx = PfFirst->X - PlTest->X;
+ double flDy = PfFirst->Y - PlTest->Y;
+ double llDx = PlFirst->X - PlTest->X;
+ double llDy = PlFirst->Y - PlTest->Y;
+ double lfDx = PlFirst->X - PfTest->X;
+ double lfDy = PlFirst->Y - PfTest->Y;
+
+ if (ffDx * ffDx + ffDy * ffDy < 4)
+ {
+ NewXyList = new TXYList();
+
+ for (TPointList::reverse_iterator i = TestAchse->PointList->rbegin(); i != TestAchse->PointList->rend(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ for (TPointList::iterator i = FirstAchse->PointList->begin(); i != FirstAchse->PointList->end(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ }
+ else if (flDx * flDx + flDy * flDy < 4)
+ {
+ NewXyList = new TXYList();
+
+ for (TPointList::iterator i = TestAchse->PointList->begin(); i != TestAchse->PointList->end(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ for (TPointList::iterator i = FirstAchse->PointList->begin(); i != FirstAchse->PointList->end(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ }
+ else if (llDx * llDx + llDy * llDy < 4)
+ {
+ NewXyList = new TXYList();
+
+ for (TPointList::iterator i = TestAchse->PointList->begin(); i != TestAchse->PointList->end(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ for (TPointList::reverse_iterator i = FirstAchse->PointList->rbegin(); i != FirstAchse->PointList->rend(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ }
+ else if (lfDx * lfDx + lfDy * lfDy < 4)
+ {
+ NewXyList = new TXYList();
+
+ for (TPointList::reverse_iterator i = TestAchse->PointList->rbegin(); i != TestAchse->PointList->rend(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ for (TPointList::reverse_iterator i = FirstAchse->PointList->rbegin(); i != FirstAchse->PointList->rend(); i++)
+ {
+ TPoint* Point = *i;
+ NewXyList->Add(Point->X, Point->Y);
+ }
+ }
+
+ if (NewXyList)
+ {
+ if (DebugLevel >= 9) write_fortschritt("Segment %d und %d werden verbunden\n", FirstCount, TestCount);
+
+ // Alte Punkte löschen
+ for (TPointList::iterator i=FirstAchse->PointList->begin(); i != FirstAchse->PointList->end(); i++)
+ {
+ TPoint *Point = *i;
+
+ delete Point;
+ Point = 0;
+ }
+ delete FirstAchse->PointList;
+ FirstAchse->PointList = 0;
+
+ if (DebugLevel >= 9) write_fortschritt("Neue XYList (%d)\n", NewXyList->size());
+
+ // Neue Punkte hinzufügen
+ for (TXYList::iterator i = NewXyList->begin(); i != NewXyList->end(); i++)
+ {
+ TXY* Xy = *i;
+ FirstAchse->AddPoint(Xy->X, Xy->Y);
+ }
+
+ if (DebugLevel >= 9) write_fortschritt("Neue Anzahl (%d)\n", FirstAchse->PointList->size());
+
+ GewaesserAchseList->erase(TestAchseIter);
+ delete TestAchse;
+
+ FirstAchseIter = GewaesserAchseList->begin();
+ FirstCount = 0;
+ TestAchseIter = FirstAchseIter;
+ TestCount = FirstCount;
+
+ delete NewXyList;
+ }
+ }
+
+ write_fortschritt("<-Zusammenführen von Achsensegmenten beendet\n");
+
return (true);
}
@@ -2982,8 +3231,8 @@
if (PartSize > OldPartSize)
{
OldPartSize = PartSize * 2;
- ps = (int *)SfRealloc(ps, OldPartSize);
- pt = (int *)SfRealloc(pt, OldPartSize);
+ ps = SfIntRealloc(ps, OldPartSize);
+ pt = SfIntRealloc(pt, OldPartSize);
}
// Alle Punkte und der erste nochmal am Ende
@@ -2992,8 +3241,8 @@
{
OldPointSize = PointSize * 2;
- x = (double *)SfRealloc(x, OldPointSize);
- y = (double *)SfRealloc(y, OldPointSize);
+ x = SfDoubleRealloc(x, OldPointSize);
+ y = SfDoubleRealloc(y, OldPointSize);
}
ps[AnzPolyParts-1] = AnzPolyPoints;
@@ -3032,14 +3281,14 @@
{
DBFWriteDoubleAttribute(DBFHandle, Count, 0, AktDiff / 100.0);
- SHPObject *psShape = (SHPObject *) SfCalloc(1, sizeof(SHPObject));
+ SHPObject *psShape = SfSHPObjectRealloc(0, 1);
CreatePolygon(psShape, AnzPolyParts, ps, pt, AnzPolyPoints, x, y);
SHPRewindObject(SHPHandle, psShape);
SHPWritePolygon(SHPHandle, psShape);
- free (psShape);
+ SfSHPObjectFree (psShape);
Count++;
}
@@ -3058,10 +3307,10 @@
i = PolygonList->begin();
}
- free(ps);
- free(pt);
- free(x);
- free(y);
+ SfIntFree(ps);
+ SfIntFree(pt);
+ SfDoubleFree(x);
+ SfDoubleFree(y);
DBFClose(DBFHandle);
SHPClose(SHPHandle);
Modified: trunk/src/file.h
===================================================================
--- trunk/src/file.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/file.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -33,7 +33,7 @@
bool LoadDGMSHP(std::string FileName, TNodeList *NodeList, TXYList *XyList, int DebugLevel);
bool LoadDGM2DM(std::string FileName, TNodeList *NodeList, TElementList *ElementList, TXYList *XyList, int DebugLevel);
-bool LoadProfile(std::string FileName, TProfilList* ProfilList, double VonKm, double BisKm, int DebugLevel);
+bool LoadProfile(std::string FileName, TProfilList* ProfilList, TGewaesserAchseList* GewaesserAchseList, double VonKmD, double BisKmD, int DebugLevel);
bool LoadLinien(std::string FileName, TProfilList* SperrenList, TProfilList* GrabenList, TProfilList* Rohre1List, TProfilList* Rohre2List, int DebugLevel);
bool LoadWsp(std::string FileName, TProfilList* ProfilList, std::string Tag, int DebugLevel);
Modified: trunk/src/parameter.cpp
===================================================================
--- trunk/src/parameter.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/parameter.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -65,6 +65,9 @@
VonKm = -9999.9;
BisKm = +9999.9;
+ IsSetDist = false;
+ ProfilDistance = 999999;
+
IsSetSaveTri = false;
IsSetSave2DM = false;
IsSetSaveSol = false;
@@ -72,8 +75,6 @@
IsSetAusgabe = false;
FileNameAusgabe = "WSPLGEN.SHP";
- IsSetAutoRenumber = false;
-
if (argc == 0 || argv == 0)
{
write_error(1201, "Es wurden keine Parameter übergeben.\nWenigstens die Parameter -DGM=<DGM-Datei>, -PRO=<Profil-Datei> und -WSP=<Wasserstands-Datei>\nmüssen angegeben werden.\n");
@@ -212,11 +213,40 @@
IsSetStrecke = true;
- if (IsSetVonKm && IsSetBisKm) write_fortschritt("Strecke: Von = %.2f Bis = %.2f\n", VonKm, BisKm);
- else if (IsSetVonKm) write_fortschritt("Strecke: Von = %.2f Bis = <default>\n", VonKm);
- else if (IsSetBisKm) write_fortschritt("Strecke: Von = <default> Bis = %.2f\n", BisKm);
- else write_fortschritt("Strecke: Von = <default> Bis = <default>\n");
+ if (IsSetVonKm && IsSetBisKm) write_fortschritt("Strecke: Von = %.3f km, Bis = %.3f km\n", VonKm, BisKm);
+ else if (IsSetVonKm) write_fortschritt("Strecke: Von = %.3f km, Bis = <default>\n", VonKm);
+ else if (IsSetBisKm) write_fortschritt("Strecke: Von = <default>, Bis = %.3f km\n", BisKm);
+ else write_fortschritt("Strecke: Von = <default>, Bis = <default>\n");
}
+ else if (Parameter.substr(0, 5) == "-DIST" || Parameter.substr(0, 5) == "-dist")
+ {
+ ///////////////////////////////////////////////
+ // DIST
+ ///////////////////////////////////////////////
+ if (IsSetDebug) write_fortschritt("Parameter -DIST erkannt.\n");
+
+ if (IsSetDist)
+ {
+ write_warning(1106, "Der Parameter -DIST wurde mehrfach angegeben.\n");
+ continue;
+ }
+
+ if (Parameter.substr(5, 1) != "=")
+ {
+ write_warning(1226, "Es wurden keine Argumente für -DIST übergeben.\nDas Format lautet korrekt -DIST=<Abstand>.\n");
+ }
+
+ double D = 0.0;
+ if (1 != sscanf(Parameter.substr(6).c_str(), "%lf", &D))
+ {
+ write_error(8888, "Das Argumente für -DIST konnte nicht verarbeitet werden.\nDas Format lautet korrekt -DIST=<Abstand>.\n");
+ }
+
+ IsSetDist = true;
+ ProfilDistance = D * 10000 * 100; // Umrechnung von km in Meter und weiter in cm
+
+ write_fortschritt("Gewünschter Abstand der Profile: %.3f km\n", D);
+ }
else if (Parameter.substr(0, 8) == "-SAVETRI" || Parameter.substr(0, 8) == "-savetri")
{
///////////////////////////////////////////////
@@ -552,23 +582,6 @@
continue;
}
- else if (Parameter.substr(0, 13) == "-AUTORENUMBER" || Parameter.substr(0, 13) == "-autorenumber")
- {
- ///////////////////////////////////////////////
- // AUTORENUMBER
- ///////////////////////////////////////////////
- if (IsSetDebug) write_fortschritt("Parameter -AUTORENUMBER erkannt.\n");
-
- if (IsSetAutoRenumber)
- {
- write_warning(1106, "Der Parameter -AUTORENUMBER wurde mehrfach angegeben.\n");
- continue;
- }
-
- IsSetAutoRenumber = true;
-
- write_fortschritt("Stationierung der Profile wird an die Spur angepasst\n");
- }
else if (Parameter.substr(0, 8) == "-AUSGABE" || Parameter.substr(0, 8) == "-ausgabe")
{
if (IsSetDebug) write_fortschritt("Parameter -AUSGABE erkannt.\n");
@@ -680,12 +693,6 @@
write_warning(1123, "Parameter -ACHSE wird ignoriert, da der Parameter -GEL den Wert NOSPERRE hat\n");
}
- if (false == IsSetAchse && true == IsSetAutoRenumber)
- {
- write_warning(1125, "Parameter -AUTORENUMBER wird ignoriert, da keine Gewässerachse angegeben wurde\n");
- IsSetAutoRenumber = false;
- }
-
write_fortschritt("<-Auswertung der Kommandozeilen-Parameter beendet\n");
}
Modified: trunk/src/parameter.h
===================================================================
--- trunk/src/parameter.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/parameter.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -38,6 +38,9 @@
bool IsSetDiff;
int Diff;
+ bool IsSetDist;
+ double ProfilDistance;
+
bool IsSetGel;
bool Sperre;
@@ -74,8 +77,6 @@
bool IsSetAusgabe;
std::string FileNameAusgabe;
-
- bool IsSetAutoRenumber;
};
//---------------------------------------------------------------------------
Modified: trunk/src/shape.cpp
===================================================================
--- trunk/src/shape.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/shape.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -68,11 +68,6 @@
#include "tools.h"
-
-typedef unsigned char uchar;
-
-typedef int int32;
-
#define ByteCopy(a, b, c) memcpy(b, a, c)
#define TRUE 1
#define FALSE 0
@@ -131,7 +126,7 @@
if( bBigEndian ) Swap8Bytes(abyHeader+52);
dValue = psSHP->adBoundsMax[1];
- ByteCopy( &dValue, abyHeader+60, 8);
+ ByteCopy( &dValue, abyHeader+60, 8);
if( bBigEndian ) Swap8Bytes(abyHeader+60);
dValue = psSHP->adBoundsMin[2]; /* z */
@@ -169,7 +164,7 @@
/* -------------------------------------------------------------------- */
/* Write out the .shx contents. */
/* -------------------------------------------------------------------- */
- panSHX = (int32 *)SfMalloc(sizeof(int32) * 2 * psSHP->nRecords);
+ panSHX = SfIntRealloc(0, 2 * psSHP->nRecords);
for (int i = 0; i < psSHP->nRecords; i++)
{
@@ -181,7 +176,7 @@
fwrite(panSHX, sizeof(int32) * 2, psSHP->nRecords, fpSHX);
- free (panSHX);
+ SfIntFree (panSHX);
}
/************************************************************************/
@@ -193,8 +188,8 @@
SHPHandle SHPAPI_CALL SHPOpen(const char * pszLayer, const char * pszAccess)
{
- char *pszFullname, *pszBasename;
- SHPHandle psSHP;
+ char *pszFullname, *pszBasename;
+ SHPHandle psSHP;
uchar *pabyBuf;
double dValue;
@@ -217,7 +212,7 @@
/* -------------------------------------------------------------------- */
/* Initialize the info structure. */
/* -------------------------------------------------------------------- */
- psSHP = (SHPHandle)SfCalloc(sizeof(SHPInfo), 1);
+ psSHP = SfSHPInfoRealloc(0, 1);
psSHP->bUpdated = FALSE;
@@ -225,7 +220,7 @@
/* Compute the base (layer) name. If there is any extension */
/* on the passed in filename we will strip it off. */
/* -------------------------------------------------------------------- */
- pszBasename = (char *) SfMalloc(strlen(pszLayer)+5);
+ pszBasename = (char*)SfByteRealloc(0, strlen(pszLayer)+5);
strcpy( pszBasename, pszLayer );
int i = strlen(pszBasename)-1;
while(i > 0 && pszBasename[i] != '.' && pszBasename[i] != '/' && pszBasename[i] != '\\')
@@ -239,7 +234,7 @@
/* Open the .shp and .shx files. Note that files pulled from */
/* a PC to Unix with upper case filenames won't work! */
/* -------------------------------------------------------------------- */
- pszFullname = (char *) SfMalloc(strlen(pszBasename) + 5);
+ pszFullname = (char*)SfByteRealloc(0, strlen(pszBasename) + 5);
sprintf( pszFullname, "%s.shp", pszBasename );
fpSHP = fopen(pszFullname, pszAccess );
if( fpSHP == NULL )
@@ -250,9 +245,9 @@
if( fpSHP == NULL )
{
- free(psSHP);
- free(pszBasename);
- free(pszFullname);
+ SfSHPInfoFree(psSHP);
+ SfByteFree((uchar*)pszBasename);
+ SfByteFree((uchar*)pszFullname);
return( NULL );
}
@@ -268,19 +263,19 @@
{
fclose(fpSHP);
fpSHP = 0;
- free(psSHP);
- free(pszBasename);
- free(pszFullname);
+ SfSHPInfoFree(psSHP);
+ SfByteFree((uchar*)pszBasename);
+ SfByteFree((uchar*)pszFullname);
return(NULL);
}
- free(pszFullname);
- free(pszBasename);
+ SfByteFree((uchar*)pszFullname);
+ SfByteFree((uchar*)pszBasename);
/* -------------------------------------------------------------------- */
/* Read the file size from the SHP file. */
/* -------------------------------------------------------------------- */
- pabyBuf = (uchar *) SfMalloc(100);
+ pabyBuf = SfByteRealloc(0, 100);
fread(pabyBuf, 100, 1, fpSHP);
@@ -297,7 +292,7 @@
fpSHP = 0;
fclose(fpSHX);
fpSHX = 0;
- free(psSHP);
+ SfSHPInfoFree(psSHP);
return(NULL);
}
@@ -306,14 +301,14 @@
psSHP->nShapeType = pabyBuf[32];
- if( psSHP->nRecords < 0 || psSHP->nRecords > 256000000 )
+ if( psSHP->nRecords < 0 || psSHP->nRecords > 256000000 )
{
/* this header appears to be corrupt. Give up. */
fclose(fpSHP);
fpSHP = 0;
fclose(fpSHX);
fpSHX = 0;
- free(psSHP);
+ SfSHPInfoFree(psSHP);
return(NULL);
}
@@ -352,7 +347,7 @@
memcpy( &dValue, pabyBuf+92, 8 );
psSHP->adBoundsMax[3] = dValue;
- free( pabyBuf );
+ SfByteFree (pabyBuf);
/* -------------------------------------------------------------------- */
/* Read the .shx file to get the offsets to each record in */
@@ -362,11 +357,11 @@
if (psSHP->nMaxRecords > 0)
{
- psSHP->panRecOffset = (int *) SfMalloc(sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *) SfMalloc(sizeof(int) * psSHP->nMaxRecords);
- pabyBuf = (uchar *) SfMalloc(8 * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(0, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(0, psSHP->nMaxRecords);
+ pabyBuf = SfByteRealloc(0, 8 * psSHP->nMaxRecords);
- fread( pabyBuf, 8, psSHP->nRecords, fpSHX );
+ fread (pabyBuf, 8, psSHP->nRecords, fpSHX);
for(int i = 0; i < psSHP->nRecords; i++ )
{
@@ -382,7 +377,7 @@
psSHP->panRecSize[i] = nLength*2;
}
- free( pabyBuf );
+ SfByteFree (pabyBuf);
}
return( psSHP );
@@ -413,15 +408,15 @@
fclose (fpSHP);
fpSHP = 0;
- free (psSHP->panRecOffset);
- free (psSHP->panRecSize);
+ SfIntFree (psSHP->panRecOffset);
+ SfIntFree (psSHP->panRecSize);
- if (psSHP->pabyRec != NULL)
- {
- free (psSHP->pabyRec);
- }
+ if (psSHP->pabyRec != NULL)
+ {
+ SfByteFree (psSHP->pabyRec);
+ }
- free (psSHP);
+ SfSHPInfoFree (psSHP);
}
/************************************************************************/
@@ -489,7 +484,7 @@
/* Compute the base (layer) name. If there is any extension */
/* on the passed in filename we will strip it off. */
/* -------------------------------------------------------------------- */
- pszBasename = (char *) SfMalloc(strlen(pszLayer)+5);
+ pszBasename = (char*)SfByteRealloc(0, strlen(pszLayer)+5);
strcpy (pszBasename, pszLayer);
int i = strlen(pszBasename) - 1;
while(i > 0 && pszBasename[i] != '.' && pszBasename[i] != '/' && pszBasename[i] != '\\')
@@ -502,7 +497,7 @@
/* -------------------------------------------------------------------- */
/* Open the two files so we can write their headers. */
/* -------------------------------------------------------------------- */
- pszFullname = (char *) SfMalloc(strlen(pszBasename) + 5);
+ pszFullname = (char*)SfByteRealloc(0, strlen(pszBasename) + 5);
sprintf( pszFullname, "%s.shp", pszBasename );
fpSHP = fopen(pszFullname, "wb" );
if(fpSHP == NULL) return(NULL);
@@ -511,8 +506,8 @@
fpSHX = fopen(pszFullname, "wb" );
if(fpSHX == NULL) return(NULL);
- free(pszFullname);
- free(pszBasename);
+ SfByteFree((uchar*)pszFullname);
+ SfByteFree((uchar*)pszBasename);
/* -------------------------------------------------------------------- */
/* Prepare header block for .shp file. */
@@ -633,7 +628,7 @@
SHPObject *psObject;
int i, bHasM, bHasZ;
- psObject = (SHPObject *) SfCalloc(1, sizeof(SHPObject));
+ psObject = SfSHPObjectRealloc(0, 1);
psObject->nSHPType = nSHPType;
psObject->nShapeId = nShapeId;
@@ -665,8 +660,8 @@
if (nParts > 1) psObject->nParts = nParts;
else psObject->nParts = 1;
- psObject->panPartStart = (int *)SfMalloc(sizeof(int) * psObject->nParts);
- psObject->panPartType = (int *)SfMalloc(sizeof(int) * psObject->nParts);
+ psObject->panPartStart = SfIntRealloc(0, psObject->nParts);
+ psObject->panPartType = SfIntRealloc(0, psObject->nParts);
psObject->panPartStart[0] = 0;
psObject->panPartType[0] = SHPP_RING;
@@ -684,10 +679,10 @@
/* -------------------------------------------------------------------- */
if (nVertices > 0)
{
- psObject->padfX = (double *) SfCalloc(sizeof(double), nVertices);
- psObject->padfY = (double *) SfCalloc(sizeof(double), nVertices);
- psObject->padfZ = (double *) SfCalloc(sizeof(double), nVertices);
- psObject->padfM = (double *) SfCalloc(sizeof(double), nVertices);
+ psObject->padfX = SfDoubleRealloc(0, nVertices);
+ psObject->padfY = SfDoubleRealloc(0, nVertices);
+ psObject->padfZ = SfDoubleRealloc(0, nVertices);
+ psObject->padfM = SfDoubleRealloc(0, nVertices);
for (int i = 0; i < nVertices; i++)
{
@@ -728,8 +723,8 @@
if (nNewMaxRecords > psSHP->nMaxRecords)
{
psSHP->nMaxRecords = nNewMaxRecords;
- psSHP->panRecOffset = (int *)SfRealloc(psSHP->panRecOffset, sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *)SfRealloc(psSHP->panRecSize, sizeof(int) * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(psSHP->panRecOffset, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(psSHP->panRecSize, psSHP->nMaxRecords);
}
}
@@ -759,8 +754,8 @@
if (psSHP->nRecords + 1 > psSHP->nMaxRecords)
{
psSHP->nMaxRecords =(int)(psSHP->nMaxRecords * 1.3 + 100);
- psSHP->panRecOffset = (int *)SfRealloc(psSHP->panRecOffset, sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *)SfRealloc(psSHP->panRecSize, sizeof(int) * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(psSHP->panRecOffset, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(psSHP->panRecSize, psSHP->nMaxRecords);
}
nRecordSize = 28;
@@ -852,8 +847,8 @@
if (psSHP->nRecords + 1 > psSHP->nMaxRecords)
{
psSHP->nMaxRecords =(int)(psSHP->nMaxRecords * 1.3 + 100);
- psSHP->panRecOffset = (int *)SfRealloc(psSHP->panRecOffset, sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *)SfRealloc(psSHP->panRecSize, sizeof(int) * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(psSHP->panRecOffset, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(psSHP->panRecSize, psSHP->nMaxRecords);
}
/* -------------------------------------------------------------------- */
@@ -1017,14 +1012,14 @@
if (nShapeId == -1 && psSHP->nRecords + 1 > psSHP->nMaxRecords)
{
psSHP->nMaxRecords =(int)(psSHP->nMaxRecords * 1.3 + 100);
- psSHP->panRecOffset = (int *)SfRealloc(psSHP->panRecOffset, sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *)SfRealloc(psSHP->panRecSize, sizeof(int) * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(psSHP->panRecOffset, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(psSHP->panRecSize, psSHP->nMaxRecords);
}
/* -------------------------------------------------------------------- */
/* Initialize record. */
/* -------------------------------------------------------------------- */
- uchar* pabyRec = (uchar *)SfMalloc(psObject->nVertices * 4 * sizeof(double) + psObject->nParts * 8 + 128);
+ uchar* pabyRec = SfByteRealloc(0, psObject->nVertices * 4 * sizeof(double) + psObject->nParts * 8 + 128);
/* -------------------------------------------------------------------- */
/* Extract vertices for a Polygon or Arc. */
@@ -1098,12 +1093,12 @@
/* -------------------------------------------------------------------- */
if( fseek(fpSHP, nRecordOffset, 0) != 0 || fwrite(pabyRec, nRecordSize, 1, fpSHP) < 1 )
{
- free(pabyRec);
+ SfByteFree(pabyRec);
dump_error(__FILE__, __LINE__, "Error in fseek() or fwrite().\n");
return (-1);
}
- free(pabyRec);
+ SfByteFree(pabyRec);
/* -------------------------------------------------------------------- */
/* Expand file wide bounds based on this shape. */
@@ -1164,14 +1159,14 @@
if (nShapeId == -1 && psSHP->nRecords + 1 > psSHP->nMaxRecords)
{
psSHP->nMaxRecords =(int)(psSHP->nMaxRecords * 1.3 + 100);
- psSHP->panRecOffset = (int *)SfRealloc(psSHP->panRecOffset, sizeof(int) * psSHP->nMaxRecords);
- psSHP->panRecSize = (int *)SfRealloc(psSHP->panRecSize, sizeof(int) * psSHP->nMaxRecords);
+ psSHP->panRecOffset = SfIntRealloc(psSHP->panRecOffset, psSHP->nMaxRecords);
+ psSHP->panRecSize = SfIntRealloc(psSHP->panRecSize, psSHP->nMaxRecords);
}
/* -------------------------------------------------------------------- */
/* Initialize record. */
/* -------------------------------------------------------------------- */
- pabyRec = (uchar *)SfMalloc(psObject->nVertices * 4 * sizeof(double) + psObject->nParts * 8 + 128);
+ pabyRec = SfByteRealloc(0, psObject->nVertices * 4 * sizeof(double) + psObject->nParts * 8 + 128);
if(psObject->nSHPType == SHPT_POLYGON || psObject->nSHPType == SHPT_POLYGONZ || psObject->nSHPType == SHPT_POLYGONM || psObject->nSHPType == SHPT_ARC || psObject->nSHPType == SHPT_ARCZ || psObject->nSHPType == SHPT_ARCM || psObject->nSHPType == SHPT_MULTIPATCH)
{
@@ -1418,12 +1413,12 @@
/* -------------------------------------------------------------------- */
if( fseek(fpSHP, nRecordOffset, 0) != 0 || fwrite(pabyRec, nRecordSize, 1, fpSHP) < 1 )
{
- free(pabyRec);
+ SfByteFree(pabyRec);
dump_error(__FILE__, __LINE__, "Error in fseek() or fwrite().\n");
return (-1);
}
- free(pabyRec);
+ SfByteFree(pabyRec);
/* -------------------------------------------------------------------- */
/* Expand file wide bounds based on this shape. */
@@ -1466,16 +1461,15 @@
/* -------------------------------------------------------------------- */
/* Validate the record/entity number. */
/* -------------------------------------------------------------------- */
- if( hEntity < 0 || hEntity >= psSHP->nRecords )
- return( NULL );
+ if( hEntity < 0 || hEntity >= psSHP->nRecords ) return( NULL );
/* -------------------------------------------------------------------- */
/* Ensure our record buffer is large enough. */
/* -------------------------------------------------------------------- */
if( psSHP->panRecSize[hEntity]+8 > psSHP->nBufSize )
{
- psSHP->nBufSize = psSHP->panRecSize[hEntity]+8;
- psSHP->pabyRec = (uchar *) SfRealloc(psSHP->pabyRec,psSHP->nBufSize);
+ psSHP->nBufSize = psSHP->panRecSize[hEntity]+8;
+ psSHP->pabyRec = SfByteRealloc(psSHP->pabyRec, psSHP->nBufSize);
}
/* -------------------------------------------------------------------- */
@@ -1487,7 +1481,7 @@
/* -------------------------------------------------------------------- */
/* Allocate and minimally initialize the object. */
/* -------------------------------------------------------------------- */
- psShape = (SHPObject *) SfCalloc(1,sizeof(SHPObject));
+ psShape = SfSHPObjectRealloc(0, 1);
psShape->nShapeId = hEntity;
memcpy( &psShape->nSHPType, psSHP->pabyRec + 8, 4 );
@@ -1530,14 +1524,14 @@
if( bBigEndian ) Swap4Bytes(&nParts );
psShape->nVertices = nPoints;
- psShape->padfX = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfY = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfZ = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfM = (double *) SfCalloc(nPoints,sizeof(double));
+ psShape->padfX = SfDoubleRealloc(0, nPoints);
+ psShape->padfY = SfDoubleRealloc(0, nPoints);
+ psShape->padfZ = SfDoubleRealloc(0, nPoints);
+ psShape->padfM = SfDoubleRealloc(0, nPoints);
psShape->nParts = nParts;
- psShape->panPartStart = (int *) SfCalloc(nParts,sizeof(int));
- psShape->panPartType = (int *) SfCalloc(nParts,sizeof(int));
+ psShape->panPartStart = SfIntRealloc(0, nParts);
+ psShape->panPartType = SfIntRealloc(0, nParts);
for( i = 0; i < nParts; i++ ) psShape->panPartType[i] = SHPP_RING;
@@ -1646,10 +1640,10 @@
if( bBigEndian ) Swap4Bytes(&nPoints );
psShape->nVertices = nPoints;
- psShape->padfX = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfY = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfZ = (double *) SfCalloc(nPoints,sizeof(double));
- psShape->padfM = (double *) SfCalloc(nPoints,sizeof(double));
+ psShape->padfX = SfDoubleRealloc(0, nPoints);
+ psShape->padfY = SfDoubleRealloc(0, nPoints);
+ psShape->padfZ = SfDoubleRealloc(0, nPoints);
+ psShape->padfM = SfDoubleRealloc(0, nPoints);
for( i = 0; i < nPoints; i++ )
{
@@ -1729,10 +1723,10 @@
int nOffset;
psShape->nVertices = 1;
- psShape->padfX = (double *) SfCalloc(1,sizeof(double));
- psShape->padfY = (double *) SfCalloc(1,sizeof(double));
- psShape->padfZ = (double *) SfCalloc(1,sizeof(double));
- psShape->padfM = (double *) SfCalloc(1,sizeof(double));
+ psShape->padfX = SfDoubleRealloc(0, 1);
+ psShape->padfY = SfDoubleRealloc(0, 1);
+ psShape->padfZ = SfDoubleRealloc(0, 1);
+ psShape->padfM = SfDoubleRealloc(0, 1);
memcpy( psShape->padfX, psSHP->pabyRec + 12, 8 );
memcpy( psShape->padfY, psSHP->pabyRec + 20, 8 );
@@ -1878,15 +1872,15 @@
{
if( psShape == NULL ) return;
- if( psShape->padfX != NULL ) free( psShape->padfX );
- if( psShape->padfY != NULL ) free( psShape->padfY );
- if( psShape->padfZ != NULL ) free( psShape->padfZ );
- if( psShape->padfM != NULL ) free( psShape->padfM );
+ if( psShape->padfX != NULL ) SfDoubleFree( psShape->padfX );
+ if( psShape->padfY != NULL ) SfDoubleFree( psShape->padfY );
+ if( psShape->padfZ != NULL ) SfDoubleFree( psShape->padfZ );
+ if( psShape->padfM != NULL ) SfDoubleFree( psShape->padfM );
- if( psShape->panPartStart != NULL ) free( psShape->panPartStart );
- if( psShape->panPartType != NULL ) free( psShape->panPartType );
+ if( psShape->panPartStart != NULL ) SfIntFree( psShape->panPartStart );
+ if( psShape->panPartType != NULL ) SfIntFree( psShape->panPartType );
- free( psShape );
+ SfSHPObjectFree( psShape );
}
/************************************************************************/
@@ -2150,7 +2144,7 @@
/* Compute the base (layer) name. If there is any extension */
/* on the passed in filename we will strip it off. */
/* -------------------------------------------------------------------- */
- pszBasename = (char *) SfMalloc(strlen(pszFilename)+5);
+ pszBasename = (char *) SfByteRealloc(0, strlen(pszFilename)+5);
strcpy( pszBasename, pszFilename );
for( i = strlen(pszBasename)-1;
i > 0 && pszBasename[i] != '.' && pszBasename[i] != '/'
@@ -2160,10 +2154,10 @@
if( pszBasename[i] == '.' )
pszBasename[i] = '\0';
- pszFullname = (char *) SfMalloc(strlen(pszBasename) + 5);
+ pszFullname = (char *) SfByteRealloc(0, strlen(pszBasename) + 5);
sprintf( pszFullname, "%s.dbf", pszBasename );
- psDBF = (DBFHandle) SfCalloc( 1, sizeof(DBFInfo) );
+ psDBF = (DBFHandle) SfDBFInfoRealloc(0, 1);
psDBF->fp = fopen( pszFullname, pszAccess );
if( psDBF->fp == NULL )
@@ -2172,61 +2166,60 @@
psDBF->fp = fopen(pszFullname, pszAccess );
}
- free( pszBasename );
- free( pszFullname );
+ SfByteFree( (uchar*)pszBasename );
+ SfByteFree( (uchar*)pszFullname );
if( psDBF->fp == NULL )
{
- free( psDBF );
- return( NULL );
- }
+ SfDBFInfoFree( psDBF );
+ return( NULL );
+ }
- psDBF->bNoHeader = FALSE;
+ psDBF->bNoHeader = FALSE;
psDBF->nCurrentRecord = -1;
psDBF->bCurrentRecordModified = FALSE;
/* -------------------------------------------------------------------- */
/* Read Table Header info */
/* -------------------------------------------------------------------- */
- pabyBuf = (unsigned char *) SfMalloc(500);
+ pabyBuf = SfByteRealloc(0, 500);
if( fread( pabyBuf, 32, 1, psDBF->fp ) != 1 )
- {
+ {
fclose( psDBF->fp );
- free( pabyBuf );
- free( psDBF );
+ SfByteFree( pabyBuf );
+ SfDBFInfoFree( psDBF );
return NULL;
}
- psDBF->nRecords =
- pabyBuf[4] + pabyBuf[5]*256 + pabyBuf[6]*256*256 + pabyBuf[7]*256*256*256;
+ psDBF->nRecords = pabyBuf[4] + pabyBuf[5]*256 + pabyBuf[6]*256*256 + pabyBuf[7]*256*256*256;
psDBF->nHeaderLength = nHeadLen = pabyBuf[8] + pabyBuf[9]*256;
psDBF->nRecordLength = nRecLen = pabyBuf[10] + pabyBuf[11]*256;
psDBF->nFields = nFields = (nHeadLen - 32) / 32;
- psDBF->pszCurrentRecord = (char *) SfMalloc(nRecLen);
+ psDBF->pszCurrentRecord = (char *) SfByteRealloc(0, nRecLen);
/* -------------------------------------------------------------------- */
/* Read in Field Definitions */
/* -------------------------------------------------------------------- */
- pabyBuf = (unsigned char *) SfRealloc(pabyBuf,nHeadLen);
+ pabyBuf = SfByteRealloc(pabyBuf, nHeadLen);
psDBF->pszHeader = (char *) pabyBuf;
fseek( psDBF->fp, 32, 0 );
if( fread( pabyBuf, nHeadLen-32, 1, psDBF->fp ) != 1 )
{
fclose( psDBF->fp );
- free( pabyBuf );
- free( psDBF );
+ SfByteFree( pabyBuf );
+ SfDBFInfoFree( psDBF );
return NULL;
}
- psDBF->panFieldOffset = (int *) SfMalloc(sizeof(int) * nFields);
- psDBF->panFieldSize = (int *) SfMalloc(sizeof(int) * nFields);
- psDBF->panFieldDecimals = (int *) SfMalloc(sizeof(int) * nFields);
- psDBF->pachFieldType = (char *) SfMalloc(sizeof(char) * nFields);
+ psDBF->panFieldOffset = SfIntRealloc(0, nFields);
+ psDBF->panFieldSize = SfIntRealloc(0, nFields);
+ psDBF->panFieldDecimals = SfIntRealloc(0, nFields);
+ psDBF->pachFieldType = (char *)SfByteRealloc(0, nFields);
for( iField = 0; iField < nFields; iField++ )
{
@@ -2299,20 +2292,20 @@
if( psDBF->panFieldOffset != NULL )
{
- free( psDBF->panFieldOffset );
- free( psDBF->panFieldSize );
- free( psDBF->panFieldDecimals );
- free( psDBF->pachFieldType );
+ SfIntFree( psDBF->panFieldOffset );
+ SfIntFree( psDBF->panFieldSize );
+ SfIntFree( psDBF->panFieldDecimals );
+ SfByteFree( (uchar*)psDBF->pachFieldType );
}
- free( psDBF->pszHeader );
- free( psDBF->pszCurrentRecord );
+ SfByteFree( (uchar*)psDBF->pszHeader );
+ SfByteFree( (uchar*)psDBF->pszCurrentRecord );
- free( psDBF );
+ SfDBFInfoFree( psDBF );
if( pszStringField != NULL )
{
- free( pszStringField );
+ SfByteFree( (uchar*)pszStringField );
pszStringField = NULL;
nStringFieldLen = 0;
}
@@ -2334,15 +2327,15 @@
/* Compute the base (layer) name. If there is any extension */
/* on the passed in filename we will strip it off. */
/* -------------------------------------------------------------------- */
- pszBasename = (char *) SfMalloc(strlen(pszFilename)+5);
+ pszBasename = (char*)SfByteRealloc(0, strlen(pszFilename)+5);
strcpy( pszBasename, pszFilename );
for( i = strlen(pszBasename)-1; i > 0 && pszBasename[i] != '.' && pszBasename[i] != '/' && pszBasename[i] != '\\'; i-- ) {}
if( pszBasename[i] == '.' ) pszBasename[i] = '\0';
- pszFullname = (char *) SfMalloc(strlen(pszBasename) + 5);
+ pszFullname = (char *) SfByteRealloc(0, strlen(pszBasename) + 5);
sprintf( pszFullname, "%s.dbf", pszBasename );
- free( pszBasename );
+ SfByteFree( (uchar*)pszBasename );
/* -------------------------------------------------------------------- */
/* Create the file. */
@@ -2356,12 +2349,12 @@
fp = fopen(pszFullname, "rb+");
if (fp == NULL) return(NULL);
- free(pszFullname);
+ SfByteFree((uchar*)pszFullname);
/* -------------------------------------------------------------------- */
/* Create the info structure. */
/* -------------------------------------------------------------------- */
- psDBF = (DBFHandle) SfMalloc(sizeof(DBFInfo));
+ psDBF = SfDBFInfoRealloc(0, 1);
psDBF->fp = fp;
psDBF->nRecords = 0;
@@ -2413,10 +2406,10 @@
/* -------------------------------------------------------------------- */
psDBF->nFields++;
- psDBF->panFieldOffset = (int *)SfRealloc(psDBF->panFieldOffset, sizeof(int) * psDBF->nFields);
- psDBF->panFieldSize = (int *)SfRealloc(psDBF->panFieldSize, sizeof(int) * psDBF->nFields);
- psDBF->panFieldDecimals = (int *)SfRealloc(psDBF->panFieldDecimals, sizeof(int) * psDBF->nFields);
- psDBF->pachFieldType = (char *)SfRealloc(psDBF->pachFieldType, sizeof(char) * psDBF->nFields);
+ psDBF->panFieldOffset = SfIntRealloc(psDBF->panFieldOffset, psDBF->nFields);
+ psDBF->panFieldSize = SfIntRealloc(psDBF->panFieldSize, psDBF->nFields);
+ psDBF->panFieldDecimals = SfIntRealloc(psDBF->panFieldDecimals, psDBF->nFields);
+ psDBF->pachFieldType = (char *)SfByteRealloc((uchar*)psDBF->pachFieldType, psDBF->nFields);
/* -------------------------------------------------------------------- */
/* Assign the new field information fields. */
@@ -2436,7 +2429,7 @@
psDBF->nHeaderLength += 32;
psDBF->bUpdated = FALSE;
- psDBF->pszHeader = (char *)SfRealloc(psDBF->pszHeader,psDBF->nFields*32);
+ psDBF->pszHeader = (char *)SfByteRealloc((uchar*)psDBF->pszHeader,psDBF->nFields*32);
pszFInfo = psDBF->pszHeader + 32 * (psDBF->nFields-1);
@@ -2461,7 +2454,7 @@
/* -------------------------------------------------------------------- */
/* Make the current record buffer appropriately larger. */
/* -------------------------------------------------------------------- */
- psDBF->pszCurrentRecord = (char *) SfRealloc(psDBF->pszCurrentRecord, psDBF->nRecordLength);
+ psDBF->pszCurrentRecord = (char *) SfByteRealloc((uchar*)psDBF->pszCurrentRecord, psDBF->nRecordLength);
return( psDBF->nFields-1 );
}
@@ -2517,7 +2510,7 @@
if (psDBF->panFieldSize[iField]+1 > nStringFieldLen)
{
nStringFieldLen = psDBF->panFieldSize[iField]*2 + 10;
- pszStringField = (char *) SfRealloc(pszStringField,nStringFieldLen);
+ pszStringField = (char *) SfByteRealloc((uchar*)pszStringField,nStringFieldLen);
}
/* -------------------------------------------------------------------- */
@@ -3106,7 +3099,7 @@
if ( nTupleLen < psDBF->nRecordLength)
{
nTupleLen = psDBF->nRecordLength;
- pReturnTuple = (char *) SfRealloc(pReturnTuple, psDBF->nRecordLength);
+ pReturnTuple = (char *) SfByteRealloc((uchar*)pReturnTuple, psDBF->nRecordLength);
}
memcpy ( pReturnTuple, pabyRec, psDBF->nRecordLength );
@@ -3127,23 +3120,23 @@
newDBF = DBFCreate ( pszFilename );
if ( newDBF == NULL ) return ( NULL );
- newDBF->pszHeader = (char *) SfMalloc ( 32 * psDBF->nFields );
+ newDBF->pszHeader = (char *) SfByteRealloc (0, 32 * psDBF->nFields );
memcpy ( newDBF->pszHeader, psDBF->pszHeader, 32 * psDBF->nFields );
newDBF->nFields = psDBF->nFields;
newDBF->nRecordLength = psDBF->nRecordLength;
newDBF->nHeaderLength = 32 * (psDBF->nFields+1);
- newDBF->panFieldOffset = (int *) SfMalloc ( sizeof(int) * psDBF->nFields );
+ newDBF->panFieldOffset = SfIntRealloc (0, psDBF->nFields );
memcpy ( newDBF->panFieldOffset, psDBF->panFieldOffset, sizeof(int) * psDBF->nFields );
- newDBF->panFieldSize = (int *) SfMalloc ( sizeof(int) * psDBF->nFields );
+ newDBF->panFieldSize = SfIntRealloc (0, psDBF->nFields );
memcpy ( newDBF->panFieldSize, psDBF->panFieldSize, sizeof(int) * psDBF->nFields );
- newDBF->panFieldDecimals = (int *) SfMalloc ( sizeof(int) * psDBF->nFields );
+ newDBF->panFieldDecimals = SfIntRealloc (0, psDBF->nFields );
memcpy ( newDBF->panFieldDecimals, psDBF->panFieldDecimals, sizeof(int) * psDBF->nFields );
- newDBF->pachFieldType = (char *) SfMalloc ( sizeof(int) * psDBF->nFields );
+ newDBF->pachFieldType = (char *) SfByteRealloc (0, sizeof(int) * psDBF->nFields );
memcpy ( newDBF->pachFieldType, psDBF->pachFieldType, sizeof(int) * psDBF->nFields );
newDBF->bNoHeader = TRUE;
Modified: trunk/src/shape.h
===================================================================
--- trunk/src/shape.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/shape.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -98,7 +98,7 @@
int nBufSize;
} SHPInfo;
-typedef SHPInfo * SHPHandle;
+typedef SHPInfo* SHPHandle;
/* -------------------------------------------------------------------- */
/* Shape types (nSHPType) */
Modified: trunk/src/test_file.cpp
===================================================================
--- trunk/src/test_file.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/test_file.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -39,6 +39,7 @@
#define DGM2DMFILE "test_daten\\dgm.2dm"
#define PROFILFILE "test_daten\\profile.shp"
#define PROFILZFILE "test_daten\\profilez.shp"
+#define PROFILFILE2 "test_daten\\profile_dreh.shp"
#define LINIENFILE "test_daten\\linien.shp"
#define WSPFILE "test_daten\\wsp.txt"
#define WSPFILE2 "test_daten\\wsp.dbf"
@@ -63,6 +64,7 @@
#define DGM2DMFILE "test_daten/dgm.2dm"
#define PROFILFILE "test_daten/profile.shp"
#define PROFILZFILE "test_daten/profilez.shp"
+#define PROFILFILE2 "test_daten/profile_dreh.shp"
#define LINIENFILE "test_daten/linien.shp"
#define WSPFILE "test_daten/wsp.txt"
#define WSPFILE2 "test_daten/wsp.dbf"
@@ -128,53 +130,18 @@
SavePolygone(POLYGONFILE, PolygonList, 9);
- delete PolygonList;
- }
+ FILE* fh = fopen(POLYGONFILE, "r");
+ unsigned char V;
+ unsigned long CheckSum = 0;
+ while (1 == fread(&V, sizeof(V), 1, fh))
+ {
+ CheckSum = CheckSum + V;
+ }
+ fclose(fh);
- /////////////////////////////////////////////////
- // Test von Ergebnispolygon schreiben
- /////////////////////////////////////////////////
+ if (CheckSum != 10322) printf("Failed\n");
+ else printf("Pass\n");
- {
- printf ("Test Ergebnispolygon schreiben: ");
-
- TErgebnisPolygonList *PolygonList = new TErgebnisPolygonList;
-
- TErgebnisPolygon* EP1 = new TErgebnisPolygon(0);
- TXY *XY1 = new TXY(10000, 10000);
- EP1->Add(XY1);
- TXY *XY2 = new TXY(30000, 10000);
- EP1->Add(XY2);
- TXY *XY3 = new TXY(30000, 30000);
- EP1->Add(XY3);
- TXY *XY4 = new TXY(10000, 30000);
- EP1->Add(XY4);
- PolygonList->push_back(EP1);
-
- TErgebnisPolygon* EP2 = new TErgebnisPolygon(0);
- TXY *XY5 = new TXY(15000, 15000);
- EP2->Add(XY5);
- TXY *XY6 = new TXY(25000, 15000);
- EP2->Add(XY6);
- TXY *XY7 = new TXY(25000, 25000);
- EP2->Add(XY7);
- TXY *XY8 = new TXY(15000, 25000);
- EP2->Add(XY8);
- TXY *XY9 = new TXY(20000, 20000);
- EP2->Add(XY9);
- PolygonList->push_back(EP2);
-
- TErgebnisPolygon* EP3 = new TErgebnisPolygon(0);
- TXY *XY10 = new TXY(45000, 25000);
- EP3->Add(XY10);
- TXY *XY11 = new TXY(55000, 25000);
- EP3->Add(XY11);
- TXY *XY12 = new TXY(55000, 15000);
- EP3->Add(XY12);
- PolygonList->push_back(EP3);
-
- SavePolygone(POLYGONFILE, PolygonList, 8);
-
delete PolygonList;
}
@@ -249,9 +216,9 @@
LoadDGM(DGMTINFILE, NodeList, ElementList, XyList, 8);
- if (NodeList->size() != 52) printf("Failed\n");
- else if (ElementList->size() != 72) printf("Failed\n");
- else printf("Pass\n");
+ if (NodeList->size() != 71) printf("Failed\n");
+ else if (ElementList->size() != 110) printf("Failed\n");
+ else printf("Pass\n");
delete XyList;
delete NodeList;
@@ -476,7 +443,7 @@
TProfilList *ProfilList = new TProfilList();
- LoadProfile(PROFILFILE, ProfilList, -9999.9, 9999.9, 8);
+ LoadProfile(PROFILFILE, ProfilList, 0, -9999.9, 9999.9, 8);
if (ProfilList->size() != 8) printf("Failed\n");
else printf("Pass\n");
@@ -493,7 +460,7 @@
TProfilList *ProfilList = new TProfilList();
- LoadProfile(PROFILZFILE, ProfilList, -9999.9, 9999.9, 8);
+ LoadProfile(PROFILZFILE, ProfilList, 0, -9999.9, 9999.9, 8);
if (ProfilList->size() != 5) printf("Failed\n");
else printf("Pass\n");
@@ -502,6 +469,28 @@
}
////////////////////////////////////////
+ // Test von Profilspuren laden
+ ////////////////////////////////////////
+
+ {
+ printf ("Test Profilspuren laden mit ausrichten: ");
+
+ TGewaesserAchseList *AchsenList = new TGewaesserAchseList();
+
+ LoadAchse(ACHSEFILE, AchsenList, 8);
+
+ TProfilList *ProfilList = new TProfilList();
+
+ LoadProfile(PROFILFILE2, ProfilList, AchsenList, -9999.9, 9999.9, 9);
+
+ if (ProfilList->size() != 8) printf("Failed\n");
+ else printf("Pass\n");
+
+ delete ProfilList;
+ delete AchsenList;
+ }
+
+ ////////////////////////////////////////
// Test von Strukturen laden
////////////////////////////////////////
Modified: trunk/src/test_tools.cpp
===================================================================
--- trunk/src/test_tools.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/test_tools.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -17,8 +17,18 @@
//----------------------------------------------------------------------------
#ifdef __BORLANDC__
#define DGMXYZFILE "test_daten\\test_buildedgelist.xyz"
+#define DGM2DMFILE "test_daten\\dgm2.2dm"
+#define PROFILFILE "test_daten\\profile2.shp"
+#define ACHSEFILE "test_daten\\achse2.shp"
+#define WSPFILE "test_daten\\profile2.dbf"
+#define LINIENFILE "test_daten\\linien2.shp"
#else
#define DGMXYZFILE "test_daten/test_buildedgelist.xyz"
+#define DGM2DMFILE "test_daten/dgm2.2dm"
+#define PROFILFILE "test_daten/profile2.shp"
+#define ACHSEFILE "test_daten/achse2.shp"
+#define WSPFILE "test_daten/profile2.dbf"
+#define LINIENFILE "test_daten/linien2.shp"
#endif
//---------------------------------------------------------------------------
@@ -39,6 +49,70 @@
printf ("Test Tools\n");
////////////////////////////////////////
+ // Test von TransferWsp
+ ////////////////////////////////////////
+
+ {
+ printf ("Test TransferWsp: ");
+
+ TNodeList *NodeList = new TNodeList();
+ TElementList *ElementList = new TElementList();
+ LoadDGM(DGM2DMFILE, NodeList, ElementList, 0, 8);
+
+ TProfilList *ProfilList = new TProfilList();
+ LoadProfile(PROFILFILE, ProfilList, 0, -9999.9, 9999.9, 8);
+
+ TGewaesserAchseList *AchsenList = new TGewaesserAchseList();
+ LoadAchse(ACHSEFILE, AchsenList, 8);
+
+ TProfilList *WspList = new TProfilList();
+ LoadWsp(WSPFILE, WspList, "", 8);
+
+ InterpolateWsp(ProfilList, WspList, 8);
+ delete WspList;
+ WspList = 0;
+
+ TProfilList *SperrenList = new TProfilList();
+ TProfilList *GrabenList = new TProfilList();
+ TProfilList *RohreList = new TProfilList();
+ TProfilList *GradientenList = new TProfilList();
+ LoadLinien(LINIENFILE, SperrenList, GrabenList, RohreList, GradientenList, 8);
+
+ TEdgeList* EdgeList = new TEdgeList;
+ BuildEdgeList(NodeList, ElementList, EdgeList, 8);
+ // Den alten Knoten Kanten Index löschen
+ NodeList->ClearEdgeIndex();
+ // Einen neuen Knoten Kanten Index aufbauen
+ EdgeList->BuildEdgeIndex();
+
+ // Jetzt die Wasserstände der Profile übertragen
+ TransferWsp(ProfilList, NodeList, AchsenList, SperrenList, 8);
+
+
+ int Count = 0;
+ for (TNodeList::iterator i=NodeList->begin(); i != NodeList->end(); i++)
+ {
+ TNode* Node = *i;
+
+ if (Node->Wsp != NoWsp) Count++;
+ }
+
+ if (Count != 20) printf("Failed\n");
+ else printf("Pass\n");
+
+ delete GradientenList;
+ delete RohreList;
+ delete GrabenList;
+ delete SperrenList;
+ delete ProfilList;
+
+ delete AchsenList;
+ delete EdgeList;
+ delete ElementList;
+ delete NodeList;
+ }
+
+ ////////////////////////////////////////
// Test von ToUTF8
////////////////////////////////////////
@@ -323,6 +397,10 @@
if (EdgeList->EdgeVector.size() != 29) printf("Failed\n");
else if (WrongOrder) printf("Failed\n");
else printf("Pass\n");
+
+ delete EdgeList;
+ delete ElementList;
+ delete NodeList;
}
printf ("*************************************************************************\n");
Modified: trunk/src/test_xy.cpp
===================================================================
--- trunk/src/test_xy.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/test_xy.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -415,7 +415,7 @@
TXYList *Gebiet = new TXYList();
LoadGebiet(POLYGONFILE, Gebiet, 8);
- LoadProfile(PROFILFILE, Profile, -9999.9, 9999.9, 8);
+ LoadProfile(PROFILFILE, Profile, 0, -9999.9, 9999.9, 8);
TProfil* CutProfil = *Profile->begin();
Modified: trunk/src/tools.cpp
===================================================================
--- trunk/src/tools.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/tools.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -16,6 +16,7 @@
//---------------------------------------------------------------------------
#include <stdexcept>
+#include <map>
#include <stdio.h>
#include <stdlib.h>
@@ -25,6 +26,9 @@
#include "tools.h"
#include "qhull.h"
+
+typedef std::map<void*, int > TMemMap;
+
//---------------------------------------------------------------------------
extern int ReturnCode;
extern FILE *fhlog;
@@ -34,6 +38,8 @@
static char Indent[1000] = "";
static char UTF8Out[1000] = "";
+static TMemMap MemMap;
+
//---------------------------------------------------------------------------
//
// Diese Routine ist für das Abfangen von Zuständen zuständig, die
@@ -270,38 +276,330 @@
}
//---------------------------------------------------------------------------
-void* SfRealloc(void *Mem, int NewSize)
+int* SfIntRealloc(int *OldMemoryPointer, int Anz)
{
- void* MemoryPointer = 0;
- if (Mem == NULL) MemoryPointer = malloc(NewSize);
- else MemoryPointer = realloc(Mem, NewSize);
+ int* NewMemoryPointer = 0;
- if (0 == MemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+ try
+ {
+ NewMemoryPointer = new int[Anz];
- return (MemoryPointer);
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(int);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke wurden angefordert\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
}
//---------------------------------------------------------------------------
-void* SfMalloc(int Size)
+uchar* SfByteRealloc(uchar *OldMemoryPointer, int Anz)
{
- void* MemoryPointer = malloc(Size);
+ uchar* NewMemoryPointer = 0;
- if (0 == MemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+ try
+ {
+ NewMemoryPointer = new uchar[Anz];
- return (MemoryPointer);
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(uchar);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke wurden angefordert\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
}
//---------------------------------------------------------------------------
-void* SfCalloc(int Anz, int Size)
+double* SfDoubleRealloc(double *OldMemoryPointer, int Anz)
{
- void* MemoryPointer = calloc(Anz, Size);
+ double* NewMemoryPointer = 0;
- if (0 == MemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+ try
+ {
+ NewMemoryPointer = new double[Anz];
- return (MemoryPointer);
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(double);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke wurden angefordert\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
}
//---------------------------------------------------------------------------
+SHPInfo* SfSHPInfoRealloc(SHPInfo *OldMemoryPointer, int Anz)
+{
+ SHPInfo* NewMemoryPointer = 0;
+
+ try
+ {
+ NewMemoryPointer = new SHPInfo[Anz];
+
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(SHPInfo);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke wurden angefordert\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
+}
+
+//---------------------------------------------------------------------------
+SHPObject* SfSHPObjectRealloc(SHPObject *OldMemoryPointer, int Anz)
+{
+ SHPObject* NewMemoryPointer = 0;
+
+ try
+ {
+ NewMemoryPointer = new SHPObject[Anz];
+
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(SHPObject);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke wurden angefordert\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
+}
+
+//---------------------------------------------------------------------------
+DBFInfo* SfDBFInfoRealloc(DBFInfo *OldMemoryPointer, int Anz)
+{
+ DBFInfo* NewMemoryPointer = 0;
+
+ try
+ {
+ NewMemoryPointer = new DBFInfo[Anz];
+
+ if (0 == NewMemoryPointer) write_error(9201, "Es steht nicht genug Arbeitsspeicher zur Verfügung\n");
+
+ int NewSize = Anz * sizeof(DBFInfo);
+
+ memset (NewMemoryPointer, 0, NewSize);
+
+ if (OldMemoryPointer != 0)
+ {
+ int OldSize = MemMap[OldMemoryPointer];
+ if (NewSize < OldSize) memcpy(NewMemoryPointer, OldMemoryPointer, NewSize);
+ else memcpy(NewMemoryPointer, OldMemoryPointer, OldSize);
+ MemMap.erase(OldMemoryPointer);
+ delete [] OldMemoryPointer;
+ }
+
+ MemMap[NewMemoryPointer] = NewSize;
+
+ if (MemMap.size() % 10 == 0)
+ {
+ write_fortschritt("%d Speicherblöcke werden verwaltet\n", MemMap.size());
+ }
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Reservieren von Arbeitsspeicher gegeben\nVermutlich steht nicht genügend Arbeitsspeicher zur Verfügung\n");
+ }
+
+ return (NewMemoryPointer);
+}
+
+//---------------------------------------------------------------------------
+void SfIntFree(int* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void SfByteFree(uchar* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void SfDoubleFree(double* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void SfSHPInfoFree(SHPInfo* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void SfSHPObjectFree(SHPObject* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void SfDBFInfoFree(DBFInfo* MemoryPointer)
+{
+ try
+ {
+ MemMap.erase(MemoryPointer);
+ delete [] MemoryPointer;
+ }
+ catch(...)
+ {
+ write_error(8888, "Es hat einen unbekannten Fehler beim Freigeben von Arbeitsspeicher gegeben\n");
+ }
+
+}
+
+//---------------------------------------------------------------------------
void Swap2Bytes(void *Bytes)
{
byte Temp;
@@ -972,28 +1270,25 @@
}
} while (NetChanged);
- if (KnotenGeloescht > 0)
+ int Count = 0;
+ for (TElementList::iterator i = ElementList->begin(); i != ElementList->end(); i++)
{
- int Count = 0;
- for (TElementList::iterator i = ElementList->begin(); i != ElementList->end(); i++)
+ Count++;
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10000 == 0) || (Count > 0 && Count % 100000 == 0))
{
- Count++;
- if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10000 == 0) || (Count > 0 && Count % 100000 == 0))
- {
- write_fortschritt("%d von %d Elementen, %d Elemente gelöscht\n", Count, ElementList->size(), ElementeGeloescht);
- }
+ write_fortschritt("%d von %d Elementen, %d Elemente gelöscht\n", Count, ElementList->size(), ElementeGeloescht);
+ }
- TElement *Element = *i;
+ TElement *Element = *i;
- TNode *Node1 = Element->Node1;
- TNode *Node2 = Element->Node2;
- TNode *Node3 = Element->Node3;
+ TNode *Node1 = Element->Node1;
+ TNode *Node2 = Element->Node2;
+ TNode *Node3 = Element->Node3;
- if (Node1 == Node2 || Node1 == Node3 || Node2 == Node3)
- {
- Element->Typ = NO_ELEMENT;
- ElementeGeloescht++;
- }
+ if (Node1 == Node2 || Node1 == Node3 || Node2 == Node3)
+ {
+ Element->Typ = NO_ELEMENT;
+ ElementeGeloescht++;
}
}
}
@@ -1048,7 +1343,7 @@
EdgeList->Clear();
// Erst mal genug Speicher besorgen
- EdgeList->EdgeVector.reserve((size_t)(NodeList->size() * 2.2 * 2.2));
+ EdgeList->EdgeVector.reserve((size_t)(ElementList->size() * 2.0 + 1.0));
write_fortschritt("Kapazität der Kantenliste wurde auf %d erhöht\n", EdgeList->EdgeVector.capacity());
TEdge* NewEdge = 0;
TEdge* Edge = 0;
@@ -1133,9 +1428,6 @@
N3 = Element->Node2;
}
- if (N2->Z == NoZ) continue;
- if (N3->Z == NoZ) continue;
-
Edge = EdgeList->FindWithIndex(N2, N3);
if (Edge == 0)
{
@@ -1161,9 +1453,6 @@
N1 = Element->Node3;
}
- if (N3->Z == NoZ) continue;
- if (N1->Z == NoZ) continue;
-
Edge = EdgeList->FindWithIndex(N3, N1);
if (Edge == 0)
{
@@ -1189,9 +1478,6 @@
N4 = Element->Node3;
}
- if (N3->Z == NoZ) continue;
- if (N4->Z == NoZ) continue;
-
Edge = EdgeList->FindWithIndex(N3, N4);
if (Edge == 0)
{
@@ -1215,9 +1501,6 @@
N1 = Element->Node4;
}
- if (N4->Z == NoZ) continue;
- if (N1->Z == NoZ) continue;
-
Edge = EdgeList->FindWithIndex(N4, N1);
if (Edge == 0)
{
@@ -1275,6 +1558,7 @@
{
write_fortschritt ("->Generierung der Knotenliste aus den Profilspuren gestartet\n");
+/*
NodeList->SortByXY();
ProfilNodeList->Clear();
@@ -1452,55 +1736,179 @@
}
write_fortschritt("%d von %d Profilen, %d Knoten erzeugt\n", Count, ProfilList->size(), NodeNr);
+*/
write_fortschritt ("<-Generierung der Knotenliste aus den Profilspuren beendet\n");
}
//---------------------------------------------------------------------------
-void TransferWsp(TNodeList *ProfilNodeList, TNodeList *NodeList, TProfilList* SperrenList, double AvgDistance, int DebugLevel)
+// void TransferWsp(TNodeList *ProfilNodeList, TNodeList *NodeList, TProfilList* SperrenList, double AvgDistance, int DebugLevel)
+void TransferWsp(TProfilList *ProfilList, TNodeList *NodeList, TGewaesserAchseList *GewaesserAchseList, TProfilList* SperrenList, int DebugLevel)
{
write_fortschritt ("->Übertragen der Wasserstände gestartet\n");
- ProfilNodeList->SortByXY();
+ TNodeList* Temp1NodeList = new TNodeList;
+ TNodeList* Temp2NodeList = new TNodeList;
int WspCount = 0;
int Count = 0;
- for (TNodeList::iterator i = NodeList->begin(); i != NodeList->end(); i++)
+ for (TProfilList::iterator i = ProfilList->begin(); i != ProfilList->end(); i++)
{
- if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 1000 == 0) || (Count > 0 && Count % 10000 == 0))
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 100 == 0) || (Count > 0 && Count % 1000 == 0))
{
- write_fortschritt("%d von %d Knoten getestet, %d Wasserstände übertragen\n", Count, NodeList->size(), WspCount);
+ write_fortschritt("%d von %d Profilen übertragen, %d Wasserstände übertragen\n", Count, ProfilList->size(), WspCount);
}
- TNode* Node = *i;
+ TProfil* Profil = *i;
- long X = Node->X;
- long Y = Node->Y;
+ int Station = Profil->Station;
+ int Wsp = Profil->Wsp;
- int ZDummy = 0;
- int Wsp = 0;
+ if (Wsp == NoWsp) continue;
- bool Found = ProfilNodeList->Interpolate(SperrenList, X, Y, AvgDistance, &ZDummy, &Wsp);
+ ///////////////////////////////////////////////////////////
+ // Zuerst den Schnittpunkt mit der Gewässerachse finden
+ ///////////////////////////////////////////////////////////
- if (Found)
+ double X, Y;
+ bool FoundSchnitt = Profil->CalcSchnitt(GewaesserAchseList, &X, &Y);
+ if (false == FoundSchnitt)
{
- if (Node->Z < Wsp)
- {
- Node->Wsp = Wsp;
- WspCount++;
- }
- else
- {
- Node->Wsp = NoWsp;
- }
+ write_error(3206, "Die Gewässerachse schneidet die Profilspur %.4f nicht\n", Station / 10000.0);
}
- else
- {
- Node->Wsp = NoWsp;
- }
- Count++;
+
+ // Es ist nicht wichtig, wie gross der Startsuchradius ist,
+ // solange er nicht zu gross ist und gleich sehr viele Knozen gefunden werden
+ // 100.0 entspricht 1 m
+ double Radius = 100.0;
+ TNodeList* StartNodeList = 0;
+ do
+ {
+ StartNodeList = NodeList->FindAllByXY(X, Y, Radius);
+ Radius = Radius * 2.0;
+ if (DebugLevel >= 9) write_fortschritt("Suchradius ist %.1f\n", Radius);
+ } while (StartNodeList->size() == 0);
+
+ ///////////////////////////////////////////////////////////
+ // Jetzt den dichtesten Knoten suchen
+ ///////////////////////////////////////////////////////////
+
+ TNode* NearestNode = 0;
+ double NearestDistance = 0.0;
+ for (TNodeList::iterator i = StartNodeList->begin(); i != StartNodeList->end(); i++)
+ {
+ TNode* Node = *i;
+
+ // Das sqrt könnte man sich schenken, da es nur darum geht den dichtesten zu finden
+ double Distance = sqrt((X - Node->X) * (X - Node->X) + (Y - Node->Y) * (Y - Node->Y));
+ if (NearestNode == 0 || Distance < NearestDistance)
+ {
+ NearestDistance = Distance;
+ NearestNode = Node;
+ }
+ }
+
+ if (DebugLevel >= 9)
+ {
+ write_fortschritt("dichtester Knoten zu Profil %.4f: (%ld,%ld)\n", Station / 10000.0, NearestNode->X, NearestNode->Y);
+ }
+
+ if (NearestNode->Z < Wsp)
+ {
+ NearestNode->Wsp = Wsp;
+ WspCount++;
+ }
+
+ Temp1NodeList->Add(NearestNode);
+
+ while (Temp1NodeList->size() > 0)
+ {
+ // In Temp1 sind nun alle Nassen Knoten
+ // In Temp2 kommen alle potentiellen nassen Knoten
+
+ // Jetzt werden alle Knoten hinzugefügt, die nass werden können und deren Kante
+ // zu den bestehenden Knoten nicht gesperrt ist
+
+ for(TNodeList::iterator i = Temp1NodeList->begin(); i != Temp1NodeList->end(); i++)
+ {
+ TNode* Node = *i;
+
+ TEdgeIndex *AktEdgeIndex = Node->EdgeIndex;
+ while (AktEdgeIndex)
+ {
+ TEdgeIndex *NextEdgeIndex = AktEdgeIndex->NextEdgeIndex;
+ TEdge *Edge = AktEdgeIndex->Edge;
+
+ bool FoundSperre = false;
+ for (TProfilList::iterator j = SperrenList->begin(); j != SperrenList->end(); j++)
+ {
+ TProfil* Sperre = *j;
+ if (Sperre->CalcSchnitt(Edge))
+ {
+ FoundSperre = true;
+ break;
+ }
+ }
+ if (false == FoundSperre)
+ {
+ if (Edge->Node1 == Node && Edge->Node2->Wsp == NoWsp && Edge->Node2->Z < Wsp)
+ {
+ Temp2NodeList->Add(Edge->Node2);
+ }
+ if (Edge->Node2 == Node && Edge->Node1->Wsp == NoWsp && Edge->Node1->Z < Wsp)
+ {
+ Temp2NodeList->Add(Edge->Node1);
+ }
+ }
+ AktEdgeIndex = NextEdgeIndex;
+ }
+ }
+
+ // In Temp2 sind nun alle potentiellen nassen Knoten
+ // In Temp1 kommen jetzt die Knoten die eine Kante haben die das Profil schneidet
+ // damit ist sicher gestellt, dass die Knoten sich noch nicht in der fläche ausbreiten
+
+ Temp1NodeList->clear();
+
+ for(TNodeList::iterator i = Temp2NodeList->begin(); i != Temp2NodeList->end(); i++)
+ {
+ TNode* Node = *i;
+
+ TEdgeIndex *AktEdgeIndex = Node->EdgeIndex;
+ while (AktEdgeIndex)
+ {
+ TEdgeIndex *NextEdgeIndex = AktEdgeIndex->NextEdgeIndex;
+ TEdge *Edge = AktEdgeIndex->Edge;
+
+ if (Profil->CalcSchnitt(Edge))
+ {
+ if (Node->Z < Wsp)
+ {
+ Node->Wsp = Wsp;
+ WspCount++;
+ }
+
+ Temp1NodeList->Add(Node);
+ break;
+ }
+ AktEdgeIndex = NextEdgeIndex;
+ }
+
+ if (DebugLevel >= 9)
+ {
+ write_fortschritt("nasser Knoten bei Profil %.4f: (%ld,%ld)\n", Station / 10000.0, Node->X, Node->Y);
+ }
+ }
+
+ Temp2NodeList->clear();
+ }
+
+ Count++;
}
write_fortschritt("%d von %d Knoten getestet, %d Wasserstände übertragen\n", Count, NodeList->size(), WspCount);
+ delete Temp1NodeList;
+ delete Temp2NodeList;
+
write_fortschritt ("<-Übertragen der Wasserstände beendet\n");
}
@@ -2569,122 +2977,4 @@
write_fortschritt("<-Ermittlung der Überschwemmungsgrenzen beendet\n");
}
-//---------------------------------------------------------------------
-TProfilList* Renumber(TProfilList* ProfilList, TGewaesserAchseList *GewaesserAchseList, int DebugLevel)
-{
- write_fortschritt("->Umnumerierung der Profile gestartet\n");
- TProfilList* NewProfilList = new TProfilList;
-
- for (TProfilList::iterator i = ProfilList->begin(); i != ProfilList->end(); i++)
- {
- TProfil* Profil = *i;
-
- TProfil* NewProfil = 0;
-
- bool FoundSchnitt = false;
-
- for (TGewaesserAchseList::iterator j = GewaesserAchseList->begin(); j != GewaesserAchseList->end(); j++)
- {
- TGewaesserAchse* GewaesserAchse = *j;
-
- double SpurStation = 0.0;
- TPoint *S0 = 0;
- TPoint *S1 = 0;
- for (TPointList::iterator k = GewaesserAchse->PointList->begin(); k != GewaesserAchse->PointList->end(); k++)
- {
- S0 = S1;
- S1 = *k;
-
- if (k == GewaesserAchse->PointList->begin()) continue;
-
- long S0x = S0->X;
- long S0y = S0->Y;
- long S1x = S1->X;
- long S1y = S1->Y;
-
- long SDx = (S1x - S0x);
- long SDy = (S1y - S0y);
-
- if (SDx == 0L && SDy == 0L)
- {
- write_warning (8888, "Die Spurpunkte (%ld, %ld) und (%ld, %ld) liegen zu dicht zusammen", S0x, S0y, S1x, S1y);
- continue;
- }
-
- TPoint *P0 = 0;
- TPoint *P1 = 0;
- for (TPointList::iterator m = Profil->PointList->begin(); m != Profil->PointList->end(); m++)
- {
- P0 = P1;
- P1 = *m;
-
- if (m == Profil->PointList->begin()) continue;
-
- long P0x = P0->X;
- long P0y = P0->Y;
- long P1x = P1->X;
- long P1y = P1->Y;
-
- long PDx = P1x - P0x;
- long PDy = P1y - P0y;
-
- if (PDx == 0L && PDy == 0L)
- {
- write_warning (8888, "Die Profilpunkte (%ld, %ld) und (%ld, %ld) liegen zu dicht zusammen", P0x, P0y, P1x, P1y);
- continue;
- }
-
- double X = 0.0;
- double Y = 0.0;
-
- bool Schnitt = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, &X, &Y);
-
- if (Schnitt == true)
- {
- double TDx = S0x - X;
- double TDy = S0y - Y;
-
- double TDistance = sqrt(TDx*TDx+TDy*TDy);
-
- if (DebugLevel >= 8)
- {
- // Länge durch 100 (cm nach m) und Station durch 1000.0 (m nach km)
- write_fortschritt("Profil %.4f wird zu %.4f\n", Profil->Station / 10000.0, (int)(SpurStation + TDistance) / 100.0 / 1000.0);
- }
-
- NewProfil = new TProfil (Profil);
- NewProfil->Station = (int)((SpurStation + TDistance) / 10.0); // durch von cm nach dm
-
- FoundSchnitt = true;
-
- break;
- }
- }
- if (FoundSchnitt)
- {
- break;
- }
- else
- {
- double SDistance = sqrt(SDx*SDx+SDy*SDy);
- SpurStation = SpurStation + SDistance;
- }
- }
- if (FoundSchnitt)
- {
- break;
- }
- }
-
- if (0 == NewProfil) NewProfil = new TProfil (Profil);
- NewProfilList->insert(NewProfil);
- }
-
- write_fortschritt("<-Umnumerierung der Profile beendet\n");
-
- delete ProfilList;
-
- return (NewProfilList);
-}
-
Modified: trunk/src/tools.h
===================================================================
--- trunk/src/tools.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/tools.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -21,7 +21,9 @@
#include "shape.h"
#include "xy.h"
+typedef unsigned char uchar;
typedef unsigned char byte;
+typedef int int32;
//---------------------------------------------------------------------------
struct TFehler
@@ -43,9 +45,25 @@
void Swap2Bytes(void *Bytes);
void Swap4Bytes(void *Bytes);
void Swap8Bytes(void *Bytes);
-void* SfRealloc(void *Mem, int NewSize);
-void* SfMalloc(int Size);
-void* SfCalloc(int Anz, int Size);
+
+DBFInfo* SfDBFInfoRealloc(DBFInfo* Mem, int Anz);
+void SfDBFInfoFree(DBFInfo* MemoryPointer);
+
+SHPInfo* SfSHPInfoRealloc(SHPInfo* Mem, int Anz);
+void SfSHPInfoFree(SHPInfo* MemoryPointer);
+
+SHPObject* SfSHPObjectRealloc(SHPObject* Mem, int Anz);
+void SfSHPObjectFree(SHPObject* MemoryPointer);
+
+int* SfIntRealloc(int* Mem, int Anz);
+void SfIntFree(int* MemoryPointer);
+
+uchar* SfByteRealloc(uchar* Mem, int Anz);
+void SfByteFree(uchar* MemoryPointer);
+
+double* SfDoubleRealloc(double* Mem, int Anz);
+void SfDoubleFree(double* MemoryPointer);
+
std::string GetFileExt(std::string FileName);
std::string ExchangeFileExt(std::string FileName, std::string Ext);
std::string GetFilePath(std::string FileName);
@@ -69,13 +87,13 @@
void CheckForDuplicates(TNodeList *NodeList, TElementList *ElementList, int DebugLevel);
void BuildEdgeList(TNodeList* NodeList, TElementList* ElementList, TEdgeList* EdgeList, int DebugLevel);
void BuildProfilNodeList(TProfilList *ProfilList, TNodeList *NodeList, TGewaesserAchseList *GewaesserAchseList, TProfilList *SperrenList, TNodeList *ProfilNodeList, double AvgDistance, bool Sperre, int DebugLevel);
-void TransferWsp(TNodeList *ProfilNodeList, TNodeList *NodeList, TProfilList* SperrenList, double AvgDistance, int DebugLevel);
+//void TransferWsp(TNodeList *ProfilNodeList, TNodeList *NodeList, TProfilList* SperrenList, double AvgDistance, int DebugLevel);
+void TransferWsp(TProfilList *ProfilList, TNodeList *NodeList, TGewaesserAchseList *GewaesserAchseList, TProfilList* SperrenList, int DebugLevel);
void TransferWspFromGradient(TProfilList *GradientenList, TNodeList *NodeList, TEdgeList *Temp2EdgeList, double AvgDistance, int DebugLevel);
void TransferWspFromRohr(TProfilList *RohreList, TNodeList *NodeList, TEdgeList *Temp2EdgeList, double AvgDistance, int DebugLevel);
void GetWspFromNodeListToGradient(TNodeList* NodeList, TProfilList* GradientenList, double AvgDistance, int DebugLevel);
void GetWspFromNodeListToRohr(TNodeList* NodeList, TProfilList* RohreList, double AvgDistance, int DebugLevel);
void NassTrockenBerechnung(TNodeList *NodeList, TEdgeList *edgelist, TErgebnisPolygonList* ErgebnisPolygone, TProfilList* RohreList, TProfilList* GradientenList, double AvgDistance, int Von, int Bis, int Diff, int DebugLevel);
-TProfilList* Renumber(TProfilList* ProfilList, TGewaesserAchseList *GewaesserAchseList, int DebugLevel);
//---------------------------------------------------------------------------
template<class TClass> int IsInside(TClass *p, double x, double y)
Modified: trunk/src/wsplgen.cpp
===================================================================
--- trunk/src/wsplgen.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/wsplgen.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -101,10 +101,10 @@
// 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;
+ TElementList *ElementList = new TElementList();
// Hier werden die Gewaesserachsen drin verwaltet
- TGewaesserAchseList* GewaesserAchseList = new TGewaesserAchseList;
+ TGewaesserAchseList *GewaesserAchseList = new TGewaesserAchseList();
// Hier drin werden die Ergebnis Polygone drin verwaltet
TErgebnisPolygonList *ErgebnisPolygone = new TErgebnisPolygonList();
@@ -115,10 +115,16 @@
// Die ausgewerteten Parameter stehen dann in dem Objekt Parameter bereit
TParameter Parameter(argc, argv);
+ // Jetzt die Gewässerachse einlesen, wenn es notwendig ist
+ if (Parameter.IsSetAchse)
+ {
+ LoadAchse(Parameter.FileNameAchse, GewaesserAchseList, Parameter.DebugLevel);
+ }
+
// Jetzt die Profile einlesen
// Dabei wird die Stationierung von km in cm umgerechnet
// [km] in float nach [cm] in int
- LoadProfile(Parameter.FileNamePro, ProfilList, Parameter.VonKm, Parameter.BisKm, Parameter.DebugLevel);
+ LoadProfile(Parameter.FileNamePro, ProfilList, GewaesserAchseList, Parameter.VonKm, Parameter.BisKm, Parameter.DebugLevel);
if (ProfilList->size() < 2)
{
@@ -137,21 +143,10 @@
InterpolateWsp(ProfilList, WspProfilList, Parameter.DebugLevel);
delete WspProfilList;
- WspProfilList = 0;
+ WspProfilList = 0;
- // Jetzt die Gewässerachse einlesen, wenn es notwendig ist
- if (Parameter.Sperre || Parameter.IsSetAutoRenumber)
- {
- LoadAchse(Parameter.FileNameAchse, GewaesserAchseList, Parameter.DebugLevel);
- }
+ // if (Parameter.DebugLevel >= 5) SaveProfile("debug_output_02_Profile_ORIGINAL_mit_WSP.shp", &ProfilList, Parameter.DebugLevel);
- // Jetzt die Profile umnummerieren, wenn es notwendig ist
- if (Parameter.IsSetAutoRenumber)
- {
- // In Renumber wird die alte durch eine neue ProfilList ersetzt
- ProfilList = Renumber(ProfilList, GewaesserAchseList, Parameter.DebugLevel);
- }
-
// Jetzt die Gräben und Dämme und Rohre und Gradienten einlesen, wenn es notwendig ist
if (Parameter.IsSetLin)
{
@@ -177,13 +172,20 @@
delete Tmp1BegrenzungsPolygon;
delete ProfilPolygon;
}
- else
+ else if (Parameter.IsSetStrecke)
{
BuildPolygon(ProfilList, BegrenzungsPolygon, Parameter.DebugLevel);
}
+ else
+ {
+ write_warning(8888, "Da weder der Parameter -GEBIET noch der Parameter -STRECKE angegeben wurden\nwird kein Begrenzungpolygon verwendet\n");
+ }
- std::string PolygonFileName = ExchangeFileExt(Parameter.FileNameAusgabe, "_begrenzungspolygon.shp");
- SavePolygon(PolygonFileName, BegrenzungsPolygon, Parameter.DebugLevel);
+ if (BegrenzungsPolygon->size() > 2)
+ {
+ std::string PolygonFileName = ExchangeFileExt(Parameter.FileNameAusgabe, "_begrenzungspolygon.shp");
+ SavePolygon(PolygonFileName, BegrenzungsPolygon, Parameter.DebugLevel);
+ }
LoadDGM(Parameter.FileNameDgm, NodeList, ElementList, BegrenzungsPolygon, Parameter.DebugLevel);
@@ -240,38 +242,39 @@
// wird sie für die spätere Verwendung zwischengespeichert
double AvgDistance = EdgeList->AvgDistance;
- write_fortschritt("Die mittlere Kantenlänge beträgt %.2f.\n", AvgDistance / 100.0);
+ write_fortschritt("Die mittlere Kantenlänge beträgt %.2f m\n", AvgDistance / 100.0);
// 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 * 2.0);
+ // Der Parameter muss die Einheit cm haben
-// if (ProfilList->size() < 200) ProfilList->InterpoliereProfile(AvgDistance * 4.0);
-// if (ProfilList->size() < 200) ProfilList->InterpoliereProfile(AvgDistance * 2.0);
-// if (ProfilList->size() < 200) ProfilList->InterpoliereProfile(AvgDistance * 1.0);
+ if (Parameter.IsSetDist) ProfilList->InterpoliereProfile(Parameter.ProfilDistance);
+ else ProfilList->InterpoliereProfile(AvgDistance * 2.0);
// Jetzt die Stützstellen auffüllen
- ProfilList->FillProfile(AvgDistance / 4.0, -1, Parameter.DebugLevel);
+// ProfilList->FillProfile(AvgDistance / 2.0, -1, Parameter.DebugLevel);
// Mal wieder Zwischenergebnisse produzieren
std::string ProfilFileName = ExchangeFileExt(Parameter.FileNameAusgabe, "_interpolierte_profile.shp");
SaveProfile(ProfilFileName, ProfilList, Parameter.DebugLevel);
// Jetzt eine neue Knotenliste aus den Profilen generienen
- BuildProfilNodeList(ProfilList, NodeList, GewaesserAchseList, SperrenList, ProfilNodeList, AvgDistance * 2.0, Parameter.Sperre, Parameter.DebugLevel);
+// BuildProfilNodeList(ProfilList, NodeList, &GewaesserAchseList, SperrenList, ProfilNodeList, AvgDistance * 2.0, Parameter.Sperre, Parameter.DebugLevel);
- write_fortschritt("->Freigeben des Speichers der Gewässerachsen gestartet\n");
- delete GewaesserAchseList;
- write_fortschritt("<-Freigeben des Speichers der Gewässerachsen beendet\n");
+ // Mal wieder Zwischenergebnisse produzieren
+// std::string ProfilKnotenFileName = ExchangeFileExt(Parameter.FileNameAusgabe, "_profilknoten.shp");
+// SaveNodes(ProfilKnotenFileName, ProfilNodeList, Parameter.DebugLevel);
- std::string ProfilKnotenFileName = ExchangeFileExt(Parameter.FileNameAusgabe, "_profilknoten.shp");
- SaveNodes(ProfilKnotenFileName, ProfilNodeList, Parameter.DebugLevel);
-
// Jetzt die Wasserstände der Profile übertragen
- TransferWsp(ProfilNodeList, NodeList, SperrenList, AvgDistance / 2.0, Parameter.DebugLevel);
+ TransferWsp(ProfilList, NodeList, GewaesserAchseList, SperrenList, Parameter.DebugLevel);
+ write_fortschritt("->Freigeben des Speichers der Gewaesserachse gestartet\n");
+ delete GewaesserAchseList;
+ GewaesserAchseList = 0;
+ write_fortschritt("<-Freigeben des Speichers der Gewaesserachse beendet\n");
+
write_fortschritt("->Freigeben des Speichers der Dämme gestartet\n");
delete SperrenList;
SperrenList = 0;
Modified: trunk/src/wsplgen.h
===================================================================
--- trunk/src/wsplgen.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/wsplgen.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -10,10 +10,36 @@
// Read the file COPYING coming with WSPLGEN for details.
//
-const char Version[] = "1.1.2";
+const char Version[] = "1.1.4";
-// Parameter AUTORENUMBER wurde eingeführt
+// Diese Version Verwendet keine aufgefüllten Profilpüunkte und auch keine
+// generierten Profilknoten mehr (schneller und weniger Speicher und sicherer)
+// const char Version[] = "1.1.3";
+
+// Der Speicherplatzbedarf für die Kanten wurde jetzt genauer berechnet
+// statt Knoten * 2.2 * 2.2 jetzt Elemente * 2 + 1
+// Da Elemente = Knoten * 2 + 1
+// Cave !!! Das funktioniert nur bei zusammenhängenden Netzen
+
+// Die Huelle wird jetzt beim Laden von TINs korrekt ausgewertet
+
+// Die Ausgabe beim Laden von TINs wurde verbessert
+
+// Die Speicherverwaltung der Shapes wurde komplett überarbeitet.
+
+// Es wird jetzt keine Begrenzung verwendet,
+// wenn weder -GEBIET noch -STRECKE angegeben wird
+
+// const char Version[] = "1.1.2";
+
+// Die Ausrichtung der Profile benutzt jetzt die Gewässerachse falls angegeben.
+// Dieses Verfahren ist deutlich sicherer
+
+// Gewässerachsensegmenten werden zun gleich nach dem Einladen zusammengefasst,
+// das ermöglicht auch eine sinnvolle Umnummerierung, Interpolation und Ausrichtung von Profilen
+// mit Hilfe der Gewässerachse
+
// const char Version[] = "1.1.1";
// 2DM-Netze werden vor dem Speichern umnumeriert
Modified: trunk/src/xy.cpp
===================================================================
--- trunk/src/xy.cpp 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/xy.cpp 2007-09-02 20:13:20 UTC (rev 92)
@@ -819,9 +819,12 @@
clear();
MaxNr = -1;
- MinX = 0;
+
+ // Die Minima und Maxima werden falsch belegt, damit Add erkennen kann, ob
+ // die Maxima und Minima schon definiert wurden
+ MinX = 1;
MaxX = 0;
- MinY = 0;
+ MinY = 1;
MaxY = 0;
DiffX = 0;
DiffY = 0;
@@ -851,6 +854,16 @@
}
//---------------------------------------------------------------------
+void TNodeList::CreateQuadTree(long minX, long minY, long maxX, long maxY)
+{
+ QuadTree = new TQuadTree<TNodeList, TNode>();
+ MinX = minX;
+ MinY = minY;
+ MaxX = maxX;
+ MaxY = maxY;
+}
+
+//---------------------------------------------------------------------
void TNodeList::Add(TNode *Node)
{
if (capacity() < size() + 1)
@@ -861,7 +874,7 @@
push_back(Node);
- if (size() == 1)
+ if (MinX > MaxX || MinY > MaxY)
{
MaxNr = Node->Nr;
MinX = Node->X;
@@ -2405,6 +2418,10 @@
PointList->insert(NewPoint);
+ // Wenn sich die Anzahl nicht erhöht hat,
+ // so wurde der Punkt auch nicht hinzugefügt
+ // -> er muss wieder gelöscht werden
+
if (PointList->size() == 1)
{
MinX = NewPoint->X;
@@ -2584,7 +2601,7 @@
}
//---------------------------------------------------------------------------
-int TProfil::CalcSchnitt(TGewaesserAchseList *GewaesserAchseList)
+bool TProfil::CalcSchnitt(TGewaesserAchseList *GewaesserAchseList, double* X, double* Y)
{
for (TGewaesserAchseList::iterator g=GewaesserAchseList->begin(); g != GewaesserAchseList->end(); g++)
{
@@ -2656,25 +2673,72 @@
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;
- bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, &X, &Y);
+ bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, S0x, S0y, S1x, S1y, X, Y);
- if (Found)
- {
- int Meter = (P0->Meter + P1->Meter) / 2;
-
- return (Meter);
- }
+ if (Found) return (true);
}
}
}
- // Das ist ein wenig gefährlich
- // Eigentlich sollte es keine negativen Meter geben
- // Daher bedeutet -1.0 nicht gefunden
- return (-1);
+ return (false);
}
+//---------------------------------------------------------------------------
+bool TProfil::CalcSchnitt(TEdge* Edge)
+{
+ TPoint* P0 = 0;
+ TPoint* P1 = 0;
+ for (TPointList::iterator p = PointList->begin(); p != PointList->end(); p++)
+ {
+ if (P1 == 0)
+ {
+ P1 = *p;
+ continue;
+ }
+ else
+ {
+ P0 = P1;
+ P1 = *p;
+ }
+
+ long P0x = P0->X;
+ long P0y = P0->Y;
+ long P1x = P1->X;
+ long P1y = P1->Y;
+
+ 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 / 100.0, P0y / 100.0, P1x / 100.0, P1y / 100.0);
+ }
+
+ // Es heisst hier N für Node und nicht e für edge
+
+ TNode* N0 = Edge->Node1;
+ TNode* N1 = Edge->Node2;
+
+ long N0x = N0->X;
+ long N0y = N0->Y;
+ long N1x = N1->X;
+ long N1y = N1->Y;
+
+ long NDx = N1x - N0x;
+ long NDy = N1y - N0y;
+ if (NDx == 0 && NDy == 0)
+ {
+ write_error(8888, "Kanten-Knotenabstand (%.3f %.3f) - (%.3f %.3f) ist zu klein\n", N0x / 100.0, N0y / 100.0, N1x / 100.0, N1y / 100.0);
+ }
+
+ double X, Y;
+ bool Found = Calc2Schnitt(P0x, P0y, P1x, P1y, N0x, N0y, N1x, N1y, &X, &Y);
+
+ if (Found) return (true);
+ }
+
+ return (false);
+}
+
//---------------------------------------------------------------------
// TProfilList
//---------------------------------------------------------------------
@@ -2730,7 +2794,7 @@
SollAbstand = SollAbstand / 100.0;
- write_fortschritt("Gewünschter Abstand der Profile: %.4f\n", SollAbstand);
+ write_fortschritt("Gewünschter Abstand der Profile: %.1f m\n", SollAbstand);
TProfil *FirstProfil = 0;
TProfil *NextProfil = 0;
@@ -2832,17 +2896,11 @@
TPoint* NextPoint = 0;
for (TPointList::iterator j = Profil->PointList->begin(); j != Profil->PointList->end(); j++)
{
- if (NextPoint == 0)
- {
- NextPoint = *j;
- continue;
- }
- else
- {
- FirstPoint = NextPoint;
- NextPoint = *j;
- }
+ FirstPoint = NextPoint;
+ NextPoint = *j;
+ if (FirstPoint == 0) continue;
+
double Diff = NextPoint->Meter - FirstPoint->Meter;
@@ -2867,7 +2925,7 @@
if (Anz >= 1)
{
// Jetzt wieder von vorne
- j = Profil->PointList->begin();
+ j = Profil->PointList->find(FirstPoint);
FirstPoint = 0;
NextPoint = 0;
}
@@ -2982,12 +3040,9 @@
TPointList::iterator i = PointList->begin();
TPoint *LastPoint = 0;
- while (i != PointList->end())
- {
- LastPoint = *i;
- i++;
- }
+ if (PointList->size() > 0) LastPoint = *PointList->rbegin();
+
double MeterD = 0.0;
if (LastPoint)
@@ -3002,18 +3057,30 @@
double D = sqrt(Dx * Dx + Dy * Dy);
MeterD = M + D;
+
+ if (D == 0) return; // Den Punkt hatten wir schon
}
int Meter = (int)(MeterD + 0.5);
TPoint* NewPoint = new TPoint(x, y, z, Meter);
+ unsigned int Anz = PointList->size();
+
PointList->insert(NewPoint);
- if (MinX > NewPoint->X) MinX = NewPoint->X;
- if (MaxX < NewPoint->X) MaxX = NewPoint->X;
- if (MinY > NewPoint->Y) MinY = NewPoint->Y;
- if (MaxY < NewPoint->Y) MaxY = NewPoint->Y;
+ if (Anz == PointList->size())
+ {
+ delete NewPoint;
+ NewPoint = 0;
+ }
+ else
+ {
+ if (MinX > NewPoint->X) MinX = NewPoint->X;
+ if (MaxX < NewPoint->X) MaxX = NewPoint->X;
+ if (MinY > NewPoint->Y) MinY = NewPoint->Y;
+ if (MaxY < NewPoint->Y) MaxY = NewPoint->Y;
+ }
}
//---------------------------------------------------------------------
Modified: trunk/src/xy.h
===================================================================
--- trunk/src/xy.h 2007-07-18 21:27:05 UTC (rev 91)
+++ trunk/src/xy.h 2007-09-02 20:13:20 UTC (rev 92)
@@ -234,6 +234,7 @@
void Clear(void);
TNodeList* Copy(void);
+ void CreateQuadTree(long MinX, long MinY, long MaxX, long MaxY);
void Add(TNode *Node);
bool AddWithQuadTree(TNode *Node);
void SortByXY(void);
@@ -371,7 +372,8 @@
bool GetXY(int Meter, long *X, long *Y);
void EqualizeProfil(TProfil *Profil);
void InterpolateProfil(TProfil *VorProfil, TProfil *NachProfil, double Prozent);
- int CalcSchnitt(TGewaesserAchseList *GewaesserAchseList);
+ bool CalcSchnitt(TGewaesserAchseList *GewaesserAchseList, double* X, double *Y);
+ bool CalcSchnitt(TEdge *Edge);
double Length(TPoint *Point1, TPoint *Point2);
double Length(long X1, long Y1, long X2, long Y2);
TPoint* FindNearest(long X, long Y);
@@ -411,6 +413,7 @@
class TGewaesserAchse
{
public:
+// int ID;
long MinX;
long MaxX;
More information about the Wsplgen-commits
mailing list