Commit 9e43c5c1 by vida092

cambios

parent a22ba1e2
......@@ -210,6 +210,9 @@ var histogram_module = (function (verbose) {
*/
function createMultipleBarChart(json_decil, array_recall, idComponent, nameMap) {
console.log("----------json decil ---------------")
console.log(json_decil)
_VERBOSE ? console.log("createMultipleBarChart") : _VERBOSE;
// LIMPIA EL AREA DONDE SE ENCUENTRA EL HISTOGRAMA
......@@ -323,7 +326,7 @@ var histogram_module = (function (verbose) {
if(deciles.length == 0 || grupos == 0){
console.log("Sin grupos o deciles seleccionados")
_toast_module.showToast_BottomCenter(_iTrans.prop('no_decilgrupo'), "warning");
return
returnaddTooltipBarChart
}
body.selected_decile = deciles
console.log(body.selected_decile)
......@@ -1223,9 +1226,9 @@ var histogram_module = (function (verbose) {
function createBarChart(idComponent, data, f_legend) {
_VERBOSE ? console.log("createBarChart") : _VERBOSE;
console.log("<--------------------------------data----------------------->")
console.log(data)
console.log("<----------------------------idComponent-------------------->")
console.log(idComponent)
$("#" + idComponent.id).empty();
......
......@@ -412,9 +412,9 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
};
// var milliseconds = new Date().getTime();
// var url = _url_geoserver + "t=" + milliseconds;
// var espacio_capa = _workspace + ":sp_grid_terrestre";
//var milliseconds = new Date().getTime();
//var url = _url_geoserver + "t=" + milliseconds;
//var espacio_capa = _workspace + ":sp_grid_terrestre";
// normal osm map: http://{s}.tile.osm.org/{z}/{x}/{y}.png
......@@ -693,9 +693,6 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
let query = 'query{get_mesh(grid_res: "' + _grid_res + '"){cve simplified_geom}}'
console.log(query)
$.ajax({
method: "POST",
url: "https://covid19.c3.unam.mx/gateway/api/nodes/",
......@@ -703,10 +700,10 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
data: JSON.stringify({query: query}),
success: function (resp) {
let data = resp["data"];
let obj = data["get_mesh"]
let obj = data["get_mesh"] //lista con {cve, simplified_geom}
let json = {type: 'FeatureCollection',crs: {}, features: []}
//console.log(obj)
for (let i = 0; i < obj.length; i++)
......@@ -2257,7 +2254,7 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
console.log(label_target)
var subquery = _LABEL_MAP.map(taxon => `${label_target}= \'${taxon}\'`).join(" OR ")
var subquery = _LABEL_MAP.map(taxon => `${label_target}= \'${taxon}\'`).join(" OR ") //cambiar label , aparece orden y no nombre científico
console.log(subquery)
......@@ -2933,7 +2930,7 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
}
console.log("********values")
console.log("********values******")
console.log(equal_range_values)
console.log(equal_range_colors)
......
......@@ -364,6 +364,7 @@ var module_nicho = (function () {
_SCROLL_INDEX = 0;
$("#specie_next").click(function () {
console.log("mueve a abajo")
if(_SCROLL_INDEX >= _SCROLL_SECTIONS.length-1)
return;
......@@ -382,6 +383,7 @@ var module_nicho = (function () {
$("#specie_before").click(function () {
console.log("mueve a arriba")
if(_SCROLL_INDEX == 0)
return;
......@@ -1142,7 +1144,6 @@ var module_nicho = (function () {
// se ejecutan los modulos necesarios para iniciar el proceso de obteción de epsilon y score y visualización de tablas, histogramas y mapa
$("#get_esc_ep").click(function () {
_VERBOSE ? console.log("get_esc_ep") : _VERBOSE;
var num_items = 0, spid, idreg, subgroups, sp_target;
......@@ -1270,6 +1271,8 @@ var module_nicho = (function () {
var chkFecha = $("#chkFecha").is(':checked');
//slider_value = val_process ? $("#sliderValidation").slider("value") : 0;
var slider_value = val_process ? true : false;
_componente_fuente.getBodyElements()
......@@ -1316,16 +1319,344 @@ var module_nicho = (function () {
"lim_sup_validation": "2021-07-02"
}
console.log(" <===== body para el análisis =====>")
console.log(body.covariables)
console.log(body.covariable_filter)
// Falta agregar la condición makesense.
// Cuando se realiza una consulta por region seleccioanda se verica que la especie objetivo se encuentre dentro de esta area
_res_display_module_nicho.refreshData(num_items, val_process, slider_value, min_occ, mapa_prob, rango_fechas, chkFecha, fossil, grid_res, footprint_region, disease, agent, val_process_temp);
_componente_fuente.getSubarrayEmisiones()
if(body.covariables.includes('worldclim') && Object.keys(subarrays).length>0 ){
console.log("el análisis tiene worldclim")
//console.log(subarrays)
addid()
async function addid() {
try {
const resp = await $.ajax({
url: "https://covid19.c3.unam.mx/gateway/api/analysis/cells/",
type: "POST",
dataType: "json",
data: JSON.stringify(body),
contentType: "application/json"
});
var id_analysis_worldclim = resp.id_analysis_worldclim;
formarpeticion(subarrays, id_analysis_worldclim);
console.log(subarrays);
var layers= {}
var loadingToast = _module_toast.showToast_CenterCenter("Cargando el mapa...", "info", false);
var keys = Object.keys(subarrays);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const layer = await obtenerRespuestas(subarrays[key], key, layers);
if (Object.keys(layers).length === Object.keys(subarrays).length) {
// All layers have been added, create the layer control here
if (!layerControl) {
var layerControl = L.control.layers(null, layers).addTo(map);
}
}
var downloadLink = document.getElementById('emisiones_download');
downloadLink.addEventListener('click', function(event) {
event.preventDefault();
downloadGeoJSON(layers);
});
}
} catch (error) {
console.error("Error en la función addid:", error);
_module_toast.showToast_CenterCenter("Ha ocurrido un error al cargar el mapa", "error");
}
}
function downloadGeoJSON(layers) {
var allLayers = Object.values(layers); // Layers es el obj con las capas
var features = [];
allLayers.forEach(function(layer) {
layer.eachLayer(function(leafletLayer) {
var geoJSON = leafletLayer.toGeoJSON();
features.push(geoJSON);
});
});
var geoJSONData = JSON.stringify({
type: "FeatureCollection",
features: features
});
var blob = new Blob([geoJSONData], { type: "application/json" });
var url = URL.createObjectURL(blob);
var a = document.createElement("a");
a.href = url;
a.download = "map.geojson";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
//subarrays es un objeto con llaves "ssp###_20##-20##"
function formarpeticion(object, id_analysis_worldclim) {
for (let llave in object) {
// Access the array associated with each key
const arrayDeObjetos = object[llave];
for (let i = 0; i < arrayDeObjetos.length; i++) {
// Change the key names according to the specified mappings
arrayDeObjetos[i].gcm = arrayDeObjetos[i].label;
arrayDeObjetos[i].ssp = arrayDeObjetos[i].parent.replace(/ssp/g, "");
arrayDeObjetos[i].period = arrayDeObjetos[i].grandparent;
// Delete the old key-value pairs
delete arrayDeObjetos[i].label;
delete arrayDeObjetos[i].parent;
delete arrayDeObjetos[i].grandparent;
// Add the property "id_analysis_worldclim" with the given value
arrayDeObjetos[i].id_analysis_worldclim = id_analysis_worldclim;
}
}
}
function getAndDrawMap(response, layer, geoJSON, puntosDivisionScoreNeg, puntosDivisionScorePos) {
var gridData = response
var gridDataMap = {};
for (var i = 0; i < gridData.length; i++) {
var gridItem = gridData[i];
gridDataMap[gridItem.gridid] = gridItem.tscore;
}
for (var i = 0; i < geoJSON.features.length; i++) {
var feature = geoJSON.features[i];
var gridid = feature.properties.gridid;
if (gridDataMap.hasOwnProperty(gridid)) {
feature.properties.tscore = gridDataMap[gridid];
}
}
L.geoJson(geoJSON, {
style: function (feature) {
var tscore = feature.properties.tscore;
var color = getColor(tscore, puntosDivisionScoreNeg, puntosDivisionScorePos);
return {
fillColor: color,
weight: 0.4,
opacity: 1,
color: "white",
dashArray: "0",
fillOpacity: 1
};
},
onEachFeature: function(feature, layer) {
var popupContent = createPopupContent(feature);
layer.bindPopup(popupContent);
}
}).addTo(layer);
}
function createPopupContent(feature) {
var popupContent = "<div class='custom-popup'>" +
"<strong>Grid ID: " + feature.properties.gridid + "</strong><br/>" +
"T-score: " + feature.properties.tscore +
"</div>";
return popupContent;
}
function getColor(tscore, puntosDivisionScoreNeg, puntosDivisionScorePos) {
var colorspos = ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'];
var colorsneg = ['#f7fbff','#deebf7','#c6dbef','#9ecae1','#6baed6','#4292c6','#2171b5','#08519c','#08306b'];
var colors = tscore >= 0 ? colorspos : colorsneg;
var puntosDivision = tscore >= 0 ? puntosDivisionScorePos : puntosDivisionScoreNeg;
for (var i = 0; i < puntosDivision.length; i++) {
if (tscore < puntosDivision[i]) {
return colors[i];
}
}
}
function hacerPeticion(peticion) {
return new Promise((resolve, reject) => {
$.ajax({
url: "https://covid19.c3.unam.mx/gateway/api/analysis/future/",
type: "POST",
dataType: "json",
data: JSON.stringify(peticion),
contentType: "application/json",
success:function(resp){
response = resp.data_score_cell
resolve(response);
}
})
});
}
async function obtenerRespuestas(peticiones, key, layers) {
try {
const promesas = peticiones.map(peticion => hacerPeticion(peticion));
const respuesta = await Promise.all(promesas);
const resultado = [];
// Iterar sobre los arrays dentro de respuesta
for (let i = 0; i < respuesta.length; i++) {
const array = respuesta[i];
// Iterar sobre los objetos dentro de cada array
for (let j = 0; j < array.length; j++) {
const objeto = array[j];
const { gridid, tscore } = objeto;
// Buscar si el objeto con el mismo "gridid" ya existe en "resultado"
const existingObj = resultado.find((item) => item.gridid === gridid);
if (existingObj) {
// Si existe, agregar el score al total y aumentar el contador
existingObj.tscoreTotal += tscore;
existingObj.count++;
} else {
// Si no existe crear un nuevo objeto con el "gridid" y score
resultado.push({ gridid, tscoreTotal: tscore, count: 1 });
}
}
}
// Calcular el promedio para cada objeto en "resultado"
resultado.forEach((item) => {
item.tscore = item.tscoreTotal / item.count;
delete item.tscoreTotal;
delete item.count;
});
console.log(respuesta)
console.log("-----Arriba respuesta, abajo resultado------")
console.log(key)
console.log(resultado)
_module_toast.showToast_CenterCenter("El mapa se está cargando ...","info")
var minTscore = resultado.reduce((min, obj) => obj.tscore < min ? obj.tscore : min, Infinity);
var maxTscore = resultado.reduce((max, obj) => obj.tscore > max ? obj.tscore : max, -Infinity);
var numIntervalos = 9;
var tamañoIntervaloPos = (maxTscore) / numIntervalos;
// Generar los deciles del rango de la respuesta positivos
var puntosDivisionScorePos = [];
for (var i = 0; i < numIntervalos; i++) {
var punto = 0 + tamañoIntervaloPos * (i + 1);
puntosDivisionScorePos.push(punto);
}
//console.log(puntosDivisionScorePos)
var tamañoIntervaloNeg = minTscore / numIntervalos;
// Generar los deciles del rango de la respuesta negativos
var puntosDivisionScoreNeg = [];
for (var i = 1; i <= numIntervalos; i++) {
var punto = tamañoIntervaloNeg * i;
puntosDivisionScoreNeg.push(punto);
}
puntosDivisionScoreNeg = puntosDivisionScoreNeg.reverse()
//console.log(puntosDivisionScoreNeg)
let query = "query{get_mesh(grid_res: \"mun\"){cve simplified_geom}}";
$.ajax({
method: "POST",
url: "https://covid19.c3.unam.mx/gateway/api/nodes/",
contentType: "application/json",
data: JSON.stringify({ query: query }),
success: function (resp) {
let data = resp["data"];
let obj = data["get_mesh"];
geoJSON = {
type: "FeatureCollection",
crs: {},
features: []
};
for (let i = 0; i < obj.length; i++) {
let prop = new Object();
let geom = new Object();
geom = Object.assign({}, obj[i].simplified_geom);
prop = obj[i].cve.toString(); // Convertir a cadena en lugar de número entero para no modificar los gridid
let prope = new Object();
prope.gridid = prop;
// Asignar valores nulos para los tscore por ahora, se actualizarán en cada llamada a getAndDrawMap
prope.tscore = null;
let type = new Object();
type.type = "Feature";
type.geometry = geom;
type.properties = prope;
geoJSON.features.push(type);
geoJSON.crs = {
type: "name",
properties: {
name: "urn:ogc:def:crs:EPSG::4326"
}
};
}
console.log(geoJSON)
var layer = L.layerGroup().addTo(map);
layers[key.replace(/_/g, " ") ] = layer;
if (Object.keys(layers).length === Object.keys(subarrays).length) {
// Para este punto se agregaron todos los layers, ahora se agrega el control
var layerControl = L.control.layers(null, layers).addTo(map);
}
getAndDrawMap(resultado, layer, geoJSON, puntosDivisionScoreNeg, puntosDivisionScorePos); // Pasar peticiones_futuro como argumento
_module_toast.showToast_CenterCenter("El mapa se cargó adecuadamente","success")
}
});
} catch (error) {
// Manejo de errores si ocurre algún problema en las peticiones AJAX
console.error('Error en las peticiones AJAX:', error);
_module_toast.showToast_CenterCenter("Ocurrió un error ","error")
}
}
}
}
......
......@@ -1157,16 +1157,18 @@ var res_display_module = (function (verbose, url_zacatuche) {
// copies.forEach(function (item, index) {
// _createScore_Decil(item);
// });
///descomentar para realizar peticiones de covariables
_REQUESTS_MADE.forEach(function (item, index) {
_createScore_Decil(item);
console.log(item)
console.log(item);
});
// _REQUESTS_MADE.forEach(function (item, index) {
// _createScore_Decil(item);
// });
//// aquí hay que modificar el body por cada covariable
for (let i = 0; i < copies.length; i++) {
_createScore_Decil(_REQUESTS_MADE[i], copies[i]);
}
}
......@@ -1183,8 +1185,8 @@ var res_display_module = (function (verbose, url_zacatuche) {
* @param {boolean} hasChildren - Bandera que indica si la configuración enviada es un conjunto de las variables seleccionadas o es una variable del grupo
* @param {boolean} isTotal - Bandera que indica si la configuración enviada es el total de los conjuntos de las variables seleccionadas
*/
function _createScore_Decil(decildata) {
console.log(decildata)
function _createScore_Decil(decildata, petition) {
//console.log(decildata)
_VERBOSE ? console.log("_createScore_Decil") : _VERBOSE;
......@@ -1196,8 +1198,13 @@ var res_display_module = (function (verbose, url_zacatuche) {
//var data_request = JSON.stringify(body)
data_request["decil_selected"] = [_default_decil]
console.log("<============================================>1")
console.log("<====================================================>1")
console.log(data_request)
// _TREE_GENERATED.groups = _TREE_GENERATED.groups.filter(function(obj) {
// return !obj.name.includes("Emisiones");
// });
console.log(_TREE_GENERATED)
......@@ -1206,15 +1213,15 @@ var res_display_module = (function (verbose, url_zacatuche) {
// decildata["with_data_freq_cell"] = false;
// decildata["with_data_score_decil"] = false;
///tal vez quitar
var verbo = _val_process_temp ? "countsTaxonsGroupTimeValidation" : "countsTaxonsGroup"
// Por el momento dejemos el body, deberá de cambiar por decil data arreglando las peticiones
// Si se esta haciendo bien la peticion al servidor de epi-puma 2.0
fetch("https://covid19.c3.unam.mx/gateway/api/analysis/cells/",{
method:"POST",
//body: JSON.stringify(data_request),
body: JSON.stringify(body),
body: JSON.stringify(petition),
headers:{
"Content-Type": "application/json"
}
......@@ -1251,10 +1258,10 @@ var res_display_module = (function (verbose, url_zacatuche) {
processSingleResponse(data_response, data_request, validation_data);
console.log("<-------- _REQUEST_DONE BEFORE PUSH RESPONSE ------->")
console.log(_REQUESTS_DONE)
_REQUESTS_DONE.push(respuesta);
console.log("<-------- _REQUEST_DONE AFTER RESPONSE ------->")
console.log(_REQUESTS_DONE)
_REQUESTS_DONE=_REQUESTS_DONE.slice(0,1)
console.log("<-------- _REQUEST_DONE AFTER SLICE ------->")
......
......@@ -187,7 +187,6 @@ var utils_module = (function (verbose) {
function reduceScoreCell(data, val_apriori = 0, numr = 1) {
var cross_cells = crossfilter(data)
console.log("<---------0--------->")
console.log(data)
cross_cells.groupAll();
......
......@@ -142,7 +142,8 @@ var variable_module = (function (verbose, url_zacatuche) {
self.groupvar_dataset = [];
self.var_sel_array = [];
//self.arrayBioclimSelected2 = [];
self.arraySocioSelected2 = [];
self.last_event;
self.arrayBioclimSelected = [];
......@@ -168,7 +169,7 @@ var variable_module = (function (verbose, url_zacatuche) {
self.getTreeTarget = function(){
_VERBOSE ? console.log("self.getTreeTarget") : _VERBOSE;
console.log("getTreeTarget")
console.log(id)
$("#agent_selected").change(function() {
......@@ -353,7 +354,7 @@ var variable_module = (function (verbose, url_zacatuche) {
$("#jstree_variables_species_target").on('changed.jstree', self.getChangeTreeVarTarget);
$("#jstree_variables_species_target").on('loaded.jstree', self.loadNodes);
console.log(data)
$('#jstree_variables_species_target').jstree({
'plugins': ["wholerow", "checkbox"],
'core': {
......@@ -529,9 +530,9 @@ var variable_module = (function (verbose, url_zacatuche) {
self.getTreeFuturo = function (){
console.log("self.getTreeFuturo")
var root = ['2021-2040', '2041-2060', '2061-2080', '2081-2100'];
var firstchilds = ['ssp126', 'ssp245', 'ssp370', 'ssp585'];
var secondchilds = ['ACCESS-ESM1-5', 'CNRM-CM6-1', 'GFDL-ESM4', 'GISS-E2-1-H', 'HadGEM3-GC31-LL', 'MIROC6', 'MPI-ESM1-2-LR'];
var root = ['2021-2040','2041-2060', '2061-2080', '2081-2100'];
var firstchilds = ['ssp126', 'ssp245', 'ssp585'];
var secondchilds = ['MPI-ESM1-2-HR', "HadGEM3-GC31-LL", "FIO-ESM-2-0", "EC-Earth3-Veg", "INM-CM5-0", "MRI-ESM2-0", "MIROC6","IPSL-CM6A-LR", "UKESM1-0-LL", "CMCC-ESM2"];
var data = [];
......@@ -552,9 +553,6 @@ var variable_module = (function (verbose, url_zacatuche) {
data.push(root_node);
}
$("#jstree_variables_futurofuente").jstree({
"plugins":["wholerow", "checkbox"],
"core":{
......@@ -566,10 +564,15 @@ var variable_module = (function (verbose, url_zacatuche) {
"check_callback":true
}
})
$(function () { $('#jstree_variables_futurofuente').jstree(); });
$(function () {$('#jstree_variables_futurofuente').jstree();});
$("#jstree_variables_futurofuente").on("changed.jstree", function(event, data) {
self.getChangeTreeVarEmisiones(event, data);
});
}
self.getTreeFuturo()
self.getTreeSocio = function (){
......@@ -707,6 +710,7 @@ var variable_module = (function (verbose, url_zacatuche) {
self.getTreeTarget()
self.getTreeVarRaster()
self.getTreeSocio()
self.getTreeFuturo()
/****************************************************************************************** GENERACION DE PANEL */
......@@ -764,7 +768,6 @@ var variable_module = (function (verbose, url_zacatuche) {
.addClass(name_class)
.appendTo(nav_items)
.click(function (e) {
console.log( e.target.getAttribute('href') )
$('.nav-tabs a[href="' + e.target.getAttribute('href') + '"]').tab('show');
e.preventDefault();
......@@ -1672,26 +1675,25 @@ var variable_module = (function (verbose, url_zacatuche) {
var btn_add = $('<button/>')
.attr('id', 'add_group_bioclim' + "_" + id)
.attr('id', 'add_group_socio' + "_" + id)
.attr('type', 'button')
.addClass('btn btn-primary glyphicon glyphicon-plus pull-left')
.click(function (e) {
console.log(self.arraySocioSelected2)
self.formQuery("jstree_variables_socio_" + id, self.arraySocioSelected2)
self.addOtherGroup("jstree_variables_socio_" + id, self.arraySocioSelected, 'Socio', 'treeAddedPanel_' + id, _TYPE_ABIO);
e.preventDefault();
})
.appendTo(tab_pane);
var btn_add = $('<button/>')
.attr('id', 'clean_var_bioclim' + "_" + id)
.attr('id', 'clean_var_socio' + "_" + id)
.attr('type', 'button')
.addClass('btn btn-primary glyphicon glyphicon-trash pull-left')
.click(function (e) {
// self.groupbioclimvar_dataset = [];
self.cleanVariables("jstree_variables_socio_" + id, 'treeAddedPanel_' + id, _TYPE_ABIO);
e.preventDefault();
$("jstree_variables_socio_" + id).jstree(true).deselect_all();
})
.appendTo(tab_pane);
......@@ -1719,26 +1721,31 @@ var variable_module = (function (verbose, url_zacatuche) {
var btn_add = $('<button/>')
.attr('id', 'add_group_bioclim' + "_" + id)
.attr('id', 'add_group_clima' + "_" + id)
.attr('type', 'button')
.addClass('btn btn-primary glyphicon glyphicon-plus pull-left')
// .click(function (e) {
.click(function (e) {
// self.formQuery("jstree_variables_socio_" + id, self.arraySocioSelected2)
// self.addOtherGroup("jstree_variables_socio_" + id, self.arraySocioSelected, 'Socio', 'treeAddedPanel_' + id, _TYPE_ABIO);
// e.preventDefault();
console.log(arrayEmisionSelected)
//self.addOtherGroup("jstree_variables_futurofuente", arrayEmisionSelected, 'Emisiones', 'treeAddedPanel_' + id, _TYPE_ABIO)
self.addEmisiones(arrayEmisionSelected)
//e.preventDefault();
// })
})
.appendTo(tab_pane);
var btn_add = $('<button/>')
.attr('id', 'clean_var_bioclim' + "_" + id)
.attr('id', 'clean_var_clima' + "_" + id)
.attr('type', 'button')
.addClass('btn btn-primary glyphicon glyphicon-trash pull-left')
.click(function (e) {
// self.groupbioclimvar_dataset = [];
self.cleanVariables("jstree_variables_socio_" + id, 'treeAddedPanel_' + id, _TYPE_ABIO);
e.preventDefault();
arrayEmisionSelected=[]
self.cleanVariables("jstree_variables_futurofuente", 'treeAddedPanel_' + id, _TYPE_ABIO);
var jstreeInstance = $('#jstree_variables_futurofuente').jstree(true);
jstreeInstance.deselect_all();
subarrays={}
})
.appendTo(tab_pane);
......@@ -1746,175 +1753,11 @@ var variable_module = (function (verbose, url_zacatuche) {
});
// Evento generado cuando se realiza la acción de abrir una rama del árbol de selección, realiza la carga de los elementos que componen la rama a la cual se desea tener acceso.
// self.getTreeVar = function (e, d) {
// _VERBOSE ? console.log("self.getTreeVar") : _VERBOSE;
// _VERBOSE ? console.log(d.node.original.attr.nivel) : _VERBOSE;
// _VERBOSE ? console.log(d.node.children) : _VERBOSE;
// console.log("esto es d "+ d)
// if (d.node.children.length > 1){
// console.log("No se encontraron datos debajo de este nivel")
// return;
// }
// var next_field = "";
// var next_nivel = 0;
// var parent_field = "";
// //$("#jstree_variables_species_" + id).jstree(true).set_icon(d.node.id, "plugins/jstree/images/dna.png");
// if (d.node.original.attr.nivel == 2) {
// parent_field = "reino"
// next_field = "phylum";
// next_nivel = 3;
// } else if (d.node.original.attr.nivel == 3) {
// parent_field = "phylum"
// next_field = "clase";
// next_nivel = 4;
// } else if (d.node.original.attr.nivel == 4) {
// parent_field = "clase"
// next_field = "orden";
// next_nivel = 5;
// } else if (d.node.original.attr.nivel == 5) {
// parent_field = "orden"
// next_field = "familia";
// next_nivel = 6;
// } else if (d.node.original.attr.nivel == 6) {
// parent_field = "familia"
// next_field = "genero";
// next_nivel = 7;
// } else if (d.node.original.attr.nivel == 7) {
// parent_field = "genero"
// next_field = "epitetoespecifico";
// next_nivel = 8;
// } else {
// $('#jstree_variables_species_' + id).tooltip('hide');
// $("#jstree_variables_species_" + id).jstree(true).delete_node(d.node.children[0]);
// $("#jstree_variables_species_" + id).jstree(true).set_icon(d.node.id, "./plugins/jstree/images/dna.png");
// return;
// }
// _VERBOSE ? console.log(d.node.id) : _VERBOSE
// _VERBOSE ? console.log(d.node.text) : _VERBOSE
// var text_val = d.node.text
// var regex = / \(spp: \d*\)/gi;
// // elimina el (spp: N) del valir para realizar la busqueda de manera correcta
// var label_value = text_val.replace(regex, '');
// _VERBOSE ? console.log(label_value) : _VERBOSE
// _REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
// _GRID_RES = $("#grid_resolution").val();
// console.log("REGION_SELECTED: " + _REGION_SELECTED);
// console.log("_GRID_RES: " + _GRID_RES);
// var _url="https://covid19.c3.unam.mx/gateway/api/nodes/"
// let nodo = _AGENT_SELECTED.toLowerCase()
// let _DISEASE_SELECTED = $("#disease_selected option:selected").text();
// let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ parent_field.toLowerCase() +' = \'' + label_value +'\' "){'+ next_field +'}}'
// console.log(query)
// $.ajax({
// method: "POST",
// url: _url,
// contentType: "application/json",
// data: JSON.stringify({query: query}),
// success: function (resp) {
// console.log(resp)
// let data2 = resp.data["occurrences_by_taxon_" + nodo]
// console.log(data2)
// console.log(data2[0])
// let uniqueObjArray = []
// for (let i = 0; i < data2.length; i++) {
// let val = data2[i];
// //console.log(val)
// if(uniqueObjArray.indexOf(val) === -1) {
// uniqueObjArray.push(val);
// }
// }
// let uniqueObjArray1 = [
// ...new Map( uniqueObjArray.map((item) => [item[next_field], item])).values(),
// ];
self.verarrayEmisiones= function(){
// console.log(uniqueObjArray1)
// let data = uniqueObjArray1
// $('ul').tooltip('hide');
// $('li').tooltip('hide');
// $('li').removeAttr("title");
// $('li').removeAttr("data-original-title");
// $('#jstree_variables_species_' + id).removeAttr("data-original-title");
// $('#jstree_variables_species_' + id).removeAttr("title");
// for (i = 0; i < data.length; i++) {
// var idNode = "";
// var camp = data[i]
// var name_variable = camp[next_field]
// console.log("name_variable: " + name_variable)
// if ($("#" + data[i].id).length > 0) {
// // _VERBOSE ? console.log("id_existente") : _VERBOSE;
// idNode = data[i].id.replace(" ","") + "_" + Math.floor((Math.random() * 1000) + 1)
// } else {
// // ._VERBOSE ? console.log("nuevo_id") : _VERBOSE;
// idNode = camp[next_field];
// }
// var default_son = next_nivel < 8 ? [{text: "cargando..."}] : [];
// var label_taxon = next_nivel < 8 ? camp[next_field] : camp[next_field]; //" (spp: " + data[i].spp + ")"
// var newNode = {
// id: idNode,
// text: label_taxon,
// icon: "plugins/jstree/images/dna.png",
// attr: {"nivel": next_nivel, "type": _TYPE_TAXON},
// state: {'opened': false},
// "children": default_son
// };
// if(data[i].description+'' !== 'undefined'){
// newNode['li_attr'] = {"title": data[i].description + ' ' + data[i].name.split(' ')[1]};
// }
// $('#jstree_variables_species_' + id).jstree("create_node", d.node, newNode, 'last', false, false);
// }
// //$("#jstree_variables_species_" + id).jstree(true).delete_node(d.node.children[0]);
// //$("#jstree_variables_species_" + id).jstree(true).set_icon(d.node.id, "./plugins/jstree/images/dna.png");
// $("#jstree_variables_species_" + id).prop('title', data[0].description);
// $("#jstree_variables_species_" + id).tooltip();
// $('li').tooltip();
// $('ul').tooltip();
// }
// });
return arrayEmisionSelected
}
// };
// Evento generado cuando cambia el estado de selección del árbol, almacena los elementos que fueron seleccionados del grupo de variables taxonómicas.
......@@ -2143,6 +1986,8 @@ var variable_module = (function (verbose, url_zacatuche) {
};
self.getChangeTreeVarSocio = function(e, data){
_VERBOSE ? console.log("self.getChangeTreeVarSocio") : _VERBOSE;
self.arraySocioSelected=[];
......@@ -2207,6 +2052,37 @@ var variable_module = (function (verbose, url_zacatuche) {
}
self.getChangeTreeVarEmisiones = function(event, data) {
_VERBOSE ? console.log("self.getChangeTreeVarEmisiones") : _VERBOSE;
arrayEmisionSelected = [];
// Obtener los nodos seleccionados
var nodos = data.selected;
// Iterar sobre los nodos seleccionados
nodos.forEach(function(nodo) {
// Obtener el objeto de nodo
var nodeObject = data.instance.get_node(nodo);
var nodeText = nodeObject.text;
var parentNode = data.instance.get_node(nodeObject.parent);
var grandparentNode = parentNode ? data.instance.get_node(parentNode.parent) : null;
var parentNodeText = parentNode ? parentNode.text : null;
var grandparentNodeText = grandparentNode ? grandparentNode.text : null;
var nodoObjeto = {
label: nodeText,
parent: parentNodeText,
grandparent: grandparentNodeText
};
arrayEmisionSelected.push(nodoObjeto);
});
console.log(arrayEmisionSelected);
return arrayEmisionSelected;
}
self.isKingdomLevel = function (arraySelected) {
......@@ -2415,14 +2291,63 @@ var variable_module = (function (verbose, url_zacatuche) {
}
self.addEmisiones = function(arr) {
subarrays = {};
// Dividir el array en subarrays
arr.forEach(function(objeto) {
if(objeto.parent && objeto.grandparent){
var parent = objeto.parent;
var grandparent = objeto.grandparent;
var key = parent + '_' + grandparent;
if (!(key in subarrays)) {
subarrays[key] = [];
}
subarrays[key].push(objeto);
}
});
console.log(subarrays);
// Crear el div con la clase "row_var_item" y el texto "Gpo GCM"
var $div = $('<div>', {class: 'row_var_item'}).text('Gpo GCM');
// Crear el botón con las clases "btn btn-danger glyphicon glyphicon-remove pull-right btn_item_var"
var $button = $('<button>', {class: 'btn btn-danger glyphicon glyphicon-remove pull-right btn_item_var'});
// Crear el div con la clase "cell_item" y el texto de las propiedades del objeto
$div.append($button)
Object.keys(subarrays).forEach(element =>{
var $innerDiv = $('<div>', {class: 'cell_item'}).text(element).hide();
$div.append($innerDiv)
})
$button.on('click', function() {
$div.remove()
});
$div.on('click', function() {
$div.find('.cell_item').toggle();
});
$('#treeAddedPanel_fuente').append($div);
return subarrays
}
// Evento que es generado cuando se desea agregar un grupo seleccionado previamente, realiza la adición del grupo seleccionado al conjunto de variables con las cuales se realizan los cálculos de épsilon y score en ambos sistemas
self.addOtherGroup = function (idTree, arraySelected, gpoName, idDivContainer, typeVar) {
_VERBOSE ? console.log("self.addOtherGroup") : _VERBOSE;
console.log("***** addOtherGroup variables *****")
console.log(idTree)
console.log(arraySelected)
// console.log(idTree)
// console.log(arraySelected)
const iterator = arraySelected.values();
_LABEL_MAP = []
......@@ -2744,6 +2669,17 @@ var variable_module = (function (verbose, url_zacatuche) {
return snib, covobj, inegi, worldclim, target_species
}
self.getEmisionesElement = function (){
return arrayEmisionSelected
}
self.getSubarrayEmisiones = function(){
return subarrays
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment