Ho lavorato su una libreria di geoprocessing open source chiamata WhiteboxTools che può essere utilizzata al posto di ArcPy in molte applicazioni. Attualmente ci sono quasi 300 strumenti disponibili per l'elaborazione di dati raster, vettoriali e LiDAR (LAS), anche se il piano prevede eventualmente il porting su tutti gli oltre 400 strumenti disponibili in Whitebox GAT . Sebbene gli strumenti siano sviluppati utilizzando il linguaggio di programmazione Rust (per efficienza), ogni strumento è richiamabile da Python, come nell'esempio seguente:
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')
Informazioni più dettagliate sono disponibili nel manuale utente di WhiteboxTools . La libreria è autonoma e non ha altre dipendenze. Devi semplicemente scaricare il piccolo file (<5Mb) che si trova qui . Il file di download contiene l'ex WhiteboxTools, lo script whitebox_tools.py , che fornisce l'API Python per la libreria (importata nella riga superiore dello script precedente) e il manuale dell'utente. Esiste anche una GUI tkinter di base (wb_runner.py) per l'interfacciamento con la libreria.
La licenza MIT permissiva ha lo scopo di consentire l'integrazione di WhiteboxTools come back-end con altri GIS open source; Alexander Bruy ha sviluppato un plug-in QGIS per il back-end di WhiteboxTools. Puoi anche mescolare e abbinare gli strumenti di WhiteboxTools e ArcPy in un singolo script, se necessario. La biblioteca è ancora in qualche modo sperimentale, sviluppata dal gruppo di ricerca sulla geomorfometria e l'idrogeomatica dell'Università di Guelfa , ed è attualmente in versione pre-1.0, che dovrebbe essere presa in considerazione durante l'uso.