Skip to content

Instantly share code, notes, and snippets.

@phileas-condemine
Created August 29, 2019 17:00
Show Gist options
  • Save phileas-condemine/6cc73a33f175d944902a6585e29e3f05 to your computer and use it in GitHub Desktop.
Save phileas-condemine/6cc73a33f175d944902a6585e29e3f05 to your computer and use it in GitHub Desktop.
#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######
#### GRRRRR FUCKING ECRITURE SCIENTIFIQUE !!!! #####
#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######
# FIX !!!! options(scipen = 999)
one_mat= NN[mater==mater_id]
lon_lat_mat=one_mat[1,c("lon_mater","lat_mater")]%>%paste(collapse=",")
divide_and_conquer <- function(data,mater_id,position = "0"){
print(paste(position,nrow(data)))
Sys.sleep(.5)
lon_lat_carr = paste(paste(data$lon_carr,data$lat_carr,sep = ","),collapse=";")
coords = paste(lon_lat_mat,lon_lat_carr,sep=";")
url <- paste0("http://10.200.15.24:5000/table/v1/driving/",coords,"?sources=0")
path <- paste0("external_data/maternités/dist_osrm/req",mater_id,"_",position,".json")
res <- tryCatch({
download.file(url,destfile = path,mode="wb",quiet = T)
routes <- fromJSON(path)
durations <- c(t(routes$durations))/60
dt <- data.table(durations=durations,carr=c(0,data$carreau))
DL_done=T
save(dt,file=paste0("external_data/maternités/dist_osrm/req",mater_id,"_",position,".RData"))
file.remove(path)
return(T)
},error=function(e){
return(F)
})
print(res)
if(!res){
print("found err")
if(nrow(data)==1){
fwrite(data,paste0("external_data/maternités/dist_osrm/err_",position,".txt"))
return(position)
} else{
one_mat_chunks=split(data,1:2)
c(Recall(data=one_mat_chunks[[1]],mater_id,paste0(position,"-",1)),
Recall(data=one_mat_chunks[[2]],mater_id,paste0(position,"-",2)))
}
} else return(position)
}
mater_id=57
to_route <- NN[mater==mater_id]
divide_and_conquer(data=to_route,mater_id=mater_id)
files <- list.files("external_data/maternités/dist_osrm/")
files <- files[grep(".RData",files)]
files <- files[grep(paste0("req",mater_id,"_"),files)]
files <- paste0("external_data/maternités/dist_osrm/",files)
res <- lapply(files,function(x){
load(x)
dt
})
res <- rbindlist(res)
res <- res[carr!=0]
res <- unique(res)
undone <- to_route[!carreau%in%res$carr]
divide_and_conquer(data=to_route,mater_id=mater_id)
### Check out one err file
# carreau,mater,lat_mater,lon_mater,lat_carr,lon_carr
# 1758969,57,49.145999,0.231887,48.4802275898165,2.91216859692309e-05
# damn ! scipen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment