Khi bạn đã tạo tập lệnh Python, bạn có thể lưu nó dưới dạng chức năng hộp công cụ mới và thậm chí tạo nút công cụ cho nó
Ghi chú. Python có một số khả năng để tạo các thành phần giao diện người dùng như hộp thoại nhưng ESRI không còn hỗ trợ việc nhà phát triển thêm tiện ích mở rộng vào ArcGIS có giao diện người dùng phức tạp. Hiện tại, hãy sử dụng các thành phần giao diện người dùng do Esri cung cấp và chúng ta sẽ nói về việc sử dụng các thành phần giao diện người dùng khác trong tương lai
1. Tạo tập lệnh để sử dụng trong hộp công cụ
Tập lệnh cho các công cụ hộp công cụ rất giống với tập lệnh Python thông thường mà chúng tôi đã tạo. Sự khác biệt chính là bạn sẽ cần đọc các tham số mà người dùng đặt trong hộp thoại công cụ. Chúng được truyền qua "tham số". Tập lệnh Python của bạn sẽ đọc các giá trị của tham số thành các biến mà bạn có thể sử dụng trong tập lệnh của mình. Mã bên dưới sẽ đọc trong tham số đầu tiên hiển thị dưới dạng thông báo trong hộp thoại. Nhập mã này vào rồi tiếp tục tạo tool
import arcpy TheFirstParameter=arcpy.GetParameterAsText[0] arcpy.AddMessage["TheFirstParameter="+TheFirstParameter]
3. Tạo một công cụ hộp công cụ từ một tập lệnh
- Mở ArcCatalog
- Mở "Hộp công cụ"
- Nhấp chuột phải vào "Hộp công cụ của tôi" và chọn "Mới -> Hộp công cụ"
- Điều này có vẻ lạ nhưng đừng chọn "Mới -> Hộp công cụ Python". Đây là một cách phức tạp hơn để thêm các tập lệnh Python vào ArcMap và chúng ta sẽ nói về chúng sau khi thực hiện phương pháp đơn giản
Ghi chú. Nếu bạn muốn phân phối công cụ của mình, KHÔNG tạo nó trong "Hộp công cụ của tôi". Thư mục này nằm trong thư mục "Tài liệu và cài đặt" của bạn và có thể bị ẩn khỏi bạn. Bạn có thể không phân phối được vì bạn sẽ không thể tìm thấy nó. Thay vào đó, hãy tạo công cụ trong "Kết nối thư mục" tới một thư mục mà bạn có thể dễ dàng tìm thấy
- Đặt cho hộp công cụ mới một cái tên hay
- Nhấp chuột phải vào hộp công cụ mới và chọn "Add->Script. "
- Đưa ra kịch bản và tên và nhãn thích hợp
- Đảm bảo rằng Lưu trữ tên đường dẫn tương đối được chọn hoặc bạn sẽ không thể di chuyển các công cụ của mình sang một thư mục khác và nhấp vào Tiếp theo
- Trong hộp thoại xuất hiện, duyệt đến tệp tập lệnh của bạn
- Bạn có thể muốn kiểm tra Hiển thị cửa sổ lệnh khi thực thi tập lệnh ít nhất để gỡ lỗi
- Bấm tiếp
- Hộp thoại tiếp theo là để xác định các tham số đi vào tập lệnh của bạn. Bắt đầu bằng cách nhấp vào ngay bên dưới Tên hiển thị và đặt tên hay cho tham số đầu tiên như Lớp đầu vào. Hãy nhớ rằng đây có thể là đường dẫn tệp hoặc tên của một lớp được tải vào ArcGIS [ArcGIS sẽ lưu tệp vào một vị trí tạm thời và sau đó tải đầu ra từ tệp vào một lớp mới]
- Nhấp ngay bên dưới Loại dữ liệu và chọn Lớp tính năng
- Trong dòng tiếp theo, thêm Tên hiển thị cho Thuộc tính và đặt Loại dữ liệu thành Trường. Đây là cách bạn thêm một lựa chọn cho một cột thuộc tính trong một công cụ
- Chúng ta cần cho ArcMap biết lớp nào sẽ lấy các thuộc tính từ đó xuống trong Thuộc tính tham số, nhấp vào Đã lấy từ và chọn Lớp đầu vào. Điều này liên kết Lớp đầu vào của chúng tôi với Thuộc tính tham số
- Thêm một tham số khác, Lớp đầu ra và chọn Lớp tính năng cho loại dữ liệu
- Đối với Lớp đầu ra, chúng ta cần cho ArcGIS biết rằng đây là lớp sẽ được lưu thay vì lớp đã tồn tại. Với Lớp đầu ra được chọn, nhấp vào Hướng trong Thuộc tính tham số và chọn Đầu ra
- Đối với tên tham số cuối cùng, nó giống như Khoảng cách và sau đó chọn Chuỗi cho kiểu dữ liệu
Ghi chú. Bạn có thể đã xem xét "Double" hoặc một loại số khác cho khoảng cách. Bạn có thể làm điều này nhưng nếu bạn xem tài liệu trợ giúp ESRI, bạn sẽ thấy rằng chúng luôn có tất cả các tham số dưới dạng chuỗi. Đây không phải là cách thực hành mã tốt nhất nhưng nó cho phép bạn thêm một đơn vị vào khoảng cách, chẳng hạn như "100 mét"
Xong tool chạy thử xem có nhận hộp thoại với tham số mình gõ vào không. Bây giờ hãy thử nó cho các thông số khác. Dành thời gian thử các tham số khác nhau trong công cụ và hiển thị chúng trong hộp thông báo
4. Các kiểu dữ liệu phổ biến
Bạn có thể nhận thấy rằng có rất nhiều loại dữ liệu có sẵn. Dưới đây là danh sách những cái bạn có thể thường sử dụng
- Bộ tính năng - Một shapefile hoặc một bộ tính năng trong Cơ sở dữ liệu địa lý
- Lớp raster - Một tệp raster [img, tif, v.v. ] hoặc raster trong Cơ sở dữ liệu địa lý
- Chuỗi - Bất kỳ chuỗi văn bản nào
- Double - Giá trị dấu phẩy động 64 bit
- Trường - Một cột trong bảng thuộc tính từ một bộ tính năng
- Dài - Số nguyên 64 bit
- Ngày - Chuỗi ngày được định dạng ở Hoa Kỳ
Lưu ý rằng loại số nguyên duy nhất là "Long" và loại dấu phẩy động duy nhất là "Double"
5. Công cụ chia sẻ
Thực sự rất dễ dàng để chia sẻ các công cụ đơn giản trong ArcGIS. Chỉ cần đặt tập lệnh Python của bạn vào một thư mục có thể truy cập dễ dàng, sau đó tạo công cụ của bạn trong cùng một thư mục thông qua Kết nối thư mục [i. e. không phải Hộp công cụ của tôi]. Bạn sẽ muốn cho phép người dùng đặt công cụ ở bất kỳ đâu trong cấu trúc thư mục của họ, vì vậy hãy kiểm tra tùy chọn sử dụng đường dẫn tương đối và đảm bảo đường dẫn tập lệnh chỉ bao gồm tên của tệp tập lệnh. Bạn cũng sẽ muốn đảm bảo rằng tập lệnh Python của bạn chỉ sử dụng các đường dẫn do người dùng cung cấp [hoặc bởi ArcGIS như không gian làm việc]
ArcMap giúp dễ dàng thêm trợ giúp vào các công cụ của bạn. Nhấp chuột phải vào công cụ và chọn Thuộc tính rồi chọn tab Chung. Nếu bạn thêm văn bản vào hộp Mô tả, nó sẽ xuất hiện trong bảng trợ giúp bên cạnh công cụ của bạn. Ngoài ra, hãy cung cấp các thông số tốt, rõ ràng, tên cho những gì người dùng sẽ nhập. Bạn thậm chí có thể thêm tên tham số bao gồm các hạn chế đối với tham số như
Output path for the image [only 'png' and 'jpg' files are supported]:
Xem phần 7. 4 để biết thêm thông tin về các công cụ lập tài liệu
Đảm bảo tập lệnh Python của bạn cung cấp các thông báo lỗi tốt giúp người dùng xác định điều gì đã xảy ra. Có thể bạn đã biết rằng không có gì khó chịu hơn là chạy một chương trình phần mềm và nhận được thông báo mà bạn không thể hiểu hoặc không có thông báo nào khi xảy ra sự cố. Bây giờ đến lượt bạn trở thành nhà phát triển mà mọi người đánh giá cao hoặc ghét
6. Kiểm tra tập lệnh của bạn
Có rất nhiều phiên bản ArcGIS hiện có và sẽ chỉ có nhiều phiên bản hơn trong tương lai. Ngoài ra còn có rất nhiều hệ điều hành, phiên bản Python và các định dạng tệp khác nhau. Đảm bảo rằng bạn đã thử nghiệm các công cụ của mình trên nhiều tùy chọn mà bạn nghĩ rằng người dùng sẽ có và hơn thế nữa. Ngoài ra, ghi lại trong công cụ của bạn những gì nó hoạt động và những gì nó không. Điều này sẽ giúp bạn và người dùng của bạn tránh được nhiều sự thất vọng
ArcGIS có thói quen gặp sự cố và phải chấm dứt các quy trình của nó khi tạo công cụ. Hầu hết người dùng thậm chí sẽ không biết cách tắt một quy trình, hãy cảm thấy ổn về nó. Họ có thể sẽ đổ lỗi cho công cụ của bạn thay vì ArcGIS [mặc dù công cụ của bạn không thể làm hỏng ArcGIS], vì vậy bạn cần thực sự kiểm tra công cụ của mình thậm chí đến mức cố gắng phá vỡ nó và đảm bảo rằng nó mạnh nhất có thể
Ghi chú. Các nhà phát triển nổi tiếng là rất tệ trong việc thử nghiệm các chương trình, đặc biệt là của chính họ
Phiên bản với Tkinter [tùy chọn]
Đoạn mã dưới đây cho biết cách hiển thị thông tin gỡ lỗi bằng thư viện Tkinter. Điều này cho phép linh hoạt hơn so với cách tiếp cận ở trên nhưng có thể gặp sự cố [sẽ nói thêm về điều này sau]
import arcpy import Tkinter import tkMessageBox root=Tkinter.Tk[] root.withdraw[] TheFirstParameter="Test" if [True]: TheFirstParameter=arcpy.GetParameterAsText[0] tkMessageBox.showinfo["Parameter Info","TheFirstParameter="+TheFirstParameter]
Lưu ý rằng tôi đã đặt mã gọi ArcGIS bên trong câu lệnh "nếu". Điều này là để tôi có thể tắt nó dễ dàng khi chúng tôi chạy tập lệnh bên ngoài ArcGIS [sẽ nói thêm về điều này sau]