rnf-si / gn_module_psdrf Goto Github PK
View Code? Open in Web Editor NEWUn module GeoNature dédié au Protocole de suivi dendrométrique des réserves forestières
License: GNU General Public License v3.0
Un module GeoNature dédié au Protocole de suivi dendrométrique des réserves forestières
License: GNU General Public License v3.0
Le droit PSDRF doit changer.
Actuellement, il est donné aux personnes qui administrent le module.
On devrait plutôt créer un rôle PSDRF-user pour tous les utilisateurs de geonature.
Les administrateurs de geonature auront quant à eux les droits admin de userhub pour valider les comptes sepuis la plateforme.
Ex: Carnet Combes-lavaux_Na p48, 49
La génération du plan des arbres ne parvient pas à son terme pour le dispositif val Suzon.
Le scripts marche lorsqu'on souhaite générer moins de plans(pour un nombre de placette <100 ou >100).
Cause: Le script R demande trop de ressources en local (ce qui donne lieu soit à un ordinateur qui ne répond plus, ou à la sortie automatique de la commande geonature dev-back).
remplacer vigilence par vigilance
quand on exporte le fichier excel depuis la plateforme, il est très très lourd (ex pour py : 6550 Ko, après avoir copier coller ces mêmes données dans un fichier Excel, je suis à 1222 ko)
Il y a 2 possibilités pour permettre le téléchargement de ces données :
Proposition de Marlène Treca
Il faut changer point de vigilence en vigilAnce ;-)
ajouter un pop up, lorsque la personne appuie sur le bouton carnet, disant : " Le carnet est réalisé pour l'ensemble du dispositif, en utilisant le tarif de cubage par défaut (Schaeffer lent 12) et le regroupement des essences par défaut. Si vous souhaitez réaliser des analyses par groupes de placettes (strate, habitat, etc), avec un (des) tarif(s) de cubage(s) différent(s) ou un autre regroupement d'essences, merci de prendre contact avec Eugénie Cateau : [email protected]"
En base de données, la colonne id_arbre de la table BMSsup30 ne doit pas être liée à l'id d'un arbre de la table Tarbre.
Migration necessaire pour supprimer la foreign key.
Psdrf_carnet_V3.Rnw dans template :
Ligne 1214 – 1228 commenter
Psdrf_carnet_V4.Rnw dans template, section « contact » :
Ligne 1278, remplacer filter(NumDisp == disp_num) par filter(NumDisp == disp_num & Cycle == last_cycle) %>%
Dans le script ça donne ça :
<<TabContacts, fig.width = 17>>=
ListContact <-
Referents %>%
filter(NumDisp == disp_num) %>% => filter(NumDisp == disp_num & Cycle == last_cycle) %>%
Dans le script ça donne ça :
geom_text(
Ess.m,
mapping = aes(
x = ifelse(variable == "Nha", 1, 2),
y = round(RatioCum - Ratio / 2, 3) => y = round(1- RatioCum + Ratio / 2, 3),
label = ifelse(
Ratio > 0.2,
ifelse(
variable == "Nha",
paste0(EssReg, " : ", round(Ratio, 3) * 100, " %"),
paste0(round(value, 0), " m3/ha")
),
""
)
)
Dans le script ça donne ça :
p1 <- ggplot() +
geom_bar(arrange(t2_abs, variable), mapping = aes(Classe, value, fill = variable), #, colour = variable
stat = 'identity', position = 'stack', alpha = 1) +
scale_x_continuous(expand = c(0, 0),
limits = c(0, max(t2$Classe+5, na.rm = T)),
# breaks = c(0, 10, 30, ifelse(max(t2$Classe, na.rm = T) > 50,
# seq(50, max(t2$Classe, na.rm = T), 20), 50)),
breaks =seq(0,max(t2$Classe, na.rm = T),20),
name = "Classes de diam\u00E8tre") +
Lignes 599 et 600 idem, remplacer
breaks = c(0, 10, 30, ifelse(max(t2$Classe, na.rm = T) > 50,
seq(50, max(t2$Classe, na.rm = T), 20), 50)),
par breaks =seq(0,max(t2$Classe, na.rm = T),20),
p2 <- ggplot() +
geom_bar(t2_rel, mapping = aes(Classe, value, fill = variable),
stat = 'identity', position = 'fill') +
geom_hline(yintercept = Ratio, colour = "blue", linetype = 2, size = 0.5) +
scale_x_continuous(expand = c(0, 0),
limits = c(0, max(t2$Classe, na.rm = T)+5),
#breaks = c(0, 10, 30, ifelse(max(t2$Classe, na.rm = T) > 50,
# seq(50, max(t2$Classe, na.rm = T), 20), 50)),
breaks =seq(0,max(t2$Classe, na.rm = T),20),
name = "Classes de diam\u00E8tre") +
Codes <-
Arbres %>%
rbind(Perches) %>% # AJOUT
filter(
CodeEcolo != "" &
!is.na(NumDisp) & !is.na(NumPlac) &
!is.na(NumArbre) & !is.na(CodeEcolo)
) %>%
Dans le script ça donne ça :
t3 <-
t.m %>%
left_join(temp) %>%
mutate(Relatif2 = Nha / NhaTot) %>%
mutate(Cat = factor(Cat, levels = c("PER", "PB", "BM", "GB", "TGB"))) %>% #ajout
arrange(Note)
Dans le script ça donne ça :
Perches <-
Arbres %>%
filter(Diam1 < 17.5 & is.na(Type)) #%>%
# mutate(
# AcctD = NA,
# AcctGper = NA,
# AcctVper = NA,
# AcctG = NA,
# AcctV = NA
# )
ET
Dans psdrf_calculs.R dans script , partie 2.3/ Calculs d'accroissement (précomptables)
Ligne 1622 Ajouter le calcul d’accroissement sur les perches
Dans le script ça donne ça :
Perches <-
Perches %>%
calculs_acct_bv(last_cycle, Cycles) %>%
mutate(
AcctV = TauxV * Vha * AcctD,
AcctG = pi / 20000 * AcctD * Diam * Nha,
AcctG = ifelse(is.na(AcctG), 0, AcctG)
)
acct_per<-acct_bv
Arbres <-
Arbres %>%
calculs_acct_bv(last_cycle, Cycles) %>%
mutate(
AcctV = TauxV * Vha * AcctD,
AcctG = pi / 20000 * AcctD * Diam * Nha,
AcctG = ifelse(is.na(AcctG), 0, AcctG)
)
ET
Dans psdrf_calculs.R dans script , partie 2.3/ Calculs d'accroissement (précomptables)
À la suite du calcul d’accroissement sur les arbres, rassembler acct arbres et acct perches
Dans le script ça donne ça :
Arbres <-
Arbres %>%
calculs_acct_bv(last_cycle, Cycles) %>%
mutate(
AcctV = TauxV * Vha * AcctD,
AcctG = pi / 20000 * AcctD * Diam * Nha,
AcctG = ifelse(is.na(AcctG), 0, AcctG)
)
acct_bv<- # AJOUT
acct_bv %>% # AJOUT
rbind(acct_per) # AJOUT
Ce qui donne :
geom_text(
tab3,
mapping = aes(
x = X,
y = Y,
label = paste("Vha = ", unique(som), " m3")
),
size = 2.5
) +
labs(
x = "Classes de diam\u00E8tre",
y = "Volume \u00E0 l'hectare (m3/ha)"
) +
scale_x_continuous( # AJOUT # scale_x_discrete(breaks = seq(0, X, 20)) +
name = "Classes de diam\u00E8tre", # AJOUT
limits = c(0, X+10), # AJOUT
breaks = seq(0, X+10, 20), # AJOUT
expand = c(0, 0) # AJOUT
) +
scale_fill_manual(
values = c("grey80", "grey40"),
name = "Origine\nv\u00E9g\u00E9tative"
) +
facet_wrap(~Titre, ncol = 1) +
guides(fill = guide_legend(reverse = T))
demande de catherine : "donner le nombre d’erreurs à corriger par type d’erreur car on ne voit pas le bout du steppeur quand il y a beaucoup d’erreurs. Si on sait d’avance qu’il y a beaucoup d’erreurs, c’est plus facile à corriger dans le fichier initial sous R ou sous excel que dans le module GeoNature"
Aujourd'hui la position du bouton donne l'impression qu'il permet de valider la suppression alors que ce n'est pas le cas
quand on exporte les données excel depuis la plateforme, il y a 2 fois la colonne taillis dans l'onglet régé (la première étant vide)
quand on exporte les données en format excel, dans l'onglet régé il y a deux colonnes "taillis", une vide et une pleine
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.