SDK de NextGIS Toolbox
26/08/2026 · Eduard Kazakov & Claudio Matko
NextGIS Toolbox ofrece más de 150 herramientas para el procesamiento de geodatos en línea. La mayoría se pueden ejecutar directamente desde una interfaz web: seleccione una herramienta, complete los parámetros, ejecútela y descargue el resultado.
Existe otra forma de utilizar las mismas herramientas: mediante programación.
Para los usuarios de Python, el SDK de NextGIS Toolbox proporciona una interfaz práctica para llamar a las herramientas de Toolbox desde scripts, gestionar sus resultados y, lo que es más importante, combinar varias herramientas en flujos de trabajo de procesamiento automatizados.
¿Para qué usar el SDK si ya existe una interfaz web?
La interfaz web es ideal para tareas de procesamiento puntuales. En cambio, cuando es necesario repetir la misma operación con regularidad, según un cronograma, cada vez que llegan nuevos datos o como parte de un flujo de datos más amplio, ejecutar las herramientas manualmente a través de un navegador se convierte rápidamente en un cuello de botella.
Los casos de uso típicos del SDK incluyen:
- Automatización : ejecute tareas de geoprocesamiento según un cronograma o actívelas desde otro proceso sin intervención manual.
- Integración : incorpore NextGIS Toolbox en pipelines ETL, flujos de trabajo CI/CD, aplicaciones internas y otros servicios.
- Procesamiento por lotes : procesar varios conjuntos de datos utilizando el mismo flujo de trabajo.
- Replicabilidad : ejecute la misma operación con exactamente los mismos parámetros siempre que sea necesario repetir un flujo de trabajo.
El SDK también se encarga de gran parte de la infraestructura que, de otro modo, tendría que implementarse por separado: registro de eventos, manejo de errores, ejecución sincrónica o asincrónica, carga y descarga de archivos, seguimiento del progreso de las tareas y reintentos.

Más que una API HTTP: encadenamiento de herramientas
Todas las herramientas de Toolbox también se pueden invocar directamente a través de HTTP. El sitio de cada herramienta ofrece descripciones de los parámetros, ejemplos en Python y ejemplos basados en solicitudes de GitHub.
Las llamadas HTTP directas son perfectamente adecuadas cuando se necesita integrar una herramienta en particular en un software existente y se desea minimizar las dependencias.
Pero cuando un flujo de trabajo involucra varias herramientas, el SDK resulta especialmente útil. El resultado de una operación de Toolbox se puede pasar directamente a otra operación sin necesidad de descargar primero el archivo intermedio localmente y volver a cargarlo. Esto se conoce como encadenamiento de herramientas.
En lugar de tratar cada operación de geoprocesamiento como una solicitud aislada, puede combinar varias herramientas de Toolbox en un único flujo de procesamiento.

