davidperezmartorell / forestMap

Map of forests and studies or inventories during the time
0 stars 0 forks source link

como mantener la aplicacion tras el tfm #154

Open davidperezmartorell opened 6 months ago

davidperezmartorell commented 6 months ago

Tenemos que ver que hacer cuando se entregue el tfm y la aplicación sea entregada. Cuando no sea vivible desde mi ordenador por el fin de las relaciones académicas, el único espacio disponible es el servidor web que esta limitado a 1GB de memoria. Tambien es accesible el código en GITHUB pero no como ejecutable, sino que es necesario desscargar el código y subirlo a un servidor. Necesitamos un servidor donde subir este programa y disponibilizarlo a cualquier investigador.

Sin mencionar que este código tambien requiere de un mantenimiento, pero esta suficientemente documentado en todos los archivos para que un nuevo investigador pueda seguir el trabajo.

Julenasti commented 6 months ago

Perfecto, muchas gracias David. Podrías preguntar en el slack de ecoinformática para ver si hay alguien que ya ha lidiado con este problema? Hay una sección de dudas en el slack para ello

Julenasti commented 6 months ago

También estaría bien saber qué proceso es el que más memoria consume. Por ejemplo si la base de datos fuera muy grande podríamos alojarlo en algún otro sitio y leerlo de ahí https://forum.posit.co/t/shiny-app-cant-deploy-because-data-exceeds-2-9-gb-are-there-any-solutions-i-can-take/62877 -> https://shiny.posit.co/r/articles/build/persistent-data-storage/ https://anderfernandez.com/en/blog/put-shiny-app-into-production/ (por lo que he leido tiene una versión de prueba pero luego hay que pagar) https://serve.scilifelab.se/docs/user-accounts/ (tenemos algunos colaboradores suecos por lo que puede ser otra opción) https://www.r-bloggers.com/2021/12/how-many-shiny-apps-can-you-host-for-free/ (más opciones pero creo que ninguno soluciona mucho nuestro problema)

davidperezmartorell commented 6 months ago

....revisando.....a ver si los suecos nos dan una salida interesante....pero ya optimicé el programa y carga en shiny https://qm0lyl-david-perez0martorell.shinyapps.io/forestmap/

Julenasti commented 6 months ago

Gracias David, gran trabajo!! Lo he probado y me ha funcionado bien, pero luego cuando se conecten varias personas y demás la cosa puede ser distinta. ¿Sabés qué es lo que más pesa del programa? ¿Quizás es la pestaña de general? En mi opinión es mejor que la información que mostremos esté bien y la app sea relativamente ágil a mostrar más información y que vaya lento. Mejor ir construyendo poco a poco.

Por otra parte, algunos detalles que he visto: al proporcionar el doi del estudio creo que sería mejor proporcionar el doi del artículo a la revista en vez de a researchgate. Por ejemplo, en Williams 2000 va a researchgate en vez de al artículo. En ese mismo artículo en las gráficas de clase y orden, creo que estaría bien rodendear los conteos y años a números enteros. En la pestaña general después del título de cada gráfica, hay un espacio en blanco antes del primer paréntesis.

davidperezmartorell commented 6 months ago

aqui tenemos el consumo de memoria del programa segun a avanzando image

davidperezmartorell commented 6 months ago

respecto el enlace, agrego ambos enlaces, al DOI y a la URL relacionada image

davidperezmartorell commented 6 months ago

creo que apuntan al mismo sitio

davidperezmartorell commented 6 months ago

Respecto el gráfico, veo que sale asi, y es incorrecto. seguramente en alguna versión se me perdió los límites de los ejes image lo resuelvo empezando ejes siempre desde 0, pero esste en concreto, los datos son 1, por eso divide el eje y image

Aqui otro estudio con diferentes valores image

davidperezmartorell commented 6 months ago

he revisado de nuevo el consumo de memoria, ese pico al haver el filtro y veo que el proceso es el siguiente: 1 haces click 2 darga datos de taxon y assembleages 3 mergea datos tomando el valor de id_study como referencia

en el paso 3 tiene 2 datastreams grandes. Lo que hago es primero filtrar de ambos dataframes los que tengan ese id_study y luego mergearlos en lugar de mergear todos los datos.

Aqui la mejora (un trozo de funcion)

filterDataByIdstudy<-function(taxon,assembleages,study){ assembleages <- assembleages[assembleages$id_study %in% study, ] <- AQUI EL FILTRO DONDE TOMO SOLO LOS VALORES INTERESANTES

Convert age column to numeric in the taxon data frame

assembleages$age <- as.numeric(assembleages$age)

Filter taxon based on id_study

taxon <- subset(taxon, id_study %in% study) <- AQUI EL FILTRO DONDE TOMO SOLO LOS VALORES INTERESANTES

Merge the dataframes based on common columns

merged_data <- merge(taxon, assembleages, by = c("id_study"), all.x = TRUE) <- AQUI EL MERGEO PESADO

davidperezmartorell commented 6 months ago

aqui puedes ver el código en el programa que lo acabo de subir

https://github.com/davidperezmartorell/forestMap/blob/fc1fab65a02bd79a65a61e3cef1a5cbc9aa2a3d2/filterDataByIdstudy.R#L9

Julenasti commented 6 months ago

Muchas gracias por todas las respuestas y correcciones David. Aquí te contesto: