Configuración de carpetas de trabajo y ejecución
Para procesar tus propios archivos de inventario forestal (plantillas .xlsx) y tus archivos de configuración de escenario (ficheros .json), es imprescindible utilizar volúmenes de Docker.
Un volumen es un puente que conecta una carpeta física de tu ordenador con una carpeta dentro del contenedor de Docker. De este modo, el simulador puede leer tus datos de entrada y escribir los resultados finales directamente en tu máquina.
Estructura de carpetas recomendada
Para evitar fallos con las rutas y mantener el espacio de trabajo ordenado, te aconsejamos crear una carpeta principal para tu proyecto (por ejemplo, llamada simanfor_docker/) que contenga exactamente esta estructura:
simanfor_docker/
├── inputs/ <-- Aquí colocarás el escenario .json y la plantilla .xlsx del inventario
└── outputs/ <-- Aquí escribirá automáticamente el simulador los archivos .xlsx de resultados
Carpeta de salidas obligatoria
Asegúrate de crear la carpeta outputs en tu ordenador antes de lanzar el comando de Docker. Si no existe previamente, Docker podría crearla automáticamente pero con permisos de administrador (root), lo que podría impedir que el simulador escriba los resultados o que tú puedas abrirlos después.
Configuración del archivo de escenario (.json)
Para que el simulador encuentre tus archivos a través de las carpetas compartidas de Docker, debes ajustar correctamente las rutas dentro de tu archivo .json de escenario.
Dado que el motor de SIMANFOR se ejecuta internamente desde el directorio /app/src/ del contenedor, las carpetas compartidas se encuentran en un nivel superior. Por lo tanto, debes definir las rutas de entrada y salida de forma relativa utilizando ../ para subir un nivel en el directorio:
- Ruta de entrada del inventario (
input): Debe apuntar a../inputs/[nombre_del_inventario].xlsx - Ruta de salida de los resultados (
output_path): Debe apuntar a../tests/outputs/[prefijo_salida]__
Aquí tienes un fragmento de ejemplo de cómo debe quedar estructurado tu archivo .json:
{
"user": "Tu Nombre",
"overwrite_output_file": "YES",
"output_path": "../tests/outputs/simulacion_salida__",
"operations": [
{
"variables": {
"input": "../inputs/masas_puras_Espana-plantilla.xlsx"
}
}
]
}
Comandos de ejecución por sistema operativo
Una vez que tengas tus archivos listos en la carpeta inputs/, abre la consola o terminal de comandos de tu sistema, navega hasta tu carpeta de trabajo simanfor_docker/ y ejecuta el comando correspondiente en la pestaña de abajo:
Utilizamos la variable ${PWD} para obtener de forma automática la ruta absoluta del directorio actual:
docker run \
-v ${PWD}/outputs:/app/tests/outputs \
-v ${PWD}/inputs:/app/inputs:ro \
ghcr.io/simanfor-dask/simulator:latest \
-s /app/inputs/tu_archivo_escenario.json
Utilizamos la variable ${PWD} junto al carácter de acento grave (`) para dividir el comando en varias líneas legibles:
docker run `
-v ${PWD}/outputs:/app/tests/outputs `
-v ${PWD}/inputs:/app/inputs:ro `
ghcr.io/simanfor-dask/simulator:latest `
-s /app/inputs/tu_archivo_escenario.json
Utilizamos la variable %cd% junto al circunflejo (^) como carácter de continuación de línea:
docker run ^
-v %cd%/outputs:/app/tests/outputs ^
-v %cd%/inputs:/app/inputs:ro ^
ghcr.io/simanfor-dask/simulator:latest ^
-s /app/inputs/tu_archivo_escenario.json
Explicación de las opciones del comando
-v .../outputs:/app/tests/outputs: Enlaza tu carpeta local de resultados con la ruta interna de salida del simulador.-v .../inputs:/app/inputs:ro: Enlaza tu carpeta de datos de entrada en modo de solo lectura (:ro), protegiendo tus plantillas originales de cualquier modificación accidental.-s /app/inputs/...: Indica al simulador la ruta interna del archivo.jsonde escenario que debe ejecutar.