Ưu điểm
- Thuật tố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 QUÁT 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 nguyên. 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 quá 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 mạng lưới dòng chảy dạng vùng.
- Kiểm tra sự liên thông của mạng lưới dịng chảy giữa Sơng suối, kênh mương, mặt nước tĩnh, …
- Chuẩn hóa chiều dịng chảy của mạng lưới thủy văn từ địa hình cao xuống địa hình thấp tương ứng với điểm đầu, điểm cuối của đối tượng thủy hệ dạng đường.
- Kiểm tra tính phân đoạn của mạng lưới dịng chảy, nối các đối tượng thủy hệ thành dữ liệu tồn tuyến (với những đối tượng phân đoạn khơng hợp lý).
3.3. Xây dựng cơng cụ tổng qt hóa dạng vùng
Luận văn tiến hành thử nghiệm trên cơ sở dữ liệu sông suối dạng vùng tỉnh Sơn La tỉ lệ 1:25 000 theo cấu trúc quy định của Bộ Tài ngun và Mơi trường Việt Nam, tổng qt hóa thành cơ sở dữ liệu tỉ lệ 1: 50 000.
3.3.1. Ngơn ngữ lập trình
Để giải quyết vấn đề tổng qt hóa bản đồ tự động, địi hỏi việc tác động sâu, trực tiếp vào từng thuộc tính của mỗi đối tượng bản đồ để thực thi các thuật toán khác nhau. Với độ phức tạp của thuật toán cũng như số lượng nhiều và liên kết phức tạp của các đối tượng cần có cơng cụ thật sự mạnh có khả năng cung cấp các phương thức cùng với các cơng cụ có khả năng thực hiện các thao tác nhanh chóng và chính xác.
Ngồi việc hỗ trợ tính năng đồ họa cho phép thể hiện các đối tượng khơng gian và kí hiệu bản đồ có tính thẩm mĩ cao, ArcGIS cịn cung cấp chức năng quản trị cơ sở dữ liệu khơng gian và cơ sở dữ liệu thuộc tính của các đối tượng theo mơ
hình hướng đối tượng quan hệ, cho phép quản lý các cơ sở dữ liệu khơng gian kích thước lớn, truy vấn, tìm kiếm nhanh. Ngồi ra, ArcGIS còn cung cấp các chức năng phân tích và xử lý dữ liệu không gian hết sức tiện lợi, làm giảm thiểu tối đa thời gian và công sức của con người phát triển ứng dụng. Hệ thống ArcGIS được xây dựng và mở rộng sử dụng những thành phần mềm được gọi là ArcObject. ArcGIS Engine chính là mơi trường lập trình ứng dụng ArcObject. Sử dụng ArcGIS Engine developer kit, những nhà phát triển ứng dụng có thể xây dựng và mở rộng các ứng dụng GIS tùy ý với những giao diện đơn giản có khả năng truy nhập bất kỳ chức năng nào của GIS. Do đó, trong phạm vi luận văn, tơi lựa chọn ArcGIS Engine là cơng cụ chính để phát triển cơng cụ tổng quát hóa tự động.
a) Giới thiệu bộ thư viện lập trình ArcGIS Engine
ArcGIS Engine là một bộ thư viện phát triển hiện đại nhất của hãng ESRI
cho phép xây dựng các ứng dụng mang tính đặc thù. ArcGIS Engine bao gồm tập lõi các thành phần công nghệ trong sản phẩm ArcGIS Desktop do đó hỗ trợ đầy đủ các chức năng của hệ thống thông tin địa lý. Giải pháp sử dụng công nghệ ArcGIS Engine kết hợp các sản phẩm khác của ESRI (ví dụ như: ArcSDE, ArcGIS Sever, ArcGIS Mobile …) tạo thành một giải pháp toàn diện, dễ dàng triển khai, và mở rộng. Người lập trình phát triển phần mềm có thể sử dụng ArcEngine để tạo nên các ứng dụng thao tác với dữ liệu, thành lập bản đồ, và thực hiện các tác vụ xử lý không gian, bằng cách sử dụng các giao diện lập trình ứng dụng (APIs) dành cho .NET, Java, và C++.
ArcGIS Engine bao gồm năm hợp phần cơ bản:
Base Services: Là phần cốt lỗi của ArcObject cần đến cho hầu như bất kì ứng dụng GIS nào, như việc hiển thị dữ liệu của các đối tượng hình học khơng gian.
DataAccess: Cung cấp truy nhập tới các tính chất khác nhau của các định dạng raster và vector.
Map Presentation: Dùng cho tạo bản đồ và hiển thị các ký hiệu, nhãn… Developer Components: Các điều khiển giao diện người dùng, giúp phát triển các ứng dụng nhanh chóng và một hệ thống trợ giúp hồn chình cho sự phát triển hiệu quả.
Runtime Options: ArcGIS Engine Runtime có thể triển khai với chức năng chuẩn hoặc với các chọn lựa thêm vào cho chức năng nâng cao.
Mỗi phần trong 5 hợp phần trên bao gồm cả những chức năng mở rộng được tạo sẵn thông qua ArcGIS Engine SDK. ArcGIS Engine SDK là sản phẩm phát triển phần mềm cơ bản để xây dựng và triển khai ứng dụng GIS tùy chỉnh và các ứng dụng bản đồ. ArcGIS Engine developer kit là một bộ công cụ cho các nhà phát triển ứng dụng có thể sử dụng:
+ Xây dựng các ứng dụng GIS với các controls tự phát triển.
+ Xây dựng các ứng dụng GIS để tạo, hiển thị, chỉnh sửa các đối tượng đồ họa, bao gồm points (đối tượng dạng điểm), lines (đối tượng dạng đường), circles (đối tượng dạng hình trịn), và polygons (đối tượng dạng vùng) .
+ Thực hiện các tác vụ phân tích khơng gian trên đối tượng như tạo vùng đệm (buffer), tính tốn khoảng cách, xác định vùng giao nhau (intersection), hợp các đối tượng (union).
+ Thực hiện các phân tích mạng lưới và giải quyết các bài tốn tìm đường tối ưu, tìm tài sản gần nhất, và ra quyết định về đường đi.
ArcGIS Engine có thể được nhúng trong các mơi trường lập trình ứng dụng khác nhau. Tuy nhiên, môi trường Microsoft.NET là giải pháp tối ưu nhất. Microsoft.Net gồm 02 thành phần chính: Frameword và Integrated Develoment Environment (IDE). Thành phần Framework là quan trọng nhất và là cốt lõi của .NET, cịn IDE là cơng cụ để phát triển trên nền tảng .NET.
b) Giới thiệu ngơn ngữ lập trình C# thuộc Bộ phần mềm Visual Studio 2010 Bộ phần mềm Visual Studio
Microsoft Visual Studio là môi trường phát triển tích hợp chính (Integrated
Development Environment (IDE) được phát triển từ Microsoft. Đây là một loại phần mềm máy tính có cơng dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm.
Các môi trường phát triển hợp nhất thường bao gồm:
+ Một trình soạn thảo mã (source code editor): dùng để viết mã. + Trình biên dịch (compiler) và/hoặc trình thơng dịch (interpreter).
+ Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện liên kết (linking), và có thể chạy chương trình một cách tự động.
+ Trình gỡ lỗi (debugger): hỗ trợ dị tìm lỗi.
+ Ngồi ra, cịn có thể bao gồm hệ thống quản lí phiên bản và các cơng cụ nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ họa (GUI). + Nhiều môi trường phát triển hợp nhất hiện đại cịn tích hợp trình duyệt lớp (class browser), trình quản lí đối tượng (object inspector), lược đồ phân cấp lớp (class hierarchy diagram),… để sử dụng trong việc phát triển phần mềm theo hướng đối tượng.
Bộ Microsoft Visual Studio.NET bao gồm vừa mọi công cụ hỗ trợ lập trình và ngơn ngữ lập trình .NET, như: Visual Basic.NET (VB.NET), C# (C Sharp), Visual C++.NET và Visual J#.NET. Một trong những công cụ quan trọng là Microsoft Visual Studio.NET Intergrated Development Environment (IDE). IDE giúp ta lập trình Visual Basic.NET (VB.NET) dễ dàng và tiện lợi. IDE không những cung cấp mọi cơng cụ lập trình cần thiết khơng thể tìm thấy ở một ứng dụng (Application) soạn nguồn mã thơng thường bằng chữ (text editor) mà cịn giúp kiểm tra nguồn mã (code checking) hay tạo giao diện Windown thích hợp và hiển thị, truy tìm các tập tin liên hệ đến dự án (project) và nhiều thứ khác nữa.
Như vậy, bộ phần mềm này được dùng để phát triển console (thiết bị đầu cuối - bàn giao tiếp người máy) và GUI (giao diện người dùng đồ họa) cùng với các trình ứng dụng như Windows Forms, các web sites, cũng như ứng dụng, dịch vụ web (web applications, and web services). Chúng được phát triển dựa trên một mã ngôn ngữ gốc (native code ) cũng như mã được quản lý (managed code) cho các nền tảng được được hỗ trợ Microsoft Windows, Windows Mobile, .NET Framework, .NET Compact Framework và Microsoft Silverlight. Visual Studio hỗ trợ rất nhiều ngôn ngữ lập trình, có thể kể tên như sau: C/C++ ( Visual C++), VB.NET (Visual Basic .NET), va C# (Visual C#)… cũng như hỗ trợ các ngôn ngữ khác như F#, Python, và Ruby; ngồi ra cịn hỗ trợ cả XML/XSLT, HTML/XHTML, JavaScript và CSS…
Ngơn ngữ lập trình C#
Mơi trường lập trình ứng dụng: Chương trình mới được phát triển trong môi trường Dot.net, bằng ngơn ngữ lập trình C#. Mơi trường phát triển: sử dụng bộ thư viện đồ họa MapObject của hãng ESRI hoặc bộ thư viện ArcObject trong môi trường ArcGIS. Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được dựng sẵn. Trong ngôn ngữ C# mọi thứ liên quan đến lớp đều được tìm thấy trong phần khai báo của nó.
Định nghĩa một lớp trong ngôn ngữ C# khơng địi hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++. Tuy nhiên, ngơn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng.