IPDP

Plataforma de trabajo
Title
Potencial de la energía contenida en los residuos de la Ciudad de México 2019
Abstract

Dado el poder calorífico, la generación per cápita y la densidad poblacional por AGEB en las distintas zonas de la Ciudad de México, se puede visualizar el potencial energético de los residuos generados en las distintas regiones. De igual forma, se señalan las estaciones de transferencia de residuos con las que cuenta la SOBSE. En promedio, cada estación de transferencia recibe 250,000 toneladas de residuos anualmente, por lo que en la ciudad se cuenta con 12 puntos geográficos por los qu...

Date de publicación
Keywords
06 Infraestructura física
Category
Ambiental
los recursos del medio ambiente, la protección y la conservación. Ejemplos: contaminación ambiental, almacenamiento y tratamiento de residuos, evaluación de impacto ambiental, el monitoreo del riesgo ambiental, reservas naturales, paisaje
Catalogado por
Sergio Fabricio Mora Flores
More info
-
Language
English
Supplemental Information

No se provee información

Comments (0 total)

Log in to add a comment

Average Rating

(0)
/** @global * Flag variable to control drill functionality. * Such feature is in infoDrill.js file */ var isDrillActive = false; /** * Transform json data into CSV string * @param {Object} jsonData - The JSON data, with key-value pairs * @return {string} The CSV representation. */ function convertToCSV(jsonData) { var csvData = []; csvData.push('Atributo,Valor'); for (var key in jsonData.properties) { var value = jsonData.properties[key]; if (value === null) { value = ''; } else { value = value.toString().replace(/"/g, '""'); } csvData.push('"' + key + '","' + value + '"'); } return csvData.join('\n'); } L.TileLayer.BetterWMST = L.TimeDimension.Layer.WMS.extend({ defaultWmsParams: { service: 'WMS', request: 'GetMap', // @option layers: String = '' // **(required)** Comma-separated list of WMS layers to show. layers: '', // @option styles: String = '' // Comma-separated list of WMS styles. styles: '', // @option format: String = 'image/jpeg' // WMS image format (use `'image/png'` for layers with transparency). format: 'image/jpeg', // @option transparent: Boolean = false // If `true`, the WMS service will return images with transparency. transparent: false, // @option version: String = '1.1.1' // Version of the WMS service to use version: '1.1.1' }, options: { // @option crs: CRS = null // Coordinate Reference System to use for the WMS requests, defaults to // map CRS. Don't change this if you're not sure what it means. crs: null, // @option uppercase: Boolean = false // If `true`, WMS request parameter keys will be uppercase. uppercase: false, detectRetina: false, control: null }, initialize: function(layer, options) { L.TimeDimension.Layer.WMS.prototype.initialize.call(this, layer, options); this._url = options.url; const wmsParams = L.Util.extend({}, this.defaultWmsParams); // all keys that are not TileLayer options go to WMS params for (const i in options) { if (!(i in this.options)) { wmsParams[i] = options[i]; } } options = L.Util.setOptions(this, options); const realRetina = 1; const tileSize = this.getTileSize(); wmsParams.width = tileSize.x * realRetina; wmsParams.height = tileSize.y * realRetina; wmsParams.layers = options.layers this.wmsTime = [] this.wmsParams = wmsParams; this.timeLayerControl = L.control.timeDimension(this.options.mapt,{ position: "topright", autoPlay: false, timeSlider: false, loopButton: true, playerOptions: { transitionTime: 125, loop: true, } }); }, getTileSize: function() { const s = 256; return s instanceof L.Point ? s : new L.Point(s, s); }, onAdd: function (map) { console.log("onAdd log", this) L.TimeDimension.Layer.WMS.prototype.onAdd.call(this, map); map.on('click', this.getFeatureInfo, this); // map.addControl(this.timeLayerControl) }, onRemove: function (map) { // Triggered when the layer is removed from a map. // Unregister a click listener, then do all the upstream WMS things L.TimeDimension.Layer.WMS.prototype.onRemove.call(this, map); map.off('click', this.getFeatureInfo, this); // map.removeControl(this.timeLayerControl) this.timeLayerControl = null }, _showLayer: function(layer, time) { if (this._currentLayer && this._currentLayer !== layer) { this._currentLayer.hide(); } layer.show(); if (this._currentLayer && this._currentLayer === layer) { return; } this._currentLayer = layer; this._currentTime = time; console.log('Show layer ' + layer.wmsParams.layers + ' with time: ' + new Date(time).toISOString()); }, _update: function(){ L.TimeDimension.Layer.WMS.prototype._update.call(this); }, getFeatureInfo: function (evt) { // Make an AJAX request to the server and hope for the best if (isDrillActive) { return null } var url = this.getFeatureInfoUrl(evt.latlng), showResults = L.Util.bind(this.showGetFeatureInfo, this); var layername = this.wmsParams.layers; showResults(evt.latlng, layername, url); }, getFeatureInfoUrl: function (latlng) { // Construct a GetFeatureInfo request URL given a point console.log("url",this.wmsParams.format) var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()), size = this._map.getSize(), params = { request: 'GetFeatureInfo', service: 'WMS', srs: 'EPSG:4326', styles: this.wmsParams.styles, transparent: this.wmsParams.transparent, version: this.wmsParams.version, format: this.wmsParams.format, bbox: this._map.getBounds().toBBoxString(), height: size.y, width: size.x, layers: this.wmsParams.layers, query_layers: this.wmsParams.layers, info_format: 'application/json', time : 'P1000Y/PRESENT' }; params[params.version === '1.3.0' ? 'i' : 'x'] = Math.round(point.x); params[params.version === '1.3.0' ? 'j' : 'y'] = Math.round(point.y); // Possible FIXME: Let backend to determine origin url = this._url + L.Util.getParamString(params, this._url, true); console.log("Formed url: "+url) return url }, showGetFeatureInfo: function (latlng, layername, url) { var pcontent = ""; var e = this; $.ajax({ url: '/interactive/get_featureinfo', type: 'POST', data: {'layername':layername, 'url': url, csrfmiddlewaretoken: '5iHQMje2UFmUNrR4Dw8u0XhsQe6MOhOr' }, dataType: 'json', success: function(data) { console.warn(data); var jdata = data.properties; var desc = data.attr_desc; pcontent += '' if(!jQuery.isEmptyObject(desc)){ // if (census.getConstants()) { // $.each(jdata, function(key, value){ // if(value==null){ // value=''; // } // if(!isNaN(value)){ // if(value.toString().indexOf('.') != -1){ // var arr = value.toString().split('.'); // var trunc = arr[1].substring(0, 2); // pcontent += ''; // } else{ // pcontent += ''; // } // } else { // pcontent += ''; // } // }); // var container = $('
'); // container.on('click', 'div.click-census-analysis', function() { // if (typeof($(".layer-selected").attr('id')) != "undefined") { // var swt_id = $(".layer-selected").attr('id').slice(1); // var lay_id = $("#"+swt_id).attr('data-regid'); // if (typeof(lay_id) != "undefined") { // census.getResultsCensus(jdata,lay_id); // } // } // }); // pcontent += '
'; // pcontent += '
AtributoValor
'+desc[key]+''+arr[0]+'.'+trunc+'
'+desc[key]+''+value+'
'+desc[key]+''+value+'
Analisis para el objeto seleccionado
'; // container.html(pcontent); // L.popup() // .setLatLng(latlng) // .setContent(container[0], customOptions) // .openOn(e._map); // }else{ $.each(jdata, function(key, value){ if(value==null){ value=''; } if(!isNaN(value)){ if(value.toString().indexOf('.') != -1){ var arr = value.toString().split('.'); var trunc = arr[1].substring(0, 2); pcontent += ''+desc[key]+''+arr[0]+'.'+trunc+''; } else{ pcontent += ''+desc[key]+''+value+''; } } else { pcontent += ''+desc[key]+''+value+''; } }); pcontent += '' // Add the download button to the popup content var csvData = convertToCSV(data); var downloadButton = 'Download CSV'; pcontent += downloadButton; L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); // } } else{ $.each(jdata, function(key, value){ //pcontent += '
'+key+' = '+value+'
'; pcontent += ''+key+''+value+''; }); pcontent += '' L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); } }, error: function() { console.log('There is an error in the response'); } }); } }); L.tileLayer.betterWmsTime = function (url, options) { return new L.TileLayer.BetterWMST(url, options); }; // BETTERWMS CON MEJORAS DE BUSQUEDA // function addLayerSearch(currentHref, typename){ // var url = currentHref.replace("wms","wfs"); // var params = { // 'service': 'wfs', // 'request': 'GetFeature', // 'version': '2.0.0', // 'typeNames': typename, // 'format': 'application/json', // 'info_format' : 'application/json', // 'outputFormat': 'application/json' // } // url = url + L.Util.getParamString(params, url, params.uppercase); // $.ajax({ // url: url, // type: 'GET', // success: function(data){ // searchLayer = L.geoJSON(data,{pointToLayer: function(){}}).addTo(map) // searchControl = new L.Control.Search({ // layer: searchLayer, // marker: true, // propertyName:'radio', // moveToLocation: function(latlng, title, map) { // //map.fitBounds( latlng.layer.getBounds() ); // var zoom = map.getBoundsZoom(latlng.layer.getBounds()); // map.setView(latlng, zoom); // access the zoom // } // }) // } // }) // } L.TileLayer.BetterWMS = L.TileLayer.WMS.extend({ initialize(url, options) { L.TileLayer.WMS.prototype.initialize.call(this,url, options); this.wmsParams = L.Util.extend({ time : 'P1000Y/PRESENT' }, this.wmsParams); this.searchLayer = null; this.searchData = null this.searchControl = null; this.mapt = this.options.mapt this.layerGroupWms = new L.LayerGroup(); }, _getGeojsonLayer: function(){ var e = this var url = this._url.replace("wms","wfs"); let protocol = window.location.protocol; if (protocol.includes("https") && !url.includes("https")) { url = url.replace("http", "https"); } var params = { 'service': 'wfs', 'request': 'GetFeature', 'version': '2.0.0', 'typeNames': this.wmsParams.layers, 'format': 'application/json', 'info_format' : 'application/json', 'outputFormat': 'application/json' } url = url + L.Util.getParamString(params, url, params.uppercase); console.log("geojson wfs url", url); $.ajax({ url: url, type: 'GET', success: function(data){ e.searchData = data console.log("success geojson data", data); }, complete: function(){ e.searchLayer = L.geoJSON(e.searchData,{ pointToLayer: function(geoJsonPoint, latlng) { return L.marker(latlng,{ "opacity": 0 }); } }) console.log("searchLayer", e.searchLayer) e.layerGroupWms.addLayer(e.searchLayer) var layername = e.wmsParams.layers.replace("geonode:",""); e.searchControl = new L.Control.Search({ marker: false, layer: e.layerGroupWms, textPlaceholder: layername, autoType: false, position: 'topright', propertyName: e.options.attributeSearch, minLength: 0, moveToLocation: function(latlng, title, map) { console.log(latlng,title,map) map.setView(latlng, 16); // access the zoom }, filterData: function(text, records){ const frecords = {}; text = text.replace(new RegExp('[.*+?^${}()|[\]\\]','g'), '') // sanitize remove all special characters if (text === '' || !text) { console.log("No text", records); return records; } const regSearch = new RegExp(text, 'i'); for (const key in records) { if (regSearch.test(key)) { frecords[key] = records[key]; } } console.log(text,frecords); return frecords; } }).addTo(e.mapt) // Change the id of the created input (searchtext{lenght of placeholder}) $(`#searchtext${layername.length}`).attr("id", `searchtext-${layername}`); }, error: function(error) { console.error("Failure on search (geojson)", error); } }) }, _update: function(){ L.TileLayer.WMS.prototype._update.call(this); // map.addControl(this.controlSearch) }, onAdd: function (map) { // Triggered when the layer is added to a map. // Register a click listener, then do all the upstream WMS things L.TileLayer.WMS.prototype.onAdd.call(this, map); map.on('click', this.getFeatureInfo, this); // this.searchControl.addTo(map) if( this.options.attributeSearch != "" && this.options.attributeSearch.length >= 1){ this._getGeojsonLayer() this.layerGroupWms.addTo(map); } }, onRemove: function (map) { // Triggered when the layer is removed from a map. // Unregister a click listener, then do all the upstream WMS things L.TileLayer.WMS.prototype.onRemove.call(this, map); map.off('click', this.getFeatureInfo, this); if(map.hasLayer(this.layerGroupWms)){ map.removeLayer(this.layerGroupWms) map.removeControl(this.searchControl) } }, getFeatureInfo: function (evt) { console.log(evt) // Make an AJAX request to the server and hope for the best if (isDrillActive) { return null } var url = this.getFeatureInfoUrl(evt.latlng), showResults = L.Util.bind(this.showGetFeatureInfo, this); var layername = this.wmsParams.layers; showResults(evt.latlng, layername, url); }, getFeatureInfoUrl: function (latlng) { // Construct a GetFeatureInfo request URL given a point console.log("url",this.wmsParams.format) var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()), size = this._map.getSize(), params = { request: 'GetFeatureInfo', service: 'WMS', srs: 'EPSG:4326', styles: this.wmsParams.styles, transparent: this.wmsParams.transparent, version: this.wmsParams.version, format: this.wmsParams.format, bbox: this._map.getBounds().toBBoxString(), height: size.y, width: size.x, layers: this.wmsParams.layers, query_layers: this.wmsParams.layers, info_format: 'application/json', time : 'P1000Y/PRESENT' }; params[params.version === '1.3.0' ? 'i' : 'x'] = Math.round(point.x); params[params.version === '1.3.0' ? 'j' : 'y'] = Math.round(point.y); url = this._url + L.Util.getParamString(params, this._url, true); // Possible FIXME: Let backend to determine origin console.log("Formed url: "+url) return url }, showGetFeatureInfo: function (latlng, layername, url) { var pcontent = ""; var e = this; $.ajax({ url: '/interactive/get_featureinfo', type: 'POST', data: {'layername':layername, 'url': url, csrfmiddlewaretoken: '5iHQMje2UFmUNrR4Dw8u0XhsQe6MOhOr' }, dataType: 'json', success: function(data) { console.log(data); var jdata = data.properties; var desc = data.attr_desc; pcontent += '' if(!jQuery.isEmptyObject(desc)){ // if (census.getConstants()) { // $.each(jdata, function(key, value){ // if(value==null){ // value=''; // } // if(!isNaN(value)){ // if(value.toString().indexOf('.') != -1){ // var arr = value.toString().split('.'); // var trunc = arr[1].substring(0, 2); // pcontent += ''; // } else{ // pcontent += ''; // } // } else { // pcontent += ''; // } // }); // var container = $('
'); // container.on('click', 'div.click-census-analysis', function() { // if (typeof($(".layer-selected").attr('id')) != "undefined") { // var swt_id = $(".layer-selected").attr('id').slice(1); // var lay_id = $("#"+swt_id).attr('data-regid'); // if (typeof(lay_id) != "undefined") { // census.getResultsCensus(jdata,lay_id); // } // } // }); // pcontent += '
'; // pcontent += '
AtributoValor
'+desc[key]+''+arr[0]+'.'+trunc+'
'+desc[key]+''+value+'
'+desc[key]+''+value+'
Analisis para el objeto seleccionado
'; // container.html(pcontent); // L.popup() // .setLatLng(latlng) // .setContent(container[0], customOptions) // .openOn(e._map); // }else{ $.each(jdata, function(key, value){ if(value==null){ value=''; } if(!isNaN(value)){ if(value.toString().indexOf('.') != -1){ var arr = value.toString().split('.'); var trunc = arr[1].substring(0, 2); pcontent += ''+desc[key]+''+arr[0]+'.'+trunc+''; } else{ pcontent += ''+desc[key]+''+value+''; } } else { pcontent += ''+desc[key]+''+value+''; } }); pcontent += '' // Add the download button to the popup content var csvData = convertToCSV(data); var downloadButton = 'Download CSV'; pcontent += downloadButton; L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); // } } else{ $.each(jdata, function(key, value){ //pcontent += '
'+key+' = '+value+'
'; pcontent += ''+key+''+value+''; }); pcontent += '' L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); } }, error: function() { console.log('There is an error in the response'); } }); } }); L.tileLayer.betterWms = function (url, options) { return new L.TileLayer.BetterWMS(url, options); };