2.1.2 Phƣơng hƣớng giải quyết
STT Lỗi bản v Phƣơng án hắc phục
1 Không tuân thủ theo Quyết định 21/2015/QĐ-BXD, Quyết định số 03/2008/QĐ-BXD hoặc hƣớng dẫn của Viện
Sao chép đối tƣợng giữa các bản vẽ thiết kế và bản vẽ mẫu để kế thừa các thông số mà không cần chỉnh sửa thủ công (lỗi gây ra sự không thống nhất giữa các bản vẽ).
2 Sai toạ độ (vị trí) Do dùng công cụ move đối tƣợng trong bản vẽ. Cần kiểm tra sự chính xác của các đối tƣợng không gian với nhau và với các bản vẽ khác. 3 Các đối tƣợng trong bản vẽ bị
nhầm layer
Lỗi do tính chủ quan của ngƣời thiết kế. Dùng các công cụ bật tắt layer để kiểm tra các đối tƣợng cùng loại có cùng layer không. 4 Các vùng bao (ranh giới, sử dụng
đất…) không khép kín
Lỗi do bắt điểm sai hoặc do vẽ nhầm layer. Sử dụng lệnh vẽ Polyline và đóng vùng (close) khi kết thúc.
5 Các đối tƣợng bị chồng đè, đứt đoạn
Lỗi này không ảnh hƣởng tới chất lƣợng bản vẽ sau in, tuy nhiên khi sử dụng thƣờng gây khó khan trong quản lý đối tƣợng. Cần chú ý trong quá trình vẽ.
6 Đặt tham số độ cao khác 0 cho các đối tƣợng (trừ đƣờng đồng mức…)
Đối với các đối tƣợng không cần đặt tham số độ cao cần đƣa giá trị cao độ về 0.
7 Phân lớp (layer) không tuân thủ quy định chung, có nhiều layer rác
Tiêu chuẩn hóa cách tổ chức các tầng trong bản vẽ CAD phục vụ mục đích chuyển đổi sang dữ liệu GIS.
2.2 Đề xuất tiêu chuẩn cho bản v CAD để chuyển đổi tự động vào CSDL địa lý
2.2.1 Các yêu cầu kỹ thuật
Để thuận tiện cho công tác chuyển đổi dữ liệu, các bản vẽ AutoCAD ngoài việc tuân thủ các quy định thể hiện còn cần phải đáp ứng các yêu cầu sau:
– Bản vẽ đƣợc vẽ trên Hệ tọa độ VN2000, kinh tuyến trục 105, múi chiếu 3o, đơn vị mét;
– Vẽ đúng tọa độ (không đƣợc “move” tới vị trí khác);
– Vẽ đúng layer (không đƣợc vẽ đối tƣợng của layer này sang layer khác,1 lớp đối tƣợng vẽ ở nhiều layer vv…);
– Đặt tên cho layer cần thống nhất theo quy định chung;
– Quan hệ không gian giữa các đối tƣợng phải đảm bảo: không bị hở, đứt đoạn... ;
– Tất cả các đối tƣợng đều phải đăt tham số elevation bằng 0 (trừ các đối tƣợng là đƣờng đồng mức hoăc các đối tƣợng khác có cao độ trong thực tế);
– Các vùng hatch phải có đƣờng bao kín (boundary);
2.2.2 Các khuyến cáo về tổ chức dữ liệu
Qua khảo sát hiện trạng sử dụng các bản vẽ AutoCAD cho thấy hiện nay phần lớn việc đặt tên các layer không theo một quy tắc chung. Điều này dẫn tới nhiều khó khăn trong việc quản lý nội dung, trao đổi thông tin giữa các bản vẽ và đặc biệt trong quá trình chuyển đổi dữ liệu sang GIS. Do đó, cần thiết xây dựng một quy cách đặt tên layer thống nhất.
Quy cách đặt tên 1 layer nhƣ sau:
“Feature dataset”_ “Feature class”_ “ u Feature class”_ “ u d liệu” Trong đó:
– Feature dataset : là tên chủ đề trong Cấu trúc cơ sở dữ liệu GIS. Ví
dụ: QuyHoachSuDungDat, QuyHoachGiaoThong...
– Feature class: tên của lớp đối tƣợng. Ví dụ: ChucNangSuDungDat, BoVia, MangLuoiCapNuoc...
– Sub Feature class: tên của lớp đối tƣợng mà muốn gộp (merge) vào
Feature class. Ví dụ: DatHonHop, DatTruongHoc, DatCayXanh
hợp Feature class chỉ chứa 1 loại đối tƣợng thì Sub Feature Class chính là Feature Class.
– u d l ệu: là giá trị quy ƣớc tƣơng ứng với từng kiểu dữ liệu của feature class theo yêu cầu chuyển đổi dữ liệu:
M iểu
dữ liệu iểu dữ liệu
0 Polyline 1 Polygon 2 Point 01 Polyline và Polygon 02 Polyline và point 12 Polygon và Point Ví dụ:
+ Layer thể hiện “Đất quân sự” trong bản vẽ AutoCad sẽ đƣợc đặt tên là:
QuyHoachSuDungDat_ChucNangSuDungDat_DatQuanSu_1
+ Layer thể hiện “Bó vỉa” trong bản vẽ AutoCad sẽ đƣợc đặt tên là:
QuyHoachGiaoThong_BoVia_BoVia_0
2.3 Phát triển công cụ chuyển đổi dữ liệu địa lý
2.3.1 Cách tiếp cận, lựa chọn công nghệ và môi trƣờng phát triển
2.3.1.1 Python
Python là ngôn ngữ kịch bản hƣớng đối tƣơng (object-oriented scripting language). Không chỉ vậy, nó còn là một ngôn ngữ cấp cao có khả na ng thông dịch (interpreted language) và có tính tƣơng tác (interactive language) cao.
Nhờ chức na ng thông dịch mà trình thông dịch (Interpreter) của Python có thể xử lý lẹ nh tại thời điểm chạy chƣơng trình (runtime). Nhờ đó mà ta không cần biên dịch chƣơng trình trƣớc khi thực hiẹ n nó (tƣơng tự nhƣ Perl và PHP).
Tính na ng tƣơng tác của Python giúp ta có thể tƣơng tác trực tiếp với trình thông dịch của nó ngay tại dấu nhắc lẹ nh. Cụ thể: Ta có thể thực hiẹ n lẹ nh mọ t cách
trực tiếp tại dấu nhắc của Python. Python hỗ trợ mạnh cho phong cách lạ p trình hƣớng đối tƣợng và kỹ thuạ t lạ p trình gói mã trong đối tƣợng.
Mạ c dầu Python đƣợc xem là ngôn ngữ lạ p trình dành cho những ai mới làm quen với viẹ c lạ p trình trên máy tính, nhƣng nó hỗ trợ mạnh cho viẹ c phát triển nhiều loại ứng dụng khác nhau, từ các chƣơng trình xử lý va n bản đơn giản đến các ứng dụng web, đến các chƣơng trình game, v.v.
- Python đƣợc phát triển tại Viẹ n Nghiên cứu Quốc gia về Toán học và Khoa học Máy tính Hà Lan bởi Guido van Rossum vào những na n 80-90 của thế kỷ trƣớc. Hiẹ n nay Python đƣợc duy trì và phát triển bởi nhóm phát triển core của viẹ n này.
- Python đƣợc phát triển từ nhiều ngôm ngữ khác nhau: ABC, Modula-3, C, C++, Algol-68, SmallTalk, Unix Shell và các ngôn ngữ script khác. Tƣơng tự nhƣ Perl, Python là ngôn ngữ có bản quyền, hiẹ n nay mã nguồn của nó đƣợc phát hành theo GNU - General Public License (GPL).
- Python có điểm chạ t chẽ rất giống với ngôn ngữ tiếng Anh, sử dụng những từ nhƣ 'not' và 'in' nên khi bạn đọc mọ t chƣơng trình, script, hoạ c khi đọc to cho ngƣời khác nghe mà không cảm thấy giống nhƣ bạn đang nói mọ t thứ ngôn ngữ bí mạ t nào đó. Điều này cũng đƣợc hỗ tr bởi các quy tắc chấm phẩy câu rất nghiêm ngạ t của Python, có nghĩa là bạn không có những dấu ngoạ c nhọn ( ) trong code của bạn.
- Ngoài ra, Python có mọ t tạ p hợp các quy tắc, đƣợc gọi là PEP 8, để hƣớng dẫn mọi lạ p trình viên Python làm thế nào để định dạng code của họ. Điều này có nghĩa là bán luôn biết đƣợc nơi để đạ t những dòng mới, và quan trọng hơn, đó là mọi script Python mà bạn tham khảo, cho dù nó đƣợc viết bởi mọ t lính mới hay bởi mọ t chuyên gia dày dặn kinh nghiẹ m, sẽ nhìn rất giống nhau và rất dễ đọc.
- Python đã tồn tại khoảng hơn 20 na m, vì vạ y có rất nhiều code viết bằng Python đƣợc xây dựng qua nhiều thạ p kỷ, và là mọ t ngôn ngữ mã nguồn mở, rất nhiều trong số này đƣợc phát hành cho ngƣời khác sử dụng. Hầu nhƣ tất cả chúng đƣợc tạ p hợp lại trên trang web https://pypi.python.org, bạn phát âm nó là "pie-pee- eye", hoạ c còn đƣợc gọi bằng mọ t cái tên phổ biến hơn là "the CheeseShop". Bạn có thể cài đặt phần thể mềm này lên hẹ thống của bạn để sử dụng bởi cácdựáncủariêng bạn.Vídụ,nếu bạnmuốnsửdụngPythonđểxây dựng những script với các đối số dòng lẹ nh, bạn nên cài đạ t thƣ viẹ n click và sau đó import nó vào trong các script của bạn rồi sử dụng nó. Có những thƣ viẹ n sử dụng đƣợc cho khá nhiều
trƣờng hợp từ thao tác với hình ảnh, cho tới tính toán khoa học, và tự đọ ng hóa máy chủ.
- Python có nhiều nhóm ngƣời sử dụng ở khắp mọi nơi, thƣờng đƣợc gọi là các PUG, và họ tiến hành những cuọ c họ i thảo lớn trên tất cả mọi châu lục ngoại trừ Nam Cực. PyCon NA, họ i nghị về Python lớn nhất ở Bắc Mỹ, đã bán ra 2.500 vé trong na m nay. Họ i nghị này phản ánh cam kết đa dạng hóa của Python, vì có trên 30 diễn giả là phụ nữ.
2.3.1.2 Arcpy
ArcPy là bọ thƣ viẹ n của ArcGIS sử dụng ngôn ngữ lạ p trình Python. Arcpy mang lại sự tiẹ n lợi và hiẹ u quả trong viẹ c phân tích dữ liẹ u địa lý, chuyển đổi dữ liẹ u, quản lý dữ liẹ u và tự đọ ng hóa bản đồ với Python. Nó dễ hiểu, rõ ràng, tƣơng tác tốt và xây dựng nhanh chóng các Scripts cho mọ t công cụ hay mọ t ứng dụng lớn trong ArcGIS. Nhƣ chúng ta đã biết, ArcGIS là mọ t bọ phần mềm GIS đến từ ESRI cho phép ngƣời dùng có thể chỉnh sửa, hiển thị hay đƣa ra các phép phân tích phức tạp các dữ liẹ u không gian mọ t cách đơn giản và tiẹ n lợi hơn nhiều so với các phần mềm GIS khác nhƣ QGIS, TatukGIS, v.v. Đồng thời ArcGIS cũng cho phép các nhà phát triển phần mềm dễ dàng xây dựng các ứng dụng từ bên thứ 3 dƣới dạng Toolbox hay Add-In để tích hợp vào sản phẩm của họ sử dụng các bọ thƣ viẹ n có sẵn. ArcPy là mọ t bọ thƣ viẹ n nhƣ vạ y, nó cung cấp các chức na ng mạnh mẽ trong viẹ c xử lý và chuyển đỗi dữ liẹ u không gian. Từ phiên bản 10.2, ArcGIS cho phép xây dựng trực tiếp các Toolbox trên sản phẩm của mình. Thay vì phải định nghĩa Toolbox và viết mã nguồn riêng rẽ ở bên ngoài trƣớc khi đƣa vào ArcGIS, các nhà phát triển chỉ cần định nghĩa toàn bọ các thành phần trong ứng dụng của mình trong tẹ p *.pyt duy nhất.Chính vì sự mạnh mẽ và tiẹ n lợi mà ArcPy và ArcGIS đem lại, em đã lựa chọn công nghẹ này để sử dụng cho viẹ c phát triển ứng dụng chuyển đổi dữ liẹ u từ CAD sang GIS.
Để có thể sử dụng đƣợc phần mềm này, ngƣời dùng cần cài cài đạ t bọ phần mềm ArcGIS trên máy tính của mình. Và để ta ng hiẹ u na ng xử lý dữ liẹ u, máy tính của ngƣời dùng cần tối thiểu 2GB RAM, hẹ điều hành Windows XP trở lên có bọ xử lý 32 bit hoạ c 64 bit cùng với trình biên dịch Python 2.7 để có thể thực thi đƣợc mã nguồn của phần mềm.
2.3.2 Khung phát triển plug-in cho hệ thống GIS
Hình 2.3. Sơ đồ quy tr nh huy n đ i ữ iẹu CAD sang GIS
Bƣớc 1: Ngƣời dùng chọn dữ liẹ u CAD cần chuyển đổi để đƣa vào phần mềm. Chú ý dữ liẹ u CAD đƣợc sử dụng có phần mở rọ ng là *.dwg. Tiếp đến ngƣời dùng chọn lƣới chiếu không gian đƣợc sử dụng cho dữ liẹ u GIS và phần mềm sẽ tiến hành chuyển đổi dữ liẹ u CAD sang dữ liẹ u GIS dạng thô.
Bƣớc2: Từ dữ liẹ u GIS dạng thô phần mềm sẽ tiến hành lọc và loại bỏ các thông tin dƣ thừa trong dữ liẹ u GIS dạng thô để dữ liẹ u sạch hơn.
Bƣớc 3: Sau khi loại bỏ các thông tin dƣ thừa, phần mềm sẽ tiến hành phân lớp các dữ liẹ u dựa trên thông tin đƣợc chiết xuất sau khi chuyển đổi từ dữ liẹ u CAD sử dụng chuẩn.
Bƣớc 4: Các dữ liẹ u đƣợc phân lớp sẽ đƣợc phần mềm lƣu trong 1 tẹ p *.gdb đƣợc định nghĩa trƣớc để tạo thành cơ sở dữ liẹ u GIS hoàn chỉnh cho ngƣời dùng sử dụng.
2.4 Phân tích thiết kế công cụ hỗ trợ chuyển đổi dữ liệu địa lý 2.4.1 Mô hình ca sử dụng 2.4.1 Mô hình ca sử dụng
Hình 2.4. Mô hình ca sử dụng của phần mềm
2.4.2 Mô tả ca sử dụng
Tải dữ liệu CAD
Use case này cho phép ngƣời dùng chọn dữ liệu CAD cần chuyển đổi để đƣa vào phần mềm.
Ngƣời dùng lựa chọn file dạng *.dwg
Chọn lƣới chiếu
Cho phép ngƣời sử dụng chọn lƣới chiếu
Nhập địa chỉ lƣu trữ
Ngƣời sử dụng chọn địa chỉ lƣu trữ, dữ liệu sau khi chuyển đổi sẽ đƣợc lƣu trữ trong địa chỉ đã chọn.
2.4.3 Biểu đồ lớp
Hình 2.5. Bi u đồ lớp của phần mềm
2.4.4 Thiết kế lớp
Dựa vào biểu đồ phân tích trên, phần mềm đƣợc thiết kế gồm các lớp giao diện và các lớp điều khiển sau:
2.4.4.1 Lớp giao diện
Lớp giao diện chính của phần mềm
Lớp này thiết kế giao diện chính của phần mềm. Tại form này ngƣời sử dụng sẽ thực hiện việc tải tệp dữ liệu CAD, lựa chọn phép chiếu, nhập địa chỉ lƣu trữ cho tệp tin sau khi chuyển đổi và chạy phần mềm.
Lớp giao diện tải dữ liệu CAD
Hình 2.7. Lớp giao diện tải dữ liệu CAD
Lớp này thiết kế giao diện cho phép ngƣời dùng tìm và lựa chọn tệp dữ liệu CAD đƣợc lƣu trữ trong bộ nhớ và đọc nội dung của tệp CAD.
Lớp giao diện nhập địa chỉ lƣu trữ
Hình 2.8. Lớp giao diện nhập địa chỉ ưu trữ
Lớp này thiết kế giao diện cho phép ngƣời dùng nhập địa chỉ lƣu trữ cho dữ liệu sau khi chuyển đổi thành công.
2.4.4.2 Lớp điều khiển
Hình 2.9. Lớp điều khi n
Lớp này làm nhiệm vụ lấy thông tin tệp CAD, lƣới chiếu, địa chỉ lƣu trữ và tiến hành các bƣớc chuyển đổi dữ liệu, sau khi chuyển đổi thành công thì tiến hành lƣu trữ dữ liệu.
CHƢƠNG 3: KẾT QUẢ CÀI ĐẶT VÀ THỬ NGHIỆM
Trong chƣơng 2 tác giả đã trình bày chi tiết việc xây dựng plug-in chuyển đổi dữ liệu địa lý vào phần mềm ArcGIS. Chƣơng này, tác giả sẽ trình bày kết quả thực nghiệm khi chuyển đổi các bộ dữ liệu thuộc các nhóm nội dung khác nhau của Viện Quy Hoạch xây dựng Hà Nội.
3.1 Tổ chức thực nghiệm
3.1.1 Môi trƣờng thực nghiệm
Sử dụng máy tính hệ điều hành Window 8, Ram 4GB Phần mềm ArcGIS phiên bản 10.4.1
3.1.2 Dữ liệu thực nghiệm
Dữ liệu sử dụng chạy thử là dữ liệu CAD của Viện Quy hoạch xây dựng Hà Nội ở trên nhóm nội dung
Hồ sơ quy hoạch:
- Hiẹ n Trạng (05 nhóm thông tin)
− Sơ đồ vị trí và giới hạn khu đất − Hiẹn trạng sử ụng đất
− Hiẹn trạng i n tr ảnh qu n và đánh giá đất y ng − Hiẹn trạng hạ tầng ỹ thuạt
– Hiẹn trạng môi trư ng
- Quy hoạch (13 nhóm thông tin ) − Cơ ấu quy hoạ h − uy hoạ h sử ụng đất,
− uy hoạ h h ng gi n i n tr ảnh qu n − uy hoạ h gi o th ng
− uy hoạ h hu n ị ỹ thuạt; − uy hoạ h thoát nước mưa; − uy hoạ h ấp nướ
− uy hoạ h thoát nướ thải và vẹ sinh môi trư ng − uy hoạ h ấp điẹn;
− uy hoạ h th ng tin i n ạ − uy hoạ h ng tr nh ngầm
− ng h p đư ng y đư ng ng ỹ thuạt − Đánh giá m i trư ng hi n ư c
Hồ sơ Chỉ giới đƣờng đỏ và hạ tầng ỹ thuạt − á định hỉ giới đư ng đ
− iới thiẹu hướng tuy n hạ tầng ỹ thuạt − Sơ đồ vị trí
− m m tuy n đư ng
− hạm vi n ng ấp ải tạo đư ng
− iới hạn hành ng ảo vẹ á tuy n hạ tầng ỹ thuạt Tổng số dữ liệu chạy thử là 70Mb.
3.2 Kết quả thử nghiệm chƣơng trình
3.2.1 Một số giao diện chƣơng trình và hƣớng dẫn thao tác
Hình 3.1. Giao diẹn phần mềm huy n đ i ữ iẹu CAD sang GIS
Đây là giao diện chính của phần mềm, các chức năng của button nhƣ sau: Button CAD Dataset: Mở giao diện chọn tệp giữ liệu CAD.
Hình 3.2. Giao diện chọn dữ liệu CAD
Hình 3.3. Giao diện chọn ưới chi u
Button Output Fordel: Mở giao diện chọn vùng lƣu trữ cho dữ liệu sau khi chuyển đổi thành công.
Hình 3.4. Giao diện chọn vùng ưu trữ cho dữ liệu sau khi chuy n đ i
Khi đã chọn đầy đủ các thông tin cho các mục, ấn button OK để bắt đầu chuyển đổi, ấn button Cancel để thoát chƣơng trình.
3.2.2 Hiển thị kết quả
Một số kết quả chuyển đổi dữ liệu CAD sang GIS. Kết quả chuyển đổi bản vẽ quy hoạch.
Hình 3.5. Bản vẽ quy hoạ h ạng s u hi đư huy n đ i
Hình 3.6. Dữ liệu thuộc tính của CSDL Quy hoạch
Hình 3.7. Bản vẽ chỉ giới đư ng đ dạng GIS sau khi chuy n đ i