diff --git a/demo.cpp b/demo.cpp index f52580f..bb0ac24 100644 --- a/demo.cpp +++ b/demo.cpp @@ -15,9 +15,19 @@ int main(int argc, char const *argv[]) } infile.close(); + std::vector err_records; std::vector tin_vert; std::vector tin_ele; - dem2tin(topo, 0, 1000, 0, 1000, 10, 10, tin_vert, tin_ele, 1.0); + dem2tin(topo, 0, 1000, 0, 1000, 10, 10, tin_vert, tin_ele, 1.0, &err_records); + + // Write a log file + std::ofstream logfile("topo_TIN.log"); + logfile << "# Insertion Maxi-Error\n"; + for (int i = 0; i < err_records.size(); ++i) + { + logfile << i+1 << " " << err_records[i] << std::endl; + } + logfile.close(); // Write a Gmsh's .msh file std::ofstream outfile("topo_TIN.msh"); diff --git a/tin.h b/tin.h index ed0dfef..70a6e9b 100644 --- a/tin.h +++ b/tin.h @@ -1,10 +1,10 @@ /** * @defgroup TIN * - * @brief Generation of a Triangular Irregular Network (TIN) from a dense DEM grid + * @brief Generation of a Triangular Irregular Network (TIN) from a dense DEM grid. * * @author Yi Zhang - * @date 2021-09-15 + * @date 2021-09-16 */ #ifndef _TIN_DELAUNAY_H @@ -108,7 +108,7 @@ struct triangle l2x = inx - vert[i]->x; l2y = iny - vert[i]->y; - if ((l1x*l2y - l1y*l2x) < 0) + if ((l1x*l2y - l1y*l2x) < 0) // This condition includes points on the triangle's edge { return false; } @@ -126,25 +126,47 @@ struct triangle }; // End triangle definition +// Start DEM definition +struct dem_point +{ + double x, y; // position of the DEM location + double elev; // elevation at the DEM location + triangle *host; // host triangle of the DEM location + std::vector circum_host; // triangles which circumcircles include the location + + dem_point() : x(NAN), y(NAN), elev(NAN), host(nullptr) {} + dem_point(double inx, double iny, double inelev) {set(inx, iny, inelev);} + void set(double inx, double iny, double inelev) + { + x = inx; y = iny; elev = inelev; host = nullptr; + circum_host.clear(); + return; + } +}; +// End DEM definition + /** * @brief Generate the TIN from the DEM grid * - * @param[in] dem Input DEM grid (Ordered from lower left corner to the upper right corner) - * @param[in] xmin The minimal coordinate of the DEM grid on the x-axis - * @param[in] xmax The maximal coordinate of the DEM grid on the x-axis - * @param[in] ymin The minimal coordinate of the DEM grid on the y-axis - * @param[in] ymax The maximal coordinate of the DEM grid on the y-axis - * @param[in] dx Data spacing of the DEM grid on the x-axis - * @param[in] dy Data spacing of the DEM grid on the y-axis - * @param out_verts The output vector of vertex's pointers. The user need to destroy the memories allocated by the function before destroy the vector - * @param out_tris The output vector of triangle's pointers. The user need to destroy the memories allocated by the function before destroy the vector - * @param[in] maxi_err Threshold to quit the algorithm. The default is 1e-2 + * @param[in] dem Input DEM grid (Ordered from lower left corner to the upper right corner) + * @param[in] xmin The minimal coordinate of the DEM grid on the x-axis + * @param[in] xmax The maximal coordinate of the DEM grid on the x-axis + * @param[in] ymin The minimal coordinate of the DEM grid on the y-axis + * @param[in] ymax The maximal coordinate of the DEM grid on the y-axis + * @param[in] dx Data spacing of the DEM grid on the x-axis + * @param[in] dy Data spacing of the DEM grid on the y-axis + * @param out_verts The output vector of vertex's pointers. The user need to destroy the memories allocated by the function before destroy the vector + * @param out_tris The output vector of triangle's pointers. The user need to destroy the memories allocated by the function before destroy the vector + * @param[in] maxi_err Threshold to quit the algorithm. The default is 1e-0 + * @param[in] err_records If this pointer is not NULL, record maximal error values after each insertion of vertex. */ void dem2tin(const std::vector &dem, double xmin, double xmax, double ymin, double ymax, - double dx, double dy, std::vector &out_verts, std::vector &out_tris, double maxi_err = 1e-2) + double dx, double dy, std::vector &out_verts, std::vector &out_tris, + double maxi_err = 1e-0, std::vector *err_records = nullptr) { if (!out_verts.empty()) out_verts.clear(); if (!out_tris.empty()) out_tris.clear(); + if (err_records != nullptr && !err_records->empty()) err_records->clear(); if (dx <= 0.0 || dy <= 0.0 || maxi_err <= 0.0) return; if (xmin >= xmax || ymin >= ymax || (xmin + dx) > xmax || (ymin + dy) > ymax) return; @@ -154,22 +176,37 @@ void dem2tin(const std::vector &dem, double xmin, double xmax, double ym if (dem.size() != xnum*ynum) return; + // Prepare the DEM points + std::vector dem_grid(xnum*ynum); + std::vector::iterator d_iter; + for (int i = 0; i < ynum; ++i) + { + for (int j = 0; j < xnum; ++j) + { + dem_grid[j + i*xnum].set(xmin + dx*j, ymin + dy*i, dem[j + i*xnum]); + } + } + vertex2dc *tmp_vert = nullptr; - tmp_vert = new vertex2dc(xmin, ymin, dem[0], out_verts.size()); // lower left corner + tmp_vert = new vertex2dc(xmin, ymin, dem_grid[0].elev, out_verts.size()); // lower left corner out_verts.push_back(tmp_vert); + d_iter = dem_grid.begin(); dem_grid.erase(d_iter); - tmp_vert = new vertex2dc(xmax, ymin, dem[xnum-1], out_verts.size()); // lower right corner + tmp_vert = new vertex2dc(xmax, ymin, dem_grid[xnum-2].elev, out_verts.size()); // lower right corner. Note the first location is already erased out_verts.push_back(tmp_vert); + d_iter = dem_grid.begin() + (xnum - 2); dem_grid.erase(d_iter); - tmp_vert = new vertex2dc(xmax, ymax, dem[xnum*ynum-1], out_verts.size()); // upper right corner + tmp_vert = new vertex2dc(xmax, ymax, dem_grid[xnum*ynum-3].elev, out_verts.size()); // upper right corner. Note the first two locations are already erased out_verts.push_back(tmp_vert); + d_iter = dem_grid.begin() + (xnum*ynum - 3); dem_grid.erase(d_iter); - tmp_vert = new vertex2dc(xmin, ymax, dem[xnum*(ynum-1)], out_verts.size()); // upper left corner + tmp_vert = new vertex2dc(xmin, ymax, dem_grid[xnum*(ynum-1) - 2].elev, out_verts.size()); // upper left corner. Note the first two locations are already erased out_verts.push_back(tmp_vert); + d_iter = dem_grid.begin() + (xnum*(ynum-1) - 2); dem_grid.erase(d_iter); triangle *tmp_tri = nullptr; - std::vector cnst_tri; + std::vector cnst_tri, new_tri; std::vector::iterator t_iter; if (!is_collinear(out_verts[0], out_verts[1], out_verts[2])) // Do not create triangle if the vertexes are collinear @@ -184,12 +221,39 @@ void dem2tin(const std::vector &dem, double xmin, double xmax, double ym out_tris.push_back(tmp_tri); } + // Find host triangle for all DEM locations + for (int i = 0; i < dem_grid.size(); ++i) + { + for (int t = 0; t < out_tris.size(); ++t) + { + if (out_tris[t]->bound_location(dem_grid[i].x, dem_grid[i].y)) + { + dem_grid[i].host = out_tris[t]; + break; // already found, no need to search more + } + } + } + + // Find circum_host triangles for all DEM locations + double dist; + for (int i = 0; i < dem_grid.size(); ++i) + { + for (int t = 0; t < out_tris.size(); ++t) + { + dist = (out_tris[t]->cx - dem_grid[i].x) * (out_tris[t]->cx - dem_grid[i].x) + + (out_tris[t]->cy - dem_grid[i].y) * (out_tris[t]->cy - dem_grid[i].y); + if ((dist - out_tris[t]->cr) <= ZERO) // Points on the circumcircle are also included + { + dem_grid[i].circum_host.push_back(out_tris[t]); + // no beak here. There might be more than one triangle's circumcircle includes the DEM location + } + } + } + int now_maxi_id; - double now_x, now_y, now_err; - double now_maxi_err; + double now_err, now_maxi_err; bool removed; - double dist; edge tmp_edge; std::vector cnst_edge; std::vector::iterator e_iter; @@ -197,48 +261,52 @@ void dem2tin(const std::vector &dem, double xmin, double xmax, double ym do // quit til the threshold is meet { // loop all DEM data to find the location with maximal error - // this part is very time consuming. We will fix it later now_maxi_err = -1.0; - for (int i = 0; i < xnum*ynum; ++i) + for (int i = 0; i < dem_grid.size(); ++i) { - now_x = (i%xnum)*dx + xmin; - now_y = (i/xnum)*dy + ymin; - for (int e = 0; e < out_tris.size(); ++e) + now_err = fabs(dem_grid[i].host->interpolate(dem_grid[i].x, dem_grid[i].y) - dem_grid[i].elev); + if (now_err > now_maxi_err) { - if (out_tris[e]->bound_location(now_x, now_y)) - { - now_err = fabs(out_tris[e]->interpolate(now_x, now_y) - dem[i]); - if (now_err > now_maxi_err) - { - now_maxi_err = now_err; - now_maxi_id = i; - } - break; - } + now_maxi_err = now_err; + now_maxi_id = i; } } + if (err_records != nullptr) + { + err_records->push_back(now_maxi_err); + } + // create a new vertex - now_x = (now_maxi_id%xnum)*dx + xmin; - now_y = (now_maxi_id/xnum)*dy + ymin; - tmp_vert = new vertex2dc(now_x, now_y, dem[now_maxi_id], out_verts.size()); + tmp_vert = new vertex2dc(dem_grid[now_maxi_id].x, dem_grid[now_maxi_id].y, dem_grid[now_maxi_id].elev, out_verts.size()); out_verts.push_back(tmp_vert); - // determine triangles that include the point and add the triangle to the cnst_tri and remove it from out_tris - // this is also a part that could take a lot of time if we are working with a large amount of points. We will fix it later + // Move triangles which circumcircles include the new vertex to the cnst_tri and remove it from out_tris cnst_tri.clear(); - for (t_iter = out_tris.begin(); t_iter != out_tris.end(); ) + for (int i = 0; i < dem_grid[now_maxi_id].circum_host.size(); ++i) { - tmp_tri = *t_iter; - dist = (tmp_tri->cx - now_x) * (tmp_tri->cx - now_x) + (tmp_tri->cy - now_y) * (tmp_tri->cy - now_y); - if ((dist - tmp_tri->cr) <= ZERO) // Points on the circumcircle are also included - { - t_iter = out_tris.erase(t_iter); - cnst_tri.push_back(tmp_tri); - } - else t_iter++; + cnst_tri.push_back(dem_grid[now_maxi_id].circum_host[i]); } + for (int i = 0; i < cnst_tri.size(); ++i) + { + for (t_iter = out_tris.begin(); t_iter != out_tris.end(); ) + { + tmp_tri = *t_iter; + if (cnst_tri[i] == tmp_tri) + { + t_iter = out_tris.erase(t_iter); + break; // no need to search more + } + else t_iter++; + } + } + + // clear host and circumcircle triangles for the used DEM location + dem_grid[now_maxi_id].host = nullptr; + dem_grid[now_maxi_id].circum_host.clear(); + d_iter = dem_grid.begin() + now_maxi_id; dem_grid.erase(d_iter); + // loop to remove duplicate edges cnst_edge.clear(); for (int c = 0; c < cnst_tri.size(); ++c) @@ -267,12 +335,59 @@ void dem2tin(const std::vector &dem, double xmin, double xmax, double ym } // construct new triangles and add to out_tris + new_tri.clear(); for (int c = 0; c < cnst_edge.size(); ++c) { if (!is_collinear(cnst_edge[c].vert[0], cnst_edge[c].vert[1], tmp_vert)) // Do not create triangle if the vertexes are collinear { tmp_tri = new triangle(cnst_edge[c].vert[0], cnst_edge[c].vert[1], tmp_vert); // order the vertex anti-clock wise out_tris.push_back(tmp_tri); + new_tri.push_back(tmp_tri); + } + } + + // purge circumcircle triangles for all DEM data + for (int c = 0; c < cnst_tri.size(); ++c) + { + for (int i = 0; i < dem_grid.size(); ++i) + { + for (t_iter = dem_grid[i].circum_host.begin(); t_iter != dem_grid[i].circum_host.end(); ) + { + if (cnst_tri[c] == *t_iter) + { + t_iter = dem_grid[i].circum_host.erase(t_iter); + break; // no need to search more + } + else t_iter++; + } + } + } + + // loop all DEM data to update host and circumcircle triangles + for (int i = 0; i < dem_grid.size(); ++i) + { + for (int n = 0; n < new_tri.size(); ++n) // search in newly created triangles to find new host + { + if (new_tri[n]->bound_location(dem_grid[i].x, dem_grid[i].y)) + { + dem_grid[i].host = new_tri[n]; + break; // already found, no need to search more + } + } + } + + // Find circum_host triangles for all DEM locations + for (int i = 0; i < dem_grid.size(); ++i) + { + for (int n = 0; n < new_tri.size(); ++n) // search in newly created triangles to find new circumcircle triangles + { + dist = (new_tri[n]->cx - dem_grid[i].x) * (new_tri[n]->cx - dem_grid[i].x) + + (new_tri[n]->cy - dem_grid[i].y) * (new_tri[n]->cy - dem_grid[i].y); + if ((dist - new_tri[n]->cr) <= ZERO) // Points on the circumcircle are also included + { + dem_grid[i].circum_host.push_back(new_tri[n]); + // no beak here. There might be more than one triangle's circumcircle includes the DEM location + } } } @@ -282,6 +397,7 @@ void dem2tin(const std::vector &dem, double xmin, double xmax, double ym tmp_tri = cnst_tri[c]; delete tmp_tri; tmp_tri = nullptr; } + } while (now_maxi_err >= maxi_err); return; diff --git a/topo_TIN.log b/topo_TIN.log new file mode 100644 index 0000000..f7cbc48 --- /dev/null +++ b/topo_TIN.log @@ -0,0 +1,2343 @@ +# Insertion Maxi-Error +1 201.519 +2 105.341 +3 101.925 +4 146.117 +5 104.229 +6 91.7002 +7 60.4419 +8 45.9311 +9 98.0684 +10 50.0224 +11 74.5139 +12 87.0751 +13 58.9194 +14 36.9609 +15 39.1385 +16 35.3475 +17 35.8977 +18 41.3399 +19 34.1862 +20 32.9297 +21 45.2017 +22 31.9378 +23 31.464 +24 31.1155 +25 30.8939 +26 30.5068 +27 29.4438 +28 41.4919 +29 43.9636 +30 28.9414 +31 28.094 +32 26.3277 +33 36.1923 +34 26.1988 +35 26.0072 +36 25.8657 +37 25.2606 +38 23.8307 +39 23.7885 +40 23.2403 +41 23.675 +42 22.3214 +43 22.1495 +44 27.0421 +45 35.7754 +46 23.4559 +47 21.8638 +48 21.687 +49 21.5231 +50 19.3426 +51 19.2481 +52 19.0595 +53 23.137 +54 18.7531 +55 18.5191 +56 27.076 +57 18.4309 +58 17.3705 +59 17.0904 +60 32.253 +61 16.9939 +62 16.8507 +63 16.7552 +64 16.46 +65 16.7619 +66 16.1582 +67 15.6249 +68 15.1601 +69 18.011 +70 14.895 +71 14.793 +72 14.6972 +73 14.4938 +74 14.3606 +75 14.2158 +76 13.987 +77 13.777 +78 17.5332 +79 18.6298 +80 13.6241 +81 15.3217 +82 13.6225 +83 13.2917 +84 13.012 +85 15.4988 +86 12.684 +87 12.6474 +88 12.4451 +89 12.31 +90 12.1373 +91 17.9841 +92 12.5836 +93 11.9607 +94 11.6608 +95 11.5612 +96 11.4707 +97 11.3409 +98 11.3282 +99 11.1983 +100 11.0434 +101 11.0233 +102 10.856 +103 12.8928 +104 10.7686 +105 10.7305 +106 10.6582 +107 12.0442 +108 10.4991 +109 10.7229 +110 10.46 +111 10.4108 +112 10.2797 +113 10.2606 +114 14.608 +115 10.1784 +116 9.95549 +117 14.5603 +118 9.834 +119 9.82743 +120 9.77967 +121 9.61152 +122 15.4867 +123 9.59639 +124 9.58588 +125 9.48408 +126 9.34501 +127 9.33308 +128 9.2333 +129 9.95828 +130 9.19324 +131 10.0371 +132 9.0002 +133 10.7145 +134 9.27116 +135 8.94567 +136 10.156 +137 8.8992 +138 8.87675 +139 15.093 +140 8.82133 +141 10.7046 +142 9.46742 +143 8.72441 +144 8.64114 +145 9.61881 +146 8.59255 +147 8.58583 +148 9.98579 +149 13.8112 +150 8.44276 +151 11.2247 +152 8.38795 +153 8.31861 +154 8.30895 +155 8.30669 +156 8.26017 +157 8.23037 +158 8.20637 +159 11.0202 +160 9.66623 +161 8.14378 +162 8.06978 +163 9.97033 +164 13.7871 +165 9.59933 +166 8.0155 +167 7.98726 +168 14.7788 +169 7.9435 +170 11.467 +171 7.91801 +172 8.35511 +173 7.91589 +174 7.89125 +175 7.89125 +176 7.86256 +177 7.77515 +178 7.66294 +179 7.93323 +180 10.3312 +181 7.6615 +182 7.65775 +183 7.61834 +184 7.5978 +185 7.59133 +186 13.8564 +187 9.83325 +188 7.5815 +189 7.5217 +190 7.51337 +191 9.6095 +192 10.7126 +193 7.86969 +194 7.4395 +195 9.71333 +196 7.4385 +197 7.38313 +198 7.37399 +199 7.37075 +200 7.369 +201 9.46936 +202 7.326 +203 8.1205 +204 7.32385 +205 7.27584 +206 7.26038 +207 7.25231 +208 7.16822 +209 7.16573 +210 7.09533 +211 7.16729 +212 7.04278 +213 7.932 +214 6.97125 +215 6.96856 +216 6.90836 +217 6.90291 +218 8.2956 +219 6.865 +220 6.81344 +221 6.73225 +222 8.14225 +223 7.8815 +224 6.71795 +225 7.87364 +226 6.679 +227 6.675 +228 6.67065 +229 6.63848 +230 7.8511 +231 10.394 +232 7.27561 +233 7.70425 +234 6.606 +235 7.2914 +236 6.59248 +237 6.58667 +238 6.55607 +239 9.2977 +240 7.63337 +241 6.55396 +242 6.53258 +243 6.48846 +244 6.44965 +245 6.407 +246 6.3735 +247 6.36315 +248 6.35194 +249 6.26685 +250 6.25268 +251 6.2375 +252 6.596 +253 6.20957 +254 6.19365 +255 6.18926 +256 6.18136 +257 6.18067 +258 6.7685 +259 6.17825 +260 6.07533 +261 6.07175 +262 6.0685 +263 6.068 +264 6.066 +265 6.04503 +266 6.37665 +267 5.97715 +268 6.1828 +269 5.9649 +270 5.95325 +271 5.88547 +272 5.8665 +273 5.78456 +274 5.756 +275 7.86603 +276 5.75275 +277 5.73612 +278 5.68888 +279 5.6685 +280 5.63567 +281 5.61722 +282 5.60463 +283 5.5963 +284 5.55155 +285 5.5425 +286 5.46753 +287 5.4155 +288 5.40298 +289 5.4025 +290 5.40035 +291 5.3866 +292 5.37887 +293 12.0164 +294 6.99933 +295 5.5009 +296 5.37625 +297 5.35833 +298 5.34323 +299 5.63224 +300 5.3394 +301 5.32281 +302 5.29227 +303 7.043 +304 5.25538 +305 5.217 +306 5.18615 +307 6.29682 +308 5.1795 +309 5.16797 +310 9.83166 +311 6.97548 +312 5.1562 +313 5.1494 +314 5.73614 +315 5.12033 +316 6.029 +317 5.39673 +318 8.25685 +319 5.1165 +320 5.09465 +321 5.07165 +322 7.1285 +323 8.0945 +324 5.33057 +325 5.749 +326 5.06725 +327 9.0581 +328 5.0465 +329 5.04495 +330 5.00985 +331 5.48172 +332 4.99771 +333 5.48905 +334 5.24409 +335 4.98232 +336 7.04909 +337 4.9639 +338 4.93867 +339 4.9206 +340 5.90936 +341 4.91348 +342 6.95745 +343 5.5968 +344 4.90001 +345 4.95399 +346 5.00274 +347 4.86583 +348 5.73587 +349 4.8502 +350 4.80087 +351 4.79033 +352 4.73386 +353 4.73117 +354 4.72383 +355 6.335 +356 4.71414 +357 5.52789 +358 5.4845 +359 6.0055 +360 4.6988 +361 4.69636 +362 4.69384 +363 7.91643 +364 4.68567 +365 4.66041 +366 5.02987 +367 4.659 +368 4.64057 +369 4.63658 +370 4.60617 +371 4.568 +372 4.56267 +373 4.5527 +374 4.539 +375 4.54333 +376 4.513 +377 4.50075 +378 4.49278 +379 8.3647 +380 4.4925 +381 4.49225 +382 4.49126 +383 4.70563 +384 4.4715 +385 4.4705 +386 4.441 +387 5.73233 +388 4.73 +389 4.43802 +390 4.42178 +391 5.89327 +392 5.81104 +393 5.34842 +394 4.80934 +395 4.40553 +396 4.96919 +397 6.57358 +398 4.40265 +399 5.54376 +400 4.39648 +401 4.46005 +402 4.39275 +403 4.38253 +404 4.3715 +405 4.37107 +406 5.33975 +407 5.12627 +408 4.36426 +409 4.34963 +410 4.33854 +411 4.314 +412 4.29 +413 4.28121 +414 4.28026 +415 4.26795 +416 4.53204 +417 4.24267 +418 4.2322 +419 6.6825 +420 5.008 +421 4.433 +422 4.22 +423 5.0355 +424 4.17831 +425 4.17644 +426 4.16371 +427 4.15492 +428 5.03783 +429 4.188 +430 4.142 +431 4.1222 +432 4.10825 +433 4.10665 +434 4.0911 +435 4.62029 +436 4.07275 +437 4.07008 +438 4.056 +439 4.0505 +440 5.2335 +441 6.90833 +442 7.09867 +443 4.03816 +444 4.58613 +445 4.035 +446 4.033 +447 4.03057 +448 5.52525 +449 4.30952 +450 4.02609 +451 4.01196 +452 3.99533 +453 4.84033 +454 3.993 +455 3.9735 +456 3.96392 +457 6.244 +458 3.96375 +459 4.35043 +460 7.2795 +461 4.5625 +462 5.058 +463 4.555 +464 4.51967 +465 5.53617 +466 6.608 +467 6.1846 +468 5.2325 +469 4.631 +470 4.291 +471 4.064 +472 3.96025 +473 4.27933 +474 3.95027 +475 5.20955 +476 3.949 +477 3.9465 +478 3.92733 +479 5.537 +480 3.918 +481 3.91125 +482 5.943 +483 3.88947 +484 4.51297 +485 3.88157 +486 7.34867 +487 3.8807 +488 3.8765 +489 3.87108 +490 4.4296 +491 3.86757 +492 7.5584 +493 4.9505 +494 4.33433 +495 3.8633 +496 3.85268 +497 3.85135 +498 3.8455 +499 4.108 +500 3.84109 +501 3.8345 +502 3.8329 +503 4.73837 +504 4.48366 +505 4.30837 +506 3.82612 +507 3.825 +508 4.75229 +509 3.91218 +510 3.82373 +511 3.81825 +512 3.80943 +513 4.93967 +514 3.80813 +515 3.80478 +516 3.79635 +517 3.7954 +518 3.7835 +519 6.18303 +520 3.78183 +521 3.78045 +522 3.76223 +523 5.0977 +524 3.74313 +525 4.1375 +526 3.93833 +527 3.851 +528 3.74175 +529 3.72266 +530 3.71907 +531 3.7115 +532 3.71 +533 3.68695 +534 3.68475 +535 4.53393 +536 4.013 +537 3.87915 +538 3.6622 +539 3.65867 +540 3.63677 +541 3.87091 +542 3.63433 +543 4.36067 +544 3.62867 +545 5.4962 +546 3.81567 +547 4.4815 +548 3.62857 +549 3.61207 +550 4.46295 +551 3.60424 +552 4.93248 +553 4.005 +554 3.5996 +555 3.59698 +556 5.5087 +557 3.584 +558 5.1595 +559 3.58115 +560 4.009 +561 3.71712 +562 3.57419 +563 4.55678 +564 3.79825 +565 3.57265 +566 3.9721 +567 3.56885 +568 3.559 +569 3.5571 +570 4.47727 +571 3.55229 +572 3.5335 +573 3.5319 +574 4.3855 +575 3.9695 +576 3.52648 +577 4.77267 +578 3.52037 +579 3.51443 +580 3.50587 +581 5.08817 +582 4.07445 +583 3.5055 +584 5.215 +585 3.50359 +586 3.501 +587 3.50033 +588 4.082 +589 3.498 +590 3.49758 +591 3.49433 +592 3.49383 +593 3.49122 +594 3.48477 +595 3.48067 +596 3.47915 +597 3.52812 +598 3.477 +599 3.67 +600 3.46645 +601 3.46533 +602 3.4595 +603 3.4535 +604 3.45014 +605 4.3179 +606 3.4494 +607 3.44532 +608 3.61598 +609 3.44485 +610 3.44404 +611 3.43334 +612 3.4315 +613 3.42682 +614 3.86388 +615 4.37267 +616 5.815 +617 3.41943 +618 3.4075 +619 3.407 +620 3.406 +621 3.58065 +622 3.40184 +623 3.40175 +624 3.39467 +625 3.38128 +626 3.3741 +627 3.3675 +628 3.3398 +629 3.33767 +630 3.3372 +631 3.33474 +632 3.326 +633 3.32289 +634 3.3205 +635 3.307 +636 3.3016 +637 3.3006 +638 3.29833 +639 3.2982 +640 4.55875 +641 5.49 +642 3.29435 +643 3.28932 +644 3.50466 +645 3.28925 +646 3.2864 +647 3.28 +648 3.97467 +649 3.273 +650 3.2702 +651 3.26525 +652 3.255 +653 3.2545 +654 3.24507 +655 4.35368 +656 3.69505 +657 3.2372 +658 3.23433 +659 3.2835 +660 3.22482 +661 3.21996 +662 6.16367 +663 3.2022 +664 3.19272 +665 3.18908 +666 6.75914 +667 7.36 +668 4.652 +669 4.251 +670 3.176 +671 3.17595 +672 3.1724 +673 3.249 +674 3.17033 +675 3.1545 +676 3.15015 +677 3.1495 +678 3.14466 +679 3.14405 +680 3.14079 +681 6.24585 +682 4.02129 +683 3.13833 +684 4.4905 +685 4.08625 +686 5.3135 +687 6.878 +688 3.1373 +689 3.131 +690 3.1285 +691 3.1279 +692 3.12287 +693 3.119 +694 3.5614 +695 3.4886 +696 4.40433 +697 4.33993 +698 3.1145 +699 3.09554 +700 4.94475 +701 3.45909 +702 3.0885 +703 3.08202 +704 3.081 +705 3.0785 +706 3.3405 +707 3.0748 +708 7.76305 +709 3.1906 +710 3.0747 +711 3.06217 +712 3.05489 +713 3.0484 +714 3.04318 +715 3.0415 +716 3.0379 +717 3.0695 +718 3.02055 +719 3.01402 +720 3.93044 +721 3.62062 +722 3.40051 +723 3.29867 +724 3.0092 +725 4.15112 +726 3.51725 +727 2.99566 +728 2.99464 +729 2.985 +730 2.98064 +731 2.97198 +732 4.50596 +733 3.3236 +734 2.96375 +735 2.962 +736 2.9558 +737 2.95 +738 2.95 +739 2.94985 +740 3.67661 +741 2.93954 +742 2.93625 +743 3.5735 +744 3.125 +745 2.9304 +746 2.92153 +747 2.9196 +748 2.91935 +749 2.919 +750 2.9165 +751 6.0405 +752 4.9795 +753 2.91415 +754 4.02338 +755 3.32785 +756 2.9122 +757 2.9065 +758 2.90233 +759 2.9015 +760 2.8995 +761 3.1145 +762 2.8965 +763 3.17923 +764 2.89333 +765 2.89242 +766 3.61263 +767 2.8913 +768 2.88814 +769 3.44179 +770 2.8876 +771 2.886 +772 2.89633 +773 2.88422 +774 2.87283 +775 2.86937 +776 2.8668 +777 2.86537 +778 2.862 +779 2.85989 +780 2.85983 +781 2.853 +782 2.8305 +783 2.82345 +784 2.81762 +785 2.81455 +786 3.056 +787 2.807 +788 2.79705 +789 2.79395 +790 2.78185 +791 2.78156 +792 2.7806 +793 3.2001 +794 2.77103 +795 3.59104 +796 2.75983 +797 2.757 +798 2.74275 +799 3.3745 +800 6.6966 +801 3.322 +802 2.7346 +803 2.73235 +804 2.729 +805 2.72585 +806 2.7234 +807 3.38673 +808 2.721 +809 2.71292 +810 3.2416 +811 2.81325 +812 2.7126 +813 2.71051 +814 4.32941 +815 2.70725 +816 3.21309 +817 2.89253 +818 2.70421 +819 2.7015 +820 3.94403 +821 2.69895 +822 2.69479 +823 4.11516 +824 2.689 +825 2.903 +826 2.68329 +827 2.68166 +828 2.67467 +829 2.67259 +830 2.67033 +831 2.66213 +832 3.35823 +833 3.1032 +834 2.65767 +835 2.65597 +836 2.65462 +837 3.1165 +838 2.65359 +839 3.1051 +840 2.6516 +841 2.64975 +842 2.648 +843 2.77391 +844 4.5586 +845 2.91175 +846 4.75967 +847 2.833 +848 2.64517 +849 3.5308 +850 2.6385 +851 2.6353 +852 2.63337 +853 2.79881 +854 2.6318 +855 2.627 +856 2.6245 +857 2.62268 +858 2.61648 +859 2.61316 +860 2.608 +861 2.6078 +862 2.60752 +863 2.6059 +864 3.08732 +865 2.60122 +866 2.59528 +867 2.592 +868 3.5895 +869 3.1305 +870 2.618 +871 2.58652 +872 2.88146 +873 2.8001 +874 2.59987 +875 2.58525 +876 2.58067 +877 2.5803 +878 2.5775 +879 2.66937 +880 2.56933 +881 2.739 +882 2.56675 +883 2.563 +884 3.921 +885 7.44433 +886 2.557 +887 2.55312 +888 2.55289 +889 2.551 +890 2.55083 +891 2.54697 +892 3.17611 +893 2.54662 +894 2.54523 +895 3.55193 +896 3.51315 +897 2.66254 +898 2.54306 +899 3.2333 +900 3.84566 +901 2.5415 +902 2.53996 +903 2.5386 +904 2.8457 +905 2.53612 +906 2.536 +907 2.53054 +908 4.97733 +909 2.52941 +910 2.529 +911 3.548 +912 3.5705 +913 2.52833 +914 2.527 +915 2.90275 +916 2.52453 +917 3.91818 +918 2.5193 +919 2.5173 +920 2.51356 +921 3.04857 +922 2.512 +923 2.659 +924 3.03233 +925 2.49593 +926 2.492 +927 3.49833 +928 2.918 +929 2.48832 +930 2.95606 +931 2.488 +932 2.48123 +933 2.48025 +934 2.9926 +935 3.15805 +936 3.01316 +937 3.02515 +938 2.80548 +939 2.6593 +940 2.4774 +941 2.82301 +942 2.47518 +943 2.46867 +944 3.3775 +945 2.46801 +946 2.4669 +947 2.46443 +948 2.46025 +949 2.45833 +950 2.45778 +951 2.76767 +952 2.5817 +953 2.64145 +954 2.44953 +955 2.446 +956 2.44544 +957 2.4425 +958 2.44216 +959 2.4385 +960 2.4326 +961 2.43175 +962 2.42982 +963 2.4285 +964 2.4258 +965 2.4215 +966 2.42 +967 2.41553 +968 2.9171 +969 2.4126 +970 2.6742 +971 2.4065 +972 2.40493 +973 2.398 +974 2.39643 +975 2.39572 +976 2.67324 +977 2.394 +978 2.3933 +979 2.3925 +980 2.531 +981 2.38833 +982 3.40967 +983 3.64467 +984 2.6725 +985 2.38725 +986 2.383 +987 2.38205 +988 2.38085 +989 2.37739 +990 2.37337 +991 2.364 +992 2.36225 +993 2.36223 +994 2.93822 +995 2.36055 +996 2.67434 +997 2.36029 +998 3.00909 +999 2.35646 +1000 2.54695 +1001 3.5467 +1002 2.34883 +1003 2.76828 +1004 2.34865 +1005 2.347 +1006 2.3465 +1007 3.8528 +1008 2.34429 +1009 2.3405 +1010 2.336 +1011 4.113 +1012 2.419 +1013 2.33035 +1014 2.67957 +1015 2.36267 +1016 2.329 +1017 2.329 +1018 2.3275 +1019 2.438 +1020 2.32615 +1021 3.3787 +1022 3.11413 +1023 2.55923 +1024 2.32518 +1025 2.323 +1026 4.546 +1027 3.903 +1028 3.2725 +1029 2.4585 +1030 2.3212 +1031 2.32033 +1032 2.3198 +1033 2.40744 +1034 2.62435 +1035 2.31583 +1036 2.631 +1037 2.315 +1038 3.7655 +1039 2.30495 +1040 2.29904 +1041 2.29815 +1042 2.29655 +1043 2.3877 +1044 2.293 +1045 2.28998 +1046 2.2896 +1047 2.54975 +1048 2.4453 +1049 2.2893 +1050 2.44685 +1051 2.28575 +1052 2.28403 +1053 2.27548 +1054 2.2742 +1055 2.27415 +1056 2.27321 +1057 2.27288 +1058 2.2663 +1059 2.26556 +1060 3.16942 +1061 2.66182 +1062 2.26528 +1063 2.26224 +1064 2.25738 +1065 2.25017 +1066 2.23935 +1067 2.38303 +1068 2.5183 +1069 2.2375 +1070 2.22931 +1071 2.3034 +1072 2.4307 +1073 2.22725 +1074 3.96473 +1075 2.21607 +1076 2.216 +1077 2.212 +1078 3.93005 +1079 2.212 +1080 2.20736 +1081 2.206 +1082 4.997 +1083 2.20508 +1084 2.22328 +1085 2.78731 +1086 2.2047 +1087 2.9086 +1088 2.2039 +1089 2.2005 +1090 2.19801 +1091 2.1959 +1092 2.1955 +1093 2.94833 +1094 2.568 +1095 2.195 +1096 2.1949 +1097 2.1945 +1098 2.191 +1099 2.19075 +1100 2.18508 +1101 2.18371 +1102 2.65486 +1103 2.26168 +1104 2.18363 +1105 2.25467 +1106 2.17647 +1107 2.1741 +1108 2.18253 +1109 2.52033 +1110 2.17392 +1111 2.5036 +1112 2.17155 +1113 2.17113 +1114 2.17092 +1115 2.17078 +1116 2.1685 +1117 2.24913 +1118 2.1668 +1119 2.16625 +1120 2.5305 +1121 2.1662 +1122 2.1646 +1123 3.65273 +1124 2.6143 +1125 2.15525 +1126 2.15435 +1127 2.6397 +1128 2.14938 +1129 2.1485 +1130 2.14655 +1131 2.14402 +1132 3.4217 +1133 3.60637 +1134 2.1365 +1135 2.13507 +1136 2.1325 +1137 2.13137 +1138 2.6529 +1139 2.13067 +1140 2.51933 +1141 2.40493 +1142 2.1305 +1143 2.9375 +1144 2.418 +1145 2.129 +1146 2.12245 +1147 2.12217 +1148 2.12136 +1149 2.119 +1150 2.108 +1151 2.105 +1152 2.09975 +1153 2.0985 +1154 2.09335 +1155 2.08808 +1156 2.0869 +1157 2.3265 +1158 3.62032 +1159 2.08435 +1160 2.079 +1161 2.0712 +1162 2.16092 +1163 2.0675 +1164 2.06733 +1165 2.2865 +1166 2.06337 +1167 3.1913 +1168 2.05895 +1169 2.05779 +1170 2.057 +1171 2.05239 +1172 2.05147 +1173 2.04965 +1174 2.04733 +1175 2.33533 +1176 2.337 +1177 2.283 +1178 2.6955 +1179 2.206 +1180 2.194 +1181 2.04667 +1182 2.041 +1183 3.3745 +1184 2.3155 +1185 2.03833 +1186 2.0376 +1187 2.0375 +1188 2.03745 +1189 2.03352 +1190 2.03324 +1191 2.0305 +1192 2.02743 +1193 2.026 +1194 2.0248 +1195 2.18614 +1196 2.02413 +1197 2.02407 +1198 2.02378 +1199 4.3093 +1200 2.0195 +1201 2.01825 +1202 2.01697 +1203 2.46539 +1204 2.00601 +1205 2.00402 +1206 2.0035 +1207 2.00275 +1208 2.2001 +1209 2.0015 +1210 1.9999 +1211 1.9992 +1212 1.99535 +1213 1.9945 +1214 1.99202 +1215 2.6003 +1216 2.24407 +1217 1.99057 +1218 1.9897 +1219 1.98746 +1220 1.98686 +1221 1.9835 +1222 1.9803 +1223 1.976 +1224 1.9722 +1225 1.969 +1226 1.96585 +1227 1.9654 +1228 1.9645 +1229 2.326 +1230 1.96295 +1231 1.96162 +1232 1.95915 +1233 1.9551 +1234 1.95505 +1235 1.9545 +1236 1.95312 +1237 1.95205 +1238 1.9486 +1239 1.94747 +1240 2.46385 +1241 1.94317 +1242 1.9385 +1243 1.9326 +1244 1.932 +1245 1.92987 +1246 3.74155 +1247 1.92638 +1248 1.926 +1249 1.92445 +1250 2.0381 +1251 1.92431 +1252 1.92158 +1253 2.3975 +1254 1.92145 +1255 1.91633 +1256 1.91236 +1257 1.9105 +1258 1.908 +1259 1.9076 +1260 1.89875 +1261 1.898 +1262 1.89609 +1263 1.89328 +1264 1.8907 +1265 1.97395 +1266 1.88775 +1267 1.88602 +1268 1.88108 +1269 2.7111 +1270 1.8789 +1271 1.87653 +1272 1.8729 +1273 1.87167 +1274 2.9339 +1275 1.87107 +1276 1.86875 +1277 1.86767 +1278 2.15267 +1279 2.1165 +1280 1.86767 +1281 1.86755 +1282 1.90845 +1283 1.8675 +1284 1.8671 +1285 1.86033 +1286 3.61345 +1287 1.85725 +1288 1.85545 +1289 1.85193 +1290 1.8511 +1291 1.85055 +1292 1.94015 +1293 2.15238 +1294 1.8468 +1295 1.8466 +1296 1.84452 +1297 1.84313 +1298 1.84265 +1299 2.0847 +1300 2.22345 +1301 1.84241 +1302 1.838 +1303 1.83732 +1304 2.03833 +1305 2.77152 +1306 2.05112 +1307 1.9405 +1308 1.87024 +1309 1.83657 +1310 2.51963 +1311 1.836 +1312 4.513 +1313 1.83585 +1314 1.9309 +1315 1.835 +1316 1.833 +1317 2.6115 +1318 1.8315 +1319 2.168 +1320 1.83073 +1321 2.0345 +1322 1.82992 +1323 1.82875 +1324 2.60855 +1325 2.37675 +1326 3.74993 +1327 1.82023 +1328 1.98352 +1329 1.9117 +1330 1.81667 +1331 3.646 +1332 2.0895 +1333 1.813 +1334 1.8125 +1335 1.81133 +1336 1.811 +1337 1.8105 +1338 4.1205 +1339 2.681 +1340 3.669 +1341 2.025 +1342 4.899 +1343 2.2975 +1344 1.8105 +1345 1.808 +1346 1.808 +1347 1.8045 +1348 1.80267 +1349 3.4085 +1350 2.7695 +1351 1.80205 +1352 1.80191 +1353 3.07865 +1354 1.8015 +1355 1.80105 +1356 1.799 +1357 1.79833 +1358 1.79802 +1359 1.80223 +1360 1.7955 +1361 1.7923 +1362 1.78943 +1363 1.82265 +1364 1.7852 +1365 1.78215 +1366 2.56935 +1367 1.78143 +1368 1.78097 +1369 1.78066 +1370 1.77985 +1371 1.7797 +1372 1.778 +1373 1.77665 +1374 1.77273 +1375 1.7681 +1376 1.76757 +1377 2.13518 +1378 2.08665 +1379 1.80641 +1380 1.76347 +1381 2.97225 +1382 2.15505 +1383 1.75931 +1384 1.75843 +1385 1.75795 +1386 3.1175 +1387 2.52715 +1388 1.75635 +1389 1.85845 +1390 1.7581 +1391 1.754 +1392 2.9435 +1393 1.82033 +1394 1.75091 +1395 1.7491 +1396 1.74907 +1397 2.2311 +1398 1.74846 +1399 1.74833 +1400 1.74785 +1401 1.84581 +1402 2.94258 +1403 1.79686 +1404 1.74762 +1405 1.74604 +1406 1.74525 +1407 1.74371 +1408 2.93929 +1409 2.56822 +1410 2.23433 +1411 2.23593 +1412 1.74289 +1413 1.74127 +1414 1.74 +1415 1.7381 +1416 1.73705 +1417 1.73666 +1418 1.7345 +1419 1.7338 +1420 1.73287 +1421 1.7315 +1422 1.7305 +1423 1.72805 +1424 1.7249 +1425 2.08065 +1426 1.93665 +1427 1.9808 +1428 1.7227 +1429 1.72095 +1430 1.99643 +1431 2.3271 +1432 1.9434 +1433 1.72 +1434 1.7194 +1435 1.71833 +1436 1.71785 +1437 1.7145 +1438 1.70894 +1439 2.26285 +1440 1.70748 +1441 1.706 +1442 2.73 +1443 1.70538 +1444 1.703 +1445 1.70215 +1446 1.70159 +1447 1.69815 +1448 1.698 +1449 3.21092 +1450 2.00573 +1451 4.01417 +1452 2.325 +1453 1.7969 +1454 1.6943 +1455 1.69307 +1456 1.69185 +1457 3.29545 +1458 1.68942 +1459 4.5295 +1460 2.31065 +1461 1.8741 +1462 1.689 +1463 1.68864 +1464 1.76396 +1465 1.6877 +1466 1.68721 +1467 2.3868 +1468 1.6848 +1469 2.0236 +1470 1.6813 +1471 1.67325 +1472 1.67306 +1473 1.669 +1474 1.6659 +1475 1.80018 +1476 1.657 +1477 1.65595 +1478 1.65535 +1479 1.65363 +1480 1.653 +1481 2.58493 +1482 2.09764 +1483 1.69247 +1484 1.65243 +1485 1.6515 +1486 1.6496 +1487 1.64734 +1488 1.6465 +1489 1.708 +1490 1.642 +1491 1.63944 +1492 1.8843 +1493 1.63194 +1494 1.6315 +1495 1.998 +1496 1.6282 +1497 1.62778 +1498 1.6353 +1499 1.62745 +1500 1.63606 +1501 1.62627 +1502 1.62615 +1503 1.6254 +1504 1.6235 +1505 1.62135 +1506 1.6185 +1507 1.6184 +1508 1.61624 +1509 1.615 +1510 1.61465 +1511 1.6106 +1512 1.60708 +1513 1.69318 +1514 1.70625 +1515 1.67971 +1516 1.77355 +1517 1.684 +1518 1.60433 +1519 1.603 +1520 1.6025 +1521 1.60203 +1522 1.98469 +1523 1.65756 +1524 1.59949 +1525 1.59873 +1526 1.86202 +1527 1.952 +1528 1.5956 +1529 1.5943 +1530 1.594 +1531 1.5937 +1532 1.5935 +1533 1.5925 +1534 2.2635 +1535 1.59093 +1536 1.7067 +1537 1.58955 +1538 1.5886 +1539 1.8176 +1540 1.588 +1541 3.8515 +1542 1.5877 +1543 1.58582 +1544 1.585 +1545 1.5849 +1546 1.97527 +1547 1.6555 +1548 1.5814 +1549 1.5809 +1550 1.5784 +1551 1.5747 +1552 1.574 +1553 1.57362 +1554 1.58963 +1555 1.93403 +1556 1.56939 +1557 2.82737 +1558 2.22315 +1559 1.63743 +1560 1.564 +1561 1.68275 +1562 1.56075 +1563 1.5603 +1564 1.83817 +1565 1.5565 +1566 1.55638 +1567 1.87855 +1568 1.55477 +1569 1.93139 +1570 1.55316 +1571 1.55148 +1572 1.55115 +1573 2.33785 +1574 1.55067 +1575 1.54767 +1576 1.6904 +1577 1.5433 +1578 1.5425 +1579 1.541 +1580 1.7495 +1581 1.655 +1582 1.53979 +1583 1.53965 +1584 2.1339 +1585 1.5355 +1586 1.535 +1587 3.9645 +1588 1.629 +1589 1.53462 +1590 2.00387 +1591 1.8813 +1592 1.6953 +1593 1.53365 +1594 1.5335 +1595 1.532 +1596 1.53105 +1597 1.53092 +1598 1.52965 +1599 1.52811 +1600 1.6488 +1601 1.5262 +1602 1.9577 +1603 1.52612 +1604 1.67975 +1605 1.52417 +1606 1.70195 +1607 1.52347 +1608 1.6067 +1609 1.5225 +1610 1.52233 +1611 1.56405 +1612 1.522 +1613 1.5215 +1614 1.5155 +1615 1.51415 +1616 1.5136 +1617 2.2981 +1618 2.90218 +1619 1.513 +1620 1.51255 +1621 1.51253 +1622 1.5111 +1623 1.505 +1624 1.5027 +1625 1.50247 +1626 1.502 +1627 1.4988 +1628 1.4988 +1629 1.4979 +1630 1.49647 +1631 1.65733 +1632 1.9925 +1633 1.49638 +1634 1.49595 +1635 2.06895 +1636 1.92946 +1637 1.49431 +1638 1.70523 +1639 1.6202 +1640 1.49365 +1641 1.66025 +1642 1.49055 +1643 1.4905 +1644 1.48967 +1645 2.30895 +1646 1.99925 +1647 1.4891 +1648 1.48805 +1649 1.5293 +1650 2.19134 +1651 1.4869 +1652 1.48653 +1653 2.1507 +1654 1.48523 +1655 1.66701 +1656 2.05247 +1657 1.4838 +1658 1.9457 +1659 1.4826 +1660 2.1348 +1661 1.48185 +1662 1.48041 +1663 1.4795 +1664 1.5945 +1665 1.47775 +1666 1.4765 +1667 1.47567 +1668 2.3665 +1669 1.473 +1670 1.4699 +1671 1.46816 +1672 2.6364 +1673 1.46765 +1674 1.46415 +1675 1.46375 +1676 2.10775 +1677 1.46179 +1678 1.45795 +1679 1.45455 +1680 1.4525 +1681 1.4502 +1682 1.44651 +1683 1.44631 +1684 1.44585 +1685 1.4442 +1686 1.4435 +1687 1.44339 +1688 1.4415 +1689 1.4384 +1690 1.91389 +1691 2.50127 +1692 1.43613 +1693 1.43333 +1694 1.4315 +1695 3.6537 +1696 1.6895 +1697 1.54707 +1698 1.4294 +1699 1.42852 +1700 1.42605 +1701 1.42543 +1702 1.42541 +1703 1.4241 +1704 1.42225 +1705 1.4205 +1706 1.417 +1707 1.41633 +1708 1.41245 +1709 1.41 +1710 1.40992 +1711 1.86646 +1712 1.40775 +1713 1.4077 +1714 1.407 +1715 1.67563 +1716 1.406 +1717 1.40203 +1718 2.02363 +1719 1.40126 +1720 1.96495 +1721 2.50243 +1722 1.3955 +1723 1.47567 +1724 1.3948 +1725 1.45627 +1726 1.66214 +1727 1.44732 +1728 1.394 +1729 1.39297 +1730 1.39235 +1731 1.39227 +1732 1.39135 +1733 3.806 +1734 3.435 +1735 1.39018 +1736 1.38985 +1737 1.3882 +1738 1.38515 +1739 1.3832 +1740 1.38185 +1741 1.38123 +1742 1.37807 +1743 1.37805 +1744 1.37718 +1745 1.37376 +1746 1.37344 +1747 2.78883 +1748 1.45318 +1749 1.83884 +1750 1.64173 +1751 1.7156 +1752 1.3727 +1753 1.449 +1754 1.3713 +1755 1.37115 +1756 1.37093 +1757 1.6351 +1758 1.3681 +1759 1.367 +1760 1.36602 +1761 1.79287 +1762 1.50197 +1763 1.3648 +1764 1.36445 +1765 1.3644 +1766 1.3634 +1767 1.423 +1768 1.36305 +1769 1.36045 +1770 1.37415 +1771 1.35755 +1772 1.35707 +1773 1.3525 +1774 1.3503 +1775 1.3499 +1776 1.40877 +1777 2.99495 +1778 1.8615 +1779 1.3486 +1780 1.34785 +1781 1.34751 +1782 1.3464 +1783 1.3449 +1784 1.3443 +1785 1.34328 +1786 1.38205 +1787 1.34328 +1788 1.3428 +1789 1.809 +1790 1.509 +1791 1.503 +1792 1.3625 +1793 1.34002 +1794 1.3397 +1795 1.613 +1796 1.3395 +1797 1.33741 +1798 1.33725 +1799 1.33707 +1800 1.33535 +1801 1.73445 +1802 1.335 +1803 2.5625 +1804 1.3325 +1805 1.331 +1806 1.33061 +1807 1.32697 +1808 1.33645 +1809 1.32687 +1810 1.32665 +1811 1.32576 +1812 1.9038 +1813 1.32525 +1814 1.32524 +1815 1.3235 +1816 2.8355 +1817 1.3215 +1818 1.32122 +1819 1.31933 +1820 1.3648 +1821 1.318 +1822 1.31673 +1823 2.9057 +1824 1.42963 +1825 2.7638 +1826 1.31613 +1827 1.3155 +1828 1.6765 +1829 1.31535 +1830 1.56356 +1831 1.9155 +1832 1.55822 +1833 1.3341 +1834 1.31535 +1835 2.23 +1836 2.087 +1837 1.3125 +1838 1.31045 +1839 1.33082 +1840 1.44858 +1841 2.25104 +1842 2.4516 +1843 1.4209 +1844 1.54427 +1845 1.30787 +1846 1.30693 +1847 1.30501 +1848 1.29946 +1849 2.3666 +1850 1.38593 +1851 1.89155 +1852 1.2973 +1853 1.29595 +1854 1.29515 +1855 1.2949 +1856 3.0646 +1857 2.12025 +1858 1.29437 +1859 1.29155 +1860 1.29011 +1861 1.2895 +1862 1.28933 +1863 1.28725 +1864 1.515 +1865 1.401 +1866 1.28553 +1867 1.2853 +1868 1.3668 +1869 1.2842 +1870 1.2835 +1871 1.28278 +1872 1.28 +1873 1.83335 +1874 1.58517 +1875 1.27986 +1876 1.44773 +1877 1.2785 +1878 1.2761 +1879 1.533 +1880 1.27485 +1881 1.27279 +1882 1.27151 +1883 1.2668 +1884 1.59765 +1885 1.2671 +1886 1.2668 +1887 1.42748 +1888 1.49345 +1889 1.2661 +1890 1.74871 +1891 1.26377 +1892 1.40248 +1893 1.58 +1894 1.47887 +1895 1.26374 +1896 1.2632 +1897 1.26266 +1898 1.2624 +1899 1.26155 +1900 1.2728 +1901 1.2587 +1902 1.25818 +1903 2.60053 +1904 1.3662 +1905 1.32303 +1906 1.25788 +1907 1.25576 +1908 1.34104 +1909 1.25567 +1910 1.25535 +1911 1.255 +1912 1.2536 +1913 1.83456 +1914 1.25247 +1915 1.2522 +1916 1.25077 +1917 1.24983 +1918 1.24853 +1919 1.24765 +1920 1.2475 +1921 1.4645 +1922 1.246 +1923 1.24308 +1924 1.9619 +1925 1.56485 +1926 1.27883 +1927 1.2415 +1928 1.2408 +1929 1.24 +1930 1.23817 +1931 1.54612 +1932 1.23715 +1933 1.23638 +1934 1.7633 +1935 1.23844 +1936 1.68681 +1937 1.45132 +1938 1.3162 +1939 1.2935 +1940 1.2708 +1941 1.2362 +1942 1.55575 +1943 1.23505 +1944 1.235 +1945 1.23404 +1946 1.23316 +1947 1.2296 +1948 1.22548 +1949 2.26072 +1950 1.224 +1951 1.22371 +1952 1.2232 +1953 1.222 +1954 1.22157 +1955 1.221 +1956 1.2203 +1957 1.2187 +1958 1.218 +1959 1.21616 +1960 1.38565 +1961 1.21614 +1962 1.2552 +1963 1.37472 +1964 1.2161 +1965 1.2146 +1966 1.21434 +1967 1.21179 +1968 1.211 +1969 1.9553 +1970 1.21 +1971 1.2091 +1972 1.70535 +1973 1.2082 +1974 1.20755 +1975 1.20685 +1976 1.20633 +1977 1.228 +1978 1.20529 +1979 1.20482 +1980 1.20479 +1981 1.20385 +1982 1.20369 +1983 1.2022 +1984 1.202 +1985 1.20025 +1986 1.79265 +1987 1.58343 +1988 1.19898 +1989 1.19804 +1990 1.4728 +1991 1.19728 +1992 1.1953 +1993 1.19465 +1994 1.19405 +1995 1.1912 +1996 1.19 +1997 1.58565 +1998 1.1895 +1999 1.18881 +2000 1.18867 +2001 1.949 +2002 1.18662 +2003 1.18657 +2004 1.18512 +2005 1.18355 +2006 1.18135 +2007 1.18 +2008 1.17925 +2009 1.1786 +2010 1.17857 +2011 1.32165 +2012 1.1765 +2013 1.173 +2014 2.073 +2015 1.1728 +2016 1.1715 +2017 1.1713 +2018 1.17 +2019 1.16895 +2020 1.16447 +2021 2.819 +2022 1.16427 +2023 1.16395 +2024 1.16238 +2025 1.1616 +2026 1.1615 +2027 1.19195 +2028 1.16017 +2029 1.1598 +2030 1.2756 +2031 1.1596 +2032 1.1595 +2033 1.15795 +2034 1.1578 +2035 1.1572 +2036 1.15673 +2037 1.155 +2038 1.15293 +2039 1.45647 +2040 1.3928 +2041 1.28167 +2042 1.26606 +2043 1.37592 +2044 1.15183 +2045 1.16485 +2046 1.15165 +2047 1.14985 +2048 1.14913 +2049 1.14817 +2050 1.37017 +2051 1.148 +2052 1.14718 +2053 1.14673 +2054 2.0502 +2055 1.24815 +2056 1.14662 +2057 1.14634 +2058 1.62619 +2059 1.14508 +2060 1.16472 +2061 1.145 +2062 1.1448 +2063 1.1445 +2064 1.7145 +2065 3.701 +2066 1.142 +2067 1.14183 +2068 1.14175 +2069 1.1411 +2070 1.61165 +2071 1.3032 +2072 1.14097 +2073 1.14085 +2074 1.79 +2075 1.1403 +2076 1.27515 +2077 1.13899 +2078 1.13839 +2079 1.13835 +2080 1.3353 +2081 1.1367 +2082 1.1366 +2083 1.1365 +2084 1.63665 +2085 1.4206 +2086 1.1363 +2087 1.136 +2088 2.002 +2089 1.136 +2090 1.4285 +2091 3.5135 +2092 1.1352 +2093 1.69885 +2094 1.1346 +2095 1.13433 +2096 1.1337 +2097 1.13289 +2098 1.63791 +2099 1.52118 +2100 1.13083 +2101 1.12892 +2102 1.2419 +2103 1.1273 +2104 1.12608 +2105 1.12605 +2106 1.6716 +2107 1.124 +2108 1.1217 +2109 1.1206 +2110 1.11887 +2111 1.87109 +2112 1.67695 +2113 1.11854 +2114 1.11845 +2115 1.11823 +2116 1.1164 +2117 1.1151 +2118 1.11455 +2119 1.3534 +2120 1.11327 +2121 2.2816 +2122 2.25805 +2123 1.3802 +2124 1.11275 +2125 1.1121 +2126 1.1093 +2127 1.10866 +2128 1.10782 +2129 1.10637 +2130 2.0303 +2131 1.41475 +2132 1.10569 +2133 1.10502 +2134 1.52803 +2135 1.24365 +2136 1.10455 +2137 1.10411 +2138 1.09923 +2139 1.60979 +2140 1.09916 +2141 1.0988 +2142 1.09505 +2143 1.095 +2144 1.39625 +2145 1.0943 +2146 1.0936 +2147 1.09245 +2148 2.1844 +2149 1.0905 +2150 2.439 +2151 1.08915 +2152 1.08905 +2153 1.0865 +2154 1.44115 +2155 1.08593 +2156 1.08575 +2157 1.08553 +2158 1.08424 +2159 1.22583 +2160 1.08367 +2161 1.08283 +2162 1.0852 +2163 1.0823 +2164 1.08175 +2165 1.0801 +2166 1.31487 +2167 1.07982 +2168 1.0798 +2169 1.07974 +2170 1.0787 +2171 1.35795 +2172 1.29195 +2173 1.0785 +2174 1.07846 +2175 1.07693 +2176 3.31205 +2177 1.0743 +2178 1.07368 +2179 1.20445 +2180 1.091 +2181 1.07164 +2182 1.07092 +2183 1.07038 +2184 1.12735 +2185 1.06813 +2186 1.06763 +2187 1.0668 +2188 1.06575 +2189 1.06545 +2190 1.0625 +2191 1.06157 +2192 1.06125 +2193 1.0611 +2194 2.08335 +2195 1.06075 +2196 1.1826 +2197 1.06055 +2198 1.0603 +2199 1.0603 +2200 1.05995 +2201 1.20602 +2202 1.09603 +2203 1.0593 +2204 1.05897 +2205 1.36155 +2206 1.1568 +2207 1.20115 +2208 1.1245 +2209 1.05865 +2210 1.05835 +2211 1.05812 +2212 1.34025 +2213 1.05676 +2214 1.2568 +2215 1.0557 +2216 1.05374 +2217 1.0535 +2218 2.244 +2219 1.05345 +2220 1.05271 +2221 1.051 +2222 1.04967 +2223 1.0465 +2224 1.04622 +2225 1.04873 +2226 1.04615 +2227 1.0461 +2228 1.4884 +2229 1.74983 +2230 1.60215 +2231 1.04575 +2232 1.0455 +2233 1.04544 +2234 1.16981 +2235 1.04265 +2236 1.2159 +2237 1.05442 +2238 1.0426 +2239 1.04161 +2240 1.04125 +2241 1.0398 +2242 1.03597 +2243 1.0353 +2244 1.21023 +2245 1.14285 +2246 1.04195 +2247 1.03463 +2248 1.03445 +2249 1.034 +2250 1.03357 +2251 1.0318 +2252 1.03033 +2253 1.0303 +2254 1.1201 +2255 1.03017 +2256 1.02973 +2257 1.30005 +2258 1.0294 +2259 1.02917 +2260 1.10806 +2261 1.0482 +2262 1.02843 +2263 1.02758 +2264 1.02697 +2265 1.09953 +2266 1.0393 +2267 1.02695 +2268 1.2852 +2269 2.069 +2270 1.11985 +2271 1.1144 +2272 1.11114 +2273 1.02613 +2274 1.02538 +2275 1.025 +2276 1.024 +2277 1.023 +2278 1.02203 +2279 1.022 +2280 1.0585 +2281 1.22615 +2282 1.0212 +2283 1.02104 +2284 1.2219 +2285 1.01891 +2286 1.0188 +2287 1.01793 +2288 1.01767 +2289 1.01725 +2290 1.017 +2291 1.01685 +2292 1.01667 +2293 1.26103 +2294 1.28235 +2295 1.0165 +2296 1.01293 +2297 1.01285 +2298 1.01195 +2299 1.1539 +2300 1.01157 +2301 1.54587 +2302 1.0105 +2303 1.1021 +2304 1.01005 +2305 1.85605 +2306 1.41893 +2307 1.00987 +2308 1.22608 +2309 1.14834 +2310 1.01103 +2311 1.00917 +2312 1.00915 +2313 1.0089 +2314 1.00856 +2315 1.00806 +2316 1.00785 +2317 1.0076 +2318 1.00719 +2319 1.00703 +2320 1.007 +2321 1.0065 +2322 1.00537 +2323 1.00316 +2324 1.003 +2325 1.0023 +2326 1.0022 +2327 1.00215 +2328 1.3218 +2329 1.08461 +2330 1.26045 +2331 1.05997 +2332 1.002 +2333 1.00175 +2334 1.18027 +2335 1.00175 +2336 1.00017 +2337 1.10726 +2338 1.00011 +2339 1.09258 +2340 1.0001 +2341 1 +2342 0.999619 diff --git a/topo_TIN.msh b/topo_TIN.msh index 055c909..1570e35 100644 --- a/topo_TIN.msh +++ b/topo_TIN.msh @@ -2339,9 +2339,9 @@ $Nodes 2334 850 360 40.4211 2335 830 360 45.5722 2336 340 630 112.757 -2337 300 190 15.6154 -2338 350 260 26.3352 -2339 340 260 24.4764 +2337 350 260 26.3352 +2338 340 260 24.4764 +2339 300 190 15.6154 2340 540 1000 1.93313 2341 480 1000 2.29036 2342 440 920 15.8236 @@ -6944,20 +6944,20 @@ $Elements 4590 2 0 2253 342 2336 4591 2 0 336 2011 2336 4592 2 0 2011 2253 2336 -4593 2 0 1175 61 2337 -4594 2 0 1575 1175 2337 -4595 2 0 2251 1575 2337 -4596 2 0 61 1930 2337 -4597 2 0 1930 1749 2337 -4598 2 0 1749 2251 2337 -4599 2 0 441 1735 2338 -4600 2 0 2103 441 2338 -4601 2 0 1735 1641 2338 -4602 2 0 1641 2266 2339 -4603 2 0 2338 1641 2339 -4604 2 0 2101 2103 2339 -4605 2 0 2103 2338 2339 -4606 2 0 2266 2101 2339 +4593 2 0 441 1735 2337 +4594 2 0 2103 441 2337 +4595 2 0 1735 1641 2337 +4596 2 0 1641 2266 2338 +4597 2 0 2337 1641 2338 +4598 2 0 2101 2103 2338 +4599 2 0 2103 2337 2338 +4600 2 0 2266 2101 2338 +4601 2 0 1175 61 2339 +4602 2 0 1575 1175 2339 +4603 2 0 2251 1575 2339 +4604 2 0 61 1930 2339 +4605 2 0 1930 1749 2339 +4606 2 0 1749 2251 2339 4607 2 0 1728 100 2340 4608 2 0 1866 1728 2340 4609 2 0 1986 2030 2341 @@ -9335,9 +9335,9 @@ $NodeData 2334 40.4211 2335 45.5722 2336 112.757 -2337 15.6154 -2338 26.3352 -2339 24.4764 +2337 26.3352 +2338 24.4764 +2339 15.6154 2340 1.93313 2341 2.29036 2342 15.8236