Tôi đã làm việc trên một thư viện xử lý địa lý nguồn mở có tên WhiteboxTools có thể được sử dụng thay cho ArcPy trong nhiều ứng dụng. Hiện tại có gần 300 công cụ có sẵn để xử lý dữ liệu raster, vector và LiDAR (LAS), mặc dù kế hoạch cuối cùng là chuyển qua tất cả hơn 400 công cụ có sẵn trong Whitebox GAT . Mặc dù các công cụ được phát triển bằng ngôn ngữ lập trình Rust (cho hiệu quả), mỗi công cụ đều có thể gọi được từ Python, như trong ví dụ sau:
from whitebox_tools import WhiteboxTools
wbt = WhiteboxTools()
# Set the working directory. This is the path to the folder containing the data,
# i.e. files sent to tools as input/output parameters. You don't need to set
# the working directory if you specify full path names as tool parameters.
wbt.work_dir = "/path/to/data/"
# The most convenient way to run a tool is to use its associated method, e.g.:
wbt.elev_percentile("DEM.tif", "output.tif", 15, 15)
# You may also provide an optional custom callback for processing output from the
# tool. If you don't provide a callback, and verbose is set to True, tool output
# will simply be printed to the standard output.
def my_callback(value):
if user_selected_cancel_btn: # Assumes a 'Cancel' button on a GUI
print('Cancelling operation...')
wbt.cancel_op = True
else:
print(value)
wbt.breach_depressions('DEM.flt', 'DEM_breached.flt', callback=my_callback)
# List all available tools in WhiteboxTools
print(wbt.list_tools())
# Lists tools with 'lidar' or 'LAS' in tool name or description.
print(wbt.list_tools(['lidar', 'LAS']))
# Print the help for a specific tool.
print(wbt.tool_help("ElevPercentile"))
# Want to read the source code for a tool?
# 'view_code' opens a browser and navigates to a tool's
# source code in the WhiteboxTools GitHub repository
wbt.view_code('watershed')
Thông tin chi tiết hơn có thể được tìm thấy được cung cấp trong hướng dẫn sử dụng WhiteboxTools . Thư viện độc lập và không có bất kỳ sự phụ thuộc nào khác. Bạn chỉ cần tải xuống tệp nhỏ (<5Mb) ở đây . Tệp tải xuống chứa exe WhiteboxTools, tập lệnh whitebox_tools.py , cung cấp API Python cho thư viện (được nhập trên dòng trên cùng của tập lệnh trên) và hướng dẫn sử dụng. Ngoài ra còn có GUI tkinter rất cơ bản (wb_runner.py) để giao tiếp với thư viện.
Giấy phép MIT cho phép nhằm mục đích cho phép WhiteboxTools được tích hợp dưới dạng back-end với các GIS nguồn mở khác; Alexander Bruy đã phát triển một plugin QGIS cho back-end WhiteboxTools. Bạn cũng có thể trộn và kết hợp các công cụ từ WhiteboxTools và ArcPy trong một tập lệnh khi cần. Thư viện vẫn còn hơi thử nghiệm, được phát triển từ Nhóm nghiên cứu địa mạo và địa chất học của Đại học Guelph , và hiện đang được phát hành trước 1.0, cần được tính đến khi sử dụng.