fmt
Forest Management Tool a C++ library for forest planning.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (5.5%) to scientific vocabulary
Keywords
Repository
Forest Management Tool a C++ library for forest planning.
Basic Info
- Host: GitHub
- Owner: Bureau-du-Forestier-en-chef
- Language: C++
- Default Branch: master
- Homepage: https://bureau-du-forestier-en-chef.github.io/FMTdocs/
- Size: 114 MB
Statistics
- Stars: 16
- Watchers: 5
- Forks: 1
- Open Issues: 79
- Releases: 7
Topics
Metadata Files
README.fr.md
FMT (Forêt Modélisée dans le Temps)
Cette page ne donne qu'un aperçu du processus d'installation et des fonctionnalités de FMT. Pour plus détails, visitez note page de documentation pour FMT.
📑 Description
FMT (Forêt Modélisée dans le Temps) est une librairie de type logiciel libre pour l'aménagement forestier.
- C'est une librairie C++ faite pour interpréter des modèles de planification forestière basés sur les fichiers Woodstock.
- Elle peut être utilisé avec Python, Cran-R ou directement en C++.
- Son approche générique de la planification forestière permet à l'utilisateur de manipuler des modèles de planification forestière et de générer des solutions.
- Son objectif principal est d'amener les différents types de modèles de planification forestière sur une même librairie générique pour aider la communauté à développer de nouvelles approches pour résoudre les problèmes de planification forestière, et d'améliorer les approches déjà présentes depuis longtemps.
✨ Capacités
Modèle de planification spatialement référencé
FMT permet à l'utilisateur de générer et de résoudre des modèles spatialement référencé de TYPE III. L'outil peut être utilisé pour réaliser des analyses de sensibilité sur plusieurs paramètres du modèle de planification. L'outil peut aussi être utilisé pour analyser l'impact d'évènements stochastiques comme les épisodes de feux de forêt et de tordeuse des bourgeons de l'épinette en utilisant la replanification.
Modèle de planification spatialement explicite
FMT offre une plateforme sur laquelle construire des heuristiques pour solutionner des problèmes de planification forestière. FMT est l'outil parfait pour solutionner des problèmes spécifiques aux enjeux de l'utilisateur comme l'allocation de calendrier de chantier de récolte. Il permet aussi l'implémentation de processus de simulation. La librairie offre aussi des outils permettant la spatialisation de solution spatialement référencée et la génération de solution spatialement explicite.
FMT est très utile lorsqu'on doit implémenter des méta-heuristiques comme le Recuit Simulé, la recherche génétique ou la recherche tabou dans un contexte de planification forestière.
Si votre intrant principal est un modèle Woodstock, FMT est probablement un bon choix de plateforme pour développer de nouvelles approches d'optimisation ou de simulation de calendrier de récolte ou d’événements stochastiques.
💽 Installation
La manière la plus simple d'utiliser FMT est d'utiliser Cmake >= 3.15 pour génerer une librairie partagée pour R ou pour Python, ou bien directement en C++. Le script Cmake de ce repository permet de génerer FMT sous Windows en utilisant VS2017/2019 ou MINGW-64 sur MSYS2 ou CYGWIN.
📦 Dépendances
Requises :
- Boost compilé avec zlib. (http://boost.org) ## Optionelles :
- Librairie GEOS (http://trac.orgeo.org/geos/)
- Librairie GDAL (http://GDAL.org)
- Librairie Mosek (http://mosek.com)
- Librairie OSI par le biais du solveur CBC (http://github.com/coin/Cbc)
- Librairie Boost Python
- Rcpp et cran-R avec la version la plus récente de Rtools40 (http://cran.r-project.org)
📖 Documentation
FMT possède une documentation écrite à la main, détaillée et avec des exercices; ainsi qu'une documentation générée par le biais de Doxygen. Les deux sont accessibles via la page web de documentation de FMT.
Si vous souhaitez compiler la documentation Doxygen par vous même, dans une invite de commande Powershell, allez dans le dossier FMT et utilisez :
powershell
cd Documentation
doxygen FMTdoxygenconfig
Pour remplir les commentaires dans les fichiers sources R (.R) et Python (.py), utilisez :
powershell
cd Documentation
python commentsPythonandR.py
Voici une présentation pour vous former à l'API FMT(R/Python) FormationFMTR_Python.pptx
👉 Exemples
L'exemple suivant lit un modèle, génère un modèle de programmation linéaire de planification forestière de type III et solutionne ce modèle. + En utilisant Python ```python from FMT import Models from FMT import Parser
modelparser = Parser.FMTmodelparser() models = modelparser.readproject("pathtoprimaryfile",["scenariox"])# Lit le scénario x depuis un fichier primaire (.pri) optimizationmodel=Models.FMTlpmodel(models[0],Models.FMTsolverinterface.CLP)# Construit un modèle de programmation linéaire de type III depuis un FMTmodel
Construit le graphe pendant 10 périodes
for period in range(0,10): print(optimizationmodel.buildperiod())
Maintenant, on ajoute la fonction d'object au FMTlpmodel et toutes les contraintes
constraints = optimizationmodel.getconstraints() objective = constraints.pop(0) for constraint in constraints: print(optimizationmodel.setconstraint(constraint)) print(optimizationmodel.setobjective(objective))
On fait une résolution initiale du modèle de planification forestière
optimizationmodel.initialsolve()
+ En utilisant R
R
library(FMT)
modelparser<-new(FMTmodelparser)
models<-modelparser$readproject("pathtoprimaryfile",c("scenariox"),TRUE,TRUE,TRUE)# Lit le scénario x depuis un fichier primaire (.pri)
optimizationmodel<-new(FMTlpmodel,models[[1]],FMTsolverinterface$CLP)# Construit un modèle de programmation linéaire de type III depuis un FMTmodel
emptyschedule<-new(FMTschedule)
Construit le graphe pendant 10 périodes
for (period in 1:10) { print(optimizationmodel$buildperiod(emptyschedule,FALSE)$str()) }
Maintenant, on ajoute la fonction d'object au FMTlpmodel et toutes les contraintes
allmodelconstraints<-optimizationmodel$getconstraints() modelobjective<-allmodelconstraints[[1]] modelconstraints<-allmodelconstraints[2:length(allmodelconstraints)] for (constraint in modelconstraints) { print(optimizationmodel$setconstraint(constraint)$str()) } print(optimizationmodel$setobjective(modelobjective)$str())
On fait une résolution initiale du modèle de planification forestière
optimizationmodel$initialsolve()
+ En utilisant C++
C++
include
include "FMTlpmodel.h"
include "FMTmodelparser.h"
Parser::FMTmodelparser modelparser; const std::vectorstd::stringscenarios(1, "scenariox"); const std::vectorModels::FMTmodel models = modelparser.readproject("pathtoprimaryfile", scenarios); Models::FMTlpmodel optimizationmodel(models.at(0), Models::FMTsolverinterface::MOSEK); for (size_t period = 0; period < 10; ++period) { optimizationmodel.buildperiod(); } std::vectorCore::FMTconstraintconstraints = optimizationmodel.getconstraints(); const Core::FMTconstraint objective = constraints.at(0); constraints.erase(constraints.begin()); for (const Core::FMTconstraint& constraint : constraints) { optimizationmodel.setconstraint(constraint); } optimizationmodel.setobjective(objective); optimizationmodel.initialsolve(); ```
🔑 License
FMT utilise la license LiLiQ-R 1.1.
📈 Coverage
GNU
MSVC
💻 Build
GNU
MSVC
Owner
- Name: Bureau du forestier en chef
- Login: Bureau-du-Forestier-en-chef
- Kind: organization
- Email: bureau@fec.gouv.qc.ca
- Location: Canada
- Website: https://forestierenchef.gouv.qc.ca/
- Twitter: Forestierenchef
- Repositories: 2
- Profile: https://github.com/Bureau-du-Forestier-en-chef
Le Forestier en chef a pour mission principale de déterminer les possibilités forestières des forêts publiques du Québec.
GitHub Events
Total
- Create event: 16
- Release event: 1
- Issues event: 24
- Watch event: 2
- Delete event: 12
- Issue comment event: 12
- Push event: 69
- Pull request event: 3
Last Year
- Create event: 16
- Release event: 1
- Issues event: 24
- Watch event: 2
- Delete event: 12
- Issue comment event: 12
- Push event: 69
- Pull request event: 3
Committers
Last synced: 6 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Guillaume Cyr | G****r@f****a | 664 |
| Bruno Forest | B****t@f****a | 237 |
| Marc-Alexandre Martel | m****l@g****m | 57 |
| Landry-G | g****y@l****a | 29 |
| Forest | F****3@f****a | 28 |
| Rémy Huot | r****1@u****a | 11 |
| Tommy Bouchard | 1****3 | 11 |
| U-INTRANET\CYRGU3 | C****3@M****V | 10 |
| Clement Hardy | 4****t | 6 |
| Cyr | C****3@f****a | 6 |
| admlocal | a****l@2****V | 2 |
| U-INTRANET\FORBR3 | F****3@2****V | 1 |
| admlocal | a****l@2****V | 1 |
| admlocal | a****l@2****V | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 119
- Total pull requests: 7
- Average time to close issues: 28 days
- Average time to close pull requests: 1 day
- Total issue authors: 7
- Total pull request authors: 3
- Average comments per issue: 0.62
- Average comments per pull request: 0.29
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 18
- Pull requests: 6
- Average time to close issues: about 1 month
- Average time to close pull requests: about 19 hours
- Issue authors: 4
- Pull request authors: 2
- Average comments per issue: 0.72
- Average comments per pull request: 0.17
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- gcyr (93)
- BrunoForest (33)
- martel21324 (12)
- Klemet (9)
- Landry-G (8)
- JFCarle (7)
- frad123 (2)
- peret2 (1)
- LA-Giasson (1)
- BFECLucasMoreau (1)
Pull Request Authors
- martel21324 (15)
- gcyr (7)
- Landry-G (4)
- BFECLucasMoreau (1)
- Klemet (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 4
proxy.golang.org: github.com/bureau-du-forestier-en-chef/fmt
- Documentation: https://pkg.go.dev/github.com/bureau-du-forestier-en-chef/fmt#section-documentation
-
Latest release: v1.0.0
published about 1 year ago
Rankings
proxy.golang.org: github.com/Bureau-du-Forestier-en-chef/FMT
- Documentation: https://pkg.go.dev/github.com/Bureau-du-Forestier-en-chef/FMT#section-documentation
-
Latest release: v1.0.0
published about 1 year ago
Rankings
Dependencies
- Rcpp >= 1.0.4 imports