rm(list=ls())
library(foreign) # para poder leer el dbf

setwd('D:\\areas_protegidas\\xls_dbf')

dat<-read.table('todas_las_variables_sam_simp_fk_1000km.txt',sep='\t',header=T)
# dat<-read.table('todas_las_variables_sam_simp_fk_1000km_SG.txt',sep='\t',header=T)


dat$AREA_AL <-  rowSums(dat[,21:33]) # creo el area para todo el continente
dat$AP_AL <- rowSums(dat[,35:47]) # creo el area protegido para todo el continente
dat<-data.frame(dat[,c(1:34,49,35:48,50)])  # muevo las columnas

# paises <- c("AR","BO","BR","CL","CO","EQ","GF","GU","PE","PY","SU","UY","VZ","GI","AL")
# variables<-c("PPT","TMP","ELEV","SLOPE","POP","DIST_ROAD","ACCESS","CULTIVOS",
#              "DIST_FRON","DIV_AN","BIOMASS","TEB","FLICKR_POP")

for (i in 21:35){
  dat_simp <- data.frame(dat[,1], dat[,8:12],dat[,(i)],dat[,(i+15)])
  names(dat_simp) <- c(names(dat)[1],
                       names(dat)[8:12], 
                       names(dat)[c(i,(i+15))])
  dat_pais <- subset(dat_simp, dat_simp[,7]>0)
  
  nom_pais<-substr(names(dat)[i],6,7) # aca del campo AREA_PAIS se extrae el nombre del pais
  
  d_aichi <- NULL
  
  for (j in 2:6){
    dat_var <- data.frame(dat_pais[,1],dat_pais[,j], dat_pais[,(7:8)])
  
    names(dat_var) <- c(names(dat_pais)[1],
                        names(dat_pais)[j], 
                        names(dat_pais)[(7:8)])
    
    limINF <- quantile(dat_var[,2], 0.025)  
    limSUP <- quantile(dat_var[,2], 0.975)  
  
    dat_var <- cbind(dat_var, simp = ifelse(dat_var[,2] >= limSUP,limSUP,
                  ifelse(dat_var[,2]<=limINF, limINF, dat_var[,2])))
 
    cla <- seq(limINF,limSUP,length.out = 11) #los histogramas siempre tienen 10 clases
    
    histograma <- hist(dat_var$simp, breaks=cla, plot=F, include.lowest=T)
    
    cat <- cut(dat_var$simp, breaks=histograma$breaks, include.lowest=TRUE,labels=F)
    dat_var = cbind(dat_var, cat)
  
  # tabla dinamica con categorias de las variables independientes 
  # y resumiendo por ellas el area de cada pais y el areas protegida
  # de cada pais
    areasclases <- tapply(as.numeric(dat_var[,3]), INDEX=dat_var$cat, FUN=sum)
    areasPclases <- tapply(as.numeric(dat_var[,4]), INDEX=dat_var$cat, FUN=sum)
    fraccionPclases <- areasPclases*100/areasclases
    fraccionPclases <- as.data.frame(fraccionPclases)
    fraccionPclases$cat <- rownames(fraccionPclases)
    colnames(fraccionPclases) <- c("FP", "cat")
    
  # aca tengo que unir dat_pais con fraccionPclases  
    dat_var <- merge(dat_var, fraccionPclases, by = "cat")
    
    dat_var$d_aichi <- 100 - dat_var$FP # calculo de la distancia a aichi
    dat_var <- dat_var[order(dat_var$TARGET_FID),]
    
    # acá tengo que lograr que se vayan pegando pero por el id
    d_aichi <- cbind(d_aichi, dat_var$d_aichi) # pegando las columnas para cada pais
    d_aichi <- as.data.frame(d_aichi)
    }

    names(d_aichi) <- names(dat)[8:12] 
    d_aichi$id <- dat_var$TARGET_FID
    d_aichi$d_aichi_total <- rowSums(d_aichi[,1:5])
    
    write.table(d_aichi, paste0("salidas txt/d_aichi_",nom_pais,".txt"), row.names = F)
}