Giter Club home page Giter Club logo

gn_module_psdrf's People

Contributors

aschlegle avatar bouttier avatar rnf-si avatar theolechemia avatar

Stargazers

 avatar

Watchers

 avatar  avatar

gn_module_psdrf's Issues

Problème de CPU avec le dispositif val-Suzon

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).

Changer les droits PSDRF

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.

aurtografe

Il faut changer point de vigilence en vigilAnce ;-)

ajout pop up carnet - pas urgent

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]"

afficher le nombre d'erreurs

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"

export fichier excel - taille de fichier

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)

Divers problèmes carnet à régler

  1. Table affichée deux fois

Psdrf_carnet_V3.Rnw dans template :
Ligne 1214 – 1228 commenter

print(

xtable(

tab,

digits = c(0, 0, 0, 0, 0, 0),

align = c(

"M{0cm}|", "M{4cm}|",

rep("M{2.5cm}|", dim(tab)[2] - 2),

"M{2.5cm}"

),

caption = NULL,

label = ""

),

include.rownames = FALSE,

size = "\footnotesize"

)

  1. Affiche les contacts du cycle 1, même si on est en cycle 2

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) %>%

  1. La legende du graphique composition est décalée (sens horaire pour le graph, anti horaire pour la legende)
    Psdrf_BV.Rnw dans template, subsection composition :
    Ligne 1174 remplacer par y = round(RatioCum - Ratio / 2, 3) par y = round(1- RatioCum + Ratio / 2, 3),

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")
),
""
)
)

  1. Dans psdrf_BM dans template, subsubsection{Ratio volume de bois mort / volume total} :
    Lignes 556 et 557, 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),

Dans le script ça donne ça :

En absolu

p1 <- ggplot() +
geom_bar(arrange(t2_abs, variable), mapping = aes(Classe, value, fill = variable), #, colour = variable
stat = 'identity', position = 'stack', alpha = 1) +

geom_hline(yintercept = Mean, colour = "blue", linetype = 2, size = 0.5) +

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") +

  1. Les perches ne sont pas pris en compte dans les calculs de DMH
    Dans psdrf_Calculs.R, dans script, section dendromicrohabitat :
    ligne 2107 ajouter rbind(Perches) %>% après Arbres%>%
9/ dendromicohabitats

Codes <-
Arbres %>%
rbind(Perches) %>% # AJOUT
filter(
CodeEcolo != "" &
!is.na(NumDisp) & !is.na(NumPlac) &
!is.na(NumArbre) & !is.na(CodeEcolo)
) %>%

  1. Sur l’axe des abscisses d’un graphique DMH , les catégories sont mélangées, car pas mis en facteur
    dans psdrf_CodeEco.rnw , chunk 8 :
    Ligne 303 : ajout mutate(Cat = factor(Cat, levels = c("PER", "PB", "BM", "GB", "TGB"))) %>%

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)

  1. Les valeurs des accroissements des perches n’apparaissent pas.
    Dans psdrf_calculs.R dans script , partie 2.2/ Distinction des populations (prec, per, bmp)
    Ligne 1609, commenter le mutate() :

Dans le script ça donne ça :

--- 2.2/ Distinction des populations (prec, per, bmp)

Perches

Perches <-
Arbres %>%
filter(Diam1 < 17.5 & is.na(Type)) #%>%
# mutate(
# AcctD = NA,
# AcctGper = NA,
# AcctVper = NA,
# AcctG = NA,
# AcctV = NA
# )

BMP

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 :

--- 2.3/ Calculs d'accroissement (précomptables)

# DEBUT AJOUT

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

FIN AJOUT

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

  1. Il n’y a pas de valeurs affichées sur l’axe des abscisses du graphique evolution/bois vivant/repartition en fonction des classes de diam.
    Dans psdrf_evol_BV.Rnw (dans template), partie classe Evol
  1. ligne 118, remplacer « scale_x_discrete(breaks = seq(0, X, 20)) + » par :
    scale_x_continuous(
    name = "Classes de diam\u00E8tre",
    limits = c(0, X+10),
    breaks = seq(0, X+10, 20),
    expand = c(0, 0)
    )

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))

  1. idem ligne 156, ce qui donne :
    p2 <-
    ggplot() +
    geom_bar(
    tab,
    mapping = aes(
    x = Classe,
    y = Nha,
    fill = Population
    ), stat = "identity"
    ) +
    theme_bw() +
    theme(
    axis.text.x = element_text(size = 8),
    axis.title.x = element_text(size = 9),
    axis.text.y = element_text(size = 8),
    axis.title.y = element_text(size = 9),
    strip.text = element_text(
    size = 7, colour = "lightsteelblue4", face = "bold"
    ),
    strip.background = element_rect(fill = NA, colour = NA)
    ) +
    labs(
    x = "Classes de diam\u00E8tre",
    y = "Densit\u00E9 de tiges \u00E0 l'hectare (tiges/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"))+
    facet_wrap(~Titre, ncol = 1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.