Skip to content

fire2a/fire-analytics-qgis-processing-toolbox-plugin

Repository files navigation

FireAnalyticsToolbox

This repo sources Fire2a(.com research group)'s QGIS-Processing-Toolbox plugin: "FireAnalyticsToolbox"

User tutorials are at fire2a/docs

Tutoriales para usuarios español en: fire2a/documentacion

Quickstart

Install

comprehensive tutorial here

  1. Install QGIS
  2. Install fire2a's custom plugin repo source (QGIS>Plugins>ManageAnd...>Settings>Add>URL)
  3. Install "Fire Analytics Toolbox" plugin (usually needs QGIS restart)
  4. (If you canceled the installation prompt on the last step) Install python requirements typing pip install fire2a-lib into QGIS python console (restart QGIS)

Usage options

  1. As a window dialog on the processing toolbox interface
  2. As a model (designer graphic interface) component
  3. Via command line interface using $ qgis_process
  4. Python script, either:

Development

  • Check a release for directory structure (fireanalyticstoolbox is the plugin dir)
  • [Fork], Clone
    • helper algorithms library fire2a-lib, install editable pip install -e .
    • if simulating fires: submodule-add C2F-W
    • if placing firebreaks (knapsack algorithm) get a MIP solver (coinor-cbc, cplex or gurobi)
  • [branch] git checkout -b myfeature
  • Symlink fireanalyticstoolbox into your qgis-plugins directory
  • Install "Fire Analytics Toolbox" & "Plugin Reloader" in QGIS Plugin Manager
  • Done! (Do a change, reload the plugin, test, ...)
  • Pull requests welcome! (coding style)

How to debug a qgis plugin:

# fmt: off
# Use pdb for debugging
import pdb # isort: skip
# also import pyqtRemoveInputHook
from qgis.PyQt.QtCore import pyqtRemoveInputHook # isort: skip
# These allow you to set a breakpoint in the app
pyqtRemoveInputHook()
pdb.set_trace()
# these allow you explore with ipython
from IPython import embed
embed()
# fmt: on

Also checkout our algorithms library

Project structure summary

 
├──  fireanalyticstoolbox         # QGIS plugin directory
│   ├──  __init__.py
│   ├──  algorithms_*.py
│   ├──  _provider.py
│   ├──  decision_optimization    # MIP integration
│   ├──  i18n                     # translation
│   └──  simulator                # wildfire integration
│       ├──  C2F ⇒  symlink or copy C2F-W HERE!
│       └──  fuel model tables.csv
├──  graphical_models             # QGIS models samples
│   └──  *.model3
├──  script_samples               # alternative usage samples
│   ├──  qgis_console.py
│   ├──  qgis_process.sh
│   └──  standalone.py
├──  test                         # pytest[-qgis][-dependency]
└──  pyproject.toml

Code of Conduct

Everyone interacting in the project's codebases, issue trackers, etc. is expected to follow the PSF Code of Conduct.