Open DB

library(tidyverse)

source("../Open_DB_fun.R")
fm_DB <- "ForestMeasures.sqlite" # Create or UPDATE 
con <- Open_DB(fm_DB)
 [1] "Campagne"               "ClassiAltezza"         
 [3] "FustiCampioneEtAdF"     "Palchi"                
 [5] "ProfiliFustiPrincipali" "ProfiliFustiSecondari" 
 [7] "Rilevatori"             "Rilievi"               
 [9] "Rotelle"                "Specie"                
[11] "Squadre"               
for(t in c("FustiCampioneEtAdF", "ProfiliFustiPrincipali")) { 
  assign(t, as_tibble(tbl(con, t))) }
dbDisconnect(con)

Assessing basic measures

cat("**** FUSTI con problemi più gravi!! ****\n")
**** FUSTI con problemi più gravi!! ****
FustiCampioneEtAdF %>% 
  select(ID_fustoCampione, ID_specie, d_130,
         lunghezzaAbbattuto, h_ipso) %>% 
  filter(is.na(lunghezzaAbbattuto) | is.na(h_ipso) |
           abs(lunghezzaAbbattuto/h_ipso-1) >.2)  # scarto maggiore del 20%
cat("*** Come allineare Lunghezza con Altezza? ***\n")
*** Come allineare Lunghezza con Altezza? ***
FustiCampioneEtAdF %>% 
  filter(!(is.na(lunghezzaAbbattuto) | is.na(h_ipso) |
           abs(lunghezzaAbbattuto/h_ipso-1) >.2)) %>% 
#  ggplot(aes(h_ipso, I(h_ipso-lunghezzaAbbattuto),
  ggplot(aes(h_ipso, I(lunghezzaAbbattuto/h_ipso),
             shape = ID_specie)) +
  geom_abline(slope = 0) +
  geom_point()

LS0tDQp0aXRsZTogIlRhcGVyIGZ1bmN0aW9uczogdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQiDQpzdWJ0aXRsZTogIkFuYWx5c2luZyBmb3Jlc3QgbWVhc3VyZXMiDQphdXRob3I6DQotIG5hbWU6IE1hdHRlbyBNdXJhDQogIGFmZmlsaWF0aW9uOiBOdW9yb0ZvcmVzdHJ5U2Nob29sDQphYnN0cmFjdDogfA0KICBBc3Nlc3NtZW50IG9mIG1lYXN1cmVtZW50IHRha2VuIG9uIGZlbGxlZCBzYW1wbGUgc3RlbXMNCmtleXdvcmRzOiAidGFwZXIgZnVuY3Rpb25zIg0KZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQojIFlBTUwgZnJvbSBodHRwOi8vc3ZtaWxsZXIuY29tL2Jsb2cvMjAxNi8wMi9zdm0tci1tYXJrZG93bi1tYW51c2NyaXB0Lw0KLS0tDQojIE9wZW4gREINCmBgYHtyIGZvcmVzdF9tZWFzdXJlc30NCmxpYnJhcnkodGlkeXZlcnNlKQ0KDQpzb3VyY2UoIi4uL09wZW5fREJfZnVuLlIiKQ0KZm1fREIgPC0gIkZvcmVzdE1lYXN1cmVzLnNxbGl0ZSIgIyBDcmVhdGUgb3IgVVBEQVRFIA0KY29uIDwtIE9wZW5fREIoZm1fREIpDQoNCmZvcih0IGluIGMoIkZ1c3RpQ2FtcGlvbmVFdEFkRiIsICJQcm9maWxpRnVzdGlQcmluY2lwYWxpIikpIHsgDQogIGFzc2lnbih0LCBhc190aWJibGUodGJsKGNvbiwgdCkpKSB9DQpkYkRpc2Nvbm5lY3QoY29uKQ0KYGBgDQoNCiMgQXNzZXNzaW5nIGJhc2ljIG1lYXN1cmVzDQpgYGB7cn0NCmNhdCgiKioqKiBGVVNUSSBjb24gcHJvYmxlbWkgcGnDuSBncmF2aSEhICoqKipcbiIpDQpGdXN0aUNhbXBpb25lRXRBZEYgJT4lIA0KICBzZWxlY3QoSURfZnVzdG9DYW1waW9uZSwgSURfc3BlY2llLCBkXzEzMCwNCiAgICAgICAgIGx1bmdoZXp6YUFiYmF0dHV0bywgaF9pcHNvKSAlPiUgDQogIGZpbHRlcihpcy5uYShsdW5naGV6emFBYmJhdHR1dG8pIHwgaXMubmEoaF9pcHNvKSB8DQogICAgICAgICAgIGFicyhsdW5naGV6emFBYmJhdHR1dG8vaF9pcHNvLTEpID4uMikgICMgc2NhcnRvIG1hZ2dpb3JlIGRlbCAyMCUNCiAgDQpjYXQoIioqKiBDb21lIGFsbGluZWFyZSBMdW5naGV6emEgY29uIEFsdGV6emE/ICoqKlxuIikNCkZ1c3RpQ2FtcGlvbmVFdEFkRiAlPiUgDQogIGZpbHRlcighKGlzLm5hKGx1bmdoZXp6YUFiYmF0dHV0bykgfCBpcy5uYShoX2lwc28pIHwNCiAgICAgICAgICAgYWJzKGx1bmdoZXp6YUFiYmF0dHV0by9oX2lwc28tMSkgPi4yKSkgJT4lIA0KIyAgZ2dwbG90KGFlcyhoX2lwc28sIEkoaF9pcHNvLWx1bmdoZXp6YUFiYmF0dHV0byksDQogIGdncGxvdChhZXMoaF9pcHNvLCBJKGx1bmdoZXp6YUFiYmF0dHV0by9oX2lwc28pLA0KICAgICAgICAgICAgIHNoYXBlID0gSURfc3BlY2llKSkgKw0KICBnZW9tX2FibGluZShzbG9wZSA9IDApICsNCiAgZ2VvbV9wb2ludCgpDQoNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9RkFMU0V9DQpmbiA8LSAiVGFwZXJGdW5jdGlvbnMvVmVyaWZpbmdQcm9maWxlcyINCnJtYXJrZG93bjo6cmVuZGVyKHBhc3RlMChmbiwgIi5SbWQiKSkNCm1hcmtkb3duOjpycHVic1VwbG9hZChmbiwgcGFzdGUwKGZuLCAiLm5iLmh0bWwiKSwgaWQgPSAiaHR0cHM6Ly9hcGkucnB1YnMuY29tL2FwaS92MS9kb2N1bWVudC80NjE0NzkvYWI2OGNiYWFmYWJjNGRhZDk3MDE4ZjJiOWUyMjQ5Y2QiKQ0KDQojICRjb250aW51ZVVybA0KIyAgICJodHRwOi8vcnB1YnMuY29tL3B1Ymxpc2gvY2xhaW0vNDYxNDc5LzkxNzZjMDQwN2YzNzRmYWM5OWE3ZjFmMjY2ZTFlNWVkIg0KDQoNCiMsIGlkID0gImh0dHBzOi8vYXBpLnJwdWJzLmNvbS9hcGkvdjEvZG9jdW1lbnQvNDU1NDUwLzg0ZmVmYTU1MjFmOTRkMmRhZjY5ZTFmOTA4ZjA5YThkIikNCmBgYA0K