Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <Html>
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <meta name="viewport" width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0>
  6.         <title> BENJAMIN'S     FILE</title>
  7.  
  8.         <style>
  9.             .divider{
  10.                background-color: teal;
  11.                color: black;
  12.                width: 100px
  13.                height:100px;
  14.                float:left"
  15.             }
  16.             .results{
  17.                background-color: black;
  18.                color: white;
  19.             }.i9m,;lp]
  20.            
  21.         </style>   
  22.     </head>
  23.     <body>
  24.         <form id="jsonFile" name="jsonFile" enctype="multipart/form-data" method="post">
  25.           <fieldset>
  26.             <h2>MISSING DATA WORK WITH FOR BEN</h2>
  27.            
  28.             <div  class="results" id="maindiv2">
  29.                 <h3>Result of IMPUTATION</h3>
  30.                 <fieldset>
  31.                    <!--<legend>Console output</legend>-->
  32.                    <p>Select local CSV File:</p>
  33.                     <input type="file" name="TXTField" id="csv" alt="Get text"/>
  34.                     <input type="button" id='get_d_data' value="RUN" onclick="getDs()"/>
  35.                 </fieldset>
  36.             </div><br><br>
  37.  
  38.             <div id="color" class="divider"></div>
  39.            
  40.             <canvas id="canvas" width=1000 height=1000></canvas>
  41.             <p id="demo"></p>
  42.                    
  43.             </fieldset>
  44.         </form>
  45.        
  46.         <script>
  47. //******************** THIS PARTITION IS FOR CLUSTERING POINT DATA*************//  
  48.            
  49.             var input = document.getElementById("csv");
  50.             var button = document.getElementById("get_d_data");
  51.             var arrs=[], arrs2=[], arrs3=[], pi=Math.PI, zoom =5;
  52.             var canvas  = document.getElementById('canvas');
  53.             var ctx = canvas.getContext("2d");
  54.             var cw=ctx.width,   ch=ctx.height;
  55.             var mid_lat =0, mid_lng =0, nebors1=[];
  56.             var time_start, gAll=[];
  57.            
  58.             function Radians(degrees){
  59.                 return degrees * (pi/180);
  60.             }
  61.  
  62.             function convert_lng_x(lng){
  63.                 lng=Radians(lng);
  64.                 var j=(256/pi)*Math.pow(2, zoom);
  65.                 var k=lng + pi ;
  66.                 return j*k;
  67.             }
  68.  
  69.             function convert_lat_y(lat){
  70.                 lat=Radians(lat);
  71.                 var j=(256/pi)*Math.pow(2, zoom);
  72.                 var k=Math.tan(pi/4 +lat/2 );
  73.                 var l= pi - Math.log(k);
  74.                 return j*l;
  75.             }
  76.            
  77.             function getDs() {
  78.                 console.log("Fetching selected file.............");
  79.                 var reader = new FileReader();
  80.                 reader.onload = function () {
  81.                     var data= reader.result;
  82.                     //console.log(x);
  83.                     var MainArray = data.split('\n');
  84.                     //check(MainArray);
  85.                     loose(MainArray);
  86.                 };             
  87.                 // start reading the file. When it is done, calls the onload event defined above.
  88.                 reader.readAsBinaryString(input.files[0]);
  89.             };
  90.            
  91.             function loose(x){ 
  92.                 console.log("Extracting require training set.......");
  93.                 var g=[], qt=[], qt1=[];
  94.                 //console.log(x);              
  95.                 //************ FOR NON LAT-LONG DATASETS
  96.                
  97.                 for(var i=0, x1=x.length;i<x1; i++){
  98.                     var x2 = x[i]
  99.                     var v =x2.split(",");
  100.                     //console.log(v)
  101.                     var j= v[1], j1=v[2], j3=new Point(parseFloat(j), parseFloat(j1));
  102.                     g.push(j3);                                
  103.                     //g=g.filter(g => g.x < 200 && g.y < 250 )
  104.                 }  
  105.                 check(g)               
  106.                
  107.                 //************ FOR LAT-LONG DATASETS
  108.                 /*var cx=convert_lng_x(mid_lng);
  109.                 var cy=convert_lat_y(mid_lat);
  110.                 console.log([cx, cy]);             
  111.                 for(var i=0, x1=x.length; i<x1; i++){
  112.                     var x2 = x[i].split(",")
  113.                     //console.log(x2);                 
  114.                     let lng=x2[2];
  115.                     let lat=x2[1];                 
  116.                     let lng2=parseFloat(convert_lng_x(lng))-(cx-100)
  117.                     let lat2=parseFloat(convert_lat_y(lat))-(cx-300)
  118.                     //console.log([lng2, lat2]);                       
  119.                     let p =new Point(lng2, lat2);
  120.                     qt.push(p);
  121.                    
  122.                     let lng3=parseFloat(convert_lng_x(lng))-(cx-100);
  123.                     let lat3=parseFloat(convert_lat_y(lat))-(cx-500);                                          
  124.                     let p1 =new Point(lng3, lat3);
  125.                     qt1.push(p1);
  126.                 }
  127.                 //console.log(qt);
  128.                 remove (qt, qt1);*/
  129.             }
  130.             function sets (maingroups1  ){
  131.                 var maingroups=[];
  132.                 while(maingroups1.length>0){                   
  133.                     let jk=maingroups1.slice(0, 50)
  134.                     maingroups.push(jk)
  135.                     maingroups1.splice(0, 50)
  136.                 }  
  137.                 return(maingroups)
  138.             }
  139.            
  140.             function remove(maingroups){   
  141.                 console.log("Running proposed model and IMPUTING MV...");
  142.                 var eachGroup,  base=[], d, sum, sum1, meanp, meanp1;
  143.                            
  144.                 for(var i=0, i4=maingroups.length; i< i4; i++){
  145.                     var eachGroup=maingroups[i];   
  146.                     //datap.forEach(function(el){display(el.x, el.y, 2, "black", "black")});
  147.                     //console.log(eachGroup)
  148.                     var datal=eachGroup.length, rem=0, krem=0;
  149.                     var rem2=Math.ceil((3/100)*datal);
  150.                     var rem3=Math.ceil((6/100)*datal);
  151.                     var rem4=Math.ceil((9/100)*datal);
  152.                     var rem5=Math.ceil((12/100)*datal);
  153.                     var rem6=Math.ceil((15/100)*datal);
  154.                     var dataratio=[rem2, rem3, rem4, rem5, rem6]                   
  155.                     var d=dataratio.length;
  156.                    
  157. //******************** ****************************************************************CALCULATE RATIO 
  158. //******************************************************************** CALCULATE RATIO 
  159.                    
  160.                     var findMean=function(eachGroup){
  161.                        
  162.                         let sumx = eachGroup.reduce(function (accumulator, currentValue) {                 
  163.                            return accumulator + currentValue.x ;           
  164.                         }, 0);
  165.                    
  166.                         let sumy = eachGroup.reduce(function (accumulator, currentValue) {                 
  167.                            return accumulator + currentValue.y;        
  168.                         }, 0); 
  169.                        
  170.                         let meanx=sumx /datal
  171.                         let meany=sumy /datal
  172.                        
  173.                         return [meanx, meany]
  174.                     }
  175.        
  176.                     var extract =function(eachGroup, r) {
  177.                        
  178.                         var finalL=[], v, mv=[], mvpoints=[], misingv=[], misingvi=[];
  179.                         var randinx, misingvi4;                    
  180.                        
  181.                         while(rem <r){                                                 
  182.                             let rand =Math.random()
  183.                             randinx=Math.floor(rand* datal)
  184.                             if(!eachGroup[randinx]){break};
  185.                             misingvi.splice(rem, 1, randinx)
  186.                            eachGroup.splice(randinx, 1)
  187.                             dData=eachGroup[randinx]
  188.                             mvpoints.push(dData)
  189.                             rem++
  190.                             misingvi4=[mvpoints, misingvi]
  191.                         }
  192.                         return misingvi4
  193.                     }              
  194.                    
  195.                                    
  196. //*********************************************************************START EXECUTION OF MODEL
  197. //******************************************************START EXECUTION OF MODEL   
  198.                     var mainv=function (eachGroup, r3){
  199.                        
  200.                         let ext=extract(eachGroup, r3)
  201.                         let originalv=ext[0]
  202.                         let originalv1=ext[1]
  203.                        
  204.                         // ****************if  subtractig from the mean
  205.                         k=findMean(eachGroup)
  206.                          let k2=k[0]   
  207.                        
  208.                        
  209.                         // *********if not subtractig from the mean
  210.                         if (originalv.length ==0){return false}
  211.                         let xoriginalv=originalv.map(g=> g.x - k2);
  212.                         //let xoriginalv=originalv.map(g=> g.x);
  213.                         let yoriginalv=originalv.map(g=> g.y);
  214.                         //console.log(xoriginalv)
  215.                        
  216.                         newpoints=[xoriginalv, originalv1]
  217.                         return newpoints;                      
  218.                     }
  219.                    
  220.                     var model=function(eachGroup, rem2){
  221.                        
  222.                        let pp=mainv(eachGroup, rem2);
  223.                        var mainval=pp[0], mainvali=pp[1];
  224.                        console.log(mainval)
  225.                        
  226.                        let meanG=findMean(eachGroup)                     
  227.                        var X2= meanG[0], X3=meanG[1];
  228.                      
  229.                      
  230.                        let xyList=[(Math.log(X2)/10), (Math.log(X3)/10)]//**if you will subtract from mean 
  231.                        console.log(Math.log(X2))
  232.                        
  233.                        //let xyList=[3*(Math.log(X2)), 3*(Math.log(X3))]
  234.                        let computedx=[mainval, mainvali, xyList[0], xyList[1]];
  235.                        return computedx
  236.                     }
  237.                    
  238.                     var modelcomp=function (eachGroup, rem2){  
  239.                         var avg;
  240.                         var A, missingindex, x, y, B;                  
  241.                         let dmodel=model(eachGroup, rem2);
  242.                         initialvals=dmodel[0];
  243.                    
  244.                         var initialvalsAvg = initialvals.reduce((b, c) =>{A=initialvals.length
  245.                             return b +c;
  246.                         }, 0)
  247.                         avg =initialvalsAvg/initialvals.length
  248.                                            
  249.                         missingindex=dmodel[1];
  250.                         x=dmodel[2];
  251.                         y=dmodel[3];
  252.                         B=missingindex.length
  253.                        
  254.                         let point2= new Point(x, y)                                    
  255.                         for (var f =0, f1= B; f<f1; f++){
  256.                             let t=missingindex[f]
  257.                             eachGroup.splice(t, 0, point2);  
  258.                         }                  
  259.                         let sumOfv=initialvals.reduce((accumulated, Z) => {
  260.                             let x1=x                       
  261.                             let s1=Z-x1;
  262.                             let s2=Math.pow(s1, 2);
  263.                             return accumulated + s2
  264.                         } , 0)
  265.                        
  266.                         let sumOfv1=initialvals.reduce((accumulated, Z) => {
  267.                             let x2=Math.abs(x-avg)
  268.                             let s3=Math.abs(Z-avg);
  269.                             let s5=x2+s3
  270.                             let s2=Math.pow(s5, 2);
  271.                             return accumulated + s2
  272.                         } , 0)
  273.                         return [sumOfv, B, sumOfv1];                           
  274.                     }
  275.                     let Q=modelcomp(eachGroup, rem5)                   
  276.                     base.push(Q)
  277.                }
  278.                 return base;
  279.             }
  280.            
  281.             function check(dmainPoints){               
  282.                 console.log("process start...");
  283.                 time_start = new Date().getTime();
  284.                
  285.                 let dmainPoints1 = sets(dmainPoints)
  286.                
  287.                 let s=remove(dmainPoints1)
  288.                                
  289.                 let finals = s.reduce((sti, sto) => {
  290.                     let g =sti+sto[0]                  
  291.                     return g
  292.                 }, 0)
  293.                
  294.                 let finali = s.reduce((sti, sto) => {
  295.                     let g =sti+sto[1]                  
  296.                     return g
  297.                 }, 0)
  298.                
  299.                 let finald = s.reduce((sti, sto) => {
  300.                     let g =sti+sto[2]                  
  301.                     return g
  302.                 }, 0)
  303.                 //console.log( finald)
  304.                
  305.                 let y=finals/finali
  306.                 let y2=Math.sqrt(y)
  307.                
  308.                 let y1=[finals, finali]
  309.                
  310.                 //********************Compute d2
  311.                 var y3=1-(finals/finald)
  312.                 console.log(y3);
  313.                 //  var dataratio=[rem2, rem3, rem4, rem5, rem6]
  314.                 //var dataratio=[3, 6, 9, 12, 15]
  315.                
  316.                 console.log('\n');
  317.                 console.log("The final RSME for 3 % is", y2)
  318.                
  319.                 var duration = new Date().getTime() - time_start;
  320.                 console.log("process finished.......");                
  321.                 console.log('Processed in: ' + duration + 'ms');
  322.             }
  323.            
  324.             class Point{
  325.                 constructor(x, y){
  326.                     this.x = x != null ? x : 0;
  327.                     this.y = y != null ? y : 0;
  328.                     this.z = undefined;
  329.                     this.dim=[this.x, this.y, this.z];
  330.                 }
  331.                 create(){
  332.                     return new Point(this.x, this.y);
  333.                 }
  334.                
  335.             }
  336.            
  337.             function display(x, y, size, color, f){
  338.                 ctx.fillStyle = f;
  339.                 ctx.beginPath();
  340.                 ctx.lineWidth = "2";
  341.                 ctx.strokeStyle = color;
  342.                 ctx.arc(x, y, size, 0, 2 * Math.PI);       
  343.                 ctx.stroke();
  344.                 ctx.fill();
  345.                     //console.log(el);
  346.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement