Algorithms and tools python package for Forest Fire Research, Management and Analytics
Project description
Friendly graphical user interface click here
fire2a-lib python package
Fire Advanced Analyitics research group scriptable knowledge base
- Novel Algorithms related to landscape risk metrics, spatial decision optimization models, etc.
- (Cell2) Fire (W) Simulator integration algorithms to facilitating placing firebreaks, measuring forest fire impacts, etc.
- (Q)GIS algorithms to common tasks related to rasters, polygons, spatial clustering, etc.
Quickstart
Simplest: Use within QGIS
- Install QGIS
- Open QGIS Python Console
- To install, type :
!pip install fire2a-lib
- Visit fire2a-lib documentation, example:
from fire2a.downstream_protection_value import digraph_from_messages
digraph = digraph_from_messages('messages01.csv')
Command line usage
- Install QGIS
- 1.A. Simple
- 1.B. Docker users check qgis container
- Optional but worth it for Windows: Make QGIS's bundled python folder writable by your user
- Three alternatives:
- A. Open File Explorer, go to
C:\Program Files\QGIS 3.38.3\apps
, right-clickPython312
folder [Show more options]\Properties\Security\Edit\Allow Full control\OK - B. Open cmd administrator terminal, type:
icacls "C:\Program Files\QGIS 3.38.3\apps\Python312" /grant %username%:F`
- C. Open administrator powershell, type:
$path = "C:\Program Files\QGIS 3.38.3\apps\Python312" $username = $env:USERNAME $acl = Get-Acl $path $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($username, "FullControl", "Allow") $acl.SetAccessRule($accessRule) Set-Acl -Path $path -AclObject $acl
- Locate python, prepare environment
- 2.A. Windows
- Open
OsGeo4W Shell
application, - Run
bin\python-qgis.bat
once to configure all environment variables in the current session. - Also you could:
bin\python-qgis.bat your_script.py
- Recommended persistent integration
- Open
- 2.B. macOS
- Open terminal application,
- Use this python:
/Applications/QGIS.app/Contents/MacOS/bin/python
(see creating an alias below) - TODO: are all environment variables right?
- 2.C. Linux
python3 -m venv --system-site-packages qgis_venv source qgis_venv/bin/activate
- Install
python -m pip install fire2a-lib
# also recommended for development: ipython qtconsole jupyterlab
- Visit fire2a-lib documentation, example for getting the burn probability from a simulator results directory:
python -m fire2a.cell2fire -vvv --base-raster ../fuels.asc --authid EPSG:25831 --scar-sample Grids/Grids2/ForestGrid03.csv --scar-poly propagation_scars.shp --burn-prob burn_probability.tif
Scripting/Developing tips
- Check standalone scripting for more info on initializing a headless QGIS environment
- Usage examples
- macOS users add a permanent alias, on the terminal app
echo "alias pythonq='/Applications/QGIS.app/Contents/MacOS/bin/python'" >> ~/.zshrc
Interactive
- Interactive sessions in IPython, qtconsole, jupyter-lab, or IPyConsole (QGIS plugin) compatible
# Press tab to auto-complete of available modules from IPython
In [1]: from fire2a.<press-tab>
- Stop here interactive (colored terminal able):
from IPython.terminal.embed import InteractiveShellEmbed
InteractiveShellEmbed()()
- Stop here interactive (no colors):
from IPython import embed
embed()
c. QGIS debugging:
from qgis.PyQt.QtCore import pyqtRemoveInputHook
pyqtRemoveInputHook()
import pdb
pdb.set_trace()
from IPython.terminal.embed import InteractiveShellEmbed
InteractiveShellEmbed()()
- Copy and paste the code interactive:
# Select and Copy a whole module from line 1 up -but not included- to 'def main def main(argv=None):' line
In [2]: %paste
# Choose your args
In [3]: args = arg_parser.parse_args(['-vvv', '--base-raster', ...
# Skip (reading args from sys.argv o main)
if argv is sys.argv:
argv = sys.argv[1:]
args = arg_parser(argv)
# Ready to run the main interactively (args object ready)
Contributing
Building
Code of Conduct
Everyone interacting in the project's codebases, issue trackers, chat rooms, and fora is expected to follow the PSF Code of Conduct.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fire2a_lib-0.3.2.tar.gz
(762.5 kB
view hashes)
Built Distribution
fire2a_lib-0.3.2-py3-none-any.whl
(782.3 kB
view hashes)
Close
Hashes for fire2a_lib-0.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a04671b5c861d6427c675a99a10c4be30981ff820b43b95ea9160547d66d705 |
|
MD5 | 3b5070c7155641a1939c6b2939149713 |
|
BLAKE2b-256 | 72aea1d0ea18f4f1501a1f49523639191fba07afa52f064c814827ca06c94fc4 |