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 the custom plugin repo source
  3. Install python requirements, also
  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.