http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/f22b3e32/app/views/climate/scatterAndHistogramTwoVariable.scala.html ---------------------------------------------------------------------- diff --git a/app/views/climate/scatterAndHistogramTwoVariable.scala.html b/app/views/climate/scatterAndHistogramTwoVariable.scala.html index a22a37d..5baf9b5 100644 --- a/app/views/climate/scatterAndHistogramTwoVariable.scala.html +++ b/app/views/climate/scatterAndHistogramTwoVariable.scala.html @@ -1,28 +1,20 @@ -@(parameters: metadata.ScatterHistogramTwoVar) - -@import helper._ - +@(parameters: metadata.ScatterHistogramTwoVar) @import helper._ <link rel="stylesheet" href='@routes.Assets.at("stylesheets/livefitler.css")'> - @scripts = { - <script src='@routes.Assets.at("javascripts/edit_button.js")'></script> - <script src='@routes.Assets.at("javascripts/livefilter.js")'></script> - <script type="text/javascript" src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script> - <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js"></script> - <script type="text/javascript" src='@routes.Assets.at("javascripts/json2.js")'></script> - <script type="text/javascript" src="@routes.Assets.at("javascripts/xmisc.js")"></script> - <script type="text/javascript"> +<script src='@routes.Assets.at("javascripts/edit_button.js")'></script> +<script src='@routes.Assets.at("javascripts/livefilter.js")'></script> +<script type="text/javascript" + src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script> +<script type="text/javascript" src="https: + <script type=" + text/javascript" src='@routes.Assets.at("javascripts/json2.js")'></script> +<script type="text/javascript" src="@routes.Assets.at("javascripts/xmisc.js")"></script> +<script type="text/javascript"> var Response = null; var variable1 = ""; var variable2 = ""; - - - // called on load or reload window.onload = function() { - - // no data to download yet - //disable_download_button(); changeDataSource(); select_data1(1); changeDataSource2(); @@ -31,7 +23,6 @@ select_var1(1); changeVariableName2(); select_var1(2); - disable_pres1(1); disable_pres1(2); $('#t0').val($('#startYearMonth').text()); @@ -46,14 +37,10 @@ $('#Image').html('<img src="'+imageUrl+'" width=680 />'); $('#data_url').html($('#dataURL').text()); $('#Response').html($('serviceResponseText').text()); - } - function changeDataSource(){ var dataSource = $('#source1').text(); - //dataSource = "NASA_QuikSCAT"; var x = document.getElementById("data1"); - if(dataSource == "cccma_canesm2" ){ x.options[0].selected=true; } @@ -132,14 +119,10 @@ else if(dataSource == "ecmwf_interim" ){ x.options[25].selected=true; } - //$('#data option:contains('+dataSource+')').prop({selected: true}); } - function changeDataSource2(){ var dataSource = $('#source2').text(); - //dataSource = "NASA_QuikSCAT"; var x = document.getElementById("data2"); - if(dataSource == "cccma_canesm2" ){ x.options[0].selected=true; } @@ -218,9 +201,7 @@ else if(dataSource == "ecmwf_interim" ){ x.options[25].selected=true; } - //$('#data option:contains('+dataSource+')').prop({selected: true}); } - function changeVariableName(){ var var_string = $('#variableName1').text(); var x = document.getElementById("var1"); @@ -275,7 +256,6 @@ else if (var_string == "rsut") x.options[24].selected=true; } - function changeVariableName2(){ var var_string = $('#variableName2').text(); var x = document.getElementById("var2"); @@ -330,33 +310,25 @@ else if (var_string == "rsut") x.options[24].selected=true; } - // disable download data button function disable_download_button() { var x=document.getElementById("download_data"); x.disabled=false; } - - // enable download data button function enable_download_button() { var x=document.getElementById("download_data"); x.disabled=false; } - - - // disable all vars1 in dropdown menu function unset_vars1(ID) { var x; - if (ID == 1) { x=document.getElementById("var1"); } else if (ID == 2) { x=document.getElementById("var2"); } - x.options[0].disabled=true; x.options[1].disabled=true; x.options[2].disabled=true; @@ -391,9 +363,6 @@ x.options[31].disabled=true; x.options[32].disabled=true; } - - - // disable pressure level box for 2D var function disable_pres1(ID) { var x; @@ -403,12 +372,9 @@ else if (ID == 2) { x=document.getElementById("pres2"); } - x.value = "N/A"; x.disabled=true; } - - // enable pressure level box for 3D var function enable_pres1(ID) { var x; @@ -418,38 +384,26 @@ else if (ID == 2) { x=document.getElementById("pres2"); } - - /* x.value = "500"; */ x.disabled=false; } - - // form variable1 or variable2 string based on "var" dropdown selection function select_var1(ID) { var var_string; - if (ID == 1) { var_string = $("#var1").val(); } else if (ID == 2) { var_string = $("#var2").val(); } - - // alert("var_string: " + var_string) - - // disable the download button because of this change disable_download_button(); - if (var_string == "Total Cloud Fraction") { if (ID == 1) { - variable1 = "clt"; // a 2D var + variable1 = "clt"; } else if (ID == 2) { - variable2 = "clt"; // a 2D var + variable2 = "clt"; } - // disable pressure level box for 2D var disable_pres1(ID); - // alert("variable1: " + variable1) } else if (var_string == "Surface Temperature") { if (ID == 1) { @@ -458,7 +412,6 @@ else if (ID == 2) { variable2 = "ts"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Sea Surface Temperature") { @@ -468,7 +421,6 @@ else if (ID == 2) { variable2 = "tos"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Precipitation Flux") { @@ -478,7 +430,6 @@ else if (ID == 2) { variable2 = "pr"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Eastward Near-Surface Wind") { @@ -488,7 +439,6 @@ else if (ID == 2) { variable2 = "uas"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Northward Near-Surface Wind") { @@ -498,7 +448,6 @@ else if (ID == 2) { variable2 = "vas"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Near-Surface Wind Speed") { @@ -508,7 +457,6 @@ else if (ID == 2) { variable2 = "sfcWind"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Sea Surface Height") { @@ -518,7 +466,6 @@ else if (ID == 2) { variable2 = "zos"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Leaf Area Index") { @@ -528,7 +475,6 @@ else if (ID == 2) { variable2 = "lai"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Equivalent Water Height Over Land") { @@ -538,7 +484,6 @@ else if (ID == 2) { variable2 = "zl"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Equivalent Water Height Over Ocean") { @@ -548,7 +493,6 @@ else if (ID == 2) { variable2 = "zo"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Ocean Heat Content Anomaly within 700 m Depth") { @@ -558,7 +502,6 @@ else if (ID == 2) { variable2 = "ohc700"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Ocean Heat Content Anomaly within 2000 m Depth") { @@ -568,7 +511,6 @@ else if (ID == 2) { variable2 = "ohc2000"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Downwelling Longwave Radiation") { @@ -578,7 +520,6 @@ else if (ID == 2) { variable2 = "rlds"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Downwelling Shortwave Radiation") { @@ -588,7 +529,6 @@ else if (ID == 2) { variable2 = "rsds"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Upwelling Longwave Radiation") { @@ -598,7 +538,6 @@ else if (ID == 2) { variable2 = "rlus"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Upwelling Shortwave Radiation") { @@ -608,7 +547,6 @@ else if (ID == 2) { variable2 = "rsus"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Downwelling Clear-Sky Longwave Radiation") { @@ -618,7 +556,6 @@ else if (ID == 2) { variable2 = "rldscs"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Downwelling Clear-Sky Shortwave Radiation") { @@ -628,7 +565,6 @@ else if (ID == 2) { variable2 = "rsdscs"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Surface Upwelling Clear-Sky Shortwave Radiation") { @@ -638,7 +574,6 @@ else if (ID == 2) { variable2 = "rsuscs"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "TOA Incident Shortwave Radiation") { @@ -648,7 +583,6 @@ else if (ID == 2) { variable2 = "rsdt"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "TOA Outgoing Clear-Sky Longwave Radiation") { @@ -658,7 +592,6 @@ else if (ID == 2) { variable2 = "rlutcs"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "TOA Outgoing Longwave Radiation") { @@ -668,7 +601,6 @@ else if (ID == 2) { variable2 = "rlut"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "TOA Outgoing Clear-Sky Shortwave Radiation") { @@ -678,7 +610,6 @@ else if (ID == 2) { variable2 = "rsutcs"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "TOA Outgoing Shortwave Radiation") { @@ -688,7 +619,6 @@ else if (ID == 2) { variable2 = "rsut"; } - // disable pressure level box for 2D var disable_pres1(ID); } else if (var_string == "Air Temperature") { @@ -698,7 +628,6 @@ else if (ID == 2) { variable2 = "ta"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Specific Humidity") { @@ -708,7 +637,6 @@ else if (ID == 2) { variable2 = "hus"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Cloud Ice Water Content") { @@ -718,7 +646,6 @@ else if (ID == 2) { variable2 = "cli"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Cloud Liquid Water Content") { @@ -728,7 +655,6 @@ else if (ID == 2) { variable2 = "clw"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Ocean Temperature") { @@ -738,7 +664,6 @@ else if (ID == 2) { variable2 = "ot"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Ocean Salinity") { @@ -748,7 +673,6 @@ else if (ID == 2) { variable2 = "os"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Vertical Wind Velocity") { @@ -758,7 +682,6 @@ else if (ID == 2) { variable2 = "wap"; } - // enable pressure level box for 3D var enable_pres1(ID); } else if (var_string == "Relative Humidity") { @@ -768,20 +691,13 @@ else if (ID == 2) { variable2 = "hur"; } - // enable pressure level box for 3D var enable_pres1(ID); } - - // alert("variable1: " + variable1) } - - - // set up "var1" dropdown based status of "data1" dropdown function select_data1(ID) { var data_string; var x; - if (ID == 1) { data_string = $("#data1").val(); x = document.getElementById("var1"); @@ -790,106 +706,64 @@ data_string = $("#data2").val(); x = document.getElementById("var2"); } - - // alert(ID); - // alert(data_string); - - // disable the download button because of this change disable_download_button(); - - // disable corresponding "var" options if (data_string == "NASA/AMSRE") { - - unset_vars1(ID); // disable all options in "var" dropdown first - + unset_vars1(ID); x.options[3].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[3].disabled=false; - } else if (data_string == "NASA/MODIS") { - unset_vars1(ID); - x.options[1].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[1].disabled=false; x.options[8].disabled=false; - } else if (data_string == "NASA/TRMM") { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; - } else if (data_string == "NASA/GPCP") { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; - } else if (data_string == "NASA/QuikSCAT") { - unset_vars1(ID); - x.options[4].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[4].disabled=false; x.options[5].disabled=false; x.options[6].disabled=false; - } else if (data_string == "NASA/AVISO") { - unset_vars1(ID); - x.options[7].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[7].disabled=false; - } else if (data_string == "NASA/GRACE") { - unset_vars1(ID); - x.options[9].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[9].disabled=false; x.options[10].disabled=false; - } else if (data_string == "NOAA/NODC") { - unset_vars1(ID); - x.options[11].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[11].disabled=false; x.options[12].disabled=false; - } else if (data_string == "NASA/CERES") { - unset_vars1(ID); - x.options[13].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[13].disabled=false; x.options[14].disabled=false; x.options[15].disabled=false; @@ -902,65 +776,38 @@ x.options[22].disabled=false; x.options[23].disabled=false; x.options[24].disabled=false; - // The following 6 commented out - // per request by Benyang - // x.options[25].disabled=false; - // x.options[26].disabled=false; - // x.options[27].disabled=false; - // x.options[28].disabled=false; - // x.options[29].disabled=false; - // x.options[30].disabled=false; - } else if (data_string == "NASA/AIRS") { - unset_vars1(ID); - x.options[25].selected=true; - enable_pres1(ID); // the selected one is 3D - + enable_pres1(ID); x.options[25].disabled=false; x.options[26].disabled=false; - } else if (data_string == "NASA/MLS") { - unset_vars1(ID); - x.options[25].selected=true; - enable_pres1(ID); // the selected one is 3D - + enable_pres1(ID); x.options[25].disabled=false; x.options[26].disabled=false; - } else if (data_string == "ARGO/ARGO") { - unset_vars1(ID); - x.options[29].selected=true; - enable_pres1(ID); // the selected one is 3D - + enable_pres1(ID); x.options[29].disabled=false; x.options[30].disabled=false; - - // alert("in ARGO ..."); - // alert(data_string); } else if (data_string == "CCCMA/CANAM4") { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; x.options[1].disabled=false; x.options[2].disabled=false; x.options[4].disabled=false; x.options[5].disabled=false; x.options[6].disabled=false; - x.options[13].disabled=false; x.options[14].disabled=false; x.options[15].disabled=false; @@ -977,22 +824,17 @@ x.options[26].disabled=false; x.options[27].disabled=false; x.options[28].disabled=false; - } else if (data_string == "CSIRO/MK3.6") { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; x.options[1].disabled=false; x.options[2].disabled=false; x.options[4].disabled=false; x.options[5].disabled=false; x.options[6].disabled=false; - x.options[13].disabled=false; x.options[14].disabled=false; x.options[15].disabled=false; @@ -1011,15 +853,11 @@ x.options[28].disabled=false; x.options[31].disabled=false; x.options[32].disabled=false; - } else if (data_string == "NCAR/CAM5") { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; x.options[1].disabled=false; x.options[2].disabled=false; @@ -1029,7 +867,6 @@ x.options[6].disabled=false; x.options[7].disabled=false; x.options[8].disabled=false; - x.options[14].disabled=false; x.options[15].disabled=false; x.options[16].disabled=false; @@ -1047,9 +884,7 @@ x.options[28].disabled=false; x.options[31].disabled=false; x.options[32].disabled=false; - } - else if (data_string == "CCCMA/CANESM2" || data_string == "GFDL/ESM2G" || data_string == "GISS/E2-H" || data_string == "GISS/E2-R" || data_string == "NCC/NORESM" || @@ -1057,12 +892,9 @@ data_string == "GFDL/CM3" || data_string == "IPSL/CM5A-LR" || data_string == "MIROC/MIROC5" || data_string == "UKMO/HadGEM2-A" ) { - unset_vars1(ID); - x.options[0].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[0].disabled=false; x.options[1].disabled=false; x.options[2].disabled=false; @@ -1072,7 +904,6 @@ x.options[6].disabled=false; x.options[7].disabled=false; x.options[8].disabled=false; - x.options[13].disabled=false; x.options[14].disabled=false; x.options[15].disabled=false; @@ -1091,144 +922,80 @@ x.options[28].disabled=false; x.options[31].disabled=false; x.options[32].disabled=false; - } else if (data_string == "ECMWF/interim") { unset_vars1(ID); - x.options[3].selected=true; - disable_pres1(ID); // the selected one is 2D - + disable_pres1(ID); x.options[3].disabled=false; x.options[31].disabled=false; x.options[32].disabled=false; } - - // form variable string select_var1(ID); } - - $(document).ready(function(){ - - /* $("a").click(function(event){ - alert("As you can see, the link no longer took you to jquery.com"); - event.preventDefault(); - }); */ - - $("#download_data").click(function(event) { var durl = $("#data_url").val(); - // alert(durl); window.location.assign(durl); }); - - $("#scatterPlot2V").click(function(event) { - // alert('****** inside scatterPlot2V()!'); Response = null; - - // no data to download yet disable_download_button(); - $("#Response").html("Calculating ..."); $("#data_url").html("Calculating ..."); $("#Image").html(""); - - // sample url: http://cmacws.jpl.nasa.gov:9002/svc/scatterPlot2V?model1=ukmo_hadgem2-a&var1=ts&pres1=200&model2=ukmo_hadgem2-a&var2=clt&pres2=200&start_time=199001&end_time=199512&lon1=0&lon2=100&lat1=-29&lat2=29 - // form url string - // var url = "http://cmacws.jpl.nasa.gov:9002/svc/scatterPlot2V?"; - //var url = "http://" + "einstein.sv.cmu.edu" + ":9002/svc/scatterPlot2V?"; - var url = "http://" + window.location.hostname + ":9002/svc/scatterPlot2V?"; - // alert("url: " + url); - + var url = "http: var d1 = $("#data1").val(); var model1 = d1.replace("/", "_"); model1 = model1.toLowerCase(); - var arglist = ""; arglist = arglist.concat("model1="); arglist = arglist.concat(model1); - - // alert("arglist: " + arglist); - var v1 = $("#var1").val(); arglist = arglist.concat("&var1="); arglist = arglist.concat(variable1); - - // alert("arglist: " + arglist); - var pres1 = $("#pres1").val(); arglist = arglist.concat("&pres1="); arglist = arglist.concat(pres1); - var d2 = $("#data2").val(); var model2 = d2.replace("/", "_"); model2 = model2.toLowerCase(); - arglist = arglist.concat("&model2="); arglist = arglist.concat(model2); - - // alert("arglist: " + arglist); - var v2 = $("#var2").val(); arglist = arglist.concat("&var2="); arglist = arglist.concat(variable2); - - // alert("arglist: " + arglist); - var pres2 = $("#pres2").val(); arglist = arglist.concat("&pres2="); arglist = arglist.concat(pres2); - var t0 = $("#t0").val(); var t1 = $("#t1").val(); - t0 = t0.replace("-", ""); t1 = t1.replace("-", ""); - arglist = arglist.concat("&start_time="); arglist = arglist.concat(t0); - arglist = arglist.concat("&end_time="); arglist = arglist.concat(t1); - - // alert("arglist: " + arglist); - var lon0 = $("#lon0").val(); var lon1 = $("#lon1").val(); var lat0 = $("#lat0").val(); var lat1 = $("#lat1").val(); - arglist = arglist.concat("&lon1="); arglist = arglist.concat(lon0); - arglist = arglist.concat("&lon2="); arglist = arglist.concat(lon1); - arglist = arglist.concat("&lat1="); arglist = arglist.concat(lat0); - arglist = arglist.concat("&lat2="); arglist = arglist.concat(lat1); - var nSample = $("#nSample").val(); arglist = arglist.concat("&nSample="); arglist = arglist.concat(nSample); - - // alert("arglist: " + arglist); - var purpose = $("#purpose").val(); arglist = arglist.concat("&purpose="); arglist = arglist.concat(purpose); - - // url = url + encodeURIComponent(arglist); url = url + encodeURI(arglist); - // url = url + arglist; - // alert("url: " + url); - - //var urlTimeBounds = "http://" + "einstein.sv.cmu.edu" + ":9002/svc/two_time_bounds?"; - var urlTimeBounds = "http://" + window.location.hostname + ":9002/svc/two_time_bounds?"; + var urlTimeBounds = "http: var arglistTB = ""; arglistTB = arglistTB.concat("serviceType="); arglistTB = arglistTB.concat("2"); @@ -1241,8 +1008,6 @@ arglistTB = arglistTB.concat("&var2="); arglistTB = arglistTB.concat(variable2); urlTimeBounds = urlTimeBounds + encodeURI(arglistTB); - // alert("urlTimeBounds: " + urlTimeBounds); - $.ajax({ type: "GET", url: urlTimeBounds, @@ -1250,9 +1015,7 @@ data: null, success: function(data, textStatus, xhr) { Response = data; - // alert("data: " + data); if (data.success == false) { - // alert(data.error); Response = null; var text = JSON.stringify(data, null, 4); text = "Error in backend: <br>" + text; @@ -1261,81 +1024,56 @@ return; } var text = JSON.stringify(data, null, 4); - // alert("text: " + text); - // $("#Response").html("<pre>"+text+"</pre>"); - // $("#Response").html(text); - var tb1 = data.time_bounds1; var bds1 = String(tb1).split(","); - // alert("tb1: " + tb1); - // alert("bds1: " + bds1); var lowerT1 = parseInt(bds1[0]); - // alert("inside ajax, lowerT1: " + lowerT1); var upperT1 = parseInt(bds1[1]); - // alert("upperT1: " + upperT1); - var tb2 = data.time_bounds2; var bds2 = String(tb2).split(","); - // alert("tb2: " + tb2); - // alert("bds2: " + bds2); var lowerT2 = parseInt(bds2[0]); - // alert("inside ajax, lowerT2: " + lowerT2); var upperT2 = parseInt(bds2[1]); - // alert("upperT2: " + upperT2); - var t0I = parseInt(t0); var t1I = parseInt(t1); - // alert("t0: " + t0I); - // alert("t1: " + t1I); - var lowerT, upperT; - // compute the intersection of the two data bounds - if (lowerT1 == 0 || upperT1 == 0){ // no data-1 + if (lowerT1 == 0 || upperT1 == 0){ alert("We do not have data for the data-1 source and variable configuration."); return; } - else if (lowerT2 == 0 || upperT2 == 0){ // no data-2 + else if (lowerT2 == 0 || upperT2 == 0){ alert("We do not have data for the data-2 source and variable configuration."); return; } - else if (lowerT2 > upperT1 || lowerT1 > upperT2) { // no intersection + else if (lowerT2 > upperT1 || lowerT1 > upperT2) { alert("The two data sets/vars do not have a common time range."); return; } - else { // compute intersection - if (lowerT1 > lowerT2) { // pick bigger lower time bound + else { + if (lowerT1 > lowerT2) { lowerT = lowerT1; } else { lowerT = lowerT2; } - - if (upperT1 > upperT2) { // pick smaller upper time bound + if (upperT1 > upperT2) { upperT = upperT2; } else { upperT = upperT1; } } - // alert("lowerT: " + lowerT); - // alert("upperT: " + upperT); - if (t0I < lowerT && t1I < lowerT || t0I > upperT && t1I > upperT) { alert("We do not have data that span your time range. Try the range inside ["+lowerT+", "+upperT+"]."); return; } - if (t0I < lowerT && t1I <= upperT) { alert("Your start year-month is out of bound. It has to be in or later than " + lowerT + ". We will use the range ["+lowerT+", "+t1I+"] for you."); } - if (t1I > upperT && t0I >= lowerT) { alert("Your end year-month is out of bound. It has to be in or earlier than " + upperT + ". We will use the range ["+t0I+", "+upperT+"] for you."); } - if (t0I < lowerT && t1I > upperT ) { alert("Both of your start and end year-months are out of bounds. They have to be in or earlier than " + upperT + ", and in or later than " + lowerT + ". We will use the range ["+lowerT+", "+upperT+"] for you."); @@ -1344,15 +1082,10 @@ error: function(xhr, textStatus, errorThrown) { $("#Response").html("error!"); $("#data_url").html("error!"); - // alert("xhr.status: "+xhr.status); - // alert("error status: "+textStatus); }, complete: function(xhr, textStatus) { - //alert("complete status: "+textStatus); } }); - - $.ajax({ type: "GET", url: url, @@ -1360,60 +1093,39 @@ data: null, success: function(data, textStatus, xhr) { Response = data; - // alert("data: " + data); if (data.success == false) { - // alert(data.error); Response = null; var text = JSON.stringify(data, null, 4); - if (text.indexOf("No Data") != -1) { $("#Image").html("No Data"); $("#Response").html("No Data"); $("#data_url").html("No Data"); return; } - text = "Error in backend: <br>" + text; - // $("#Response").html("<span style='color:red'>" + text + "</span>"); $("#Response").html(text); $("#data_url").html(text); - return; } var text = JSON.stringify(data, null, 4); - // alert(text); - // $("#Response").html("<pre>"+text+"</pre>"); $("#Response").html(text); - var html = "<img src='"+data.url+"' width='820'/>"; - // alert(html); $("#Image").html(html); - - // post dataUrl to textarea and enable download button $("#data_url").html(data.dataUrl); enable_download_button(); }, error: function(xhr, textStatus, errorThrown) { $("#Response").html("error!"); $("#data_url").html("error!"); - // alert("xhr.status: "+xhr.status); - // alert("error status: "+textStatus); }, complete: function(xhr, textStatus) { - //alert("complete status: "+textStatus); } }); - }); }); </script> -} - -@main("Service 19", scripts){ - -@flash_message() +} @main("Service 19", scripts){ @flash_message() <p> - <div id="source1" style="display: none;">@parameters.getSource1()</div> <div id="variableName1" style="display: none;">@parameters.getVaribaleName1()</div> <div id="pressureLevel1" style="display: none;">@parameters.getPressureLevel1()</div> @@ -1431,270 +1143,243 @@ <div id="image" style="display: none;">@parameters.getImage()</div> <div id="dataURL" style="display: none;">@parameters.getDataUrl()</div> <div id="serviceResponseText" style="display: none;">@parameters.getServiceResponse()</div> - <table border="1" align="center"> - -<tr> -<td colspan="4"> -<center> -<b>Service: Scatter and Histogram Plot of Two Variables</b><br><br> -This service generates a scatter plot between two specified variables and the histograms of the two variables, and calculates the correlation of the two variables. The two variables can be either a two-dimensional variable or a slice of a three-dimensional variable at a specific pressure level. The number of samples used for this analysis should be specified. <br><br> -</center> -</td> -</tr> - -<tr> -<td colspan="2"> -<center> -data 1 -</center> -</td> - -<td colspan="2"> -<center> -data 2 -</center> -</td> -</tr> - -<tr> -<td>source:</td><td><select name="data1", id="data1" onchange="select_data1(1)"> -<optgroup label="Model: Historical"> -<option selected="CCCMA/CANESM2">CCCMA/CANESM2</option> -<option>GFDL/ESM2G</option> -<option>GISS/E2-H</option> -<option>GISS/E2-R</option> -<option>NCAR/CAM5</option> -<option>NCC/NORESM</option> -<option>UKMO/HadGEM2-ES</option> -</optgroup> -<optgroup label="Model: AMIP"> -<option>CCCMA/CANAM4</option> -<option>CSIRO/MK3.6</option> -<option>GFDL/CM3</option> -<option>IPSL/CM5A-LR</option> -<option>MIROC/MIROC5</option> -<option>UKMO/HadGEM2-A</option> -</optgroup> -<!-- <option>NASA/obs4MIPs</option> --> -<optgroup label="Observation"> -<option>NASA/MODIS</option> -<option>NASA/AMSRE</option> -<option>NASA/TRMM</option> -<option>NASA/GPCP</option> -<option>NASA/QuikSCAT</option> -<option>NASA/AVISO</option> -<option>NASA/GRACE</option> -<option>NOAA/NODC</option> -<option>NASA/CERES</option> -<option>NASA/AIRS</option> -<option>NASA/MLS</option> -<option>ARGO/ARGO</option> -</optgroup> -<optgroup label="Reanalysis"> -<option>ECMWF/interim</option> -</optgroup> -</select></td> - -<td>source:</td><td><select name="data2", id="data2" onchange="select_data1(2)"> -<optgroup label="Model: Historical"> -<option selected="CCCMA/CANESM2">CCCMA/CANESM2</option> -<option>GFDL/ESM2G</option> -<option>GISS/E2-H</option> -<option>GISS/E2-R</option> -<option>NCAR/CAM5</option> -<option>NCC/NORESM</option> -<option>UKMO/HadGEM2-ES</option> -</optgroup> -<optgroup label="Model: AMIP"> -<option>CCCMA/CANAM4</option> -<option>CSIRO/MK3.6</option> -<option>GFDL/CM3</option> -<option>IPSL/CM5A-LR</option> -<option>MIROC/MIROC5</option> -<option>UKMO/HadGEM2-A</option> -</optgroup> -<!-- <option>NASA/obs4MIPs</option> --> -<optgroup label="Observation"> -<option>NASA/MODIS</option> -<option>NASA/AMSRE</option> -<option>NASA/TRMM</option> -<option>NASA/GPCP</option> -<option>NASA/QuikSCAT</option> -<option>NASA/AVISO</option> -<option>NASA/GRACE</option> -<option>NOAA/NODC</option> -<option>NASA/CERES</option> -<option>NASA/AIRS</option> -<option>NASA/MLS</option> -<option>ARGO/ARGO</option> -</optgroup> -<optgroup label="Reanalysis"> -<option>ECMWF/interim</option> -</optgroup> -</select></td> - -</tr> - -<tr> - -<td>variable name:</td><td><select name="var1", id="var1" onchange="select_var1(1)"> -<option>Precipitation Flux</option> -<option>Total Cloud Fraction</option> -<option>Surface Temperature</option> -<option>Sea Surface Temperature</option> -<option>Eastward Near-Surface Wind</option> -<option>Northward Near-Surface Wind</option> -<option>Near-Surface Wind Speed</option> -<option>Sea Surface Height</option> -<option>Leaf Area Index</option> -<option>Equivalent Water Height Over Land</option> -<option>Equivalent Water Height Over Ocean</option> -<option>Ocean Heat Content Anomaly within 700 m Depth</option> -<option>Ocean Heat Content Anomaly within 2000 m Depth</option> -<option>Surface Downwelling Longwave Radiation</option> -<option>Surface Downwelling Shortwave Radiation</option> -<option>Surface Upwelling Longwave Radiation</option> -<option>Surface Upwelling Shortwave Radiation</option> -<option>Surface Downwelling Clear-Sky Longwave Radiation</option> -<option>Surface Downwelling Clear-Sky Shortwave Radiation</option> -<option>Surface Upwelling Clear-Sky Shortwave Radiation</option> -<option>TOA Incident Shortwave Radiation</option> -<option>TOA Outgoing Longwave Radiation</option> -<option>TOA Outgoing Shortwave Radiation</option> -<option>TOA Outgoing Clear-Sky Longwave Radiation</option> -<option>TOA Outgoing Clear-Sky Shortwave Radiation</option> -<option>Air Temperature</option> -<option>Specific Humidity</option> -<option>Cloud Ice Water Content</option> -<option>Cloud Liquid Water Content</option> -<option>Ocean Temperature</option> -<option>Ocean Salinity</option> -<option>Vertical Wind Velocity</option> -<option>Relative Humidity</option> -</select> -</td> - - -<td>variable name:</td><td><select name="var2", id="var2" onchange="select_var1(2)"> -<option>Precipitation Flux</option> -<option>Total Cloud Fraction</option> -<option>Surface Temperature</option> -<option>Sea Surface Temperature</option> -<option>Eastward Near-Surface Wind</option> -<option>Northward Near-Surface Wind</option> -<option>Near-Surface Wind Speed</option> -<option>Sea Surface Height</option> -<option>Leaf Area Index</option> -<option>Equivalent Water Height Over Land</option> -<option>Equivalent Water Height Over Ocean</option> -<option>Ocean Heat Content Anomaly within 700 m Depth</option> -<option>Ocean Heat Content Anomaly within 2000 m Depth</option> -<option>Surface Downwelling Longwave Radiation</option> -<option>Surface Downwelling Shortwave Radiation</option> -<option>Surface Upwelling Longwave Radiation</option> -<option>Surface Upwelling Shortwave Radiation</option> -<option>Surface Downwelling Clear-Sky Longwave Radiation</option> -<option>Surface Downwelling Clear-Sky Shortwave Radiation</option> -<option>Surface Upwelling Clear-Sky Shortwave Radiation</option> -<option>TOA Incident Shortwave Radiation</option> -<option>TOA Outgoing Longwave Radiation</option> -<option>TOA Outgoing Shortwave Radiation</option> -<option>TOA Outgoing Clear-Sky Longwave Radiation</option> -<option>TOA Outgoing Clear-Sky Shortwave Radiation</option> -<option>Air Temperature</option> -<option>Specific Humidity</option> -<option>Cloud Ice Water Content</option> -<option>Cloud Liquid Water Content</option> -<option>Ocean Temperature</option> -<option>Ocean Salinity</option> -<option>Vertical Wind Velocity</option> -<option>Relative Humidity</option> -</select> -</td> - -</tr> - -<tr> - -<td> -atmosphere pressure level (hPa) <br> or ocean pressure level (dbar) -</td> -<td> -<input id="pres1" value="500" alt="pressure"/> -</td> - -<td> -atmosphere pressure level (hPa) <br> or ocean pressure level (dbar) -</td> -<td> -<input id="pres2" value="500" alt="pressure"/> -</td> - -</tr> - -<tr> -</tr> - -<tr> -<td>start year-month:</td><td><input id="t0" value="2004-01" alt="start"/></td> -<td>end year-month:</td><td><input id="t1" value="2004-12" alt="end"/></td> -</tr> - - -<tr> -<td>start lat (deg):</td><td><input id="lat0" value="-90"/></td> -<td>end lat (deg):</td><td><input id="lat1" value="90"/></td> -</tr> - -<tr> -<td>start lon (deg):</td><td><input id="lon0" value="0"/></td> -<td>end lon (deg):</td><td><input id="lon1" value="360"/></td> -</tr> - -<tr> -<td>number of samples:</td><td><input id="nSample" value="500"/></td></tr> -</tr> - -<tr> -<td colspan="1"> -Execution purpose -</td> -<td colspan="3"> -<form> -<textarea name="purpose" id="purpose" rows="4" cols="50"> </textarea> -</form> -</td> -</tr> - -<tr> -<td colspan="2" align="center"><input id="scatterPlot2V" type="submit" value=" Run Again " style="height:28px"/></td> -<form> -<td colspan="2" align="center"><input id="download_data" type="button" value="Download Data" style="height:28px"/> -</td> -</form> - -</tr> - -<tr> -<td colspan="4"> -<div id="Image">Image Here</div> -</td> -</tr> - -<tr> -<td colspan="4" align="center"> -<textarea readonly id="data_url" cols="130" rows="2">Data URL Here</textarea> -</td> -</tr> - -<tr> -<td colspan="4" align="center"> -<textarea id="Response" cols="130" rows="6">Service Response Text Here</textarea> -</td> -</tr> - + <tr> + <td colspan="4"> + <center> + <b>Service: Scatter and Histogram Plot of Two Variables</b><br> + <br> This service generates a scatter plot between two + specified variables and the histograms of the two variables, and + calculates the correlation of the two variables. The two variables + can be either a two-dimensional variable or a slice of a + three-dimensional variable at a specific pressure level. The number + of samples used for this analysis should be specified. <br> + <br> + </center> + </td> + </tr> + <tr> + <td colspan="2"> + <center>data 1</center> + </td> + <td colspan="2"> + <center>data 2</center> + </td> + </tr> + <tr> + <td>source:</td> + <td><select name="data1" , id="data1" onchange="select_data1(1)"> + <optgroup label="Model: Historical"> + <option selected="CCCMA/CANESM2">CCCMA/CANESM2</option> + <option>GFDL/ESM2G</option> + <option>GISS/E2-H</option> + <option>GISS/E2-R</option> + <option>NCAR/CAM5</option> + <option>NCC/NORESM</option> + <option>UKMO/HadGEM2-ES</option> + </optgroup> + <optgroup label="Model: AMIP"> + <option>CCCMA/CANAM4</option> + <option>CSIRO/MK3.6</option> + <option>GFDL/CM3</option> + <option>IPSL/CM5A-LR</option> + <option>MIROC/MIROC5</option> + <option>UKMO/HadGEM2-A</option> + </optgroup> + <optgroup label="Observation"> + <option>NASA/MODIS</option> + <option>NASA/AMSRE</option> + <option>NASA/TRMM</option> + <option>NASA/GPCP</option> + <option>NASA/QuikSCAT</option> + <option>NASA/AVISO</option> + <option>NASA/GRACE</option> + <option>NOAA/NODC</option> + <option>NASA/CERES</option> + <option>NASA/AIRS</option> + <option>NASA/MLS</option> + <option>ARGO/ARGO</option> + </optgroup> + <optgroup label="Reanalysis"> + <option>ECMWF/interim</option> + </optgroup> + </select></td> + <td>source:</td> + <td><select name="data2" , id="data2" onchange="select_data1(2)"> + <optgroup label="Model: Historical"> + <option selected="CCCMA/CANESM2">CCCMA/CANESM2</option> + <option>GFDL/ESM2G</option> + <option>GISS/E2-H</option> + <option>GISS/E2-R</option> + <option>NCAR/CAM5</option> + <option>NCC/NORESM</option> + <option>UKMO/HadGEM2-ES</option> + </optgroup> + <optgroup label="Model: AMIP"> + <option>CCCMA/CANAM4</option> + <option>CSIRO/MK3.6</option> + <option>GFDL/CM3</option> + <option>IPSL/CM5A-LR</option> + <option>MIROC/MIROC5</option> + <option>UKMO/HadGEM2-A</option> + </optgroup> + <optgroup label="Observation"> + <option>NASA/MODIS</option> + <option>NASA/AMSRE</option> + <option>NASA/TRMM</option> + <option>NASA/GPCP</option> + <option>NASA/QuikSCAT</option> + <option>NASA/AVISO</option> + <option>NASA/GRACE</option> + <option>NOAA/NODC</option> + <option>NASA/CERES</option> + <option>NASA/AIRS</option> + <option>NASA/MLS</option> + <option>ARGO/ARGO</option> + </optgroup> + <optgroup label="Reanalysis"> + <option>ECMWF/interim</option> + </optgroup> + </select></td> + </tr> + <tr> + <td>variable name:</td> + <td><select name="var1" , id="var1" onchange="select_var1(1)"> + <option>Precipitation Flux</option> + <option>Total Cloud Fraction</option> + <option>Surface Temperature</option> + <option>Sea Surface Temperature</option> + <option>Eastward Near-Surface Wind</option> + <option>Northward Near-Surface Wind</option> + <option>Near-Surface Wind Speed</option> + <option>Sea Surface Height</option> + <option>Leaf Area Index</option> + <option>Equivalent Water Height Over Land</option> + <option>Equivalent Water Height Over Ocean</option> + <option>Ocean Heat Content Anomaly within 700 m Depth</option> + <option>Ocean Heat Content Anomaly within 2000 m Depth</option> + <option>Surface Downwelling Longwave Radiation</option> + <option>Surface Downwelling Shortwave Radiation</option> + <option>Surface Upwelling Longwave Radiation</option> + <option>Surface Upwelling Shortwave Radiation</option> + <option>Surface Downwelling Clear-Sky Longwave Radiation</option> + <option>Surface Downwelling Clear-Sky Shortwave Radiation</option> + <option>Surface Upwelling Clear-Sky Shortwave Radiation</option> + <option>TOA Incident Shortwave Radiation</option> + <option>TOA Outgoing Longwave Radiation</option> + <option>TOA Outgoing Shortwave Radiation</option> + <option>TOA Outgoing Clear-Sky Longwave Radiation</option> + <option>TOA Outgoing Clear-Sky Shortwave Radiation</option> + <option>Air Temperature</option> + <option>Specific Humidity</option> + <option>Cloud Ice Water Content</option> + <option>Cloud Liquid Water Content</option> + <option>Ocean Temperature</option> + <option>Ocean Salinity</option> + <option>Vertical Wind Velocity</option> + <option>Relative Humidity</option> + </select></td> + <td>variable name:</td> + <td><select name="var2" , id="var2" onchange="select_var1(2)"> + <option>Precipitation Flux</option> + <option>Total Cloud Fraction</option> + <option>Surface Temperature</option> + <option>Sea Surface Temperature</option> + <option>Eastward Near-Surface Wind</option> + <option>Northward Near-Surface Wind</option> + <option>Near-Surface Wind Speed</option> + <option>Sea Surface Height</option> + <option>Leaf Area Index</option> + <option>Equivalent Water Height Over Land</option> + <option>Equivalent Water Height Over Ocean</option> + <option>Ocean Heat Content Anomaly within 700 m Depth</option> + <option>Ocean Heat Content Anomaly within 2000 m Depth</option> + <option>Surface Downwelling Longwave Radiation</option> + <option>Surface Downwelling Shortwave Radiation</option> + <option>Surface Upwelling Longwave Radiation</option> + <option>Surface Upwelling Shortwave Radiation</option> + <option>Surface Downwelling Clear-Sky Longwave Radiation</option> + <option>Surface Downwelling Clear-Sky Shortwave Radiation</option> + <option>Surface Upwelling Clear-Sky Shortwave Radiation</option> + <option>TOA Incident Shortwave Radiation</option> + <option>TOA Outgoing Longwave Radiation</option> + <option>TOA Outgoing Shortwave Radiation</option> + <option>TOA Outgoing Clear-Sky Longwave Radiation</option> + <option>TOA Outgoing Clear-Sky Shortwave Radiation</option> + <option>Air Temperature</option> + <option>Specific Humidity</option> + <option>Cloud Ice Water Content</option> + <option>Cloud Liquid Water Content</option> + <option>Ocean Temperature</option> + <option>Ocean Salinity</option> + <option>Vertical Wind Velocity</option> + <option>Relative Humidity</option> + </select></td> + </tr> + <tr> + <td>atmosphere pressure level (hPa) <br> or ocean pressure + level (dbar) + </td> + <td><input id="pres1" value="500" alt="pressure" /></td> + <td>atmosphere pressure level (hPa) <br> or ocean pressure + level (dbar) + </td> + <td><input id="pres2" value="500" alt="pressure" /></td> + </tr> + <tr> + </tr> + <tr> + <td>start year-month:</td> + <td><input id="t0" value="2004-01" alt="start" /></td> + <td>end year-month:</td> + <td><input id="t1" value="2004-12" alt="end" /></td> + </tr> + <tr> + <td>start lat (deg):</td> + <td><input id="lat0" value="-90" /></td> + <td>end lat (deg):</td> + <td><input id="lat1" value="90" /></td> + </tr> + <tr> + <td>start lon (deg):</td> + <td><input id="lon0" value="0" /></td> + <td>end lon (deg):</td> + <td><input id="lon1" value="360" /></td> + </tr> + <tr> + <td>number of samples:</td> + <td><input id="nSample" value="500" /></td> + </tr> + </tr> + <tr> + <td colspan="1">Execution purpose</td> + <td colspan="3"> + <form> + <textarea name="purpose" id="purpose" rows="4" cols="50"> </textarea> + </form> + </td> + </tr> + <tr> + <td colspan="2" align="center"><input id="scatterPlot2V" + type="submit" value=" Run Again " + style="height: 28px" /></td> + <form> + <td colspan="2" align="center"><input id="download_data" + type="button" value="Download Data" style="height: 28px" /></td> + </form> + </tr> + <tr> + <td colspan="4"> + <div id="Image">Image Here</div> + </td> + </tr> + <tr> + <td colspan="4" align="center"><textarea readonly id="data_url" + cols="130" rows="2">Data URL Here</textarea></td> + </tr> + <tr> + <td colspan="4" align="center"><textarea id="Response" cols="130" + rows="6">Service Response Text Here</textarea></td> + </tr> </table> } - - \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/f22b3e32/app/views/climate/threeDVariableAerageVerticalProfile.scala.html ---------------------------------------------------------------------- diff --git a/app/views/climate/threeDVariableAerageVerticalProfile.scala.html b/app/views/climate/threeDVariableAerageVerticalProfile.scala.html index 84e5f0e..47780e1 100644 --- a/app/views/climate/threeDVariableAerageVerticalProfile.scala.html +++ b/app/views/climate/threeDVariableAerageVerticalProfile.scala.html @@ -1,32 +1,24 @@ -@(parameters: metadata.ThreeDVarAvgVertical4Profile) - -@import helper._ - +@(parameters: metadata.ThreeDVarAvgVertical4Profile) @import helper._ <link rel="stylesheet" href='@routes.Assets.at("stylesheets/livefitler.css")'> - @scripts = { - <script src='@routes.Assets.at("javascripts/edit_button.js")'></script> - <script src='@routes.Assets.at("javascripts/livefilter.js")'></script> - <script type="text/javascript" src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script> - <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js"></script> - <script type="text/javascript" src='@routes.Assets.at("javascripts/json2.js")'></script> - <script type="text/javascript" src="@routes.Assets.at("javascripts/xmisc.js")"></script> - <script type="text/javascript"> - +<script src='@routes.Assets.at("javascripts/edit_button.js")'></script> +<script src='@routes.Assets.at("javascripts/livefilter.js")'></script> +<script type="text/javascript" + src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script> +<script type="text/javascript" src="https: + <script type=" + text/javascript" src='@routes.Assets.at("javascripts/json2.js")'></script> +<script type="text/javascript" src="@routes.Assets.at("javascripts/xmisc.js")"></script> +<script type="text/javascript"> var Response = null; var variable = ""; - - // called on load or reload window.onload = function() { select_all_months(); getDataSource(); select_data(); getVariableName(); select_var(); - // no data to download yet - //disable_download_button(); - $('#t0').val(@parameters.getStartYearMonth()); $('#t1').val(@parameters.getEndYearMonth()); var selectMonths = $('#selectMonths').text(); @@ -60,7 +52,6 @@ $('#Image').html('<img src="'+imageUrl+'" width=680 />'); $('#data_url').html($('#dataURL').text()); } - function getDataSource() { var dataSource = $('#dataSource').text(); @@ -117,7 +108,6 @@ x.options[16].selected = true; } } - function getVariableName() { var var_string = $('#variableName').text(); @@ -147,7 +137,6 @@ x.options[7].selected = true; } } - function select_monthsByPara(){ var monthsByPara = $('#monthsPara').text(); if(monthsByPara.search("jan")>-1){ @@ -187,24 +176,16 @@ document.getElementById('Dec').checked = true; } } - - // disable download data button function disable_download_button() { var x=document.getElementById("download_data"); x.disabled=false; } - - - // enable download data button function enable_download_button() { var x=document.getElementById("download_data"); x.disabled=false; } - - - // select all months in the checkboxes function select_all_months() { document.getElementById('Jan').checked = true; @@ -220,8 +201,6 @@ document.getElementById('Nov').checked = true; document.getElementById('Dec').checked = true; } - - // see if no month is selected function no_month_check() { if (document.getElementById('Jan').checked == false && @@ -236,14 +215,11 @@ document.getElementById('Oct').checked == false && document.getElementById('Nov').checked == false && document.getElementById('Dec').checked == false) { - // alert("No month check!"); return true; } else return false; } - - // unselect all months in the checkboxes function reset_months() { document.getElementById('Jan').checked = false; @@ -259,8 +235,6 @@ document.getElementById('Nov').checked = false; document.getElementById('Dec').checked = false; } - - // enable all vars in dropdown menu function reset_vars() { var x=document.getElementById("var"); @@ -273,14 +247,10 @@ x.options[6].disabled=false; x.options[7].disabled=false; } - - // form variable string based on "var" dropdown selection function select_var() { var var_string = $("#var").val(); - // disable the download button because of this change disable_download_button(); - if (var_string == "Air Temperature") variable = "ta"; else if (var_string == "Specific Humidity") @@ -297,28 +267,15 @@ variable = "wap"; else if (var_string == "Relative Humidity") variable = "hur"; - - // alert("variable: " + variable) } - - // set up "var" dropdown based status of "data" dropdown function select_data() { var data_string = $("#data").val(); var x=document.getElementById("var"); - - // disable the download button because of this change disable_download_button(); - - // enable all options in "var" dropdown first reset_vars(); - - // alert(data_string); - - // disable corresponding "var" options if (data_string == "NASA/AIRS") { x.options[0].selected=true; - //x.options[1].selected=true; x.options[2].disabled=true; x.options[3].disabled=true; x.options[4].disabled=true; @@ -328,7 +285,6 @@ } else if (data_string == "NASA/MLS") { x.options[0].selected=true; - //x.options[1].selected=true; x.options[2].disabled=true; x.options[3].disabled=true; x.options[4].disabled=true; @@ -342,7 +298,6 @@ x.options[2].disabled=true; x.options[3].disabled=true; x.options[4].selected=true; - //x.options[5].selected=true; x.options[6].disabled=true; x.options[7].disabled=true; } @@ -353,243 +308,157 @@ x.options[3].disabled=true; x.options[4].disabled=true; x.options[5].disabled=true; - //x.options[6].disabled=true; - //x.options[7].disabled=true; x.options[6].selected=true; } else { x.options[0].selected=true; - //x.options[1].selected=true; - //x.options[2].selected=true; - //x.options[3].selected=true; x.options[4].disabled=true; x.options[5].disabled=true; } - - // form variable string select_var(); } - - // select checkboxes based on "months" dropdown function select_months() { var s1=document.getElementById("months"); - // alert(s1.selectedIndex); - // alert(s1.options[s1.selectedIndex].value); - - // disable the download button because of this change disable_download_button(); - - // "select none" if (s1.selectedIndex == 1) { reset_months(); } - // "select all" if (s1.selectedIndex == 0) { select_all_months(); } - // "summer" if (s1.selectedIndex == 2) { reset_months(); document.getElementById('Jun').checked = true; document.getElementById('Jul').checked = true; document.getElementById('Aug').checked = true; } - // "autumn" if (s1.selectedIndex == 3) { reset_months(); document.getElementById('Sep').checked = true; document.getElementById('Oct').checked = true; document.getElementById('Nov').checked = true; } - // "winter" if (s1.selectedIndex == 4) { reset_months(); document.getElementById('Dec').checked = true; document.getElementById('Jan').checked = true; document.getElementById('Feb').checked = true; } - // "spring" if (s1.selectedIndex == 5) { reset_months(); document.getElementById('Mar').checked = true; document.getElementById('Apr').checked = true; document.getElementById('May').checked = true; } - } - $(document).ready(function(){ - - /*$("a").click(function(event){ - alert("As you can see, the link no longer took you to jquery.com"); - event.preventDefault(); - });*/ - - $("#download_data").click(function(event) { var durl = $("#data_url").val(); - // alert(durl); window.location.assign(durl); }); - - $("#threedvertical").click(function(event) { Response = null; - // no data to download yet disable_download_button(); - - // flag error if no month box is checked if (no_month_check()) { - // $("#Response").html("<span style='color:red'>Error: please check at least one month.</span>"); $("#Response").html("Error: please check at least one month."); $("#Image").html(""); return; } - $("#Response").html("Calculating ..."); $("#data_url").html("Calculating ..."); $("#Image").html(""); - - // sample url: http://cmacws.jpl.nasa.gov:9002/svc/threeDimVerticalProfile?model=ncc_noresm&var=cli&start_time=199001&end_time=199512&lon1=0&lon2=180&lat1=-29&lat2=29&months=1,2,3,4,5,6,7,8,9,10,11,12 - - // form url string - var url = "http://" + window.location.hostname + ":9002/svc/threeDimVerticalProfile?"; - //var url = "http://einstein.sv.cmu.edu" + ":9002/svc/threeDimVerticalProfile?"; - // alert(url); - + var url = "http: var d1 = $("#data").val(); var model1 = d1.replace("/", "_"); - var arglist = ""; arglist = arglist.concat("model="); arglist = arglist.concat(model1); - var v1 = $("#var").val(); arglist = arglist.concat("&var="); arglist = arglist.concat(variable); - var t0 = $("#t0").val(); var t1 = $("#t1").val(); - t0 = t0.replace("-", ""); t1 = t1.replace("-", ""); - arglist = arglist.concat("&start_time="); arglist = arglist.concat(t0); - arglist = arglist.concat("&end_time="); arglist = arglist.concat(t1); - var lon0 = $("#lon0").val(); var lon1 = $("#lon1").val(); var lat0 = $("#lat0").val(); var lat1 = $("#lat1").val(); - arglist = arglist.concat("&lon1="); arglist = arglist.concat(lon0); - arglist = arglist.concat("&lon2="); arglist = arglist.concat(lon1); - arglist = arglist.concat("&lat1="); arglist = arglist.concat(lat0); - arglist = arglist.concat("&lat2="); arglist = arglist.concat(lat1); - var s1 = document.getElementById('months'); - - // get months checked by client var month_str = ""; - var mm = document.getElementById('Jan'); if (mm.checked == true) month_str = month_str.concat(",1"); - var mm = document.getElementById('Feb'); if (mm.checked == true) month_str = month_str.concat(",2"); - var mm = document.getElementById('Mar'); if (mm.checked == true) month_str = month_str.concat(",3"); - var mm = document.getElementById('Apr'); if (mm.checked == true) month_str = month_str.concat(",4"); - var mm = document.getElementById('May'); if (mm.checked == true) month_str = month_str.concat(",5"); - var mm = document.getElementById('Jun'); if (mm.checked == true) month_str = month_str.concat(",6"); - var mm = document.getElementById('Jul'); if (mm.checked == true) month_str = month_str.concat(",7"); - var mm = document.getElementById('Aug'); if (mm.checked == true) month_str = month_str.concat(",8"); - var mm = document.getElementById('Sep'); if (mm.checked == true) month_str = month_str.concat(",9"); - var mm = document.getElementById('Oct'); if (mm.checked == true) month_str = month_str.concat(",10"); - var mm = document.getElementById('Nov'); if (mm.checked == true) month_str = month_str.concat(",11"); - var mm = document.getElementById('Dec'); if (mm.checked == true) month_str = month_str.concat(",12"); - - // remove the leading ',' month_str = month_str.substr(1); - // alert(month_str); - arglist = arglist.concat("&months="); arglist = arglist.concat(month_str); - // alert("arglist: " + arglist); - arglist = arglist.concat("&scale="); var y = document.getElementById("radioLin").checked; var yval; var x = document.getElementById("radioLin2").checked; var xval; - // alert(y); if (y == true) yval = 0; else yval = 2; - if (x == true) xval = 0; else xval = 1; - var scale1 = yval + xval; var scale1_str = scale1.toString(); - arglist = arglist.concat(scale1_str); - var purpose = $("#purpose").val(); arglist = arglist.concat("&purpose="); arglist = arglist.concat(purpose); - - // url = url + encodeURIComponent(arglist); url = url + encodeURI(arglist); - // url = url + arglist; - //alert("url: " + url); - - var urlTimeBounds = "http://" + window.location.hostname + ":9002/svc/time_bounds?"; + var urlTimeBounds = "http: var arglistTB = ""; arglistTB = arglistTB.concat("serviceType="); arglistTB = arglistTB.concat("1"); @@ -598,9 +467,6 @@ arglistTB = arglistTB.concat("&var="); arglistTB = arglistTB.concat(variable); urlTimeBounds = urlTimeBounds + encodeURI(arglistTB); - //alert("urlTimeBounds: " + urlTimeBounds); - - $.ajax({ type: "GET", url: urlTimeBounds, @@ -608,9 +474,7 @@ data: null, success: function(data, textStatus, xhr) { Response = data; - //console.log("data: " + data); if (data.success == false) { - // alert(data.error); Response = null; var text = JSON.stringify(data, null, 4); text = "Error in backend: <br>" + text; @@ -619,44 +483,29 @@ return; } var text = JSON.stringify(data, null, 4); - // alert("text: " + text); - // $("#Response").html("<pre>"+text+"</pre>"); - // $("#Response").html(text); - var tb = data.time_bounds; var bds = String(tb).split(","); - // alert("tb: " + tb); - // alert("bds: " + bds); var lowerT = parseInt(bds[0]); var upperT = parseInt(bds[1]); - // alert("lowerT: " + lowerT); - // alert("upperT: " + upperT); var t0I = parseInt(t0); var t1I = parseInt(t1); - // alert("t0: " + t0I); - // alert("t1: " + t1I); - if ( lowerT == 0 && upperT ==0 ) { alert("We do not have data for this source and variable configuration."); return; } - if (t0I < lowerT && t1I < lowerT || t0I > upperT && t1I > upperT) { alert("We do not have data that span your time range. Try the range inside ["+lowerT+", "+upperT+"]."); return; } - if (t0I < lowerT && t1I <= upperT) { alert("Your start year-month is out of bound. It has to be in or later than " + lowerT + ". We will use the range ["+lowerT+", "+t1I+"] for you."); } - if (t1I > upperT && t0I >= lowerT) { alert("Your end year-month is out of bound. It has to be in or earlier than " + upperT + ". We will use the range ["+t0I+", "+upperT+"] for you."); } - if (t0I < lowerT && t1I > upperT ) { alert("Both of your start and end year-months are out of bounds. They have to be in or earlier than " + upperT + ", and in or later than " + lowerT + ". We will use the range ["+lowerT+", "+upperT+"] for you."); @@ -665,14 +514,10 @@ error: function(xhr, textStatus, errorThrown) { $("#Response").html("error!"); $("#data_url").html("error!"); - // alert("xhr.status: "+xhr.status); - // alert("error status: "+textStatus); }, complete: function(xhr, textStatus) { - //alert("complete status: "+textStatus); } }); - $.ajax({ type: "GET", url: url, @@ -680,53 +525,33 @@ data: null, success: function(data, textStatus, xhr) { Response = data; - // alert("data: " + data); if (data.success == false) { - // alert(data.error); Response = null; var text = JSON.stringify(data, null, 4); text = "Error in backend: <br>" + text; - // $("#Response").html("<span style='color:red'>" + text + "</span>"); $("#Response").html(text); $("#data_url").html(text); return; } var text = JSON.stringify(data, null, 4); - // alert(text); - // $("#Response").html("<pre>"+text+"</pre>"); $("#Response").html(text); - var html1 = "<img src='"+data.url+"' width='680'/>"; - // alert(html1); $("#Image").html(html1); - - // post dataUrl to textarea and enable download button $("#data_url").html(data.dataUrl); enable_download_button(); }, error: function(xhr, textStatus, errorThrown) { $("#Response").html("error!"); $("#data_url").html("error!"); - // alert("xhr.status: "+xhr.status); - // alert("error status: "+textStatus); }, complete: function(xhr, textStatus) { - //alert("complete status: "+textStatus); } }); - }); - - }); - </script> - } - - @main("Parameters of ConfId", scripts){ - - @flash_message() - <p> +} @main("Parameters of ConfId", scripts){ @flash_message() +<p> <div id="dataSource" style="display: none">@parameters.getDataSource()</div> <div id="variableName" style="display: none">@parameters.getVariableName()</div> <div id="startYearMonth" style="display: none">@parameters.getStartYearMonth()</div> @@ -744,169 +569,155 @@ <div id="dataURL" style="display: none">@parameters.getDataURL()</div> <div id="serviceResponseText" style="display: none">@parameters.getServiceResponseText()</div> <table border="1" align="center"> - -<tr> -<td colspan="4"> -<center> -<b>Service: 3-D Variable Average Vertical Profile</b> <br><br> -This service generates the average of a three-dimensional variable over a specified region and time and display the average as a function of pressure level as an X-Y plot. -<br><br> -</center> -</td> -</tr> - -<tr> -<td>data source:</td><td><select name="data", id="data" onchange="select_data()"> -<optgroup label="Observation"> -<option>NASA/AIRS</option> -<option>NASA/MLS</option> -<option >ARGO/ARGO</option> -</optgroup> -<optgroup label="Model: Historical"> -<option>CCCMA/CANESM2</option> -<option>GFDL/ESM2G</option> -<option>GISS/E2-H</option> -<option>GISS/E2-R</option> -<option>NCAR/CAM5</option> -<option>NCC/NORESM</option> -<option>UKMO/HadGEM2-ES</option> -</optgroup> -<optgroup label="Model: AMIP"> -<option>CCCMA/CANAM4</option> -<option>CSIRO/MK3.6</option> -<option>GFDL/CM3</option> -<option>IPSL/CM5A-LR</option> -<option>MIROC/MIROC5</option> -<option>UKMO/HadGEM2-A</option> -</optgroup> -<optgroup label="Reanalysis"> -<option>ECMWF/interim</option> -</optgroup> -</select></td> - -<td>variable name:</td><td><select name="var", id="var" onchange="select_var()"> -<option>Air Temperature</option> -<option>Specific Humidity</option> -<option>Cloud Ice Water Content</option> -<option>Cloud Liquid Water Content</option> -<option>Ocean Temperature</option> -<option>Ocean Salinity</option> -<option>Vertical Wind Velocity</option> -<option>Relative Humidity</option> -</select></td> -</tr> - -<tr> -<td>start year-month:</td><td><input id="t0" value="2004-01" alt="start"/></td> -<td>end year-month:</td><td><input id="t1" value="2004-12" alt="end"/></td> -</tr> - -<tr> -<td>select months:</td> -<td><select name="months" id="months" onchange="select_months()"> -<option id="all">select all</option> -<option id="none" selected="selected">select none</option> -<option id="summer">Summer:Jun-Jul-Aug</option> -<option id="autum">Autumn:Sep-Oct-Nov</option> -<option id="winter">Winter:Dec-Jan-Feb</option> -<option id="spring">Spring:Mar-Apr-May</option> </select> -</td> -<td> -</td> -<td> -</td> -</tr> - -<tr> -<td> -<label><input type="checkbox" name="option1" id="Jan" value="Jan" /> Jan<br></label> -<label><input type="checkbox" name="option1" id="Feb" value="Feb" /> Feb<br></label> -<label><input type="checkbox" name="option1" id="Mar" value="Mar" /> Mar<br></label> -</td> -<td> -<label><input type="checkbox" name="option1" id="Apr" value="Apr" /> Apr<br></label> -<label><input type="checkbox" name="option1" id="May" value="May" /> May<br></label> -<label><input type="checkbox" name="option1" id="Jun" value="Jun" /> Jun<br></label> -</td> -<td> -<label><input type="checkbox" name="option1" id="Jul" value="Jul" /> Jul<br></label> -<label><input type="checkbox" name="option1" id="Aug" value="Aug" /> Aug<br></label> -<label><input type="checkbox" name="option1" id="Sep" value="Sep" /> Sep<br></label> -</td> -<td> -<label><input type="checkbox" name="option1" id="Oct" value="Oct" /> Oct<br></label> -<label><input type="checkbox" name="option1" id="Nov" value="Nov" /> Nov<br></label> -<label><input type="checkbox" name="option1" id="Dec" value="Dec" /> Dec<br></label> -</td> -</tr> - -<tr> -<td>start lat (deg):</td><td><input id="lat0" value="-90"/></td> -<td>end lat (deg):</td><td><input id="lat1" value="90"/></td> -</tr> - -<tr> -<td>start lon (deg):</td><td><input id="lon0" value="0"/></td> -<td>end lon (deg):</td><td><input id="lon1" value="360"/></td> -</tr> - - -<tr><td colspan="1"> -pressure level scale:</td> -<td colspan="1"><form> <input type="radio" name="scale1" value="linear" id="radioLin">linear -<input type="radio" name="scale1" value="logarithmic" id="radioLog">logarithmic -</form> -</td> -<td colspan="1"> -variable scale: -</td> -<td colspan="1"> -<form> <input type="radio" name="scale2" value="linear" id="radioLin2">linear -<input type="radio" name="scale2" value="logarithmic" id="radioLog2">logarithmic -</form> -</td> -</tr> - -<tr> -<td colspan="1"> -Execution purpose -</td> -<td colspan="3"> -<form> -<textarea name="purpose" id="purpose" rows="4" cols="50"> </textarea> -</form> -</td> -</tr> - - - - - - -<tr> -<td colspan="2" align="center"><input id="threedvertical" type="submit" value=" Run Again " style="height:28px"/></td> -<form> -<td colspan="2" align="center"><input id="download_data" type="button" value="Download Data" style="height:28px"/> -</td> -</form> -</tr> - -<tr> -<td colspan="4"> -<div id="Image">Image Here</div> -</td> -</tr> -<tr> -<td colspan="4" align="center"> -<textarea readonly id="data_url" cols="89" rows="2">Data URL Here</textarea> -</td> -</tr> -<tr> -<td colspan="4" align="center"> -<textarea readonly id="Response" cols="89" rows="6">Service Response Text Here</textarea> -</td> -</tr> -</p> - + <tr> + <td colspan="4"> + <center> + <b>Service: 3-D Variable Average Vertical Profile</b> <br> + <br> This service generates the average of a three-dimensional + variable over a specified region and time and display the average as + a function of pressure level as an X-Y plot. <br> + <br> + </center> + </td> + </tr> + <tr> + <td>data source:</td> + <td><select name="data" , id="data" onchange="select_data()"> + <optgroup label="Observation"> + <option>NASA/AIRS</option> + <option>NASA/MLS</option> + <option>ARGO/ARGO</option> + </optgroup> + <optgroup label="Model: Historical"> + <option>CCCMA/CANESM2</option> + <option>GFDL/ESM2G</option> + <option>GISS/E2-H</option> + <option>GISS/E2-R</option> + <option>NCAR/CAM5</option> + <option>NCC/NORESM</option> + <option>UKMO/HadGEM2-ES</option> + </optgroup> + <optgroup label="Model: AMIP"> + <option>CCCMA/CANAM4</option> + <option>CSIRO/MK3.6</option> + <option>GFDL/CM3</option> + <option>IPSL/CM5A-LR</option> + <option>MIROC/MIROC5</option> + <option>UKMO/HadGEM2-A</option> + </optgroup> + <optgroup label="Reanalysis"> + <option>ECMWF/interim</option> + </optgroup> + </select></td> + <td>variable name:</td> + <td><select name="var" , id="var" onchange="select_var()"> + <option>Air Temperature</option> + <option>Specific Humidity</option> + <option>Cloud Ice Water Content</option> + <option>Cloud Liquid Water Content</option> + <option>Ocean Temperature</option> + <option>Ocean Salinity</option> + <option>Vertical Wind Velocity</option> + <option>Relative Humidity</option> + </select></td> + </tr> + <tr> + <td>start year-month:</td> + <td><input id="t0" value="2004-01" alt="start" /></td> + <td>end year-month:</td> + <td><input id="t1" value="2004-12" alt="end" /></td> + </tr> + <tr> + <td>select months:</td> + <td><select name="months" id="months" onchange="select_months()"> + <option id="all">select all</option> + <option id="none" selected="selected">select none</option> + <option id="summer">Summer:Jun-Jul-Aug</option> + <option id="autum">Autumn:Sep-Oct-Nov</option> + <option id="winter">Winter:Dec-Jan-Feb</option> + <option id="spring">Spring:Mar-Apr-May</option> + </select></td> + <td></td> + <td></td> + </tr> + <tr> + <td><label><input type="checkbox" name="option1" id="Jan" + value="Jan" /> Jan<br></label> <label><input type="checkbox" + name="option1" id="Feb" value="Feb" /> Feb<br></label> <label><input + type="checkbox" name="option1" id="Mar" value="Mar" /> Mar<br></label> + </td> + <td><label><input type="checkbox" name="option1" id="Apr" + value="Apr" /> Apr<br></label> <label><input type="checkbox" + name="option1" id="May" value="May" /> May<br></label> <label><input + type="checkbox" name="option1" id="Jun" value="Jun" /> Jun<br></label> + </td> + <td><label><input type="checkbox" name="option1" id="Jul" + value="Jul" /> Jul<br></label> <label><input type="checkbox" + name="option1" id="Aug" value="Aug" /> Aug<br></label> <label><input + type="checkbox" name="option1" id="Sep" value="Sep" /> Sep<br></label> + </td> + <td><label><input type="checkbox" name="option1" id="Oct" + value="Oct" /> Oct<br></label> <label><input type="checkbox" + name="option1" id="Nov" value="Nov" /> Nov<br></label> <label><input + type="checkbox" name="option1" id="Dec" value="Dec" /> Dec<br></label> + </td> + </tr> + <tr> + <td>start lat (deg):</td> + <td><input id="lat0" value="-90" /></td> + <td>end lat (deg):</td> + <td><input id="lat1" value="90" /></td> + </tr> + <tr> + <td>start lon (deg):</td> + <td><input id="lon0" value="0" /></td> + <td>end lon (deg):</td> + <td><input id="lon1" value="360" /></td> + </tr> + <tr> + <td colspan="1">pressure level scale:</td> + <td colspan="1"><form> + <input type="radio" name="scale1" value="linear" id="radioLin">linear + <input type="radio" name="scale1" value="logarithmic" id="radioLog">logarithmic + </form></td> + <td colspan="1">variable scale:</td> + <td colspan="1"> + <form> + <input type="radio" name="scale2" value="linear" id="radioLin2">linear + <input type="radio" name="scale2" value="logarithmic" id="radioLog2">logarithmic + </form> + </td> + </tr> + <tr> + <td colspan="1">Execution purpose</td> + <td colspan="3"> + <form> + <textarea name="purpose" id="purpose" rows="4" cols="50"> </textarea> + </form> + </td> + </tr> + <tr> + <td colspan="2" align="center"><input id="threedvertical" + type="submit" value=" Run Again " + style="height: 28px" /></td> + <form> + <td colspan="2" align="center"><input id="download_data" + type="button" value="Download Data" style="height: 28px" /></td> + </form> + </tr> + <tr> + <td colspan="4"> + <div id="Image">Image Here</div> + </td> + </tr> + <tr> + <td colspan="4" align="center"><textarea readonly id="data_url" + cols="89" rows="2">Data URL Here</textarea></td> + </tr> + <tr> + <td colspan="4" align="center"><textarea readonly id="Response" + cols="89" rows="6">Service Response Text Here</textarea></td> + </tr> + </p> </table> -} \ No newline at end of file +}