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 python requirements typing pip install fire2a-lib into QGIS python console (restart QGIS)
  4. Install "Fire Analytics Toolbox" plugin

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

Structure

  • Plugin files at fireanalyticstoolbox directory
    • includes python requirements.txt
  • script_samples contains standalone and qgis-console python scripts
  • pyproject.toml defines black coding style
  • requirements.dev.txt lists dev tools

Code of Conduct

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