Difference between revisions of "MemEOL"
Line 3: | Line 3: | ||
<html> | <html> | ||
<head> | <head> | ||
− | + | <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/css/bootstrapValidator.min.css"/> | |
− | + | <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/js/bootstrapValidator.min.js"></script> | |
− | + | <script> | |
− | + | $( document ).ready(function() { | |
− | + | mw.loader.using( 'jquery.ui.sortable', function () { | |
− | + | $( ".sortable-criteria" ).sortable({ | |
− | + | revert: true | |
− | + | }); | |
− | + | $( "ul, li" ).disableSelection(); | |
− | + | }); | |
− | + | }); | |
− | + | var dictionaryMagicNumbers = { | |
− | + | "Options":["Financial","Effort Required","Environmental Impact","Landfill Impact","Public Perception"], | |
− | + | "Landfill":[0.5,1,0.071948388,0,0], | |
− | + | "Incineration":[0,0,0,1,0], | |
− | + | "Syngas":[0.25,0.5,0.316055413,0.752683602,0.25], | |
− | + | "EAF":[0.25,0.25,0.393937055,0.934453418,0.25], | |
− | + | "Material Recycling":[0.25,0.75,0.530903672,0.431342056,1], | |
− | + | "Conversion to UF":[0.5,0.25,0.852049802,0.324296173,0.75], | |
− | + | "Reuse as RO":[0.75,0.5,1,0.324296173,0.75] | |
− | + | }; | |
− | + | var centroidWeightMagicNumbers = { | |
− | + | "1":[0.456666667], | |
− | + | "2":[0.256666667], | |
− | + | "3":[0.156666667], | |
− | + | "4":[0.09], | |
− | + | "5":[0.04] | |
− | + | }; | |
var CONST_LANDFILL = 'landfill'; | var CONST_LANDFILL = 'landfill'; | ||
Line 49: | Line 49: | ||
}; | }; | ||
− | + | //create value from each iteration | |
− | + | //store value in array | |
/* | /* | ||
− | + | function getKeys(jsonArray){ | |
− | + | var keys = []; | |
− | + | for (var key in dictionaryMagicNumbers) { | |
− | + | if (jsonArray.hasOwnProperty(key)) { | |
− | + | keys.push(key); | |
− | + | } | |
− | + | return keys; | |
− | + | } | |
*/ | */ | ||
//determine the scores for each criterion | //determine the scores for each criterion | ||
− | + | function computePreferenceScores(preferences){ | |
console.log("preferences: " + String(preferences)); | console.log("preferences: " + String(preferences)); | ||
var arrayLength = preferences.length; | var arrayLength = preferences.length; | ||
Line 90: | Line 90: | ||
return scores; | return scores; | ||
//now that we have the scores we need to check them and display the correct output | //now that we have the scores we need to check them and display the correct output | ||
− | + | } | |
function scoresArrayToObject(scores){ | function scoresArrayToObject(scores){ | ||
Line 280: | Line 280: | ||
} | } | ||
− | + | //prefereces are coded to be 0-4 not 1-5 | |
− | + | function getPreferences(){ | |
− | + | var preferences = []; | |
− | + | preferences = $(".sortable-criteria").sortable( "toArray", {attribute: 'value'} ); | |
− | + | return preferences; | |
− | + | } | |
− | + | function getPhysicalDamage(){ | |
− | + | var result = $('input[name="damagedMembranes"]:checked').val(); | |
//damagedMembranesYes damagedMembranesNo | //damagedMembranesYes damagedMembranesNo | ||
if(result === 'damagedMembranesYes'){ | if(result === 'damagedMembranesYes'){ | ||
Line 295: | Line 295: | ||
return 0; | return 0; | ||
} | } | ||
− | + | } | |
− | + | function getPermeability(){ | |
− | + | var result = $('#testedPermeability').val(); | |
− | + | return result; | |
− | + | } | |
− | + | function getNaClRejection(){ | |
− | + | var result = $('#NaClRejection').val(); | |
− | + | return result; | |
− | + | } | |
function initialise(){ | function initialise(){ | ||
Line 373: | Line 373: | ||
} | } | ||
− | + | $( document ).ready(function() { | |
mw.loader.using( ['jquery.ui.core', 'ext.bootstrap','ext.bootstrap.scripts', 'ext.bootstrap.styles'], function () { | mw.loader.using( ['jquery.ui.core', 'ext.bootstrap','ext.bootstrap.scripts', 'ext.bootstrap.styles'], function () { | ||
$('.form-memEOL').bootstrapValidator() | $('.form-memEOL').bootstrapValidator() | ||
Line 382: | Line 382: | ||
//$('.nav-pills > .active').next('li').find('a').trigger('click'); | //$('.nav-pills > .active').next('li').find('a').trigger('click'); | ||
}); | }); | ||
− | + | $( ".memEOL-submit" ) | |
− | + | .filter(":button") | |
− | + | .button() | |
− | + | .click(function( event ) { | |
− | + | event.preventDefault(); //lock the button for now. | |
initialise(); | initialise(); | ||
− | + | }); | |
$( ".memEOL-questions" ) | $( ".memEOL-questions" ) | ||
Line 404: | Line 404: | ||
event.preventDefault(); | event.preventDefault(); | ||
}); | }); | ||
− | + | }); | |
− | + | }); | |
− | + | </script> | |
</head> | </head> | ||
<body> | <body> | ||
Line 560: | Line 560: | ||
<div class="recommendation landfill" style="display: none;"> | <div class="recommendation landfill" style="display: none;"> | ||
Landfill is currently the industry standard for disposal of end-of-life reverse osmosis membranes. Due to their mostly polymeric composition, membranes are considered inert municipal solid waste in the case of landfill disposal, with no degradation over a measureable time period. Therefore, disposal in landfill has the highest environmental impact of all the considered options, and should be avoided where possible; however, it is the simplest option, with minimal cost. | Landfill is currently the industry standard for disposal of end-of-life reverse osmosis membranes. Due to their mostly polymeric composition, membranes are considered inert municipal solid waste in the case of landfill disposal, with no degradation over a measureable time period. Therefore, disposal in landfill has the highest environmental impact of all the considered options, and should be avoided where possible; however, it is the simplest option, with minimal cost. | ||
+ | </body></html> | ||
+ | [[File:Picture of old membranes brightened.jpg|thumb|End-of-life membranes awaiting transportation to landfill (Courtesy of NCEDA)]] | ||
+ | <html><head></head><body> | ||
</div> | </div> | ||
<div class="recommendation incineration alert alert-success" role="alert" alt="Energy recovery through incineration." style="display: none;"><h4>Energy recovery through incineration</h4></div> | <div class="recommendation incineration alert alert-success" role="alert" alt="Energy recovery through incineration." style="display: none;"><h4>Energy recovery through incineration</h4></div> |
Revision as of 01:18, 20 January 2015
This membrane end-of-life (MemEOL) tool is aimed at promoting better practices in the desalination industry by helping users identify and select the optimum end-of-life option for their used reverse osmosis (RO) membranes. This dynamic and interactive educational tool uses inputs on membrane condition and the relative importance of a number of key criteria to provide recommendation and further information about available end-of-life options.
As user feedback is obtained, and more available end-of-life options are identified and characterised, this tool will become a powerful source of information for membrane users. Ultimately, this tool will include a membrane reuse database, which will allow users to find and contact groups with surplus membrane supplies, thus promoting and simplifying direct membrane reuse. This tool has a significant focus on the Australian desalination industry, but the primary information is highly applicable to countries around the world. Additionally, as the data sources for this tool are not case specific, it should only be considered an educational tool aimed at providing preliminary recommendations to users.