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

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

LS0tDQp0aXRsZTogIlRhcGVyIGZ1bmN0aW9uczogdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQiDQpzdWJ0aXRsZTogIkFuYWx5c2luZyBmb3Jlc3QgbWVhc3VyZXMiDQphdXRob3I6DQotIG5hbWU6IE1hdHRlbyBNdXJhDQogIGFmZmlsaWF0aW9uOiBOdW9yb0ZvcmVzdHJ5U2Nob29sDQphYnN0cmFjdDogfA0KICBBc3Nlc3NtZW50IG9mIG1lYXN1cmVtZW50IHRha2VuIG9uIGZlbGxlZCBzYW1wbGUgc3RlbXMNCmtleXdvcmRzOiAidGFwZXIgZnVuY3Rpb25zIg0KZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQojIFlBTUwgZnJvbSBodHRwOi8vc3ZtaWxsZXIuY29tL2Jsb2cvMjAxNi8wMi9zdm0tci1tYXJrZG93bi1tYW51c2NyaXB0Lw0KLS0tDQojIE9wZW4gREINCmBgYHtyIGZvcmVzdF9tZWFzdXJlc30NCmxpYnJhcnkodGlkeXZlcnNlKQ0KDQpzb3VyY2UoIi4uL09wZW5fREJfZnVuLlIiKQ0KZm1fREIgPC0gIkZvcmVzdE1lYXN1cmVzLnNxbGl0ZSIgIyBDcmVhdGUgb3IgVVBEQVRFIA0KY29uIDwtIE9wZW5fREIoZm1fREIpDQoNCmZvcih0IGluIGMoIkZ1c3RpQ2FtcGlvbmVFdEFkRiIsICJQcm9maWxpRnVzdGlQcmluY2lwYWxpIikpIHsgDQogIGFzc2lnbih0LCBhc190aWJibGUodGJsKGNvbiwgdCkpKSB9DQpgYGANCg0KIyBBc3Nlc3NpbmcgYmFzaWMgbWVhc3VyZXMNCmBgYHtyfQ0KY2F0KCIqKioqIEZVU1RJIGNvbiBwcm9ibGVtaSBwacO5IGdyYXZpISEgKioqKlxuIikNCkZ1c3RpQ2FtcGlvbmVFdEFkRiAlPiUgDQogIHNlbGVjdChJRF9mdXN0b0NhbXBpb25lLCBJRF9zcGVjaWUsIGRfMTMwLA0KICAgICAgICAgbHVuZ2hlenphQWJiYXR0dXRvLCBoX2lwc28pICU+JSANCiAgZmlsdGVyKGlzLm5hKGx1bmdoZXp6YUFiYmF0dHV0bykgfCBpcy5uYShoX2lwc28pIHwNCiAgICAgICAgICAgYWJzKGx1bmdoZXp6YUFiYmF0dHV0by9oX2lwc28tMSkgPi4yKSAgIyBzY2FydG8gbWFnZ2lvcmUgZGVsIDIwJQ0KICANCmNhdCgiKioqIENvbWUgYWxsaW5lYXJlIEx1bmdoZXp6YSBjb24gQWx0ZXp6YT8gKioqXG4iKQ0KRnVzdGlDYW1waW9uZUV0QWRGICU+JSANCiAgZmlsdGVyKCEoaXMubmEobHVuZ2hlenphQWJiYXR0dXRvKSB8IGlzLm5hKGhfaXBzbykgfA0KICAgICAgICAgICBhYnMobHVuZ2hlenphQWJiYXR0dXRvL2hfaXBzby0xKSA+LjIpKSAlPiUgDQojICBnZ3Bsb3QoYWVzKGhfaXBzbywgSShoX2lwc28tbHVuZ2hlenphQWJiYXR0dXRvKSwNCiAgZ2dwbG90KGFlcyhoX2lwc28sIEkobHVuZ2hlenphQWJiYXR0dXRvL2hfaXBzbyksDQogICAgICAgICAgICAgc2hhcGUgPSBJRF9zcGVjaWUpKSArDQogIGdlb21fYWJsaW5lKHNsb3BlID0gMCkgKw0KICBnZW9tX3BvaW50KCkNCg0KYGBgDQoNCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1GQUxTRX0NCmZuIDwtICJUYXBlckZ1bmN0aW9ucy9WZXJpZmluZ1Byb2ZpbGVzIg0Kcm1hcmtkb3duOjpyZW5kZXIocGFzdGUwKGZuLCAiLlJtZCIpKQ0KbWFya2Rvd246OnJwdWJzVXBsb2FkKGZuLCBwYXN0ZTAoZm4sICIubmIuaHRtbCIpLCBpZCA9ICJodHRwczovL2FwaS5ycHVicy5jb20vYXBpL3YxL2RvY3VtZW50LzQ1NTQ1MC84NGZlZmE1NTIxZjk0ZDJkYWY2OWUxZjkwOGYwOWE4ZCIpDQpgYGANCg==