Veamos un ejemplo práctico.
Ejemplo: monitoreo de vegetación a partir de imágenes satelitales.
Supongamos que queremos evaluar las condiciones de la vegetación dentro de un área de interés utilizando imágenes satelitales. El flujo de trabajo se puede reducir a tres operaciones consecutivas:
- Hallar imágenes satelitales . planetary_search Buscar en Microsoft Planetary Computer escenas de Sentinel-2 que coincidan con un cuadro delimitador, un rango de fechas y la máxima cobertura de nubes.
- Calcular NDVI . spectral_indices Tomar el paquete de imágenes producido en el paso anterior y calcular el Índice de Vegetación de Diferencia Normalizada.
- Crear mosaicos de mapas sin conexión . raster2tiles Convierte el ráster resultante en un conjunto de mosaicos NGRC que se pueden abrir en NextGIS Mobile y utilizar sobre el terreno sin conexión a Internet.
Todo se puede gestionar desde un único script de Python:
from toolbox_sdk import ToolboxClient
toolbox = ToolboxClient()
ToolboxClient.configure_logger()
# Step 1: search for Sentinel-2 imagery
imagery_task = toolbox.tool("planetary_search").submit({
"collection": "sentinel-2-l2a",
"bbox": {"west": -89.57, "south": 42.99, "east": -89.23, "north": 43.17},
"start_date": "2024-10-01",
"end_date": "2024-10-31",
"max_cloud_cover": 30,
"max_items": 1,
"asset_keys": "B08,B04",
})
imagery_result = imagery_task.wait_for_completion(timeout=300, poll_interval=5)
# Step 2: calculate NDVI.
# The result of the previous task is passed directly to the next tool,
# without downloading and uploading the intermediate file.
spectral_task = toolbox.tool("spectral_indices").submit({
"sentinel_zip": imagery_result["result_file"],
"index_type": "NDVI",
"generate_series": False,
})
spectral_result = spectral_task.wait_for_completion(timeout=600, poll_interval=10)
# Step 3: convert the NDVI raster to an NGRC tileset
# that can be opened in NextGIS Mobile.
tiles_result = toolbox.tool("raster2tiles")({
"raster_dataset": spectral_result["result_file"],
"palette": toolbox.upload_file("ndvi_palette.txt"),
"zoom_levels": "8-16",
})
print(tiles_result["result_file"])
El mismo flujo de trabajo realizado manualmente a través de la interfaz web implicaría descargar las imágenes satelitales, cargarlas en otra herramienta, esperar el cálculo del NDVI, descargar el resultado nuevamente y luego enviarlo a la herramienta de teselado ráster. Con el SDK, estas operaciones se convierten en un proceso automatizado.
Posteriormente, se puede programar el script para que se ejecute periódicamente (por ejemplo, una vez al mes) y así generar una capa de vegetación actualizada sin tener que repetir el flujo de trabajo manualmente.
El mismo enfoque puede utilizarse para flujos de trabajo vectoriales. Por ejemplo, el resultado de una operación de intersección de capas, como qgis_intersect, puede transferirse directamente a otra herramienta de procesamiento sin necesidad de guardar un conjunto de datos intermedio localmente.
Ejecución sincrónica y asincrónica
Toolbox SDK admite la ejecución sincrónica o asincrónica.
Para operaciones relativamente cortas, como la conversión de formato, la generalización o los cálculos ráster simples, una llamada sincrónica suele ser suficiente:
result = toolbox.tool("convert")({
"source": toolbox.upload_file("input.geojson"),
"format": "GPKG",
})
El script envía la operación y espera hasta que el resultado esté disponible.
En su lugar, las tareas de procesamiento de larga duración pueden enviarse de forma asincrónica:
task = toolbox.tool("planetary_search").submit(parameters)
La tarea resultante puede entonces ser monitoreada por separado:
result = task.wait_for_completion()
Esto resulta especialmente útil para operaciones como el procesamiento de imágenes satelitales u otras tareas que requieren una gran capacidad de cálculo y que pueden tardar mucho más que una simple conversión.
La ejecución asincrónica también permite separar diferentes partes de un flujo de trabajo.
Un proceso puede enviar una tarea, almacenar su identificador y finalizar. Otro proceso puede recuperar posteriormente el estado de la tarea y continuar el flujo de trabajo una vez finalizado el procesamiento.
Esto puede resultar útil al integrar Toolbox en listas de tareas, trabajos programados, servicios de backend o sistemas de procesamiento distribuido de mayor tamaño.
Desde herramientas individuales hasta flujos de trabajo reutilizables de geoprocesamiento.
El SDK de NextGIS Toolbox ofrece otra forma de acceder a las capacidades de geoprocesamiento. Para el procesamiento ocasional, abrir una herramienta en el navegador es la opción más rápida, pero para operaciones repetitivas, el SDK permite convertir herramientas individuales en flujos de trabajo reproducibles.
Dado que los resultados intermedios se pueden transferir directamente entre las herramientas de Toolbox, incluso flujos de trabajo complejos pueden seguir siendo compactos y requerir, sorprendentemente, poco código Python.
Si ya utiliza NextGIS Toolbox de forma interactiva, el SDK es el siguiente paso lógico cuando necesite automatizar ese trabajo.