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