Việc thực thi này được lặp 1 cách đệ quy trên 2 Polyline mới. Nếu ở 1 thời điểm nào đó tất cả các khoảng cách ở giữa nhỏ hơn ngưỡng thì tất cả các điểm ở
giữa được loại bỏ ra. Chương trình sẽ tiếp tục cho đến khi tất cả các Point có thể được loại bỏ.
Các giai đoạn kế tiếp nhau của việc xử lý này được hiển thị trong hình dưới sau:
Hình 2.22. Mơ tả q trình thuật tốn giản lược đỉnh Giả mã của thuật toán DP:
Input: tol = Khoảng dung sai ban đầu
L = {V0,V1,...,Vn-1} n đỉnh của 1 Polyline bất kì
// Đánh dấu các đỉnh sẽ được đơn giản hóa
Khới tạo Mark V0 and Vn
// Sử dụng phép lặp đệ quy với những đỉnh có khoảng cách xa nhất
simplify(tol, L, 0, n);
// Copy những đỉnh đã được đánh dấu ra 1mảng đỉnh mới để tạo Polyline mới
for (i=m=0; i<=n; i++)
{
if (Vi đã được đánh dấu)
{
m++; }
}
Output: W = {W0,W1,...,Wm-1} = Tập đỉnh sau khi đơn giản hóa // Vịng lặp đệ quy simplify(tol, L, j, k) { if (k £ j+1) bỏ qua return else
Kiểm tra khoảng cách từ các đỉnh tới đoạn thẳng nối từcVj tới Vk
Put Sjk = Đoạn thẳng từ Vj tới Vk
Put maxd = 0 là khoảng cách từ đỉnh xa nhất tới Sjk Put maxi = j làchỉ số của đỉnh xa nhất tới Sjk
for each đỉnh Vi (i=j+1,k-1) {
Put dv = Khoảng cách từ Vi tới đoạn Sjk
if (dv <= maxd) then Vi Không phải là đỉnh xa nhất Tiếp tục xét đỉnh tiếp theo
else
Vi Là đỉnh xa nhất
Put maxd = d và maxi = i để nhớ đỉnh xa nhất }
if (maxd > tol) đỉnh xa hơn dung sai tol {
// Chia polyline tại đỉnh cách xa nhất
Đánh dấu Vmaxi là 1 đỉnh của đường thẳng sau khi đơn giản hóa Tiếp tục đệ quy với 2 nửa đường thẳng mới
simplify(tol, L, maxi, k); }
}
c) Tạo tim đối tượng vùng (xương hóa vùng) Ý tưởng:
- Đầu vào là một lớp bản đồ đối tượng dạng vùng gồm n đối tượng
- Duyệt tới từng đối tượng vùng, kiểm tra xem vùng đó có thuộc vào dạng cần được xương hóa hay khơng
- Tiến hành xương hóa vùng với thuật tốn nghiên cứu
- Tìm lân cận của vùng đó, dựa vào xương hóa vùng đó vừa tìm được tiến hành tổng qt hóa.
Thuật tốn:
Có nhiều thuật tốn khác nhau được tìm hiểu để có thể tạo được xương sống cho đối tượng vùng. Ví dụ như các thuật tốn tam giác hóa đa giác theo điều kiện tam giác Delaunay, tạo dịng qt, thuật tốn Medial Axis… Sau đây ta sẽ đi tìm hiểu các thuật tốn thực hiện việc xương hóa như đã nêu.
Thuật tốn thứ 1: Thuật tốn Tạo dịng qt
Việc thực hiện sử dụng dịng qt để tìm được xương cho vùng để thực hiện với những đối tượng vùng có hình dạng tương đối đơn giản.
Ý tưởng của thuật tốn sử dụng dịng qt như sau:
Hình 2.24. Ý tưởng thuật tốn dịng qt
- Lấy tập hợp tất cả các điểm trung bình của các cạnh của đa giác
- Thành lập tập đường thẳng song song với trục hoành từ tập điểm đã có. (trục tung ta làm tương tự)
- Sử dụng thuật toán Vertices Reduce loại đi những đường màu đỏ - Tìm tập đoạn thẳng là giao của tập đường thẳng với vùng
- Tìm được trung điểm của tập đoạn thẳng
- Nối những tập trung điểm đó với nhau tạo thành xương của vùng
Ưu điểm
- Thuật toán dễ cài đặt, triển khai, độ phức tạp thuật tốn khơng cao như thuật tốn Delaunay.
- Thích hợp dị xương đối với những đối tượng cấu trúc đơn giản. - Thời gian chạy thuật tốn dị xương đối tượng nhanh.
Nhược điểm
Thuật toán thứ hai: Thuật toán Delaunay i. Một số khái niệm cơ bản
Cho V là tập hữu hạn các đỉnh trên mặt phẳng R2. Cho E là tập các cạnh mà các điểm đầu cuối là các đỉnh thuộc tập V.
Định nghĩa 1: Lưới tam giác T = (V, E) là một đồ thị phẳng mà mỗi cạnh khơng chứa đỉnh nào khác ngồi hai đỉnh đầu cuối của nó, khơng có hai cạnh nào cắt nhau và tất cả các mặt là những tam giác với hội của chúng là bao lồi của tập đỉnh V.
Định nghĩa 2: Bài toán nối các điểm cho trước trên mặt phẳng bằng các đoạn thẳng không cắt nhau để tạo thành lưới tam giác gọi là bài toán xây dựng lưới tam giác. Về mặt bản chất, bài toán xây dựng lưới tam giác từ tập điểm cho trước là không duy nhất.
Định nghĩa 3: Ta nói rằng lưới tam giác thỏa điều kiện Delaunay nếu bên trong đường tròn ngoại tiếp của mỗi tam giác không chứa bất kỳ điểm nào thuộc lưới tam giác đó.
ii. Kiểm tra điều kiện Dealaunay
Một trong những phép toán quan trọng trong quá trình xây dựng lưới tam giác là kiểm tra thỏa điều kiện Delaunay. Trong thực tế ứng dụng người ta thường sử dụng các phương pháp sau: 1) kiểm tra dựa trên phương trình đường trịn, 2) kiểm tra dựa trên tính tổng của hai góc đối diện.
Trong luận văn tôi sử dụng phương pháp kiểm tra thỏa điều kiện Delaunay dựa trên phương trình đường trịn, cách tiếp cận phương pháp này như sau:
Hình 2.25. Vịng trịn kiểm tra điều kiện Delaunay
Cho ∆ABC là tam giác cần kiểm tra thỏa điều kiện Delaunay và D là một trong số những điểm đã cho. Ta thực hiện với điểm D, còn những điểm sau đó ta thực hiện với việc kiểm tra tương tự
- Tìm tâm của đường trịn (C) ngoại tiếp tam giác ABC - Tính bán kính R của C
- Tính đoạn thẳng d là chiều dài từ tâm của C tới d
- Nếu d > R thì ∆ABC thỏa điều kiện Delaunay, ngược lại thì khơng thỏa mãn.
iii. Ứng dụng điều kiện Delanay trong thực hiện xương hóa vùng
Với thuật toán Delaunay làm cho việc sử dụng của bộ khung của đa giác được xem xét. Bộ xương được xây dựng trên cơ sở của tam giác Delaunay phù hợp với nội thất của đa giác
Các chuỗi sự kiện của đa giác liền kề được kết nối đến điểm gần nhất trên bộ xương và các chi nhánh xương không cần thiết được cắt tỉa. Bộ xương cịn lại sau đó đại diện cho ranh giới mới giữa các đa giác cịn lại.
Hình 2.27. Chuỗi sự kiện thực thi thuật toán Delaunay
(a) Kết nối chuỗi sự việc cho bộ xương và tỉa cành không cần thiết. (b) Các đa giácmẫu trước và sau khi loại bỏ.
(c) Đa giác không lồi phức tạp (trọng tâm nằm ngoài ranh giới đa giác) trước và sau khi loại bỏ.
Để thực hiện việc xương hóa với điều kiện Delaunay ta cần biết một số khái niệm cơ bản về cạnh và tam giác trong lưới tam giác của vùng:
- Cạnh thật: là cạnh của đa giác vùng (cạnh có sẵn)
- Cạnh ảo: là một cạnh của lưới tam giác và được tạo ra từ hai điểm thuộc tập điểm không phải là cạnh thật
- Tam giác được tạo bởi hai cạnh thật và một cạnh ảo (tam giác a) - Tam giác được tạo bởi một cạnh thật và hai cạnh ảo (tam giác b) - Tam giác được tạo bởi ba cạnh ảo (tam giác c)
Hình 2.28. Mơ tả cạnh thật và cạnh ảo
Với hình trên ta có thể lấy điển hình như:
+ Cạnh P12P10 là cạnh ảo + Cạnh P12P11 là cạnh thật
+ Tam giác P12P10P11 là tam giác loại a + Tam giác P12P10P13 là tam giác loại b + Tam giác P1P3P8 là tam giác loại c
Sau khi đã có được các cạnh và tam giác như ý muốn ta tiến hành thực hiện việc tạo khung xương cho vùng với các nguyên tắc sau:
- Với tam giác loại a (2 cạnh thật và 1 cạnh ảo) ta nối trung điểm của cạnh ảo với đỉnh đối điện. ∆ P12P10P11
- Với tam giác loại b (1 cạnh ảo và 2 cạnh thật) ta nối trung điểm của 2 cạnh ảo. ∆P12P10P13
- Với tam giác loại c (3 cạnh ảo), tìm trọng tâm của tam giác, từ trọng tâm tam giác nối tới 3 trung điểm của 3 cạnh ảo. ∆ P1P3P8
Việc tạo liên kết của các điểm như trên dựa trên nguyên tắc thành lập cây nhị phân trong đó có gốc là một điểm thuộc tam giác loại a (đỉnh thuộc đa giác vùng). Từ đó việc tìm đường đi giữa 2 điểm bất kỳ thuộc cây sẽ dễ dàng với các thuật tốn tìm kiếm trên cây nhị phân.
Hình 2.29. Minh họa tìm kiếm trên cây nhị phân Ưu điểm Ưu điểm
- Thuật toán chạy ổn định
- Dị xương được tất cả các đối tượng có cấu trúc từ đơn giản đến phức tạp
Nhược điểm
- Độ khó cài đặt và độ phức tạp của thuật tốn cao hơn thuật tốn dịng qt. - Thời gian chạy thuật tốn dị xương đối tượng lâu hơn.
Qua nghiên cứu về ưu, nhược điểm của các thuật tốn, trong chương trình cài đặt cơng cụ phần mềm hỗ trợ tổng qt hóa tự động cơ sở dữ liệu sơng suối dạng vùng tỉ lệ 1:25 000 về cơ sở dữ liệu tỉ lệ 1: 50 000 tơi sử dụng thuật tốn Delaunay.
Chương 3. THỬ NGHIỆM CƠNG CỤ TỔNG QT HĨA TỰ ĐỘNG YẾU TỐ DẠNG VÙNG
3.1. Khái quát khu vực thử nghiệm
3.1.1. Vị trí địa lý
Sơn La là tỉnh miền núi cao nằm ở phía Tây Bắc Việt Nam trong khoảng 200
39’ - 22002’ vĩ độ Bắc và 103011’ - 105002’ kinh độ Đơng. Sơn La có nhiều núi cao, phía bắc giáp Yên Bái và Lai Châu, phía tây giáp Điện Biên, phía đơng giáp Phú Thọ và Hồ Bình, đơng nam giáp Thanh Hố và Hồ Bình, phía nam giáp Lào.
Luận văn thực hiện tổng quát hóa 04 mảnh tỷ lệ 1: 25 000 gồm: 5851-II-DB, 5851-II-DN, 5851-II-TB, 5851-II-TN về mảnh tỷ lệ 1: 50 000 (5851-II) mô tả cho kết quả quả thử nghiệm. Đây là khu vực chuyển tiếp từ vùng núi cao xuống vùng trung du, nằm hoàn toàn trong tỉnh Sơn La. Là khu vực đã được Cục bản đồ xây dựng cơ sở dữ liệu và thành lập bản đồ năm 2014 dựa trên các nguồn tài liệu: cơ sở dữ liệu tỷ lệ 1: 10 000 của Bộ Tài ngun và Mơi trường, bình đồ ảnh vệ tinh chụp năm 2012, tài liệu địa danh, địa giới.
3.1.2. Đặc điểm địa hình
Địa hình của tỉnh Sơn La chủ yếu là núi và cao ngun. Sơn La có độ cao trung bình 600 - 700m so với mặt biển, địa hình chia cắt sâu và mạnh, 97% diện tích tự nhiên thuộc lưu vực sơng Đà, sơng Mã, có 2 cao nguyên là Cao nguyên Mộc Châu và Cao nguyên Sơn La, địa hình tương đối bằng phẳng. Mạng lưới sơng suối ở đây khá dày đặc, nguồn nước dồi dào, có tiềm năng về thủy điện.
Trong phạm vi thử nghiệm của Luận văn, địa hình 4 mảnh 1: 25 000 thử nghiệm tương đối phức tạp, có khu vực núi cao cắt xẻ mạnh lẫn khu vực địa hình bằng phẳng. Mạng lưới sơng suối nhiều, có một phần sơng Đà chảy qua với độ rộng sông gần 500 mét. Nhiều sông dạng vùng chảy dài với độ rộng từ 15 đến 25 mét, chiều dài hàng chục kilomet.
3.2. Cấu trúc và yêu cầu dữ liệu
3.2.1. Cấu trúc dữ liệu
Cơ sở dữ liệu thử nghiệm là một Geodatabase có cấu trúc gồm các chủ đề dữ liệu hay tập dữ liệu, gọi là Feature Datasets, trong mỗi Feature Dataset có nhiều Feature class (lớp đối tượng) tham gia trực tiếp vào q trình tổng qt hóa.
Chương trình tiến hành thử nghiệm trên một số chủ đề (nhóm lớp) dữ liệu có nhiều lớp dữ liệu dạng vùng và có tính đa dạng về nội dung bản đồ, có cả dữ liệu độc lập và dữ liệu có quan hệ
Các chủ đề được xét đến gồm: - Địa hình
- Thủy hệ - Giao thơng
- Dân cư cơ sở hạ tầng - Phủ bề mặt
3.2.2. Yêu cầu dữ liệu
Dữ liệu cần đảm bảo các yêu cầu cơ bản như sau:
- Yêu cầu về tính chính xác: dữ liệu phải đảm bảo chính xác về dạng hình học của đối tượng, từ đó cung cấp đúng về diện tích và thơng tin liên quan đến đối tượng phục vụ cho nội dung tổng quát hóa.
- Yêu cầu về quan hệ dữ liệu và topology: quan hệ dữ liệu giữa các đối tượng cần phải được chuẩn hóa theo yêu cầu dữ liệu và luật topology đặt ra cho từng lớp, chủ đề và tỉ lệ tương ứng. Đặc biệt lưu ý đến các cảnh báo về dữ liệu chồng vùng, hở vùng, thừa vùng làm ảnh hưởng đến kết quả thực thi chương trình.
Ngồi ra, u cầu tổng qt hóa cho từng lớp là khác nhau. Chẳng hạn, với ngưỡng diện tích, đối với mặt nước tĩnh (ao, hồ) ở tỉ lệ 1:25.000 có diện tích <2500 m2 thì loại bỏ, tuy nhiên, u cầu diện tích cho Bãi đá trên cạn đảm bảo là 18750m2. Đối với chủ đề Thủy hệ và các đối tượng liên quan, yêu cầu tổng quát hóa cho từng nội dung gồm:
- Trên bản đồ thể hiện cả đường bờ và đường mép nước. Khi đường bờ và đường mép nước cách nhau <15 m biểu thị chung thành đường bờ. Những đoạn bờ sông, ao, hồ là đường giao thông hay đập chắn nước, bờ dốc thì dùng các ký hiệu tương ứng để biểu thị thay cho đường bờ nước.
- Sơng, suối tự nhiên, kênh, mương có độ rộng từ 25 m trở lên vẽ theo tỷ lệ; sơng, suối, kênh, mương có độ rộng < 25 m vẽ nửa tỷ lệ vào tâm đối tượng.
- Khi thể hiện mạng lưới thủy văn phải phản ánh đúng đặc điểm mạng lưới hệ thống sông, suối, kênh, mương và mật độ phân bố của chúng. Biểu thị đầy đủ các đặc tính có nước quanh năm, theo mùa; hướng dịng chảy, hướng thủy triều theo các ký hiệu tương ứng.
- Biểu thị hồ, ao có diện tích từ 2500 m2 trở lên, khi diện tích nhỏ hơn 2500 m2 được chọn lọc biểu thị cho vùng hiếm nước, vùng cao nguyên,… biểu thị nguồn nước và tính chất theo đúng ký hiệu bản đồ.
- Các loại thác, ghềnh, bến, bãi phải thể hiện theo quy định của ký hiệu. Biểu thị tất cả các bãi bồi, doi đất, cát trong lịng hồ và sơng 2 nét có diện tích từ 2500 m2 trở lên, đối với khu vực có đường biên giới đi qua có thể biểu thị với diện tích nhỏ hơn. Các đảo phải biểu thị theo quy định, đối với các đảo, bãi,... nhỏ ở tiền tiêu phải biểu thị đầy đủ, có thể cường điệu để thể hiện nhưng phải đảm bảo hình dáng và mối tương quan với các đối tượng khác.
Như vậy, một số loại dữ liệu cần được chú ý hỗ trợ cho thử nghiệm tổng quát hóa của Luận văn như:
- Dữ liệu đảm bảo đủ tiêu chí về diện tích. Ví dụ: Bãi dưới chân bờ xói lở
(dạng vùng): Loại bỏ các đối tượng có diện tích < 18750m2.
- Dữ liệu đảm bảo tiêu chí về diện tích và kích thước đối tượng. Ví dụ: tổng qt hóa đối với lớp sông suối dạng vùng:
+ Giữ nguyên các đối tượng có chiều dài > 750m, chiều rộng > 25m.
+ Giữ nguyên các đối tượng (chiều dài < 750m, chiều rộng > 25m) nhưng có đường biên giới, địa giới đi qua hoặc tham gia làm liên thông mạng lưới thủy hệ.
+ Chuyển các đối tượng sông suối dạng vùng (chiều dài > 750m, chiều rộng < 25m) thành dạng đường. Copy sông suối dạng đường mới tạo thành vào lớp SongSuoiL và xử lý quan hệ không gian với Sông suối L gốc (mở rộng/snap sông suối L gốc vào sông suối A->L).
Sau khi tiến hành tổng quát hóa và chuẩn hóa dữ liệu của các lớp thơng tin trong chủ đề Thủy hệ, cần phải chuẩn hóa tổng hợp tồn bộ hệ thống mạng lưới thủy hệ để bảo đảm tính liên thơng và tính chuẩn về quan hệ khơng gian topology:
- Mở tất cả các đối tượng thuộc mạng lưới dòng chảy (Đường bờ nước; Đường mép nước, Sông suối dạng đường (đã load dữ liệu sông suối vùng chuyển thành đường); Sông suối dạng vùng, Kênh mương dạng đường (đã load dữ liệu kênh mương vùng chuyển thành đường), Kênh mương dạng vùng, Mặt nước tĩnh, Máng dẫn nước; Bãi bồi, Cống giao thơng (chủ đề giao thơng) để kiểm tra tính liên thơng của mạng lưới thủy hệ.
- Kiểm tra sự trùng khít Đường bờ nước, đường mép nước với các đối tượng