You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cmda.apache.org by xi...@apache.org on 2015/09/09 00:49:55 UTC
[46/51] [partial] incubator-cmda git commit: Add frontend and backend
http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/regridAndDownload.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/regridAndDownload.scala.html b/.target/views/climate/regridAndDownload.scala.html
new file mode 100644
index 0000000..0da46d4
--- /dev/null
+++ b/.target/views/climate/regridAndDownload.scala.html
@@ -0,0 +1,459 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more *
+ * contributor license agreements. See the NOTICE file distributed with *
+ * this work for additional information regarding copyright ownership. *
+ * The ASF licenses this file to You under the Apache License, Version 2.0 *
+ * (the "License"); you may not use this file except in compliance with *
+ * the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, software *
+ * distributed under the License is distributed on an "AS IS" BASIS, *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
+ * See the License for the specific language governing permissions and *
+ * limitations under the License. *
+ *******************************************************************************@
+
+@(parameters: metadata.RegridAndDownload) @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("jhtml/js/xmisc.js")'></script>
+<script type="text/javascript"
+ src='@routes.Assets.at("html/js2/varList.js")'></script>
+<script type="text/javascript"
+ src='@routes.Assets.at("html/js2/dataList2.js")'></script>
+<script type="text/javascript"
+ src='@routes.Assets.at("html/js2/common.js")'></script>
+<script type="text/javascript">
+ var Response = null;
+ var variable = "";
+ window.onload = function() {
+ put_data(1);
+ changeDataSource();
+ put_var(1);
+ changeVariableName();
+ enable_download_button();
+ $('#t0').val($('#startYearMonth').text());
+ $('#t1').val($('#endYearMonth').text());
+ if($('#pressureLevel').text() == "-999999"){
+ disable_pres1(1);
+ }else{
+ $('#pres1').val($('#pressureLevel').text());
+ }
+ $('#lat0').val($('#startLat').text());
+ $('#lat1').val($('#endLat').text());
+ $('#dlat').val($('#deltaLat').text());
+ $('#lon0').val($('#startLon').text());
+ $('#lon1').val($('#endLon').text());
+ $('#dlon').val($('#deltaLon').text());
+ $('#purpose').html($('#executionPurpose').text());
+ $('#data_url').html($('#dataURL').text());
+ $('#Response').html($('#serviceResponseText').text());
+ }
+ function changeDataSource() {
+ var dataSource = $('#dataSource').text();
+ var x = document.getElementById("data1");
+ if(dataSource == "gfdl_esm2g" ){
+ x.options[0].selected=true;
+ }
+ else if(dataSource == "giss_e2-h" ){
+ x.options[1].selected=true;
+ }
+ else if(dataSource == "giss_e2-r" ){
+ x.options[2].selected=true;
+ }
+ else if(dataSource == "ncar_cam5" ){
+ x.options[3].selected=true;
+ }
+ else if(dataSource == "ncc_noresm" ){
+ x.options[4].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-es" ){
+ x.options[5].selected=true;
+ }
+ else if(dataSource == "cccma_canam4" ){
+ x.options[6].selected=true;
+ }
+ else if(dataSource == "csiro_mk3.6" ){
+ x.options[7].selected=true;
+ }
+ else if(dataSource == "gfdl_cm3" ){
+ x.options[8].selected=true;
+ }
+ else if(dataSource == "ipsl_cm5a-lr" ){
+ x.options[9].selected=true;
+ }
+ else if(dataSource == "miroc_miroc5" ){
+ x.options[10].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-a" ){
+ x.options[11].selected=true;
+ }
+ else if(dataSource == "nasa_modis" ){
+ x.options[12].selected=true;
+ }
+ else if(dataSource == "nasa_amsre" ){
+ x.options[13].selected=true;
+ }
+ else if(dataSource == "nasa_trmm" ){
+ x.options[14].selected=true;
+ }
+ else if(dataSource == "nasa_gpcp" ){
+ x.options[15].selected=true;
+ }
+ else if(dataSource == "nasa_quikscat" ){
+ x.options[16].selected=true;
+ }
+ else if(dataSource == "nasa_aviso" ){
+ x.options[17].selected=true;
+ }
+ else if(dataSource == "nasa_grace" ){
+ x.options[18].selected=true;
+ }
+ else if(dataSource == "noaa_nodc" ){
+ x.options[19].selected=true;
+ }
+ else if(dataSource == "nasa_ceres" ){
+ x.options[20].selected=true;
+ }
+ else if(dataSource == "nasa_airs" ){
+ x.options[21].selected=true;
+ }
+ else if(dataSource == "nasa_mls" ){
+ x.options[22].selected=true;
+ }
+ else if(dataSource == "nasa_argo" ){
+ x.options[23].selected=true;
+ }
+ else if(dataSource == "ecmwf_interim" ){
+ x.options[24].selected=true;
+ }
+ }
+function changeVariableName(){
+ var var_string = $('#variableName').text();
+ var data_string = $('#dataSource').text();
+ data_string = data_string.replace("_", "/").toUpperCase();
+ var varList2 = dataList[data_string][1];
+ var x = document.getElementById("var1");
+ for (var i=0; i<varList2.length; i++) {
+ var k = varList2[i];
+ if (k == var_string) {
+ x.options[i].selected=true;
+ break;
+ }
+ }
+ }
+function disable_download_button()
+ {
+ var x=document.getElementById("download_data");
+ x.disabled=true;
+ }
+ function enable_download_button()
+ {
+ var x=document.getElementById("download_data");
+ x.disabled=false;
+ }
+ function disable_pres1(ID)
+ {
+ var x;
+ x=document.getElementById("pres"+ID);
+ x.value = "N/A";
+ x.disabled=true;
+ }
+ function enable_pres1(ID)
+ {
+ var x;
+ x=document.getElementById("pres"+ID);
+ x.disabled=false;
+ }
+ function put_data(ID){
+ var list1=document.getElementById("data"+ID);
+ for(var key in dataList) {
+ if (key.slice(0,5)==="group") {
+ var og = document.createElement("OPTGROUP");
+ og.setAttribute('label', dataList[key][0]);
+ list1.add(og);
+ } else {
+ og.appendChild(new Option(key,key));
+ }
+ }
+ }
+ function put_var(ID) {
+ var list1=document.getElementById("var"+ID);
+ for (var i=list1.length-1; i>=0; i--) {
+ list1.remove(i);
+ }
+ data_string = document.getElementById("data"+ID).value;
+ var varList2 = dataList[data_string][1];
+ for (var i=0; i<varList2.length; i++) {
+ var k = varList2[i];
+ list1.add(new Option(varList[k][0],k));
+ }
+ }
+ function select_var1(ID)
+ {
+ var var_string;
+ var_string = $("#var"+ID).val();
+ variable = var_string;
+ if (varList[var_string][2]==3) {
+ enable_pres1(ID);
+ } else {
+ disable_pres1(ID);
+ }
+ }
+ $(document).ready(function(){
+ $("#download_data").click(function(event) {
+ var durl = $("#data_url").val();
+ window.location.assign(durl);
+ });
+ $("#action1").click(function(event) {
+ Response = null;
+ disable_download_button();
+ $("#Response").html("Calculating ...");
+ $("#data_url").html("Calculating ...");
+ var url = "http://" + window.location.hostname + ":9002/svc/regridAndDownload?";
+ var d1 = $("#data1").val();
+ var model1 = d1.replace("/", "_");
+ model1 = model1.toLowerCase();
+ var arglist = "";
+ arglist = arglist.concat("model=");
+ arglist = arglist.concat(model1);
+ var v1 = $("#var1").val();
+ arglist = arglist.concat("&var=");
+ arglist = arglist.concat(v1);
+ var pres1 = $("#pres1").val();
+ arglist = arglist.concat("&plev=");
+ arglist = arglist.concat(pres1);
+ 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 dlon = $("#dlon").val();
+ var lat0 = $("#lat0").val();
+ var lat1 = $("#lat1").val();
+ var dlat = $("#dlat").val();
+ var purpose = $("#purpose").val();
+ arglist = arglist.concat("&lon1=");
+ arglist = arglist.concat(lon0);
+ arglist = arglist.concat("&lon2=");
+ arglist = arglist.concat(lon1);
+ arglist = arglist.concat("&dlon=");
+ arglist = arglist.concat(dlon);
+ arglist = arglist.concat("&lat1=");
+ arglist = arglist.concat(lat0);
+ arglist = arglist.concat("&lat2=");
+ arglist = arglist.concat(lat1);
+ arglist = arglist.concat("&dlat=");
+ arglist = arglist.concat(dlat);
+ arglist = arglist.concat("&purpose=");
+ arglist = arglist.concat(purpose);
+ url = url + encodeURI(arglist);
+ var urlTimeBounds = "http://" + window.location.hostname + ":9002/svc/time_bounds?";
+ var arglistTB = "";
+ arglistTB = arglistTB.concat("serviceType=");
+ arglistTB = arglistTB.concat("1");
+ arglistTB = arglistTB.concat("&source=");
+ arglistTB = arglistTB.concat(d1);
+ arglistTB = arglistTB.concat("&var=");
+ arglistTB = arglistTB.concat(variable);
+ urlTimeBounds = urlTimeBounds + encodeURI(arglistTB);
+ $.ajax({
+ type: "GET",
+ url: urlTimeBounds,
+ dataType: "json",
+ data: null,
+ success: function(data, textStatus, xhr) {
+ Response = data;
+ if (data.success == false) {
+ Response = null;
+ var text = JSON.stringify(data, null, 4);
+ text = "Error in backend: <br>" + text;
+ $("#Response").html(text);
+ $("#data_url").html(text);
+ return;
+ }
+ var text = JSON.stringify(data, null, 4);
+ var tb = data.time_bounds;
+ var bds = String(tb).split(",");
+ var lowerT = parseInt(bds[0]);
+ var upperT = parseInt(bds[1]);
+ var t0I = parseInt(t0);
+ var t1I = parseInt(t1);
+ 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.");
+ }
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $("#Response").html("error!");
+ $("#data_url").html("error!");
+ },
+ complete: function(xhr, textStatus) {
+ }
+ });
+ $.ajax({
+ type: "GET",
+ url: url,
+ dataType: "json",
+ data: null,
+ success: function(data, textStatus, xhr) {
+ Response = data;
+ if (data.success == false) {
+ Response = null;
+ var text = JSON.stringify(data, null, 4);
+ if (text.indexOf("No Data") != -1) {
+ $("#Response").html("No Data");
+ $("#data_url").html("No Data");
+ return;
+ }
+ text = "Error in backend: <br>" + text;
+ $("#Response").html(text);
+ $("#data_url").html(text);
+ return;
+ }
+ var text = JSON.stringify(data, null, 4);
+ $("#Response").html(text);
+ $("#data_url").html(data.dataUrl);
+ enable_download_button();
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $("#Response").html("error!");
+ $("#data_url").html("error!");
+ },
+ complete: function(xhr, textStatus) {
+ }
+ });
+ });
+ });
+ </script>
+} @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>
+<div id="endYearMonth" style="display: none;">@parameters.getEndYearMonth()</div>
+<div id="pressureLevel" style="display: none;">@parameters.getPressureLevel()</div>
+<div id="startLat" style="display: none;">@parameters.getStartLat()</div>
+<div id="endLat" style="display: none;">@parameters.getEndLat()</div>
+<div id="deltaLat" style="display: none;">@parameters.getDeltaLat()</div>
+<div id="startLon" style="display: none;">@parameters.getStartLon()</div>
+<div id="endLon" style="display: none;">@parameters.getEndLon()</div>
+<div id="deltaLon" style="display: none;">@parameters.getDeltaLon()</div>
+<div id="executionPurpose" style="display: none;">@parameters.getExecutionPurpose()</div>
+<div id="dataURL" style="display: none;">@parameters.getDataURL()</div>
+<div id="serviceResponseText" style="display: none;">@parameters.getServiceResponseText()</div>
+<table border="1" width="800" align="center">
+ <tr>
+ <td colspan="4">
+ <center>
+ <b>Service: Regrid and Download</b><br> <br> This service
+ regrids a variable from a dataset according to the lat/lon/plev
+ specified by the user, and mades the regridded data downloadable by
+ the user. <br> <br>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td>data source:</td>
+ <td><select name="data1" id="data1" onchange="put_var(1)">
+ </select></td>
+ <td>variable name:</td>
+ <td><select name="var1" id="var1" onchange="select_var1(1)">
+ </select></td>
+ </tr>
+ <tr>
+ <td colspan=4>atmosphere pressure level (hPa), or ocean pressure
+ level (dbar) <input list="plev1" id="pres1" size="50"
+ value="@parameters.getPressureLevel()"> <datalist id="plev1">
+ <option value="100000,80000,50000,30000,20000,10000"></option>
+ <option value="100000,30000,10000"></option>
+ <option value="100000,10000"></option>
+ <option value="50000,20000"></option>
+ </datalist>
+ </td>
+ </tr>
+ <tr>
+ <td>start year-month: <input id="t0"
+ value="@parameters.getStartYearMonth()" alt="start" size="10" /></td>
+ <td>end year-month: <input id="t1"
+ value="@parameters.getEndYearMonth()" alt="end" size="10" /></td>
+ <td colspan=2></td>
+ </tr>
+ <tr>
+ <td width="25%">start lat (deg): <input size=5 id="lat0"
+ value="@parameters.getStartLat()" /></td>
+ <td width="25%">end lat (deg): <input size=5 id="lat1"
+ value="@parameters.getEndLat()" /></td>
+ <td width="25%">grid size (deg): <input size=5 id="dlat"
+ value="@parameters.getDeltaLat()" /></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td width="25%">start lon (deg): <input size=5 id="lon0"
+ value="@parameters.getStartLon()" /></td>
+ <td width="25%">end lon (deg): <input size=5 id="lon1"
+ value="@parameters.getEndLon()" /></td>
+ <td width="25%">grid size (deg): <input size=5 id="dlon"
+ value="@parameters.getDeltaLon()" /></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="1">Execution purpose</td>
+ <td colspan="3">
+ <form>
+ <textarea name="purpose" id="purpose" rows="4" cols="50">@parameters.getExecutionPurpose()</textarea>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"><input id="action1" 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" align="center"><textarea readonly id="data_url"
+ cols="130" rows="2">@parameters.getDataURL()</textarea></td>
+ </tr>
+ <tr>
+ <td colspan="4" align="center"><textarea id="Response" cols="130"
+ rows="6">@parameters.getServiceResponseText()</textarea></td>
+ </tr>
+</table>
+}
http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/scatterAndHistogramTwoVariable.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/scatterAndHistogramTwoVariable.scala.html b/.target/views/climate/scatterAndHistogramTwoVariable.scala.html
new file mode 100644
index 0000000..edb1fc1
--- /dev/null
+++ b/.target/views/climate/scatterAndHistogramTwoVariable.scala.html
@@ -0,0 +1,1402 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more *
+ * contributor license agreements. See the NOTICE file distributed with *
+ * this work for additional information regarding copyright ownership. *
+ * The ASF licenses this file to You under the Apache License, Version 2.0 *
+ * (the "License"); you may not use this file except in compliance with *
+ * the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, software *
+ * distributed under the License is distributed on an "AS IS" BASIS, *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
+ * See the License for the specific language governing permissions and *
+ * limitations under the License. *
+ *******************************************************************************@
+
+@(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">
+ var Response = null;
+ var variable1 = "";
+ var variable2 = "";
+ window.onload = function() {
+ changeDataSource();
+ select_data1(1);
+ changeDataSource2();
+ select_data1(2);
+ changeVariableName();
+ select_var1(1);
+ changeVariableName2();
+ select_var1(2);
+ disable_pres1(1);
+ disable_pres1(2);
+ $('#t0').val($('#startYearMonth').text());
+ $('#t1').val($('#endYearMonth').text());
+ $('#lat0').val($('#startLat').text());
+ $('#lat1').val($('#endLat').text());
+ $('#lon0').val($('#startLon').text());
+ $('#lon1').val($('#endLon').text());
+ $('#nSample').val($('#samples').text());
+ $('#purpose').html($('#executionPurpose').text());
+ var imageUrl = $('#image').text();
+ $('#Image').html('<img src="'+imageUrl+'" width=680 />');
+ $('#data_url').html($('#dataURL').text());
+ $('#Response').html($('serviceResponseText').text());
+ }
+ function changeDataSource(){
+ var dataSource = $('#source1').text();
+ var x = document.getElementById("data1");
+ if(dataSource == "cccma_canesm2" ){
+ x.options[0].selected=true;
+ }
+ else if(dataSource == "gfdl_esm2g" ){
+ x.options[1].selected=true;
+ }
+ else if(dataSource == "giss_e2-h" ){
+ x.options[2].selected=true;
+ }
+ else if(dataSource == "giss_e2-r" ){
+ x.options[3].selected=true;
+ }
+ else if(dataSource == "ncar_cam5" ){
+ x.options[4].selected=true;
+ }
+ else if(dataSource == "ncc_noresm" ){
+ x.options[5].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-es" ){
+ x.options[6].selected=true;
+ }
+ else if(dataSource == "cccma_canam4" ){
+ x.options[7].selected=true;
+ }
+ else if(dataSource == "csiro_mk3.6" ){
+ x.options[8].selected=true;
+ }
+ else if(dataSource == "gfdl_cm3" ){
+ x.options[9].selected=true;
+ }
+ else if(dataSource == "ipsl_cm5a-lr" ){
+ x.options[10].selected=true;
+ }
+ else if(dataSource == "miroc_miroc5" ){
+ x.options[11].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-a" ){
+ x.options[12].selected=true;
+ }
+ else if(dataSource == "nasa_modis" ){
+ x.options[13].selected=true;
+ }
+ else if(dataSource == "nasa_amsre" ){
+ x.options[14].selected=true;
+ }
+ else if(dataSource == "nasa_trmm" ){
+ x.options[15].selected=true;
+ }
+ else if(dataSource == "nasa_gpcp" ){
+ x.options[16].selected=true;
+ }
+ else if(dataSource == "nasa_quikscat" ){
+ x.options[17].selected=true;
+ }
+ else if(dataSource == "nasa_aviso" ){
+ x.options[18].selected=true;
+ }
+ else if(dataSource == "nasa_grace" ){
+ x.options[19].selected=true;
+ }
+ else if(dataSource == "noaa_nodc" ){
+ x.options[20].selected=true;
+ }
+ else if(dataSource == "nasa_ceres" ){
+ x.options[21].selected=true;
+ }
+ else if(dataSource == "nasa_airs" ){
+ x.options[22].selected=true;
+ }
+ else if(dataSource == "nasa_mls" ){
+ x.options[23].selected=true;
+ }
+ else if(dataSource == "argo_agro" ){
+ x.options[24].selected=true;
+ }
+ else if(dataSource == "ecmwf_interim" ){
+ x.options[25].selected=true;
+ }
+ }
+ function changeDataSource2(){
+ var dataSource = $('#source2').text();
+ var x = document.getElementById("data2");
+ if(dataSource == "cccma_canesm2" ){
+ x.options[0].selected=true;
+ }
+ else if(dataSource == "gfdl_esm2g" ){
+ x.options[1].selected=true;
+ }
+ else if(dataSource == "giss_e2-h" ){
+ x.options[2].selected=true;
+ }
+ else if(dataSource == "giss_e2-r" ){
+ x.options[3].selected=true;
+ }
+ else if(dataSource == "ncar_cam5" ){
+ x.options[4].selected=true;
+ }
+ else if(dataSource == "ncc_noresm" ){
+ x.options[5].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-es" ){
+ x.options[6].selected=true;
+ }
+ else if(dataSource == "cccma_canam4" ){
+ x.options[7].selected=true;
+ }
+ else if(dataSource == "csiro_mk3.6" ){
+ x.options[8].selected=true;
+ }
+ else if(dataSource == "gfdl_cm3" ){
+ x.options[9].selected=true;
+ }
+ else if(dataSource == "ipsl_cm5a-lr" ){
+ x.options[10].selected=true;
+ }
+ else if(dataSource == "miroc_miroc5" ){
+ x.options[11].selected=true;
+ }
+ else if(dataSource == "ukmo_hadgem2-a" ){
+ x.options[12].selected=true;
+ }
+ else if(dataSource == "nasa_modis" ){
+ x.options[13].selected=true;
+ }
+ else if(dataSource == "nasa_amsre" ){
+ x.options[14].selected=true;
+ }
+ else if(dataSource == "nasa_trmm" ){
+ x.options[15].selected=true;
+ }
+ else if(dataSource == "nasa_gpcp" ){
+ x.options[16].selected=true;
+ }
+ else if(dataSource == "nasa_quikscat" ){
+ x.options[17].selected=true;
+ }
+ else if(dataSource == "nasa_aviso" ){
+ x.options[18].selected=true;
+ }
+ else if(dataSource == "nasa_grace" ){
+ x.options[19].selected=true;
+ }
+ else if(dataSource == "noaa_nodc" ){
+ x.options[20].selected=true;
+ }
+ else if(dataSource == "nasa_ceres" ){
+ x.options[21].selected=true;
+ }
+ else if(dataSource == "nasa_airs" ){
+ x.options[22].selected=true;
+ }
+ else if(dataSource == "nasa_mls" ){
+ x.options[23].selected=true;
+ }
+ else if(dataSource == "argo_agro" ){
+ x.options[24].selected=true;
+ }
+ else if(dataSource == "ecmwf_interim" ){
+ x.options[25].selected=true;
+ }
+ }
+ function changeVariableName(){
+ var var_string = $('#variableName1').text();
+ var x = document.getElementById("var1");
+ if (var_string == "clt")
+ x.options[1].selected=true;
+ else if (var_string == "ts")
+ x.options[2].selected=true;
+ else if (var_string == "tos")
+ x.options[3].selected=true;
+ else if (var_string == "pr")
+ x.options[0].selected=true;
+ else if (var_string == "uas")
+ x.options[4].selected=true;
+ else if (var_string == "vas")
+ x.options[5].selected=true;
+ else if (var_string == "sfcWind")
+ x.options[6].selected=true;
+ else if (var_string == "zos")
+ x.options[7].selected=true;
+ else if (var_string == "lai")
+ x.options[8].selected=true;
+ else if (var_string == "zl")
+ x.options[9].selected=true;
+ else if (var_string == "zo")
+ x.options[10].selected=true;
+ else if (var_string == "ohc700")
+ x.options[11].selected=true;
+ else if (var_string == "ohc2000")
+ x.options[12].selected=true;
+ else if (var_string == "rlds")
+ x.options[13].selected=true;
+ else if (var_string == "rsds")
+ x.options[14].selected=true;
+ else if (var_string == "rlus")
+ x.options[15].selected=true;
+ else if (var_string == "rsus")
+ x.options[16].selected=true;
+ else if (var_string == "rldscs")
+ x.options[17].selected=true;
+ else if (var_string == "rsdscs")
+ x.options[18].selected=true;
+ else if (var_string == "rsuscs")
+ x.options[19].selected=true;
+ else if (var_string == "rsdt")
+ x.options[20].selected=true;
+ else if (var_string == "rlutcs")
+ x.options[21].selected=true;
+ else if (var_string == "rlut")
+ x.options[22].selected=true;
+ else if (var_string == "rsutcs")
+ x.options[23].selected=true;
+ else if (var_string == "rsut")
+ x.options[24].selected=true;
+ }
+ function changeVariableName2(){
+ var var_string = $('#variableName2').text();
+ var x = document.getElementById("var2");
+ if (var_string == "clt")
+ x.options[1].selected=true;
+ else if (var_string == "ts")
+ x.options[2].selected=true;
+ else if (var_string == "tos")
+ x.options[3].selected=true;
+ else if (var_string == "pr")
+ x.options[0].selected=true;
+ else if (var_string == "uas")
+ x.options[4].selected=true;
+ else if (var_string == "vas")
+ x.options[5].selected=true;
+ else if (var_string == "sfcWind")
+ x.options[6].selected=true;
+ else if (var_string == "zos")
+ x.options[7].selected=true;
+ else if (var_string == "lai")
+ x.options[8].selected=true;
+ else if (var_string == "zl")
+ x.options[9].selected=true;
+ else if (var_string == "zo")
+ x.options[10].selected=true;
+ else if (var_string == "ohc700")
+ x.options[11].selected=true;
+ else if (var_string == "ohc2000")
+ x.options[12].selected=true;
+ else if (var_string == "rlds")
+ x.options[13].selected=true;
+ else if (var_string == "rsds")
+ x.options[14].selected=true;
+ else if (var_string == "rlus")
+ x.options[15].selected=true;
+ else if (var_string == "rsus")
+ x.options[16].selected=true;
+ else if (var_string == "rldscs")
+ x.options[17].selected=true;
+ else if (var_string == "rsdscs")
+ x.options[18].selected=true;
+ else if (var_string == "rsuscs")
+ x.options[19].selected=true;
+ else if (var_string == "rsdt")
+ x.options[20].selected=true;
+ else if (var_string == "rlutcs")
+ x.options[21].selected=true;
+ else if (var_string == "rlut")
+ x.options[22].selected=true;
+ else if (var_string == "rsutcs")
+ x.options[23].selected=true;
+ else if (var_string == "rsut")
+ x.options[24].selected=true;
+ }
+ function disable_download_button()
+ {
+ var x=document.getElementById("download_data");
+ x.disabled=false;
+ }
+ function enable_download_button()
+ {
+ var x=document.getElementById("download_data");
+ x.disabled=false;
+ }
+ 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;
+ 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[8].disabled=true;
+ x.options[9].disabled=true;
+ x.options[10].disabled=true;
+ x.options[11].disabled=true;
+ x.options[12].disabled=true;
+ x.options[13].disabled=true;
+ x.options[14].disabled=true;
+ x.options[15].disabled=true;
+ x.options[16].disabled=true;
+ x.options[17].disabled=true;
+ x.options[18].disabled=true;
+ x.options[19].disabled=true;
+ x.options[20].disabled=true;
+ x.options[21].disabled=true;
+ x.options[22].disabled=true;
+ x.options[23].disabled=true;
+ x.options[24].disabled=true;
+ x.options[25].disabled=true;
+ x.options[26].disabled=true;
+ x.options[27].disabled=true;
+ x.options[28].disabled=true;
+ x.options[29].disabled=true;
+ x.options[30].disabled=true;
+ x.options[31].disabled=true;
+ x.options[32].disabled=true;
+ }
+ function disable_pres1(ID)
+ {
+ var x;
+ if (ID == 1) {
+ x=document.getElementById("pres1");
+ }
+ else if (ID == 2) {
+ x=document.getElementById("pres2");
+ }
+ x.value = "N/A";
+ x.disabled=true;
+ }
+ function enable_pres1(ID)
+ {
+ var x;
+ if (ID == 1) {
+ x=document.getElementById("pres1");
+ }
+ else if (ID == 2) {
+ x=document.getElementById("pres2");
+ }
+ x.disabled=false;
+ }
+ function select_var1(ID)
+ {
+ var var_string;
+ if (ID == 1) {
+ var_string = $("#var1").val();
+ }
+ else if (ID == 2) {
+ var_string = $("#var2").val();
+ }
+ disable_download_button();
+ if (var_string == "Total Cloud Fraction") {
+ if (ID == 1) {
+ variable1 = "clt";
+ }
+ else if (ID == 2) {
+ variable2 = "clt";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Temperature") {
+ if (ID == 1) {
+ variable1 = "ts";
+ }
+ else if (ID == 2) {
+ variable2 = "ts";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Sea Surface Temperature") {
+ if (ID == 1) {
+ variable1 = "tos";
+ }
+ else if (ID == 2) {
+ variable2 = "tos";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Precipitation Flux") {
+ if (ID == 1) {
+ variable1 = "pr";
+ }
+ else if (ID == 2) {
+ variable2 = "pr";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Eastward Near-Surface Wind") {
+ if (ID == 1) {
+ variable1 = "uas";
+ }
+ else if (ID == 2) {
+ variable2 = "uas";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Northward Near-Surface Wind") {
+ if (ID == 1) {
+ variable1 = "vas";
+ }
+ else if (ID == 2) {
+ variable2 = "vas";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Near-Surface Wind Speed") {
+ if (ID == 1) {
+ variable1 = "sfcWind";
+ }
+ else if (ID == 2) {
+ variable2 = "sfcWind";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Sea Surface Height") {
+ if (ID == 1) {
+ variable1 = "zos";
+ }
+ else if (ID == 2) {
+ variable2 = "zos";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Leaf Area Index") {
+ if (ID == 1) {
+ variable1 = "lai";
+ }
+ else if (ID == 2) {
+ variable2 = "lai";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Equivalent Water Height Over Land") {
+ if (ID == 1) {
+ variable1 = "zl";
+ }
+ else if (ID == 2) {
+ variable2 = "zl";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Equivalent Water Height Over Ocean") {
+ if (ID == 1) {
+ variable1 = "zo";
+ }
+ else if (ID == 2) {
+ variable2 = "zo";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Ocean Heat Content Anomaly within 700 m Depth") {
+ if (ID == 1) {
+ variable1 = "ohc700";
+ }
+ else if (ID == 2) {
+ variable2 = "ohc700";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Ocean Heat Content Anomaly within 2000 m Depth") {
+ if (ID == 1) {
+ variable1 = "ohc2000";
+ }
+ else if (ID == 2) {
+ variable2 = "ohc2000";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Downwelling Longwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rlds";
+ }
+ else if (ID == 2) {
+ variable2 = "rlds";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Downwelling Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsds";
+ }
+ else if (ID == 2) {
+ variable2 = "rsds";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Upwelling Longwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rlus";
+ }
+ else if (ID == 2) {
+ variable2 = "rlus";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Upwelling Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsus";
+ }
+ else if (ID == 2) {
+ variable2 = "rsus";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Downwelling Clear-Sky Longwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rldscs";
+ }
+ else if (ID == 2) {
+ variable2 = "rldscs";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Downwelling Clear-Sky Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsdscs";
+ }
+ else if (ID == 2) {
+ variable2 = "rsdscs";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Surface Upwelling Clear-Sky Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsuscs";
+ }
+ else if (ID == 2) {
+ variable2 = "rsuscs";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "TOA Incident Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsdt";
+ }
+ else if (ID == 2) {
+ variable2 = "rsdt";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "TOA Outgoing Clear-Sky Longwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rlutcs";
+ }
+ else if (ID == 2) {
+ variable2 = "rlutcs";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "TOA Outgoing Longwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rlut";
+ }
+ else if (ID == 2) {
+ variable2 = "rlut";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "TOA Outgoing Clear-Sky Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsutcs";
+ }
+ else if (ID == 2) {
+ variable2 = "rsutcs";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "TOA Outgoing Shortwave Radiation") {
+ if (ID == 1) {
+ variable1 = "rsut";
+ }
+ else if (ID == 2) {
+ variable2 = "rsut";
+ }
+ disable_pres1(ID);
+ }
+ else if (var_string == "Air Temperature") {
+ if (ID == 1) {
+ variable1 = "ta";
+ }
+ else if (ID == 2) {
+ variable2 = "ta";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Specific Humidity") {
+ if (ID == 1) {
+ variable1 = "hus";
+ }
+ else if (ID == 2) {
+ variable2 = "hus";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Cloud Ice Water Content") {
+ if (ID == 1) {
+ variable1 = "cli";
+ }
+ else if (ID == 2) {
+ variable2 = "cli";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Cloud Liquid Water Content") {
+ if (ID == 1) {
+ variable1 = "clw";
+ }
+ else if (ID == 2) {
+ variable2 = "clw";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Ocean Temperature") {
+ if (ID == 1) {
+ variable1 = "ot";
+ }
+ else if (ID == 2) {
+ variable2 = "ot";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Ocean Salinity") {
+ if (ID == 1) {
+ variable1 = "os";
+ }
+ else if (ID == 2) {
+ variable2 = "os";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Vertical Wind Velocity") {
+ if (ID == 1) {
+ variable1 = "wap";
+ }
+ else if (ID == 2) {
+ variable2 = "wap";
+ }
+ enable_pres1(ID);
+ }
+ else if (var_string == "Relative Humidity") {
+ if (ID == 1) {
+ variable1 = "hur";
+ }
+ else if (ID == 2) {
+ variable2 = "hur";
+ }
+ enable_pres1(ID);
+ }
+ }
+ function select_data1(ID)
+ {
+ var data_string;
+ var x;
+ if (ID == 1) {
+ data_string = $("#data1").val();
+ x = document.getElementById("var1");
+ }
+ else if (ID == 2) {
+ data_string = $("#data2").val();
+ x = document.getElementById("var2");
+ }
+ disable_download_button();
+ if (data_string == "NASA/AMSRE") {
+ unset_vars1(ID);
+ x.options[3].selected=true;
+ 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);
+ 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);
+ x.options[0].disabled=false;
+ }
+ else if (data_string == "NASA/GPCP") {
+ unset_vars1(ID);
+ x.options[0].selected=true;
+ 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);
+ 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);
+ x.options[7].disabled=false;
+ }
+ else if (data_string == "NASA/GRACE") {
+ unset_vars1(ID);
+ x.options[9].selected=true;
+ 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);
+ 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);
+ x.options[13].disabled=false;
+ x.options[14].disabled=false;
+ x.options[15].disabled=false;
+ x.options[16].disabled=false;
+ x.options[17].disabled=false;
+ x.options[18].disabled=false;
+ x.options[19].disabled=false;
+ x.options[20].disabled=false;
+ x.options[21].disabled=false;
+ x.options[22].disabled=false;
+ x.options[23].disabled=false;
+ x.options[24].disabled=false;
+ }
+ else if (data_string == "NASA/AIRS") {
+ unset_vars1(ID);
+ x.options[25].selected=true;
+ 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);
+ 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);
+ x.options[29].disabled=false;
+ x.options[30].disabled=false;
+ }
+ else if (data_string == "CCCMA/CANAM4") {
+ unset_vars1(ID);
+ x.options[0].selected=true;
+ 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;
+ x.options[16].disabled=false;
+ x.options[17].disabled=false;
+ x.options[18].disabled=false;
+ x.options[19].disabled=false;
+ x.options[20].disabled=false;
+ x.options[21].disabled=false;
+ x.options[22].disabled=false;
+ x.options[23].disabled=false;
+ x.options[24].disabled=false;
+ x.options[25].disabled=false;
+ 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);
+ 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;
+ x.options[16].disabled=false;
+ x.options[17].disabled=false;
+ x.options[18].disabled=false;
+ x.options[19].disabled=false;
+ x.options[20].disabled=false;
+ x.options[21].disabled=false;
+ x.options[22].disabled=false;
+ x.options[23].disabled=false;
+ x.options[24].disabled=false;
+ x.options[25].disabled=false;
+ x.options[26].disabled=false;
+ x.options[27].disabled=false;
+ 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);
+ x.options[0].disabled=false;
+ x.options[1].disabled=false;
+ x.options[2].disabled=false;
+ x.options[3].disabled=false;
+ x.options[4].disabled=false;
+ x.options[5].disabled=false;
+ 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;
+ x.options[17].disabled=false;
+ x.options[18].disabled=false;
+ x.options[19].disabled=false;
+ x.options[20].disabled=false;
+ x.options[21].disabled=false;
+ x.options[22].disabled=false;
+ x.options[23].disabled=false;
+ x.options[24].disabled=false;
+ x.options[25].disabled=false;
+ x.options[26].disabled=false;
+ x.options[27].disabled=false;
+ 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" ||
+ data_string == "UKMO/HadGEM2-ES" ||
+ 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);
+ x.options[0].disabled=false;
+ x.options[1].disabled=false;
+ x.options[2].disabled=false;
+ x.options[3].disabled=false;
+ x.options[4].disabled=false;
+ x.options[5].disabled=false;
+ 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;
+ x.options[16].disabled=false;
+ x.options[17].disabled=false;
+ x.options[18].disabled=false;
+ x.options[19].disabled=false;
+ x.options[20].disabled=false;
+ x.options[21].disabled=false;
+ x.options[22].disabled=false;
+ x.options[23].disabled=false;
+ x.options[24].disabled=false;
+ x.options[25].disabled=false;
+ x.options[26].disabled=false;
+ x.options[27].disabled=false;
+ 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);
+ x.options[3].disabled=false;
+ x.options[31].disabled=false;
+ x.options[32].disabled=false;
+ }
+ select_var1(ID);
+ }
+ $(document).ready(function(){
+ $("#download_data").click(function(event) {
+ var durl = $("#data_url").val();
+ window.location.assign(durl);
+ });
+ $("#scatterPlot2V").click(function(event) {
+ Response = null;
+ disable_download_button();
+ $("#Response").html("Calculating ...");
+ $("#data_url").html("Calculating ...");
+ $("#Image").html("");
+ var url = "http://" + window.location.hostname + ":9002/svc/scatterPlot2V?";
+ var d1 = $("#data1").val();
+ var model1 = d1.replace("/", "_");
+ model1 = model1.toLowerCase();
+ var arglist = "";
+ arglist = arglist.concat("model1=");
+ arglist = arglist.concat(model1);
+ var v1 = $("#var1").val();
+ arglist = arglist.concat("&var1=");
+ arglist = arglist.concat(variable1);
+ 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);
+ var v2 = $("#var2").val();
+ arglist = arglist.concat("&var2=");
+ arglist = arglist.concat(variable2);
+ 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);
+ 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);
+ var purpose = $("#purpose").val();
+ arglist = arglist.concat("&purpose=");
+ arglist = arglist.concat(purpose);
+ url = url + encodeURI(arglist);
+ var urlTimeBounds = "http://" + window.location.hostname + ":9002/svc/two_time_bounds?";
+ var arglistTB = "";
+ arglistTB = arglistTB.concat("serviceType=");
+ arglistTB = arglistTB.concat("2");
+ arglistTB = arglistTB.concat("&source1=");
+ arglistTB = arglistTB.concat(d1);
+ arglistTB = arglistTB.concat("&var1=");
+ arglistTB = arglistTB.concat(variable1);
+ arglistTB = arglistTB.concat("&source2=");
+ arglistTB = arglistTB.concat(d2);
+ arglistTB = arglistTB.concat("&var2=");
+ arglistTB = arglistTB.concat(variable2);
+ urlTimeBounds = urlTimeBounds + encodeURI(arglistTB);
+ $.ajax({
+ type: "GET",
+ url: urlTimeBounds,
+ dataType: "json",
+ data: null,
+ success: function(data, textStatus, xhr) {
+ Response = data;
+ if (data.success == false) {
+ Response = null;
+ var text = JSON.stringify(data, null, 4);
+ text = "Error in backend: <br>" + text;
+ $("#Response").html(text);
+ $("#data_url").html(text);
+ return;
+ }
+ var text = JSON.stringify(data, null, 4);
+ var tb1 = data.time_bounds1;
+ var bds1 = String(tb1).split(",");
+ var lowerT1 = parseInt(bds1[0]);
+ var upperT1 = parseInt(bds1[1]);
+ var tb2 = data.time_bounds2;
+ var bds2 = String(tb2).split(",");
+ var lowerT2 = parseInt(bds2[0]);
+ var upperT2 = parseInt(bds2[1]);
+ var t0I = parseInt(t0);
+ var t1I = parseInt(t1);
+ var lowerT, upperT;
+ 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){
+ alert("We do not have data for the data-2 source and variable configuration.");
+ return;
+ }
+ else if (lowerT2 > upperT1 || lowerT1 > upperT2) {
+ alert("The two data sets/vars do not have a common time range.");
+ return;
+ }
+ else {
+ if (lowerT1 > lowerT2) {
+ lowerT = lowerT1;
+ }
+ else {
+ lowerT = lowerT2;
+ }
+ if (upperT1 > upperT2) {
+ upperT = upperT2;
+ }
+ else {
+ upperT = upperT1;
+ }
+ }
+ 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.");
+ }
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $("#Response").html("error!");
+ $("#data_url").html("error!");
+ },
+ complete: function(xhr, textStatus) {
+ }
+ });
+ $.ajax({
+ type: "GET",
+ url: url,
+ dataType: "json",
+ data: null,
+ success: function(data, textStatus, xhr) {
+ Response = data;
+ if (data.success == false) {
+ 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(text);
+ $("#data_url").html(text);
+ return;
+ }
+ var text = JSON.stringify(data, null, 4);
+ $("#Response").html(text);
+ var html = "<img src='"+data.url+"' width='820'/>";
+ $("#Image").html(html);
+ $("#data_url").html(data.dataUrl);
+ enable_download_button();
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $("#Response").html("error!");
+ $("#data_url").html("error!");
+ },
+ complete: function(xhr, textStatus) {
+ }
+ });
+ });
+ });
+ </script>
+} @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>
+<div id="startYearMonth" style="display: none;">@parameters.getStartYear()</div>
+<div id="startLat" style="display: none;">@parameters.getStartLat()</div>
+<div id="startLon" style="display: none;">@parameters.getStartLon()</div>
+<div id="source2" style="display: none;">@parameters.getSource2()</div>
+<div id="variableName2" style="display: none;">@parameters.getVaribaleName2()</div>
+<div id="pressureLevel2" style="display: none;">@parameters.getPressureLevel2()</div>
+<div id="endYearMonth" style="display: none;">@parameters.getEndYear()</div>
+<div id="endLat" style="display: none;">@parameters.getEndLat()</div>
+<div id="endLon" style="display: none;">@parameters.getEndLon()</div>
+<div id="samples" style="display: none;">@parameters.getSamples()</div>
+<div id="executionPurpose" style="display: none;">@parameters.getExecutionPurpose()</div>
+<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>
+ <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>
+}