diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ff1a325..38eca4b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,7 @@ version: 2 updates: - package-ecosystem: bundler - directory: / + directory: /site schedule: interval: daily allow: diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 6564156..4e474a9 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -28,6 +28,9 @@ jobs: # Build job build: runs-on: ubuntu-latest + defaults: + run: + working-directory: site steps: - name: Checkout uses: actions/checkout@v3 @@ -37,6 +40,7 @@ jobs: ruby-version: '3.1' # Not needed with a .ruby-version file bundler-cache: true # runs 'bundle install' and caches installed gems automatically cache-version: 0 # Increment this number if you need to re-download cached gems + working-directory: '${{ github.workspace }}/site' - name: Setup Pages id: pages uses: actions/configure-pages@v3 @@ -48,6 +52,8 @@ jobs: - name: Upload artifact # Automatically uploads an artifact from the './_site' directory by default uses: actions/upload-pages-artifact@v1 + with: + path: "site/_site/" # Deployment job deploy: diff --git a/Containerfile b/Containerfile index 2f37e78..e6d9862 100644 --- a/Containerfile +++ b/Containerfile @@ -11,6 +11,12 @@ RUN apt-get update && \ git \ vim-tiny +COPY serve.sh /serve.sh +RUN chmod +x /serve.sh + +COPY build_n_serve.sh /build_n_serve.sh +RUN chmod +x /build_n_serve.sh + EXPOSE 4000 35729 -ENTRYPOINT ["/bin/bash"] +CMD ["/build_n_serve.sh"] diff --git a/just-the-docs-LICENSE b/LICENSE-just-the-docs similarity index 100% rename from just-the-docs-LICENSE rename to LICENSE-just-the-docs diff --git a/README.md b/README.md index 13ecd63..1f05be6 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,43 @@ -# Fire2a documentation repo +# Fire2a user documentation webpage -This repo uses the [just-the-docs-template](https://github.com/just-the-docs/just-the-docs-template) Jekyl Pages action. -The source for its content is in the docs directory. -Check the live [page](https://fire2a.github.io/docs/). +This "GitHub Pages" hosted page is published [here](https://fire2a.github.io/docs/) -## About Us +Using [just-the-docs-template](https://github.com/just-the-docs/just-the-docs-template) Jekyll Pages action -We are a research group that seeks solutions to complex problems arising from the terrestrial ecosystem and its natural and anthropogenic disturbances,such as wildfires. +The content is located in `site` directory, and it is mainly just markdown files -Currently hosted at [ISCI](https://isci.cl) offices. +## Contributing +Please feel free to contribute by opening a pull request, to preview your changes locally, you can use the following methods: -Contact us at fire2a@fire2a.com. +### Container +This setup will build the Jekyll site inside the container and serve it with live reload enabled. -[content licence](./LICENCE) -[just-the-docs-licence](./just-the-docs-LICENCE) +You can access the site at `http://localhost:4000` after running the container. +```bash +sudo apt install podman + +# build the container named fire2a_docs +podman build -t fire2a_docs . + +# build_n_serve.sh is the default command +podman run -it --rm -v ./site:/app -p 35729:35729 -p 4000:4000 fire2a_docs -## local hosting on debian -### install +# or just serve (after build) +podman run -it --rm -v $(pwd):/app -p 35729:35729 -p 4000:4000 fire2a_docs /serve.sh +``` + +### Local hosting on debian +#### install ```bash sudo apt-get install ruby-full ruby-bundler jekyll build-essential ``` -### build +#### build ``` cd bundle config set --local path 'vendor/bundle' bundle install ``` -### live serve +#### live serve Editing and saving will automatically update the page. ```bash bundle exec jekyll serve --livereload @@ -35,7 +46,8 @@ LiveReload address: http://127.0.0.1:35729 Server address: http://127.0.0.1:4000 <--- OPEN IN BROWSER Server running... press ctrl-c to stop. ``` -### update just-the-docs + +## update just-the-docs dependencies Dependabot will automatically create a pull request to update the just-the-docs version. ```bash git switch dependabot/bundler/just-the-docs-0.8.2 @@ -50,7 +62,7 @@ bundle clean --force # rebuild ``` -### references +## references https://github.com/just-the-docs/just-the-docs https://jekyllrb.com/docs/installation/other-linux/ diff --git a/README_container.md b/README_container.md deleted file mode 100644 index e532edf..0000000 --- a/README_container.md +++ /dev/null @@ -1,13 +0,0 @@ -# Containerized Jekyll Build - -This setup will build the Jekyll site inside the container and serve it with live reload enabled. You can access the site at `http://localhost:4000` after running the container. - -_Almost a bug: the container does not signal the browser to reload the page after a change. Press Ctrl+R_ - -```bash -apt install podman -podman build -t fire2a_docs2 . -podman run -it --rm -v $(pwd):/app -p 35729:35729 -p 4000:4000 fire2a_docs /app/rebuild_serve.sh -``` - - diff --git a/rebuild_serve.sh b/build_n_serve.sh similarity index 81% rename from rebuild_serve.sh rename to build_n_serve.sh index fa411c6..c9f05a6 100755 --- a/rebuild_serve.sh +++ b/build_n_serve.sh @@ -1,7 +1,8 @@ #!/bin/bash set -x -git clean -dfX +cd /app +# git clean -dfX # messes unchanged files rm -f Gemfile.lock rm -fr .bundle vendor/bundle bundle clean --force diff --git a/convert.sh b/convert.sh old mode 100644 new mode 100755 diff --git a/oldREADME.md b/deprecated/README.md similarity index 100% rename from oldREADME.md rename to deprecated/README.md diff --git a/docs/qgis-cookbook/forcing-python-requirements.md b/deprecated/forcing-python-requirements.md similarity index 100% rename from docs/qgis-cookbook/forcing-python-requirements.md rename to deprecated/forcing-python-requirements.md diff --git a/oldindex.md b/deprecated/index.md similarity index 100% rename from oldindex.md rename to deprecated/index.md diff --git a/docs/qgis-dialog/README.md b/deprecated/qgis-dialog/README.md similarity index 97% rename from docs/qgis-dialog/README.md rename to deprecated/qgis-dialog/README.md index 777bb83..c8382f5 100644 --- a/docs/qgis-dialog/README.md +++ b/deprecated/qgis-dialog/README.md @@ -1,10 +1,10 @@ ---- -layout: default -title: QGIS dialog DEPRECATED -nav_order: 97 -has_children: true -has_toc: false ---- +# --- +# layout: default +# title: QGIS dialog DEPRECATED +# nav_order: 97 +# has_children: true +# has_toc: false +# --- # Cell 2 Fire QGIS plugin {: .no_toc} diff --git a/docs/qgis-dialog/img/icon.png b/deprecated/qgis-dialog/img/icon.png similarity index 100% rename from docs/qgis-dialog/img/icon.png rename to deprecated/qgis-dialog/img/icon.png diff --git a/docs/qgis-dialog/img/icon_dev.png b/deprecated/qgis-dialog/img/icon_dev.png similarity index 100% rename from docs/qgis-dialog/img/icon_dev.png rename to deprecated/qgis-dialog/img/icon_dev.png diff --git a/docs/qgis-dialog/img/panel_screenshot.png b/deprecated/qgis-dialog/img/panel_screenshot.png similarity index 100% rename from docs/qgis-dialog/img/panel_screenshot.png rename to deprecated/qgis-dialog/img/panel_screenshot.png diff --git a/docs/qgis-dialog/img/win_install_pip.jpg b/deprecated/qgis-dialog/img/win_install_pip.jpg similarity index 100% rename from docs/qgis-dialog/img/win_install_pip.jpg rename to deprecated/qgis-dialog/img/win_install_pip.jpg diff --git a/docs/qgis-dialog/img/win_install_script.mp4 b/deprecated/qgis-dialog/img/win_install_script.mp4 similarity index 100% rename from docs/qgis-dialog/img/win_install_script.mp4 rename to deprecated/qgis-dialog/img/win_install_script.mp4 diff --git a/docs/qgis-dialog/readme_dev.md b/deprecated/qgis-dialog/readme_dev.md similarity index 100% rename from docs/qgis-dialog/readme_dev.md rename to deprecated/qgis-dialog/readme_dev.md diff --git a/docs/qgis-dialog/readme_user.md b/deprecated/qgis-dialog/readme_user.md similarity index 100% rename from docs/qgis-dialog/readme_user.md rename to deprecated/qgis-dialog/readme_user.md diff --git a/docs/Cell2Fire/README.md b/docs/Cell2Fire/README.md deleted file mode 100644 index 1ca0d2a..0000000 --- a/docs/Cell2Fire/README.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -layout: default -title: Cell2Fire++ simulator -nav_order: 2 -has_children: true -has_toc: false ---- -{: .warning} -CLI C++ code; Check the graphical user friendly version: [fire2a toolbox](docs/qgis-toolbox/README.html) -# Cell2Fire++ -{: .no_toc} -
- - Table of contents - - {: .text-delta } -1. TOC -{:toc} -
- -Cell2Fire is a 2D-grid-based forest and wildland landscape fire simulator, focused on large scale areas and fast simulations to provide robust risk spatial analytics, harnessing c++ parallel computation methods. - -Current Version: -- [W](https://github.com/fire2a/c2f-w) bundles all three fuel model behaviors! - -Released flavors (*no longer maintained*): -- [Scott & Burgan](https://github.com/fire2a/C2FSB) -- [Kitral](https://github.com/fire2a/C2FK) -- [FBP](https://github.com/fire2a/C2FFBP) - -The [OG](https://github.com/cell2fire/Cell2Fire/) - -# Output examples - -## Scott & Burgan -### Previncat's Zone 60 (Catalonian Instance): forest and a simulated fire spread with its corresponding scar and growth propagation tree. -![Example-Instance_Scar](img/c2fsb-example-scar.png) -### Risk metrics: Burn Probability (BP), Betweenness Centrality (BC), Downstream Protection Value (DPV), and Growth Propagation Tree (GPT). -![Example-Risck_Metrics](img/c2fsb-example-metrics.png) - -## Kitral -### El Portillo, simulation with crown fire behavior. -![Example-El Portillo-Crown fire](img/c2fk-El_portillo.png) - -## Canadian Forest Fire Behavior Prediction System - -|:-------------|:------------------| -| Dogrib forest, Canada ![](img/c2fFBP-Example4.png){: width="100%" } | shortest paths propagation ![](img/c2fFBP-Example1.png){: width="80%" } | -| Shortest paths propagation and ROS intensity ![](img/c2fFBP-Example2.png){: width="100%" } | Burn-Probability ![](img/c2fFBP-Example3.png){: width="80%" } | - - -# Compiling -Releases are bundled with pre-compiled binaries, normal users probably don't need this guide. - -Check the [repo's action artifacts](https://github.com/fire2a/C2F-W/actions) for the latest info on automated builds - -## UNIX Overview -```bash -# install build-essentials, gcc-12, boost, eigen3 & openmp - -cd -git clone git@github.com:fire2a/C2F-W.git - -# go to c++ files -cd C2F-W/Cell2FireC - -# clean & build [select platform makefile] -make clean [-f custom_makefile] -make [-f custom_makefile] - -``` -### developer setup -```bash -# rename binary for the QGIS toolbox plugin -ext=`python3 -c "import platform;print(f'.{platform.system()}.{platform.machine()}')"` -cp Cell2Fire Cell2Fire$ext - -cd -git clone git@github.com:fire2a/fire-analytics-qgis-processing-toolbox-plugin.git fire-toolbox - -source ~/your/venv/bin/activate -(venv) $ pip install -r fire-toolbox/fireanalyticstoolbox/requirements.txt - -git clone git@github.com:fire2a/fire2a-lib -cd fire2a-lib -(venv) $ pip install -e . - -# symlink C2F-W repo into C2F directory of the fire2a-toolbox repo -ln -s C2F-W fire-toolbox/fireanalyticstoolbox/simulator/C2F - -cd ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins -ln -s ~/source/fire-toolbox/fireanalyticstoolbox . -``` -Next time you start QGIS, look for fire2a-toolbox icon icon-missing, on the Processing Toolbox panel. - -## Linux -[Make](compile_linux.html) - -## Macos -[Make](compile_macos.html) - -## Windows -[Using Visual Studio](compile_windows.html) diff --git a/docs/fire2a-lib.md b/docs/fire2a-lib.md deleted file mode 100644 index 9e40e9b..0000000 --- a/docs/fire2a-lib.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -layout: default -title: Algorithms Library -nav_order: 3 -has_toc: false ---- -{: .warning} -CLI Python code; Check the graphical user friendly version: [fire2a toolbox](/docs/qgis-toolbox/README.html) -# fire2a-lib -{: .no_toc} -
- - Table of contents - - {: .text-delta } -1. TOC -{:toc} -
- -This library is python package composed of our novel fire related algorithms, common utilities and tools for GIS, optimization, clustering, etc. - -Some use cases: - -* Want to look/use/adapt DownStream Protection Value implementation code? -* I forgot again, how to load a .tif raster into a numpy array + a properties dictionary? - -Developers & academic researchers are welcome to contribute! - -* [Repository] -* [API Documentation] - -## Quickstart -We strongly recommend installing [QGIS] before usage, although not all modules depend on it. -```bash -$ pip install git+https://github.com/fire2a/fire2a-lib.git -$ ipython -In [1]: from fire2a. -``` -Algo check the [qgis-cookbook] and [Repository] guides. -[tl;dr developer here](/docs/Cell2Fire/README.html#unix-overview) - -## Developer guide -A tree of principal components: -```bash -~ -├── C2F-W -│   ├── Cell2Fire -│   │   ├── Cell2Fire -│   │   ├── Cell2Fire.exe -│   │   ├── Cell2Fire.Linux.x86_64 -│   │   └── Cell2Fire.Darwin.arm64 -│   └── data -│      ├── CanadianFBP -│      ├── Kitral -│      └── ScottAndBurgan -├── fire2a-lib -│   ├── pyproject.toml -│   ├── requirements.dev.txt -│   ├── requirements.doc.txt -│   ├── requirements.txt -│   ├── src -│   │   ├── fire2a -│   │   │   ├── __init__.py -│   │   │   ├── raster.py -│   │   │   ├── ... -│   │   │ └── utils.py -│   │   └── fire2a-tutorials -│   │   ├── __init__.py -│   │   └── template.py -│   └── tests -│   ├── assets -│   └── test_utils.py -└── fire-toolbox - └── fireanalyticstoolbox -    ├── metadata.txt -    ├── __init__.py -    ├── fireanalyticstoolbox.py -    ├── fireanalyticstoolbox_provider.py -    ├── fireanalyticstoolbox_algorithm.py -    ├── algorithm_...py -    ├── requirements.txt -    ├── fire2a -> ~/fire2a-lib/src/fire2a (versión release) -    └── simulator -    ├── C2F -> ~/C2F-W -    ├── c2fqprocess.py -    ├── fuel_0_layerStyle.qml -    ├── fuel_1_layerStyle.qml -    ├── fuel_2_layerStyle.qml -    ├── kitral_lookup_table.csv -    ├── fbp_lookup_table.csv -    └── spain_lookup_table.csv -``` - ---- -[QGIS]: https://qgis.org -[Repository]: https://github.com/fire2a/fire2a-lib/ -[API Documentation]: https://fire2a.github.io/fire2a-lib/src/index.html -[dialog-plugin]: qgis-dialog/README.html -[processing-toolbox-plugin]: qgis-toolbox/README.html -[qgis-cookbook]: qgis-cookbook/README.html diff --git a/docs/plugins.xml b/docs/plugins.xml deleted file mode 100644 index 6643721..0000000 --- a/docs/plugins.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - Rick roll description - This plugin will rick roll you - 0.1 - 3.1 - 6.66 - https://github.com/fdobad/qgis-minimal-plugin - rickrollmodule.zip - https://github.com/fdobad/qgis-minimal-plugin/blob/main/rickrollmodule/icon.png - fdobad - https://github.com/fdobad/qgis-minimal-plugin/releases/download/v0.1/rickrollmodule.zip - fdobad - "2006-06-06" - "2020-04-20" - False - False - https://github.com/fdobad/qgis-minimal-plugin/issues - https://github.com/fdobad/qgis-minimal-plugin - "pluginbuilder, template, minimal, never gonna give you up" - - - - - Rick roll description - This plugin will rick roll you - 0.2 - 3.1 - 6.66 - https://github.com/fdobad/qgis-minimal-plugin - rickrollmodule.zip - https://github.com/fdobad/qgis-minimal-plugin/blob/main/rickrollmodule/icon.png - fdobad - https://github.com/fdobad/qgis-minimal-plugin/releases/download/v0.2/rickrollmodule.zip - fdobad - "2006-06-06" - "2020-04-20" - False - False - https://github.com/fdobad/qgis-minimal-plugin/issues - https://github.com/fdobad/qgis-minimal-plugin - "pluginbuilder, template, minimal, never gonna give you up" - - - - - Kitral Fire 2am=AAM=Advanced Analytics and Management, interfaces to Cell2Fire forest fire simulator - We're no strangers to love -You know the rules and so do I (do I) -A full commitment's what I'm thinking of -You wouldn't get this from any other guy -I just wanna tell you how I'm feeling -Gotta make you understand -Never gonna give you up -Never gonna let you down -Never gonna run around and desert you -Never gonna make you cry -Never gonna say goodbye -Never gonna tell a lie and hurt you - 0.0.1 - 3.1 - 6.66 - https://fdobad.github.io/fire2a-kitral - fire2am - https://fdobad.github.io/fire2a-kitral/fire2am_icon.png - fdobad - https://fdobad.github.io/fire2a-kitral/releases/download/v0.0.1/fire2am-kitral_v0.0.1.zip - fdobad - "2006-06-06" - "2020-04-20" - False - False - https://github.com/fdobad/fire2am-kitral/issues - https://github.com/fdobad/fire2am-kitral - "Kitral, forest fires simulation, never gonna give you up" - - - - diff --git a/docs/qgis-cookbook/README.md b/docs/qgis-cookbook/README.md deleted file mode 100644 index 7a45a40..0000000 --- a/docs/qgis-cookbook/README.md +++ /dev/null @@ -1,391 +0,0 @@ ---- -layout: default -title: QGIS cookbook -nav_order: 4 -has toc: false ---- -

-QGIS cookbook -

-{: .no_toc} -
- - Table of contents - - {: .text-delta } -1. TOC -{:toc} -
-# Getting Help 🚑 - -Before reaching out, make the sanity test: -* QGIS is updated (please try switching from LTR to latest) -* Fire2a toolbox is updated (`Menu : Plugins > Manage and Install Plugins... > Installed > Fire Analytics Processing-Toolbox > Upgrade`) -* Your Operating System (OS e.g. Linux, Windows, MacOS) is updated -* No funny formats in `Options > Processing > default raster & vector layers, set to tif & gpkg` - ![](img/qgis_set_default_formats.png){: width="50%"} -* Restart your computer and try again on a fresh QGIS project on a directory that is *not shared* (no OneDrive, GoogleDrive, network drive, etc.) and has no spaces in its name - -If the problem persists, follow the next steps to create an issue [here](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/issues): - -1. Look for similar issues beforehand - -2. Identify your OS, Fire2a toolbox plugin, and QGIS versions: - - **Operating System:** - -- Windows : `press Win key > type About > Windows specifications section : click Copy button` - -- MacOS : `Apple > TODO` - -- Linux: `$ uname -a` - - **Plugin Version:** Navigate to `Plugins > Manage and Install Plugins... > Installed > Fire Analytics Processing-Toolbox > Installed version`. - ![](img/plugins_version.png){: width="75%" } - - **QGIS Version:** `Menu :Help > click About` copy at least the first paragraph - -3. **Include Relevant Files:** - - Compress and attach the instance and/or results (make a `.zip` file) you were using when the error occurred. - - If not already in results, attach the corresponding `algorithmName_log.html` file (`Menu : View > Panels > Log Messages > fire2a`) - -Clear and concise descriptions are paramount when submitting a bug report. Please focus on **details about the issue encountered, including your goal and the unexpected behavior you experienced.** Then, provide the **steps to reproduce the issue. Include any error messages or other relevant observations you encountered.** - -back to top -{: style="text-align: right;"} - -# icon-missing Plugin Management - -There are 3 ways of installing plugins, the recommended (using a our custom repo source) takes care of prompting the user in QGIS's message bar for updates. "Install from ZIP" is for testers looking for beta versions, and "placing a directory" is for developers symlinking their repo. - -## Install fire2a toolbox -(check explainer video after for steps 3 and 4) -1. Install QGIS for [Linux🗽](#linux-), [MacOS](#macos-) or [Windows](#windows-) - _English language version is more reliable_ - __Don't open it yet!__ - _Decision Optimization algorithm users __beware__: At the moment (May 1st 2024, and for the last year), IBM has not released a python >3.10 compatible version. So QGIS<=3.36.0 is required for using CPLEX (CBC is included and works fine except for large rasters)_ -2. Install python dependencies for [Linux🗽](#python), [MacOS](#python-1), [Windows](#python-2) ... or [last resort](forcing-python-requirements.html) -3. Add fire2a's plugin repo/store [URL][toolbox-server] to custom plugin sources *(open here!)* - * [tutorial][custom] - * `Menu: 'Plugins' > 'Manage and Install Plugins...' > 'Settings' > Plugin Repositories 'Add' > fill Name & paste URL > Ok`
- ![](img/tldr_add_plugin_source.png){: width="55%" }
- - - * Note: removing the repo server does not uninstall its plugins - -4. Do a regular new plugin installation - * [tutorial][new plugin] - * `Menu: 'Plugins' > 'Manage and Install Plugins...' > 'Not installed' > search box 'fire' > select > 'Install Plugin' > 'Ok'` - * Note: *At the time of writing the `Plugin Dependencies Manager` wait wheel spins forever, press `Ok` right away; you already installed them in step 2* - * If it doesn't appear right away on the Processing Toolbox panel:
- A. toggle the checkbox next to its name in the `Installed` section of the `Plugin Manager`
- B. restart QGIS
- Plugin Installation - - -back to top -{: style="text-align: right;"} - -## Other options -### Install from ZIP -1. Browse to: -* [releases](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/releases) -* [latest release](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/releases/latest) -2. Download a release from a tag section, in the Assets part, it looks like `fireanalyticstoolbox_v1818.5.5-beta.zip` -3. `Menu: 'Plugins' > 'Manage and Install Plugins...' > 'Install from ZIP' > '...' > 'Install Plugin'` (also dropping the zip into the input works) - -### Place a folder -Download & unzip a release from the repo [toolbox-releases] or sample [release](https://github.com/fdobad/qgis-processingplugin-template/releases) sections. - -For example, unzip `example_plugin_v1.2.3.zip`, inside, a folder named `example_plugin` must be moved to: -``` -# linux (symbolic link it!) -~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/example_plugin -# macos -~/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/example_plugin -# windows -%APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\example_plugin -``` - -back to top -{: style="text-align: right;"} - -## Must have plugins! - -icon-missing -: [Save All](https://plugins.qgis.org/plugins/SaveAllScript/), choose a location, name a new directory, done! everything gets written to disk, never worry again about temp folders or in memory layers! - -icon-missing -: [Serval](https://plugins.qgis.org/plugins/Serval/), Modify your rasters as if you were using paint! - -icon-missing -: [IPyConsole](https://plugins.qgis.org/plugins/IPyConsole/), "No offense, but QGIS python console just sucks." ([sic](https://www.itopen.it/qgis-and-ipython-the-definitive-interactive-console/#comment-140751)) [documentation](http://www.itopen.it/qgis-and-ipython-the-definitive-interactive-console/), [fix to use latest qtconsole](https://github.com/elpaso/qgis-ipythonconsole/compare/master...fdobad:qgis-ipythonconsole:master) - -icon-missing -: [Plugin Reloader](https://plugins.qgis.org/plugins/plugin_reloader/), If a plugin starts misbehaving easier to reload it than to restart QGIS - -icon-missing -: [Plugin Builder](https://plugins.qgis.org/plugins/pluginbuilder3), Jumpstart your plugin development! - -back to top -{: style="text-align: right;"} - -## Install/Update troubleshoot -Sometimes after an update, the plugin doesn't appear on the Processing Toolbox panel: Reload it by pressing on the checkbox next to its name in the `Installed` section of the `Plugin Manager` or restart QGIS. - - -back to top -{: style="text-align: right;"} - -# Linux 🗽 -## QGIS install -* On Debian getting the Long Term Release is easy as: - * Gnome: `Super (or Meta) Key > type 'QGIS' > Click 'Install' on the Software app dialog` - * Synaptic: search for qgis, click install - * Terminal: `sudo apt install qgis qgis-plugin-grass` -* Getting the Latest Release on Debian: add QGIS [apt source](https://qgis.org/en/site/forusers/alldownloads.html#debian-ubuntu) -* [Other distributions](https://qgis.org/en/site/forusers/alldownloads.html#linux) - - -## Python - -{: .warning} -`sudo pip` is insecure and may break your system! - -{: .info} -expert tl;dr: `-m venv --system-site-packages -r` [requirements.txt], [requirements.dev.txt] - -### setup a virtual environment -Handle separate dependencies but share system packages because installing QGIS brings addional packages through `python3-qgis` that binds c binaries such as GDAL. -1. Download [requirements.txt] list (2ndary clicking the link and Save Link As...) -2. Open a terminal -```bash -# good practice: a directory to keep all venvs -mkdir -p ~/pyenv -# recommended: name this venv qgis -python3 -m venv --system-site-packages ~/pyenv/qgis -# activate it -$ source ~/pyenv/qgis/bin/activate -# from activated venv, upgrade tools -(qgis) $ python -m pip install --upgrade pip wheel setuptools -# install requirements (check where you saved it) -(qgis) $ pip install -r ~/Downloads/requirements.txt -# related bug: matplotlib can't find qt backend -(qgis) $ pip install --upgrade matplotlib -``` - -### usage: activate venv, launch qgis -```bash -$ source ~/pyenv/qgis/bin/activate -(qgis) $ qgis -``` - -### handy terminal aliases -```bash -# appending to .bashrc: -echo 'alias pyqgis="source ~/pyenv/qgis/bin/activate"'>>~/.bashrc -echo 'alias myqgis="source ~/pyenv/qgis/bin/activate && qgis"'>>~/.bashrc -# NOTE: must source bashrc for aliases to work -$ source ~/.bashrc -# NOTE: or restart same shell (every time a bash terminal is launched it gets sourced) -$ bash -# first alias: to activate venv -$ pyqgis -# second alias: to launch with venv activated -$ myqgis -``` - -### activated ~~icon~~ desktop environment launcher - -{: .success} -Avoid `ModuleNotFoundError` when QGIS starts from the default launcher or associated (i.e. Open with) files (e.g., .shp, .gpkg), by activating the venv before starting QGIS - -To do this, edit the QGIS ~~icon~~ launcher. Some Desktop Environments (xfce, gnome?) allow editing the launcher by 2ndary clicking on the QGIS icon; then edit the launch command on the displayed menu: -```bash -# From -Exec=qgis %F -# To -Exec=bash -c 'source ~/pyenv/qgis/bin/activate && qgis %F' - -# It's the same as editing this file -~/.local/share/applications/org.qgis.qgis.desktop - -# If not found on your user's files it's on system launchers, copy it: -cp /usr/share/applications/org.qgis.qgis.desktop ~/.local/share/applications/. -# then edit - -# GNOME -update-desktop-database ~/.local/share/applications/ -``` -### other useful locations -```bash -# user plugin directory -~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/fireanalyticstoolbox -# processing plugin directory -/usr/share/qgis/python/plugins/processing -``` - -back to top -{: style="text-align: right;"} - -# MacOS 💰 -## QGIS Install -Download it [here](https://qgis.org/en/site/forusers/download.html#mac) also read the instruction to not get security blocked at startup. -## Python -This QGIS version includes its own python, so be careful to use it instead of systems's python -```zsh -# optional or pro: be extra careful confirming is the right python -# these are not the same: -% ./python3 -c "import sys;print(sys.prefix)" -% python3 -c "import sys;print(sys.prefix)" -``` - -### installing requirements -1. Download [requirements.txt] list (2ndary clicking the link and Save Link As...) -2. Open a terminal -```zsh -# go to QGIS python location -% cd /Applications/QGIS.app/Contents/MacOS/bin -# install into qgis python environment -% ./python3 -m pip install -r ~/Downloads/requirements.txt -# matplotlib bug: can't find qt_backend -% ./python3 -m pip install --upgrade matplotlib -``` - -### other useful locations -```zsh -# user plugin folder -~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins/fireanalyticstoolbox -# python location -/Applications/QGIS.app/Contents/MacOS/bin -``` - -back to top -{: style="text-align: right;"} - -# Windows 💩™ -## QGIS Install -A. Web install [link](https://qgis.org/en/site/forusers/download.html#windows), there are 3 flavors: -- Latest version is recommended -- LTR works with some issues -- OSGeo4W Network Installer can be upgraded in place - -B. "Terminal" install -0. Using `winget` cli, if not available, activate it in Microsoft Store -1. Open a "privileged terminal", e.g. On your keyboard press the 'Win' button > type 'cmd' > 2dary click on the app > Click 'Run as administrator' -2. Input `winget install -e --id OSGeo.QGIS --scope machine` (`--scope machine` option is recommended to making launcher icons for all users) -3. Follow on screen instructions (all defaults are ok) - - -## Python -Windows version of QGIS comes bundled with its own python, a special launcher must be used to access it -### installing requirements -1. Download [requirements.txt] list (2ndary clicking the link and Save Link As...) -2. Activate QGIS python by starting `OSGeo4W Shell` app `Win button > type OSGeo > select & click` to launch a CMD terminal -3. Type `pip install -r "%USERPROFILE%\Downloads\requirements.txt"` press Enter. (Adjust the path as needed, on Windows 11 you can select the file with the secondary button then click 'Copy path', use 2ndary click to paste into CMD terminal) - - - -If you couldn't understand last 2 steps, try the [last resort](forcing-python-requirements.html) solution. - -__All ready!__ - -__Except__ if you'll be running our _Decision Optimization algorithms, specially on big rasters_; then the next two steps are required to use CPLEX as a MIP solver from within QGIS. - -back to top -{: style="text-align: right;"} - -### make it writable -Recommended for machines with a single user, or to share modifications to the environment to all users (explainer video after) - -Also to integrate a local cplex install with QGIS python environment (see our decision optimization algorithms) - -1. Open QGIS install folder, open the `bin` folder - - probably: `C:\Program Files\QGIS 3.45.6\bin` (adjust version) - - surely: `Win button > type QGIS > 2ndary click > Open file location > 2ndary click > Open file location > click 'bin' folder` -2. Select `Python39` (check same version), properties, security, ... full control for user. - - - -Also on the video, a success install of qtconsole being installed on `Program Files\Qgis` and not on user's `%APPDATA%` path, meaning success in making the python environment writable - -### setup CPLEX solver - -__At the moment (May 1st 2024, and for the last year), IBM has not released a python >3.10 compatible version. So QGIS<=3.36.0 is required.__ - -0. Make your QGIS python environment writable by users (see previous section) -1. Download and install the CPLEX solver from IBM's website (tested with CPLEX_Studio2211) -2. Open OSGeo4W Shell as administrator -3. Execute changing directory to the CPLEX install location, python folder, then run setup.py with the install argument: -```batch -cd ..\IBM\ILOG\CPLEX_Studio2211\python -python setup.py install -``` -Now you can just select CPLEX on any decision [optimization](/docs/docs/qgis-toolbox/README.html#deployed-algorithms) algorithm (advanced parameters section, on the dropdown form) -![](img/doop_advancedoptions.png){: width="75%" } - -### making a python environment launcher for developers - -To have a location independent launcher that activates the environment in a CMD terminal; -- for running python scripts using QGIS without the application raised -- that could be chained into VSCode for development [.vscode\settings.json](https://raw.githubusercontent.com/fire2a/fire2a-lib/main/.vscode/settings.json) - -Copy and modify `python-qgis.bat` that comes in QGIS `bin` folder, in these 3 steps (explainer video after, [sample](https://raw.githubusercontent.com/fire2a/fire2a-lib/main/python-qgis-cmd.bat)): - -1. Open QGIS install folder, open the `bin` folder - - probably: `C:\Program Files\QGIS 3.45.6\bin` (adjust version) - - surely: `Win button > type QGIS > 2ndary click > Open file location > 2ndary click > Open file location > click 'bin' folder` -2. Copy and rename `python-qgis.bat` to a location and name of your choosing -3. Edit the 2nd and last line with: -```batch - REM call it from an absolute path - REM adjust location and version - call "%PROGRAMFILES%\QGIS 3.45.6\bin\o4w_env.bat" (adjust version) - - REM print the prefix as check - echo python sys says: - python -c "import sys; print('prefix:', sys.prefix, '\npath:', sys.path)" - REM leave the terminal running - cmd.exe /k -``` - - - -### other useful locations -```batch -# user plugin folder -%AppData%\QGIS\QGIS3\profiles\default\python\plugins\fireanalyticstoolbox -# shell location -%ProgramFiles%\QGIS 3.36.1\OSGeo4W.bat -# python location -%ProgramFiles%\QGIS 3.36.1\apps\Python39 -``` - ---- -[QGIS]: https://qgis.org -[requirements.txt]: https://raw.githubusercontent.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/main/fireanalyticstoolbox/requirements.txt -[requirements.dev.txt]: https://raw.githubusercontent.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/main/requirements.dev.txt -[Scott&Burgan-dialog-server]: https://fdobad.github.io/qgis-processingplugin-template/plugins.xml -[Kitral simulator dialog-server]: https://fdobad.github.io/fire2am-kitral/plugins.xml -[Processing-Toolbox-server]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/plugins.xml -[toolbox-releases]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/releases -[toolbox-repo]: https://www.github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin -[kitral-dialog-requirements.txt]: https://raw.githubusercontent.com/fdobad/fire2am-kitral/main/requirements.txt -[TODO-Cell2Fire-requirements.txt]: https://github.com/fire2a/C2F-W - -[toolbox-server]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/plugins.xml -[fetching plugins]: https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html -[custom]: https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html#basic-fa-configuring-additional-plugin-repositories -[new plugin]: https://docs.qgis.org/3.28/en/docs/training_manual/qgis_plugins/fetching_plugins.html#basic-fa-installing-new-plugins diff --git a/docs/qgis-toolbox/img/algo_sim-dialog-closedadvanced.png b/docs/qgis-toolbox/img/algo_sim-dialog-closedadvanced.png deleted file mode 100644 index 95d4d28..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-dialog-closedadvanced.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-dialog.png b/docs/qgis-toolbox/img/algo_sim-dialog.png deleted file mode 100644 index 98fa3ea..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-dialog.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-landscape.png b/docs/qgis-toolbox/img/algo_sim-landscape.png deleted file mode 100644 index 44f03c1..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-landscape.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-only-output.png b/docs/qgis-toolbox/img/algo_sim-only-output.png deleted file mode 100644 index 39dd25b..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-only-output.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-options-full.png b/docs/qgis-toolbox/img/algo_sim-options-full.png deleted file mode 100644 index d160b58..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-options-full.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-options.png b/docs/qgis-toolbox/img/algo_sim-options.png deleted file mode 100644 index 0be7878..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-options.png and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-output.xcf b/docs/qgis-toolbox/img/algo_sim-output.xcf deleted file mode 100644 index c184e34..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-output.xcf and /dev/null differ diff --git a/docs/qgis-toolbox/img/algo_sim-outputs+advanced.png b/docs/qgis-toolbox/img/algo_sim-outputs+advanced.png deleted file mode 100644 index f5aef7e..0000000 Binary files a/docs/qgis-toolbox/img/algo_sim-outputs+advanced.png and /dev/null differ diff --git a/docs/sobras.md b/docs/sobras.md deleted file mode 100644 index 10ddcf0..0000000 --- a/docs/sobras.md +++ /dev/null @@ -1,17 +0,0 @@ - -{: .warning} -Windows users must set `.tif` as their default raster format -![](assets/windows_tif.png) - - -2. fire2a-toolbox installation can *almost* be done straight forward from QGIS **[plugin manager]** *but*: - - Python [dependencies][requirements.txt] must be manually resolved - - fire2a's plugin repo/store [link][toolbox-server] must be added as a custom plugin source (*) - - - -(*) : Because it contains compiled c++ binary code -for Cell2Fire simulator, but binary code cannot be easily verified hence the plugin is not allowed on the [regular repo/store](https://plugins.qgis.org/). Nevertheless all our code is open source, its build is "reproducible" by an automated action; all can be audited on [fire2a@github](https://github.com/fire2a) - -* **Testers** should instead install by `.zip` file from fire2a-toolbox [releases][toolbox-releases] -* **Developers** should clone our repos ([toolbox-repo], [c2f-repo], [fire2a-lib-repo]), compile cell2fire, symlink and setup additional python dependencies to contribute ([tl;dr](/docs/docs/Cell2Fire/README.html#unix-overview)) - diff --git a/index.md b/index.md deleted file mode 100644 index 684a06f..0000000 --- a/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Home -layout: home -nav_order: 99 ---- -Welcome to the Fire2a research group documentation, choose your component: - -[__QGIS Fire Analytics Toolbox__](docs/qgis-toolbox/README.html): Our research as **user friendly graphical tools**: Simulate wildfires, get risk metrics, optimize firebreak location, etc. All from within [QGIS]. **Simple as filling a form**. Also available: drag'n'drop boxes (algorithms) into a *GIS-data-science-pipeline*. - -[__Cell2Fire++__](docs/Cell2Fire/README.html): Forest fire simulator ([Forked]) and improved ([Here]). Supports Canada, Kitral, S&B fuel models , surface and crown fire, deals with weather scenarios, surface and vegetation moisture content; various output metrics. Also enhances in memory management, platform support, etc. **C++ only command line interface.** - -[__Algorithms Library__](docs/fire2a-lib.html) of common tasks & patterns of GIS. Also showcasing proof of concepts and special algorithms developed such as landscape clustering, firebreak optimization allocation, downstream protection value, etc. **A python package.** - -[__QGIS Cookbook__](docs/qgis-cookbook/README.html): Install & setup guides, python environments, plugins and workflows examples. - -[__QGIS dialog DEPRECATED__](docs/qgis-dialog/README.html): Simulate forest fires, get valuable metrics, in a user friendly graphical interface through [QGIS]. __Not maintained__ - -# About us - -We are a research group that seeks solutions to complex problems arising from the terrestrial ecosystem and its natural and anthropogenic disturbances, such as wildfires. - -Currently hosted at [ISCI](https://isci.cl) offices. - -Contact us at fire2a@fire2a.com. - -Visit our public webpage. - -[{% avatar fire2a %}](https://github.com/fire2a/) -[{% avatar jaimecarrasco %}](https://github.com/jaimecarrasco/) -[{% avatar lucasmurray97 %}](https://github.com//lucasmurray97/) -[{% avatar FelipedlB %}](https://github.com/FelipedlB/) -[{% avatar fulloaf %}](https://github.com/fulloaf/) -[{% avatar fdobad size=40 %}](https://github.com/fdobad/) -[![](docs/assets/aw.png){: width="40" }](https://www.dii.uchile.cl/~aweintra/) - - -[{% avatar Sigggma %}](https://github.com/Sigggma/) -[{% avatar matisuno %}](https://github.com/matiasuno/) -[{% avatar diegoteran99 %}](https://github.com/diegoteran99/) - -![ci](https://github.com/fire2a/docs/actions/workflows/ci.yml/badge.svg) -![pages](https://github.com/fire2a/docs/actions/workflows/pages.yml/badge.svg) - -### _About this page_ -It's all [markdown!](docs/markdown_kitchen_sink.html) -[content licence](https://raw.githubusercontent.com/fire2a/docs/main/LICENSE) -[just-the-docs-licence](https://raw.githubusercontent.com/fire2a/docs/main/just-the-docs-LICENSE) - ---- -[QGIS]: https://qgis.org -[Forked]: https://github.com/cell2fire/Cell2Fire/ -[Here]: https://github.com/fire2a/C2F-W/ diff --git a/serve.sh b/serve.sh new file mode 100755 index 0000000..79e0d13 --- /dev/null +++ b/serve.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -x + +cd /app +bundle exec jekyll serve --livereload --host 0.0.0.0 --force_polling diff --git a/docs/Cell2Fire/compile_linux.md b/site/Cell2FireW/compile_linux.md similarity index 100% rename from docs/Cell2Fire/compile_linux.md rename to site/Cell2FireW/compile_linux.md diff --git a/docs/Cell2Fire/compile_macos.md b/site/Cell2FireW/compile_macos.md similarity index 100% rename from docs/Cell2Fire/compile_macos.md rename to site/Cell2FireW/compile_macos.md diff --git a/docs/Cell2Fire/compile_windows.md b/site/Cell2FireW/compile_windows.md similarity index 100% rename from docs/Cell2Fire/compile_windows.md rename to site/Cell2FireW/compile_windows.md diff --git a/site/Cell2FireW/data_preparation.md b/site/Cell2FireW/data_preparation.md new file mode 100644 index 0000000..1dc5497 --- /dev/null +++ b/site/Cell2FireW/data_preparation.md @@ -0,0 +1,72 @@ +--- +layout: default +title: Data preparation +parent: Cell2FireW simulator +nav_order: 1 +has_children: false +has_toc: false +--- + +{: .success} +Real, validated and ready to use instances available using "instance downloader" algorithm of our [Fire Analytics Toolbox QGIS plugin](/qgis-toolbox) + +tl;dr: +- _At least you need to map the fuels of a landscape and the wind speed and direction per hour_ +- Supported raster formats: `AAIGrid` (.asc) and `GeoTiff` (.tif -partially supported) +- Wind data goes in a `Weather.csv` (with other weather parameters) +- All input data must be put in the same directory with standarized names + +# Rasters +- All rasters [and qgis-project] must be projected in the same CRS, in squared meters +- `AAIGrid` (.asc) raster format is fully supported unlike `GeoTiff` (.tif) that only reads a `fuels.tif` raster (ignoring the rest, still on development) +- When using QGIS, there's a sanity check: + - Using the fuel raster as base, rasters must match + - In number of pixels in both direction + - At most one pixel offset in each direction + - Hence pixel size must be very close [~mm] + +| rasters | purpose | units | +| --- | --- | --- | +| fuels | encode landscape | fuel model table | +| elevation | dem data elevation model | meters | +| cbh | canopy base height is where the lowest branch is | meters | +| cbd | canopy bulk density | kg/m3 | +| ccf | canopy cover fraction is like cloud cover indicator | [0,1] | +| hm | canopy top height | meters | +| py | probability density map is to draw ignitions | [0,1] | + +back to top +{: style="text-align: right;"} + +# Fuel model +To encode the landscape in the simulator, you'll need to map the fuels according to one of the 3 supported models: +- [Spain or Scott&Burgan](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/raw/refs/heads/main/fireanalyticstoolbox/simulator/spain_lookup_table.csv) +- [Chile or Kitral](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/blob/main/fireanalyticstoolbox/simulator/kitral_lookup_table.csv) +- [Canada or FBP](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/blob/main/fireanalyticstoolbox/simulator/fbp_lookup_table.csv) + +These fuel model tables assign a type of fuel model or category to each pixel of the landscape using the integer map defined on the look up tables (.csv) + +back to top +{: style="text-align: right;"} + +# Weather +**Weather.csv table specification:** +* minimal columns: `name,timestamp,wind-speed,wind-direction` +* rows: by default each row lasts one hour +* fuel model dependant columns: + +Canada +: `Scenario,datetime,APCP,TMP,RH,WS,WD,FFMC,DMC,DC,ISI,BUI,FWI` + +Kitral +: `Instance,datetime,WS,WD,TMP,RH` + +Scott&Burgan +: `Scenario,datetime,WS,WD,FireScenario` + +* FireScenario was deprecated by "Live & Dead Fuel Moisture Content Scenario [1=dry..4=moist]" +* There's no need to be consistent with the timestamps, but isoformat `YYYY-MM-DDTHH:MM:SS` should be followed +* WIP: unifying weather formats, relying on column names instead of order to read them + +back to top +{: style="text-align: right;"} diff --git a/site/Cell2FireW/get.md b/site/Cell2FireW/get.md new file mode 100644 index 0000000..d55b83e --- /dev/null +++ b/site/Cell2FireW/get.md @@ -0,0 +1,9 @@ +--- +layout: default +title: Get it +parent: Cell2FireW simulator +nav_order: 2 +has_children: false +has_toc: false +--- + diff --git a/docs/Cell2Fire/img/c2fFBP-Example1.png b/site/Cell2FireW/img/c2fFBP-Example1.png similarity index 100% rename from docs/Cell2Fire/img/c2fFBP-Example1.png rename to site/Cell2FireW/img/c2fFBP-Example1.png diff --git a/docs/Cell2Fire/img/c2fFBP-Example2.png b/site/Cell2FireW/img/c2fFBP-Example2.png similarity index 100% rename from docs/Cell2Fire/img/c2fFBP-Example2.png rename to site/Cell2FireW/img/c2fFBP-Example2.png diff --git a/docs/Cell2Fire/img/c2fFBP-Example3.png b/site/Cell2FireW/img/c2fFBP-Example3.png similarity index 100% rename from docs/Cell2Fire/img/c2fFBP-Example3.png rename to site/Cell2FireW/img/c2fFBP-Example3.png diff --git a/docs/Cell2Fire/img/c2fFBP-Example4.png b/site/Cell2FireW/img/c2fFBP-Example4.png similarity index 100% rename from docs/Cell2Fire/img/c2fFBP-Example4.png rename to site/Cell2FireW/img/c2fFBP-Example4.png diff --git a/docs/Cell2Fire/img/c2fk-El_portillo.png b/site/Cell2FireW/img/c2fk-El_portillo.png similarity index 100% rename from docs/Cell2Fire/img/c2fk-El_portillo.png rename to site/Cell2FireW/img/c2fk-El_portillo.png diff --git a/docs/Cell2Fire/img/c2fsb-example-metrics.png b/site/Cell2FireW/img/c2fsb-example-metrics.png similarity index 100% rename from docs/Cell2Fire/img/c2fsb-example-metrics.png rename to site/Cell2FireW/img/c2fsb-example-metrics.png diff --git a/docs/Cell2Fire/img/c2fsb-example-scar.png b/site/Cell2FireW/img/c2fsb-example-scar.png similarity index 100% rename from docs/Cell2Fire/img/c2fsb-example-scar.png rename to site/Cell2FireW/img/c2fsb-example-scar.png diff --git a/site/Cell2FireW/index.md b/site/Cell2FireW/index.md new file mode 100644 index 0000000..7911f78 --- /dev/null +++ b/site/Cell2FireW/index.md @@ -0,0 +1,68 @@ +--- +layout: default +title: Cell2FireW simulator +nav_order: 2 +has_children: true +has_toc: false +--- +

+Cell2FireW simulator +

+ +{: .warning} +CLI C++ code; Check the graphical user friendly version: [Fire Analytics Toolbox QGIS plugin]({{ site.baseurl }}/qgis-toolbox) + +{: .no_toc} +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+ +# Overview + +_Originally forked from [Cell2Fire](https://github.com/cell2fire/Cell2Fire), thanks to the work of Cristobal Pais, Jaime Carrasco, David Martell, [David L. Woodruff](https://github.com/DLWoodruff), Andres Weintraub, et al._ + +Cell2Fire is a 2D-grid-based forest and wildland landscape fire simulator, focused on large scale areas and fast simulations to provide robust risk spatial analytics, harnessing c++ parallel computation methods. + +Current Version: +- [W](https://github.com/fire2a/c2f-w) bundles Spain, Chile and Canada fuel model behaviors! +- _Want your own local fuel model? [Contact us!](getting-help/#how-to-reach-us)_ + +Released flavors (*no longer maintained*): +- [Scott & Burgan](https://github.com/fire2a/C2FSB) +- [Kitral](https://github.com/fire2a/C2FK) +- [FBP](https://github.com/fire2a/C2FFBP) + +# Output examples + +## Scott & Burgan +### Previncat's Zone 60 (Catalonian Instance): forest and a simulated fire spread with its corresponding scar and growth propagation tree. +![Example-Instance_Scar](img/c2fsb-example-scar.png) +### Risk metrics: Burn Probability (BP), Betweenness Centrality (BC), Downstream Protection Value (DPV), and Growth Propagation Tree (GPT). +![Example-Risck_Metrics](img/c2fsb-example-metrics.png) + +## Kitral +### El Portillo, simulation with crown fire behavior. +![Example-El Portillo-Crown fire](img/c2fk-El_portillo.png) + +## Canadian Forest Fire Behavior Prediction System + +|:-------------|:------------------| +| Dogrib forest, Canada ![](img/c2fFBP-Example4.png){: width="100%" } | shortest paths propagation ![](img/c2fFBP-Example1.png){: width="80%" } | +| Shortest paths propagation and ROS intensity ![](img/c2fFBP-Example2.png){: width="100%" } | Burn-Probability ![](img/c2fFBP-Example3.png){: width="80%" } | + +# Get Cell2FireW +## gui +Most users would want to get the graphical user friendly version: [Fire Analytics Toolbox QGIS plugin](/qgis-toolbox) +## cli +Get a ready to use binary (choose your platform), from the [latest release](https://www.github.com/fire2a/C2F-W/releases/latest) page. +## source +- Check the [repo's action artifacts](https://github.com/fire2a/C2F-W/actions) for the latest info on automated builds +- Check the [developer setup guide](https://github.com/fire2a#developer-setup) for a global view +### Linux [Make](compile_linux.html) +### Macos [Make](compile_macos.html) +### Windows [Visual Studio](compile_windows.html) diff --git a/Gemfile b/site/Gemfile similarity index 100% rename from Gemfile rename to site/Gemfile diff --git a/Gemfile.lock b/site/Gemfile.lock similarity index 100% rename from Gemfile.lock rename to site/Gemfile.lock diff --git a/_config.yml b/site/_config.yml similarity index 94% rename from _config.yml rename to site/_config.yml index 91c6ee1..143c20a 100644 --- a/_config.yml +++ b/site/_config.yml @@ -9,14 +9,14 @@ repository: fire2a/docs # color_scheme: nil aux_links: - "View on github": https://github.com/fire2a/docs + "View on github": https://github.com/fire2a aux_links_new_tab: true heading_anchors: true -logo: "/docs/assets/f2a-icon.png" -favicon_ico: "/docs/assets/nofire.ico" +logo: "/assets/f2a-icon.png" +favicon_ico: "/assets/nofire.ico" exclude: # from https://github.com/jekyll/jekyll/blob/master/lib/site_template/_config.yml: diff --git a/_includes/footer_custom.html b/site/_includes/footer_custom.html similarity index 100% rename from _includes/footer_custom.html rename to site/_includes/footer_custom.html diff --git a/site/algo-lib/api_doc.md b/site/algo-lib/api_doc.md new file mode 100644 index 0000000..f9c6f01 --- /dev/null +++ b/site/algo-lib/api_doc.md @@ -0,0 +1,9 @@ +--- +layout: default +title: API Documentation +nav_order: 2 +has_toc: false +parent: Algorithms Library +--- + + diff --git a/site/algo-lib/index.md b/site/algo-lib/index.md new file mode 100644 index 0000000..3e8963a --- /dev/null +++ b/site/algo-lib/index.md @@ -0,0 +1,26 @@ +--- +layout: default +title: Algorithms Library +nav_order: 3 +has_toc: false +--- +# Algorithms Library + +This library is a [Python package] containing fire-related algorithms, decision optimization tools, common utilities, and tools for GIS, clustering, and more. + +It supports the integration of [QGIS Fire Analytics Toolbox] with [Cell2FireW simulator]. + +The target users are developers and researchers who want to reuse these algorithms in their own projects, as well as terminal users looking to gain efficiency by running the algorithms via CLI instead of through the QGIS GUI. + +* [Installation & Quickstart](https://github.com/fire2a/fire2a-lib/blob/main/README.md) +* [API Documentation] + +{: .info} +Everything Everywhere All at Once [https://github.com/fire2a#developer-setup](https://github.com/fire2a#developer-setup) + +--- +[python package]: https://pypi.org/project/fire2a-lib +[QGIS Fire Analytics Toolbox]: /docs/qgis-toolbox/ +[Cell2FireW simulator]: /docs/Cell2Fire/README.html +[API Documentation]: https://fire2a.github.io/fire2a-lib + diff --git a/site/algo-lib/repo_quickstart.md b/site/algo-lib/repo_quickstart.md new file mode 100644 index 0000000..f6dfc44 --- /dev/null +++ b/site/algo-lib/repo_quickstart.md @@ -0,0 +1,9 @@ +--- +layout: default +title: Installation & Quickstart +nav_order: 1 +has_toc: false +parent: Algorithms Library +--- + + diff --git a/docs/assets/aw.png b/site/assets/aw.png similarity index 100% rename from docs/assets/aw.png rename to site/assets/aw.png diff --git a/docs/assets/f2a-icon.png b/site/assets/f2a-icon.png similarity index 100% rename from docs/assets/f2a-icon.png rename to site/assets/f2a-icon.png diff --git a/docs/assets/nofire.ico b/site/assets/nofire.ico similarity index 100% rename from docs/assets/nofire.ico rename to site/assets/nofire.ico diff --git a/docs/assets/nofire.png b/site/assets/nofire.png similarity index 100% rename from docs/assets/nofire.png rename to site/assets/nofire.png diff --git a/docs/assets/qgis-favicon.ico b/site/assets/qgis-favicon.ico similarity index 100% rename from docs/assets/qgis-favicon.ico rename to site/assets/qgis-favicon.ico diff --git a/docs/assets/windows_tif.png b/site/assets/windows_tif.png similarity index 100% rename from docs/assets/windows_tif.png rename to site/assets/windows_tif.png diff --git a/site/getting-help/index.md b/site/getting-help/index.md new file mode 100644 index 0000000..addc343 --- /dev/null +++ b/site/getting-help/index.md @@ -0,0 +1,45 @@ +--- +layout: default +title: Getting Help +nav_order: 6 +has_children: true +has_toc: false +--- +# Getting Help 🚑 +## How to reach us + +1. Public relations mail (ask to join our mailing list!) or [linkedin](https://www.linkedin.com/company/fire2a). +2. Chat with us at [discord](https://discord.gg/wSuSFjrt). +3. Post a Github Issue + +## Before getting help checklist + +1. Avoid cloud drives and network shared folders + - Use QGIS temporary outputs. + - Create `C:\local` or `~/local` folder for your work. +2. Avoid funny characters (` `,`á`,`é`,`í`,`ö`, etc.) in directories, files and names. +3. Avoid funny formats for rasters and vectors + - `Options > Processing > default raster & vector layers` formats set to `tif & gpkg` respectively + - Save all input and output layers in these formats. +4. Update or reinstall -if apply: + - Cell2FireW release + - Algorithms Library: fire2a-lib package (further see into recreating the virtual environment) + - QGIS Fire Analytics Toolbox Plugin. +5. Update and restart: QGIS, your OS, your computer. +6. Try again in a new, clean project; if the problem persist, gather these details: + +## Help message indispensables + +1. [If using] QGIS system info: `Help > About > Copy to clipboard` +2. Your goal, expectations and unexpected behavior +3. Clear steps to reproduce the issue (fullscreen video recording is a plus) +4. Specific logs and error messages (full QGIS processing log is a plus) +5. [If using] Other QGIS log messages: `View > Panels > Log Messages` (Plugins, Processing, Python, fire2a) +6. [If using] Cell2FireW simulator, zip the input instance folder and attach it. If possible, the output log file. + +## Github Issues + +1. [Cell2FireW](https://www.github.com/fire2a/C2F-W/issues) +2. [QGIS Fire Analytics Toolbox](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/issues) +3. [Algorithms Library](https://www.github.com/fire2a/fire2a-lib/issues) +4. [This very documentation](https://www.github.com/fire2a/docs/issues) diff --git a/site/index.md b/site/index.md new file mode 100644 index 0000000..db5f319 --- /dev/null +++ b/site/index.md @@ -0,0 +1,59 @@ +--- +title: Home +layout: home +--- +Welcome to Fire2a's research group user documentation, choose your component: + +[__QGIS Fire Analytics Toolbox__](qgis-toolbox): Our research as **user friendly graphical tools**: Simulate wildfires, get risk metrics, optimize firebreak location, etc. All from within [QGIS]. **Simple as filling a form**. Also available: drag'n'drop boxes (algorithms) into a *GIS-data-science-pipeline*. + +[__Cell2FireW__](Cell2FireW): Forest fire simulator ([Forked]) and improved ([Here]). Supports Canada, Kitral, S&B fuel models , surface and crown fire, deals with weather scenarios, surface and vegetation moisture content; various output metrics. Also enhances in memory management, platform support, etc. **C++ only command line interface.** + +[__Algorithms Library__](algo-lib) of common tasks & patterns of GIS. Also showcasing proof of concepts and special algorithms developed such as landscape clustering, firebreak optimization allocation, downstream protection value, etc. **A python package.** + +[__QGIS cookbook__](qgis-cookbook): Install & setup guides, python environments, plugins and workflows examples. + +[__QGIS management__](qgis-management): Install & setup guides, python environments, plugins and workflows examples. + +[__Getting help__](getting-help): How to reach us, before getting help checklist, help message indispensables. + + +# About us + +We are a research group that seeks solutions to complex problems arising from the terrestrial ecosystem and its natural and anthropogenic disturbances, such as wildfires. + +Currently hosted at [ISCI](https://isci.cl) offices. + +Contact us at fire2a@fire2a.com. + +Visit our public webpage. + +[![](assets/aw.png){: width="40" }](https://www.dii.uchile.cl/~aweintra/) +[{% avatar caro %}](https://github.com/car0espinoza/) +[{% avatar fdobad %}](https://github.com/fdobad/) +[{% avatar felipe %}](https://github.com/FelipedlB/) +[{% avatar jaime %}](https://github.com/jaimecarrasco/) +[{% avatar matiasuno %}](https://github.com/matiasuno/) +[{% avatar matilde %}](https://github.com/matilderivas/) +[{% avatar rodrigo %}](https://github.com/RodrigoMahalufRecasens/) + +[{% avatar bulla %}](https://github.com/antoniochavez18/) +[{% avatar diego %}](https://github.com/diegoteran99/) +[{% avatar esteban %}](https://github.com/Sigggma/) +[{% avatar felipeUlloa %}](https://github.com/fulloaf/) +[{% avatar fire2a %}](https://github.com/fire2a/) +[{% avatar lucas %}](https://github.com/lucasmurray97/) +[{% avatar ramiro %}](https://github.com/R4miro-P/) +[{% avatar sebastian %}](https://github.com/sebarojasmorales/) + +![ci](https://github.com/fire2a/docs/actions/workflows/ci.yml/badge.svg) +![pages](https://github.com/fire2a/docs/actions/workflows/pages.yml/badge.svg) + +### _About this page_ +It's all [markdown!](markdown_kitchen_sink.html) +[content license](https://github.com/fire2a/docs/raw/refs/heads/main/LICENSE) +[just-the-docs-licence](https://github.com/just-the-docs/just-the-docs-template/raw/refs/heads/main/LICENSE) + +--- +[QGIS]: https://qgis.org +[Forked]: https://github.com/cell2fire/Cell2Fire/ +[Here]: https://github.com/fire2a/C2F-W/ diff --git a/docs/markdown_kitchen_sink.md b/site/markdown_kitchen_sink.md similarity index 100% rename from docs/markdown_kitchen_sink.md rename to site/markdown_kitchen_sink.md diff --git a/docs/qgis-cookbook/img/checkbox_refresh_reloads_plugin.mp4 b/site/qgis-cookbook/img/checkbox_refresh_reloads_plugin.mp4 similarity index 100% rename from docs/qgis-cookbook/img/checkbox_refresh_reloads_plugin.mp4 rename to site/qgis-cookbook/img/checkbox_refresh_reloads_plugin.mp4 diff --git a/docs/qgis-cookbook/img/doop_advancedoptions.png b/site/qgis-cookbook/img/doop_advancedoptions.png similarity index 100% rename from docs/qgis-cookbook/img/doop_advancedoptions.png rename to site/qgis-cookbook/img/doop_advancedoptions.png diff --git a/docs/qgis-cookbook/img/force-python-requirements.png b/site/qgis-cookbook/img/force-python-requirements.png similarity index 100% rename from docs/qgis-cookbook/img/force-python-requirements.png rename to site/qgis-cookbook/img/force-python-requirements.png diff --git a/docs/qgis-cookbook/img/install_fire2a_toolbox.mp4 b/site/qgis-cookbook/img/install_fire2a_toolbox.mp4 similarity index 100% rename from docs/qgis-cookbook/img/install_fire2a_toolbox.mp4 rename to site/qgis-cookbook/img/install_fire2a_toolbox.mp4 diff --git a/docs/qgis-cookbook/img/install_win_pip_requirements.mp4 b/site/qgis-cookbook/img/install_win_pip_requirements.mp4 similarity index 100% rename from docs/qgis-cookbook/img/install_win_pip_requirements.mp4 rename to site/qgis-cookbook/img/install_win_pip_requirements.mp4 diff --git a/docs/qgis-cookbook/img/plugins_version.png b/site/qgis-cookbook/img/plugins_version.png similarity index 100% rename from docs/qgis-cookbook/img/plugins_version.png rename to site/qgis-cookbook/img/plugins_version.png diff --git a/docs/qgis-cookbook/img/qgis_set_default_formats.png b/site/qgis-cookbook/img/qgis_set_default_formats.png similarity index 100% rename from docs/qgis-cookbook/img/qgis_set_default_formats.png rename to site/qgis-cookbook/img/qgis_set_default_formats.png diff --git a/docs/qgis-cookbook/img/qgis_windows_activate_venv.mp4 b/site/qgis-cookbook/img/qgis_windows_activate_venv.mp4 similarity index 100% rename from docs/qgis-cookbook/img/qgis_windows_activate_venv.mp4 rename to site/qgis-cookbook/img/qgis_windows_activate_venv.mp4 diff --git a/docs/qgis-cookbook/img/qgis_windows_single_user.mp4 b/site/qgis-cookbook/img/qgis_windows_single_user.mp4 similarity index 100% rename from docs/qgis-cookbook/img/qgis_windows_single_user.mp4 rename to site/qgis-cookbook/img/qgis_windows_single_user.mp4 diff --git a/docs/qgis-cookbook/img/tldr_add_plugin_source.png b/site/qgis-cookbook/img/tldr_add_plugin_source.png similarity index 100% rename from docs/qgis-cookbook/img/tldr_add_plugin_source.png rename to site/qgis-cookbook/img/tldr_add_plugin_source.png diff --git a/docs/qgis-cookbook/img/tldr_install_plugin.png b/site/qgis-cookbook/img/tldr_install_plugin.png similarity index 100% rename from docs/qgis-cookbook/img/tldr_install_plugin.png rename to site/qgis-cookbook/img/tldr_install_plugin.png diff --git a/site/qgis-cookbook/index.md b/site/qgis-cookbook/index.md new file mode 100644 index 0000000..742988a --- /dev/null +++ b/site/qgis-cookbook/index.md @@ -0,0 +1,48 @@ +--- +layout: default +title: QGIS Cookbook +nav_order: 4 +has toc: false +--- +{: .no_toc} +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+ +# Check a fire2a algorithm's html log from WSL +_Did you accidentally close the algorithm's dialog window, and at reopening the execution log is gone? We got you covered:_ +- [Open the log messages panel](https://docs.qgis.org/latest/en/docs/user_manual/introduction/general_tools.html#log-messages-panel) +- Look for the `fire2a` tab +- Each algorithm execution is timestamped, identified by its name and the location of its log file, copy the location of the log file +- Open a terminal and navigate to the log file location +- Start a python [http server](https://docs.python.org/3/library/http.server.html) to visualize the html log file back in windows +```bash +cd /tmp/processing_vYybGp/8a8bd04a438641cf8a780de0dbe7eea6/InstanceDirectory/results +python3 -m http.server + Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... + 127.0.0.1 - - [24/Jan/2025 22:48:48] "GET / HTTP/1.1" 200 - +# stop the server with Ctrl+C or closing the terminal +``` +- Back on Windows, open your favorite web-browser (firefox) and open [http://localhost:8000/](http://localhost:8000/) + +--- +[QGIS]: https://qgis.org +[requirements.txt]: https://raw.githubusercontent.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/main/fireanalyticstoolbox/requirements.txt +[requirements.dev.txt]: https://raw.githubusercontent.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/main/requirements.dev.txt +[Scott&Burgan-dialog-server]: https://fdobad.github.io/qgis-processingplugin-template/plugins.xml +[Kitral simulator dialog-server]: https://fdobad.github.io/fire2am-kitral/plugins.xml +[Processing-Toolbox-server]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/plugins.xml +[toolbox-releases]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/releases +[toolbox-repo]: https://www.github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin +[kitral-dialog-requirements.txt]: https://raw.githubusercontent.com/fdobad/fire2am-kitral/main/requirements.txt +[TODO-Cell2Fire-requirements.txt]: https://github.com/fire2a/C2F-W + +[toolbox-server]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/plugins.xml +[fetching plugins]: https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html +[custom]: https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html#basic-fa-configuring-additional-plugin-repositories +[new plugin]: https://docs.qgis.org/3.28/en/docs/training_manual/qgis_plugins/fetching_plugins.html#basic-fa-installing-new-plugins diff --git a/docs/qgis-cookbook/img/install_plugin_server.mp4 b/site/qgis-management/img/install_plugin_server.mp4 similarity index 100% rename from docs/qgis-cookbook/img/install_plugin_server.mp4 rename to site/qgis-management/img/install_plugin_server.mp4 diff --git a/site/qgis-management/img/plugin_install_custom_store_with_audio.mp4 b/site/qgis-management/img/plugin_install_custom_store_with_audio.mp4 new file mode 100644 index 0000000..1452dbd Binary files /dev/null and b/site/qgis-management/img/plugin_install_custom_store_with_audio.mp4 differ diff --git a/site/qgis-management/img/plugin_install_zip_release.mp4 b/site/qgis-management/img/plugin_install_zip_release.mp4 new file mode 100644 index 0000000..dd5c1a9 Binary files /dev/null and b/site/qgis-management/img/plugin_install_zip_release.mp4 differ diff --git a/site/qgis-management/img/plugin_python_dependencies_dialog.png b/site/qgis-management/img/plugin_python_dependencies_dialog.png new file mode 100644 index 0000000..f235aca Binary files /dev/null and b/site/qgis-management/img/plugin_python_dependencies_dialog.png differ diff --git a/site/qgis-management/img/plugin_python_dependencies_dialog_no.png b/site/qgis-management/img/plugin_python_dependencies_dialog_no.png new file mode 100644 index 0000000..78976eb Binary files /dev/null and b/site/qgis-management/img/plugin_python_dependencies_dialog_no.png differ diff --git a/site/qgis-management/index.md b/site/qgis-management/index.md new file mode 100644 index 0000000..2d1d667 --- /dev/null +++ b/site/qgis-management/index.md @@ -0,0 +1,22 @@ +--- +layout: default +title: QGIS Management +nav_order: 5 +has_children: true +has_toc: false +--- +## [Install & Setup guide](./install.html) +__tl;dr:__ +- prefer the latest over the LTR (long term release) of QGIS +- __Linux__: setup an system aware python virtual environment for QGIS +- __MacOS__: use the bundled python directly +- __Windows__: + - `WSL` >> `OSGeo4W installer` >> `Standalone` installer + - make your python environment writable + - use the bundled python directly + +## [Plugins guide](./plugins.html) +__tl;dr:__ +- There are store plugins, custom store plugins, zip releases and manual installations +- Must have plugins: Save All, Serval, IPyConsole, Plugin Reloader, Plugin Builder +- Python dependencies are up to the user to install, but our plugin has a built-in dependency installer diff --git a/site/qgis-management/install.md b/site/qgis-management/install.md new file mode 100644 index 0000000..1a581ab --- /dev/null +++ b/site/qgis-management/install.md @@ -0,0 +1,157 @@ +--- +layout: default +title: Install & Setup +nav_order: 5 +parent: QGIS Management +has_children: false +has_toc: false +--- +{: .no_toc} +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+# tl;dr: +- prefer the latest over the LTR (long term release) of QGIS +- __Linux__: setup an system aware python virtual environment for QGIS +- __MacOS__: use the bundled python directly +- __Windows__: + - `WSL` >> `OSGeo4W installer` >> `Standalone` installer + - make your python environment writable + - use the bundled python directly + +# LTR vs Latest +QGIS has two versions: Long Term Release (LTR) and Latest. The LTR may be the most stable version, but lacks new features that the Latest version has. But also [QGIS relase schedule](https://qgis.org/resources/roadmap/#schedule) moves very fast (every 3 or so months), so there's no much point into supporting old versions for long. + +At the time of writing we support 3.36.2 and up. + +# Linux 🗽 +- Official QGIS [install tutorial](https://qgis.org/download/) +- Make a system aware python virtual environment for QGIS: + ```bash + # required + sudo apt install python3-venv + + # ~/pyvenv/qgis is just an example + python3 -m venv --system-site-packages ~/pyvenv/qgis + ``` +- Usage: activate before launching qgis + ```bash + source ~/pyvenv/qgis/bin/activate + qgis + ``` +- Customize QGIS's application "icon" launcher for ease of use: + ```bash + # make a user copy + mkdir -p ~/.local/share/applications + cp /usr/share/applications/org.qgis.qgis.desktop ~/.local/share/applications/org.qgis.qgisvenv.desktop + + # edit the sections in + nano ~/.local/share/applications/org.qgis.qgisvenv.desktop + # rename the launcher + Name=QGIS Desktop (venv) + + # activate the python environment + Exec=bash -c 'source ~/pyvenv/qgis/bin/activate && qgis %F' + + # + make local binaries available (usually user local binaries not in PATH) + # do you even have a ~/.local/bin? + Exec=bash -c 'export PATH=$HOME/.local/bin:$PATH && source ~/pyvenv/qgis/bin/activate && qgis %F' + + # + all logs for developers + Exec=bash -c 'export PATH=$HOME/.local/bin:$PATH && source ~/pyvenv/qgis/bin/activate && qgis %F | tee -a /tmp/qgis.log' + Terminal=true + + # if the icon not showing right away + update-desktop-database ~/.local/share/applications/ + ``` + +back to top +{: style="text-align: right;"} + +# MacOS +- Official QGIS [install tutorial](https://qgis.org/resources/installation-guide/#mac-os-x--macos) + +back to top +{: style="text-align: right;"} + +# Windows +Our recommendation priorities: Use the linux subsystem for windows (WSL), else the OSGeo4W installer, else the standalone installer. + +Some algorithms (DPV) don't parallelize in Windows; the standalone installer doesn't update, so upgrading is slow! Using the bundled python is difficult -it can't even make a virtual environment to isolate different plugins! So WSL FTW! + +## Windows Subsystem for Linux (WSL2) +Official [guide](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps), nevertheless here are the main steps for setting up Debian with QGIS: +- Prerequisites: Windows 10 Build 19044+ or Windows 11 (for WSL2 with GUI) + +1. Virtualization must be enabled (usually is, but restart to bios or uefi setup and check, else the next step will fail) +2. Activate the Windows Subsystem for Linux (WSL) additional feature (Start > Search > `Turn Windows features on or off` > checkbox `Windows Subsystem for Linux`, needs restarting) +3. Install Debian Linux distribution from the Microsoft Store or type in PowerShell + ```powershell + wsl --install -d Debian + ``` +4. Install the graphic drivers for gui apps (Open Debian from the Start menu) + ```bash + # update and upgrade the system (tip: repeat monthly) + sudo apt update && sudo apt upgrade -y + + # install the graphic drivers by allowing firmware packages + sudo nano /etc/apt/sources.list + + # add contrib, non-free and non-free-firmware to the end of the lines (3 or 4 lines), like this: + deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware + + # save and exit the editor: Ctrl+O, Enter, Ctrl+X + + # update and install the drivers + sudo apt update && sudo apt install firmware-linux firmware-linux-nonfree -y + sudo reboot + + # test the drivers + sudo apt install x11-apps + xeyes + ``` + +5. Check this [tutorial](https://learn.microsoft.com/en-us/windows/wsl/filesystems?source=recommendations), tl;dr: + - _Linux programs should work over linux locations, mixing windows locations is slow_ + - linux path `/home/` is equivalent to `\\wsl$\debian\home\` in windows + - `/mnt/c/Users//` is equivalent to `C:\Users\\` + - use the `explorer.exe .` command to open a file explorer in the current directory +6. Now you can install QGIS as in the linux section +7. Windows icon to launch QGIS: Create a batch file, e.g., `Desktop\launch_qgis.bat` with the following content: + ```batch + @echo off + wsl -d Debian -- bash -c "source ~/pyvenv/qgis/bin/activate && qgis" + ``` + +back to top +{: style="text-align: right;"} + +## OSGeo4W installer +- Official [OSGeo4W installer](https://qgis.org/resources/installation-guide/#osgeo4w-installer) guide +- QGIS gets installed in `C:\OSGeo4W\bin\qgis-bin.exe` +- To use QGIS's python you must open the OSGeo4W shell and activate the environment + ```batch + C:\OSGeo4W> cd bin + C:\OSGeo4W\bin> python-qgis.bat + >>> exit() + REM now the python environment is fully set up + REM but this environment forgets about the user's PATH so git or cplex won't be available + ``` + +## Standalone installer +- Official QGIS [standalone](https://qgis.org/resources/installation-guide/#standalone-installers) guide +- QGIS gets installed in `C:\Program Files\QGIS 3.40.2\bin\qgis-bin.exe` +- To use QGIS's python you must open the OSGeo4W shell and activate the environment + ```batch + C:\Program Files\QGIS 3.40.2\> cd bin + C:\Program Files\QGIS 3.40.2\bin\> python-qgis.bat + >>> exit() + REM now the python environment is fully set up + REM but this environment forgets about the user's PATH so git or cplex won't be available + ``` + diff --git a/site/qgis-management/plugins.md b/site/qgis-management/plugins.md new file mode 100644 index 0000000..7e5b164 --- /dev/null +++ b/site/qgis-management/plugins.md @@ -0,0 +1,162 @@ +--- +layout: default +title: Plugins +nav_order: 5 +parent: QGIS Management +has_children: false +has_toc: false +--- +{: .no_toc} +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+# tl;dr: +- There are store plugins, custom store plugins, zip releases and manual installations +- Must have plugins: Save All, Serval, IPyConsole, Plugin Reloader, Plugin Builder +- Python dependencies are up to the user to install, but our plugin has a built-in dependency installer + +# Installing +QGIS provides a plugin ["app store"](https://plugins.qgis.org/) that allows many developers to share their work. +There are several ways to install plugins, using the plugin manager is the most common way: +## _Search and install_ [official guide](https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html#lesson-installing-and-managing-plugins) +## _Install a custom app repository_ [official guide](https://docs.qgis.org/latest/en/docs/training_manual/qgis_plugins/fetching_plugins.html#follow-along-configuring-additional-plugin-repositories) +To install our plugin, add fire2a's [plugin store URL][toolbox-server] as a custom plugin source +- `QGIS menu > Plugins > Manage and Install Plugins > Settings > Add > paste the URL > Ok` +- On the `Not Installed` tab search `Fire` and install `Fire Analytics Processing-Toolbox` +- _Why custom? Audit our [binaries](https://github.com/fire2a/C2F-W/actions)_ + +## _Load a zip release file_ +- For example, download the [latest release](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/releases/latest) of our plugin. +- Install it using the `Install from ZIP` in the `Plugin Manager` + +## Or skip the plugin manager and _manually place the plugin into the plugins directory_ +Using `fireanalyticstoolbox` as an example: +### Linux 🗽 +```bash +# user plugin directory +~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/fireanalyticstoolbox +# processing plugin directory +/usr/share/qgis/python/plugins/processing +``` +### MacOS +```zsh +# QGIS python location +/Applications/QGIS.app/Contents/MacOS/bin/python3 +# user plugin directory +~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins/fireanalyticstoolbox +``` +### Windows +```batch +REM QGIS python location +C:\OSGeo4W\bin\python-qgis.bat # osgeo4w +C:\Program Files\QGIS 3.40.2\bin\python-qgis.bat # standalone +REM user plugin directory +C:\Users\\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\fireanalyticstoolbox +``` + +back to top +{: style="text-align: right;"} + +# Must have plugins! + +icon-missing +: [Save All](https://plugins.qgis.org/plugins/SaveAllScript/), Tired of saving temporary layers? Choose a location & new directory, done! every layer gets written, never worry again about temporary or memory layers! + +icon-missing +: [Serval](https://plugins.qgis.org/plugins/Serval/), Modify your rasters with your mouse, as if you were using paint! + +icon-missing +: [IPyConsole](https://plugins.qgis.org/plugins/IPyConsole/), "No offense, but QGIS python console just sucks." ([sic](https://www.itopen.it/qgis-and-ipython-the-definitive-interactive-console/#comment-140751)) [documentation](http://www.itopen.it/qgis-and-ipython-the-definitive-interactive-console/), [fix to use latest qtconsole](https://github.com/elpaso/qgis-ipythonconsole/compare/master...fdobad:qgis-ipythonconsole:master) + +icon-missing +: [Plugin Reloader](https://plugins.qgis.org/plugins/plugin_reloader/), If a plugin starts misbehaving easier to reload it than to restart QGIS + +icon-missing +: [Plugin Builder](https://plugins.qgis.org/plugins/pluginbuilder3), Jumpstart your plugin development! + +back to top +{: style="text-align: right;"} + +# Python dependencies +Each plugin may have its own unique combination of python dependencies and the combination of various plugins may create unique conflicting version requirements (further read [dependency hell](https://en.wikipedia.org/wiki/Dependency_hell)) + +| plugin dependencies dialog | plugin dependencies dialog no | +|:--:| :--: | +| Our plugin has a built-in dependency installer | But it can be disabled | + +That's why the installation of these dependencies is up to the user, so they can control their own environment; __Usually this just means installing the requirements of the plugin at last and restarting QGIS.__ (Any other plugin complaining about a dependencies should be disabled for the time being) + + +4 ways to manually install python dependencies, using: + +## QGIS python console +This is the easiest way but ___Can crash QGIS!___ save your work before trying this + +Open the [python console](https://docs.qgis.org/latest/en/docs/user_manual/plugins/python_console.html) to use pip directly from the parent terminal using the escape char `!`, for example type: +``` +>>> !pip install -r /path/to/requirements.txt # to install a list of requirements +>>> !pip install fire2a-lib # to install a package +``` +Restart QGIS to see the changes + +## OSGeo4W shell (Windows) +Open the OSGeo4W shell and activate the custom environment, then use pip as usual: +```batch +C:\OSGeo4W> cd bin +C:\OSGeo4W\bin> python-qgis.bat +>>> exit() +C:\OSGeo4W\bin> pip install -r /path/to/requirements.txt +C:\OSGeo4W\bin> pip install fire2a-lib +``` +Start QGIS after the process ends + +## Directly (macOS) +Use the bundled python directly: +```zsh +% /Applications/QGIS.app/Contents/MacOS/bin/python3 -m pip install -r /path/to/requirements.txt # to install a list of requirements +% /Applications/QGIS.app/Contents/MacOS/bin/python3 -m pip install fire2a-lib # to install a package +``` + +## Virtual environment (Linux) +```bash +python -m venv --system-site-packages ~/pyvenv/qgis +source ~/pyvenv/qgis/bin/activate +pip install -r /path/to/requirements.txt # to install a list of requirements +pip install fire2a-lib # to install a package +qgis +``` +Start QGIS after the process ends + +back to top +{: style="text-align: right;"} + +# Install/Update troubleshoot +## Dissapeared plugin +Sometimes after an update, the plugin doesn't appear on the Processing Toolbox panel: Reload it by pressing on the checkbox next to its name in the `Installed` section of the `Plugin Manager` or restart QGIS. + + +back to top +{: style="text-align: right;"} + +## Conflicting plugins +A good practice is to enable the least amount of plugins as possible, as they may conflict with each other. If you have a problem, try disabling all plugins and enabling them one by one to find the culprit. + +## Processing tools dissapeared +Although it looks like a built in part of QGIS, it can be disabled. Check the `Processing` plugin in the `Plugin Manager`. + +--- +[toolbox-server]: https://fire2a.github.io/fire-analytics-qgis-processing-toolbox-plugin/plugins.xml diff --git a/docs/qgis-toolbox/algo_knapsack.md b/site/qgis-toolbox/algo_knapsack.md similarity index 100% rename from docs/qgis-toolbox/algo_knapsack.md rename to site/qgis-toolbox/algo_knapsack.md diff --git a/docs/qgis-toolbox/algo_polygonize_rasters.md b/site/qgis-toolbox/algo_polygonize_rasters.md similarity index 100% rename from docs/qgis-toolbox/algo_polygonize_rasters.md rename to site/qgis-toolbox/algo_polygonize_rasters.md diff --git a/docs/qgis-toolbox/algo_simulator.md b/site/qgis-toolbox/algo_simulator.md similarity index 81% rename from docs/qgis-toolbox/algo_simulator.md rename to site/qgis-toolbox/algo_simulator.md index 6e56e98..c880ef5 100644 --- a/docs/qgis-toolbox/algo_simulator.md +++ b/site/qgis-toolbox/algo_simulator.md @@ -1,6 +1,6 @@ --- layout: default -title: (Cell2)Fire simulator +title: C2FW Fire Simulator nav_order: 1 has_children: false has_toc : false @@ -16,45 +16,6 @@ parent: QGIS Fire Analytics Toolbox 1. TOC {:toc} -# Data preparation -## Rasters -* Prepared instances available with "instance downloader" algorithm -* All rasters (and project) must be projected in the same CRS, in squared meters -* Using the fuel raster as base, rasters must match: - - In number of pixels in both direction - - At most one pixel offset in each direction - - Hence pixel size must be very close [~mm] - -| rasters | purpose | units | -| --- | --- | --- | -| fuels | encode landscape | fuel model table | -| elevation | dem | meters | -| cbh | canopy base height is where the lowest branch is | meters | -| cbd | canopy bulk density | kg/m3 | -| ccf | canopy cover fraction is like cloud cover indicator | [0,1] | -| py | probability density map is to draw ignitions | [0,1] | - -## Weather -**Weather.csv table specification:** -* minimal columns: `name,timestamp,wind-speed,wind-direction` -* rows: by default each row lasts one hour -* fuel model dependant columns: - -Canada -: `Scenario,datetime,APCP,TMP,RH,WS,WD,FFMC,DMC,DC,ISI,BUI,FWI` - -Kitral -: `Instance,datetime,WS,WD,TMP,RH` - -Scott&Burgan -: `Scenario,datetime,WS,WD,FireScenario` - -* FireScenario was deprecated by "Live & Dead Fuel Moisture Content Scenario [1=dry..4=moist]" -* There's no need to be consistent with the timestamps, but isoformat `YYYY-MM-DDTHH:MM:SS` should be followed -* WIP: unifying weather formats, relying on column names instead of order to read them - -back to top -{: style="text-align: right;"} # Filling the dialog The simulator dialog is divided in four main sections: *Landscape, ignitions, weather and outputs*. And two optional: run-configuration and advanced options. @@ -117,15 +78,19 @@ This section has three main parts: options, advanced and destination directories | output name | unit-type | description | |:-------------|:------------------|:------| -| Final Fire Scars | raster `0,1` | | -| Propagation Directed Graph | vector lines `periods` | edges labeled with simulation event time | -| Hit Rate Of Spread | raster float32 `m/min` | multiband x simulation and bi-band mean&std | | Propagation Fire Scars | polygons | _animate adding the column_ `=now()+ make_interval(hours:=time)` | -| Flame Length| raster float32 `m` | multiband x simulation and bi-band mean&std | +| Propagation Directed Graph | vector lines `periods` | edges labeled with simulation event time `min` | +| Ignition Points | points | pixel id | +| Hit Rate Of Spread | raster float32 `m/min` | multiband x simulation and bi-band mean&std | +| Final Fire Scars | raster `0,1` | | +| Surface Flame Length| raster float32 `m` | multiband x simulation and bi-band mean&std | | Byram Fireline Intensity | raster float32 `kW/m` | multiband x simulation and bi-band mean&std | | Crown Fire Scar | raster `0,1` | multiband x simulation and bi-band mean&std | | Crown Fire Fuel Consumption Ratio raster | `0,1` | multiband x simulation and bi-band mean&std | -| Surface Burn Fraction raster | `0,1` | multiband x simulation and bi-band mean&std | +| Surface Burn Fraction | `0,1` | multiband x simulation and bi-band mean&std (only Canada FBP) | +| Crown Intensity | raster `kW/m` | multiband x simulation and bi-band mean&std (only Spain S&B) | +| Crown Flame Length | raster `m` | multiband x simulation and bi-band mean&std (only Spain S&B) | +| Max Flame Length | raster `m` | multiband x simulation and bi-band mean&std (only Spain S&B) | back to top {: style="text-align: right;"} diff --git a/docs/qgis-toolbox/c2f_firebreaks.md b/site/qgis-toolbox/c2f_firebreaks.md similarity index 100% rename from docs/qgis-toolbox/c2f_firebreaks.md rename to site/qgis-toolbox/c2f_firebreaks.md diff --git a/docs/qgis-toolbox/img/algo_knapsack_screenshot.png b/site/qgis-toolbox/img/algo_knapsack_screenshot.png similarity index 100% rename from docs/qgis-toolbox/img/algo_knapsack_screenshot.png rename to site/qgis-toolbox/img/algo_knapsack_screenshot.png diff --git a/docs/qgis-toolbox/img/algo_polygonize_rasters.mp4 b/site/qgis-toolbox/img/algo_polygonize_rasters.mp4 similarity index 100% rename from docs/qgis-toolbox/img/algo_polygonize_rasters.mp4 rename to site/qgis-toolbox/img/algo_polygonize_rasters.mp4 diff --git a/docs/qgis-toolbox/img/algo_polygonize_rasters.png b/site/qgis-toolbox/img/algo_polygonize_rasters.png similarity index 100% rename from docs/qgis-toolbox/img/algo_polygonize_rasters.png rename to site/qgis-toolbox/img/algo_polygonize_rasters.png diff --git a/docs/qgis-toolbox/img/algo_sim-advanced.png b/site/qgis-toolbox/img/algo_sim-advanced.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-advanced.png rename to site/qgis-toolbox/img/algo_sim-advanced.png diff --git a/site/qgis-toolbox/img/algo_sim-dialog.png b/site/qgis-toolbox/img/algo_sim-dialog.png new file mode 100644 index 0000000..10e6813 Binary files /dev/null and b/site/qgis-toolbox/img/algo_sim-dialog.png differ diff --git a/docs/qgis-toolbox/img/algo_sim-firebreak_sample.mp4 b/site/qgis-toolbox/img/algo_sim-firebreak_sample.mp4 similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-firebreak_sample.mp4 rename to site/qgis-toolbox/img/algo_sim-firebreak_sample.mp4 diff --git a/docs/qgis-toolbox/img/algo_sim-first_run.mp4 b/site/qgis-toolbox/img/algo_sim-first_run.mp4 similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-first_run.mp4 rename to site/qgis-toolbox/img/algo_sim-first_run.mp4 diff --git a/docs/qgis-toolbox/img/algo_sim-ignition.png b/site/qgis-toolbox/img/algo_sim-ignition.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-ignition.png rename to site/qgis-toolbox/img/algo_sim-ignition.png diff --git a/site/qgis-toolbox/img/algo_sim-landscape.png b/site/qgis-toolbox/img/algo_sim-landscape.png new file mode 100644 index 0000000..a22c297 Binary files /dev/null and b/site/qgis-toolbox/img/algo_sim-landscape.png differ diff --git a/site/qgis-toolbox/img/algo_sim-options.png b/site/qgis-toolbox/img/algo_sim-options.png new file mode 100644 index 0000000..435db64 Binary files /dev/null and b/site/qgis-toolbox/img/algo_sim-options.png differ diff --git a/docs/qgis-toolbox/img/algo_sim-output-instance-checkbox.png b/site/qgis-toolbox/img/algo_sim-output-instance-checkbox.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-output-instance-checkbox.png rename to site/qgis-toolbox/img/algo_sim-output-instance-checkbox.png diff --git a/docs/qgis-toolbox/img/algo_sim-output-instance-results-input.png b/site/qgis-toolbox/img/algo_sim-output-instance-results-input.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-output-instance-results-input.png rename to site/qgis-toolbox/img/algo_sim-output-instance-results-input.png diff --git a/docs/qgis-toolbox/img/algo_sim-output-results-checkbox.png b/site/qgis-toolbox/img/algo_sim-output-results-checkbox.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-output-results-checkbox.png rename to site/qgis-toolbox/img/algo_sim-output-results-checkbox.png diff --git a/docs/qgis-toolbox/img/algo_sim-outputs-closedadvanced.png b/site/qgis-toolbox/img/algo_sim-outputs-closedadvanced.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-outputs-closedadvanced.png rename to site/qgis-toolbox/img/algo_sim-outputs-closedadvanced.png diff --git a/docs/qgis-toolbox/img/algo_sim-run-config.png b/site/qgis-toolbox/img/algo_sim-run-config.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-run-config.png rename to site/qgis-toolbox/img/algo_sim-run-config.png diff --git a/docs/qgis-toolbox/img/algo_sim-weather.png b/site/qgis-toolbox/img/algo_sim-weather.png similarity index 100% rename from docs/qgis-toolbox/img/algo_sim-weather.png rename to site/qgis-toolbox/img/algo_sim-weather.png diff --git a/docs/qgis-toolbox/img/create_firebreak.mp4 b/site/qgis-toolbox/img/create_firebreak.mp4 similarity index 100% rename from docs/qgis-toolbox/img/create_firebreak.mp4 rename to site/qgis-toolbox/img/create_firebreak.mp4 diff --git a/site/qgis-toolbox/img/current_tools.png b/site/qgis-toolbox/img/current_tools.png new file mode 100644 index 0000000..aa2a361 Binary files /dev/null and b/site/qgis-toolbox/img/current_tools.png differ diff --git a/docs/qgis-toolbox/img/downloader.svg b/site/qgis-toolbox/img/downloader.svg similarity index 100% rename from docs/qgis-toolbox/img/downloader.svg rename to site/qgis-toolbox/img/downloader.svg diff --git a/docs/qgis-toolbox/img/first_run.gif b/site/qgis-toolbox/img/first_run.gif similarity index 100% rename from docs/qgis-toolbox/img/first_run.gif rename to site/qgis-toolbox/img/first_run.gif diff --git a/docs/qgis-toolbox/img/first_run.mp4 b/site/qgis-toolbox/img/first_run.mp4 similarity index 100% rename from docs/qgis-toolbox/img/first_run.mp4 rename to site/qgis-toolbox/img/first_run.mp4 diff --git a/docs/qgis-toolbox/img/forestfire.svg b/site/qgis-toolbox/img/forestfire.svg similarity index 100% rename from docs/qgis-toolbox/img/forestfire.svg rename to site/qgis-toolbox/img/forestfire.svg diff --git a/docs/qgis-toolbox/img/installation.mp4 b/site/qgis-toolbox/img/installation.mp4 similarity index 100% rename from docs/qgis-toolbox/img/installation.mp4 rename to site/qgis-toolbox/img/installation.mp4 diff --git a/docs/qgis-toolbox/README.md b/site/qgis-toolbox/index.md similarity index 97% rename from docs/qgis-toolbox/README.md rename to site/qgis-toolbox/index.md index f401a2f..6cc9ee9 100644 --- a/docs/qgis-toolbox/README.md +++ b/site/qgis-toolbox/index.md @@ -37,10 +37,9 @@ Clearly delimites: inputs, outputs, algorithms and contexts; achieving seamless 5. **Python script**, working *both* [calling it] from the QGIS [python console] *or* as [standalone code] # Installing -[Full guide here](/docs/docs/qgis-cookbook/README.html) or overview (with video): +[Full guide here]({{ site.baseurl }}/qgis-management) or overview (with video): 1. Install [QGIS] latest version - - Support >= 3.36.1 - - CPLEX Solver in Windows? Stick to 3.36.1 version, read [this now](/docs/docs/qgis-cookbook/README.html#setup-cplex-solver) + - Support >= 3.36.2 1. Add fire2a's [plugin store URL][toolbox-server] as a custom plugin source - `QGIS menu > Plugins > Manage and Install Plugins > Settings > Add > paste the URL > Ok` @@ -50,7 +49,7 @@ Clearly delimites: inputs, outputs, algorithms and contexts; achieving seamless 1. Accept on the dialog asking permission to install the plugin's python dependencies (if needed) - _Save any open work before installing/updating the plugin. Installing & reloading dependencies on the fly_ __could crash QGIS__ - - You can deny and disable this check, that happens every time the plugin is loaded. ([Manually][fire2a-lib-pypi] install [them](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/blob/b7af87e35a021005a3d55f7d0d802431296ef196/fireanalyticstoolbox/dependencies_handler.txt#L2)) + - You can deny and disable this check, that happens every time the plugin is loaded. ([Manually][fire2a-lib-pypi] install [them](https://github.com/fire2a/fire-analytics-qgis-processing-toolbox-plugin/blob/main/fireanalyticstoolbox/dependencies_handler.txt)) - Restart QGIS if any install or reloading doesn't succeed (details at: Log Messages > Plugins) - Toggle the plugin checkbox (left of its icon on the Manager list) if it doesn't appear immediately on the Processing Toolbox Panel @@ -144,7 +143,11 @@ Note: Step 2 can be skipped but it is cumbersome to select each layer from file : Raster treatment & teams optimization : Maximize the changed value of the treated raster, deciding which treatment to apply by which team to each pixel (or no change), subject to budget, area constraints and team capabilities {: .warning} -By default QGIS limits the processing algorithms log to about 5000 lines. In the rare case you really need the full log, see number 4 and 5 of [usage alternatives](https://fire2a.github.io/docs/docs/qgis-toolbox/README.html#usage-alternatives) +By default QGIS limits the processing algorithms log to about 5000 lines. In the rare case you really need the full log, see number 4 and 5 of [usage alternatives](https://fire2a.github.io/docs/qgis-toolbox/index.html#usage-alternatives) + +| cannot load image | +| :--- | +| QGIS processing tools snapshot | --- [QGIS]: https://qgis.org