{"id":8104,"date":"2023-11-02T00:50:53","date_gmt":"2023-11-02T04:50:53","guid":{"rendered":"https:\/\/weather.umd.edu\/wordpress\/?page_id=8104"},"modified":"2023-11-02T00:52:12","modified_gmt":"2023-11-02T04:52:12","slug":"compare","status":"publish","type":"page","link":"https:\/\/weather.umd.edu\/wordpress\/micronet\/compare\/","title":{"rendered":"Compare"},"content":{"rendered":"        \r\n        <script src=\"https:\/\/code.highcharts.com\/highcharts.js\"><\/script>\r\n        <script src=\"https:\/\/code.highcharts.com\/modules\/boost.js\"><\/script>\r\n        <script src=\"https:\/\/code.highcharts.com\/highcharts-more.js\"><\/script>\r\n        <script src=\"https:\/\/code.highcharts.com\/stock\/highcharts-more.js\"><\/script>\r\n        <script src=\"https:\/\/code.highcharts.com\/modules\/accessibility.js\"><\/script>\r\n\r\n        <form name='data-selector' onsubmit=\"return getTimeRange()\" style='clear:both'>\r\n\r\n        <script>\r\n        \/\/ Define functions for stations and fields\r\n        function toggleStation(source) {\r\n            var checkboxes = document.getElementsByName('station');\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (checkboxes[i] != source)\r\n                checkboxes[i].checked = source.checked;\r\n            }\r\n        }\r\n        function uncheckStation() {\r\n            var checkboxes = document.getElementsByName('station');\r\n            document.getElementById('allStation').checked = true\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (!checkboxes[i].checked) {\r\n                    document.getElementById('allStation').checked = false\r\n                }\r\n            }\r\n        }\r\n        \r\n        function toggleField(source) {\r\n            var checkboxes = document.getElementsByName('field');\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (checkboxes[i] != source)\r\n                checkboxes[i].checked = source.checked;\r\n            }\r\n        }\r\n        function uncheckField() {\r\n            var checkboxes = document.getElementsByName('field');\r\n            document.getElementById('allField').checked = true\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (!checkboxes[i].checked) {\r\n                    document.getElementById('allField').checked = false\r\n                }\r\n            }\r\n        }\r\n        <\/script>\r\n\r\n<br>\r\n        <!-- Create checkboxes, use functions above when clicked-->\r\n            <div class=\"formrow\">\r\n                <div class=\"formcol\" id='stationselect'>\r\n                    <input id=\"allStation\" type=\"checkbox\" name=\"station\" onclick=\"toggleStation(this);\" \/><b>Select All<\/b><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"atlantic\" onclick=\"uncheckStation();\">Atlantic<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"williams\" onclick=\"uncheckStation();\">AV Williams<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"avrum\" onclick=\"uncheckStation();\">Avrum Gudelsky<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"chem\" onclick=\"uncheckStation();\">Chemistry<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"ches\" onclick=\"uncheckStation();\">Chesapeake<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"essic\" onclick=\"uncheckStation();\">ESSIC<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"golf\" onclick=\"uncheckStation();\">Golf Course<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"observ\" onclick=\"uncheckStation();\">Observatory<\/input><br>\r\n                    <input type=\"checkbox\" name=\"station\" value=\"vmh\" onclick=\"uncheckStation();\">Van Munching<\/input><br>\r\n                <\/div>\r\n                <div class=\"formcol\" id='fieldselect'>\r\n                    <input id=\"allField\" type=\"checkbox\" name=\"field\" onclick=\"toggleField(this);\" \/><b>Select All<\/b><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"dewpoint\" onclick=\"uncheckField();\">Dewpoint<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"barometer\" onclick=\"uncheckField();\">Pressure<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"rainRate\" onclick=\"uncheckField();\">Rain Rate<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"outTemp\" onclick=\"uncheckField();\">Temperature<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"windDir\" onclick=\"uncheckField();\">Wind Direction<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"windGust\" onclick=\"uncheckField();\">Wind Gust<\/input><br>\r\n                    <input type=\"checkbox\" name=\"field\" value=\"windSpeed\" onclick=\"uncheckField();\">Wind Speed<\/input><br>\r\n                <\/div>\r\n            <\/div>\r\n            \r\n            \r\n<br>\r\n            <!-- Start\/end time buttons and Submit button -->\r\n            <label for=\"starttime\">Select start time<\/label>\r\n            <input type=\"datetime-local\" id=\"starttime\" name=\"starttime\">\r\n\r\n            <label for=\"endtime\">Select end time<\/label>\r\n            <input type=\"datetime-local\" id=\"endtime\" name=\"endtime\">\r\n            <input type=\"submit\">\r\n            <input id=\"smoothing\" type=\"checkbox\" name=\"smoothing\" value=\"smoothing\">Smoothing (avg over \r\n            <input type=\"number\" id=\"smoothingLength\" name=\"smoothingLength\" min=\"1\" max=\"60\" style=\"width: 40px\">\r\n            min)<\/input>\r\n        <\/form>\r\n        <div id='container-wrapper'>\r\n            <div id=\"container1\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container2\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container3\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container4\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container5\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container6\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n            <div id=\"container7\" style=\"height:400px; width:100%;display:none\"><\/div>\r\n        <\/div>\r\n\r\n        <style>\r\n            #container-wrapper {\r\n                display: grid;\r\n                grid-template-columns: repeat(2, 1fr);\r\n                grid-template-rows: repeat(3, 1fr);\r\n                \/* gap: 20px; *\/\r\n                \/* margin: 20px; *\/\r\n            }\r\n\r\n            .formcol {\r\n                float: left;\r\n                width: 50%;\r\n            }\r\n\r\n            \/* Clear floats after the columns *\/\r\n            .formrow {\r\n                content: \"\";\r\n                display: table;\r\n                clear: both;\r\n                width: 400px\r\n            }\r\n        <\/style>\r\n\r\n        <script type=\"text\/javascript\">\r\n\r\n            var stationDbMap = {\r\n                atlantic: 'mesoterp13DB',\r\n                vmh: 'mesoterp1DB',\r\n                williams: 'mesoterp8DB',\r\n                golf: 'mesoterp9DB',\r\n                chem: 'mesoterp3DB',\r\n                observ: 'mesoterp2DB',\r\n                avrum: 'mesoterp7DB',\r\n                ches: 'mesoterp10DB',\r\n                essic: 'mesoterp12DB',\r\n                \/\/ mdday: 'Maryland_DayDB',\r\n                \/\/ test: 'simulated_data'\r\n            }\r\n            var stationTitleMap = {\r\n                atlantic: 'Atlantic',\r\n                vmh: 'Van Munching',\r\n                williams: 'AV Williams',\r\n                golf: 'Golf Course',\r\n                chem: 'Chemistry',\r\n                observ: 'Observatory',\r\n                avrum: 'Avrum Gudelsky',\r\n                ches: 'Chesapeake',\r\n                essic: 'ESSIC',\r\n                \/\/ mdday: 'Maryland Day',\r\n                \/\/ test: 'Simulated Data'\r\n            }\r\n            var fieldTitleMap = {\r\n                'outTemp': 'Temperature (F)',\r\n                'dewpoint': 'Dewpoint (F)',\r\n                'barometer': 'Pressure (mb)',\r\n                'rainRate': 'Rain Rate (in\/hr)',\r\n                'windSpeed': 'Wind Speed (mph)',\r\n                'windGust': 'Wind Gust (mph)',\r\n                'windDir': 'Wind Direction (deg)'\r\n            }\r\n            var fieldColorMap = {\r\n                'outTemp': '#fc0204',\r\n                'dewpoint': '#048a04',\r\n                'barometer': '#000000',\r\n                'rainRate': '#4fa1e3',\r\n                'windSpeed': '#2c3ede',\r\n                'windGust': '#2c8ede',\r\n                'windDir': '#b5b5b5'\r\n            }\r\n\r\n\r\n            Highcharts.setOptions({  \/\/ This is for all plots, change Date axis to local timezone\r\n                global : {\r\n                    useUTC : false\r\n                }\r\n            });\r\n\r\n            var today = new Date()\r\n            var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000))\r\n            var dailiesStart = new Date(new Date().getTime() - (365 * 24 * 60 * 60 * 1000))\r\n            document.addEventListener(\"DOMContentLoaded\", function(event) { \r\n                console.log('BURHEURSEHKFHKESJFj')\r\n                today.setMinutes(today.getMinutes() - today.getTimezoneOffset());\r\n                yesterday.setMinutes(yesterday.getMinutes() - yesterday.getTimezoneOffset());\r\n                document.getElementById('endtime').value = today.toISOString().slice(0,16);\r\n\r\n                document.getElementById('starttime').value = yesterday.toISOString().slice(0,16);\r\n            });\r\n            var station = 'atlantic'\r\n\r\n            function getTimeRange() {\r\n                for (let i = 1; i < 8; i++) {\r\n                    divId = 'container' + String(i)\r\n                    document.getElementById(divId).style.display = 'none'\r\n                }\r\n\r\n                let starttime = document.forms['data-selector']['starttime'].value;\r\n                let endtime = document.forms['data-selector']['endtime'].value;\r\n                \r\n                \/\/ let newStation = document.forms['station-selector']['station'].value;\r\n                let newStations = Array.from(document.querySelectorAll('#stationselect input:checked')).map((x) => {\r\n                    return x.value\r\n                })\r\n                if (newStations[0] == \"on\") {\r\n                    newStations.shift()\r\n                }\r\n                console.log(newStations)\r\n\r\n                let fields = Array.from(document.querySelectorAll('#fieldselect input:checked')).map((x) => {\r\n                    return x.value\r\n                })\r\n                if (fields[0] == \"on\") {\r\n                    fields.shift()\r\n                }\r\n                console.log(\"Fields:\")\r\n                console.log(fields)\r\n                allFields = ['dateTime'].concat(fields)\r\n                \/\/ fields.unshift('dateTime')\r\n\r\n                \/\/ let newStations = ['atlantic', 'golf', 'williams', 'vmh', 'chem', 'observ', 'avrum', 'ches', 'essic'];\r\n\r\n                \/\/ if no start\/end time selected\r\n                if (starttime == '' || endtime == '') {\r\n                    alert('Both a start time and an end time must be selected');\r\n                    return false\r\n                }\r\n                startDt = new Date(starttime)\r\n                endDt = new Date(endtime)\r\n        \r\n                \/\/ if start time after end time\r\n                var diff = endDt - startDt\r\n                if (diff <= 0) {\r\n                    alert('Start time must be before end time')\r\n                    return false\r\n                }\r\n\r\n                \/\/ if start time before station creation\r\n                var earliestDates = {\r\n                    \"atlantic\": new Date(\"October 29, 2022 04:25:00\"),\r\n                    \"golf\": new Date(\"April 5, 2023 13:47:00\"),\r\n                    \"williams\": new Date(\"May 3, 2023 15:11:00\"),\r\n                    \"vmh\": new Date(\"October 3, 2023 15:44:00\"),\r\n                    \"chem\": new Date(\"February 15, 2024 11:36:00\"),\r\n                    \"observ\": new Date(\"June 20, 2025 11:36:00\"),\r\n                    \"avrum\": new Date(\"September 10, 2025 14:00:00\"),\r\n                    \"ches\": new Date(\"August 5, 2025 12:27:00\"),\r\n                    \"essic\": new Date(\"August 14, 2025 14:48:00\"),\r\n                }\r\n                let alertMsg = \"Please choose a later start date for the following stations:\";\r\n                for (let j=0; j < Object.keys(earliestDates).length; j++) {\r\n                    if (startDt < Object.values(earliestDates)[j] && newStations.includes(Object.keys(earliestDates)[j])) {\r\n                        alertMsg = alertMsg.concat(\"\\n\", Object.keys(earliestDates)[j], \": on or after \", Object.values(earliestDates)[j].toDateString())\r\n                    }\r\n                }\r\n                if (alertMsg != \"Please choose a later start date for the following stations:\") {\r\n                    window.alert(alertMsg)\r\n                    return false\r\n                }\r\n\r\n                \/\/ if requested time period is very long\r\n                maxDays = 100\r\n                if (diff > 1000*60*60*24*maxDays) {\r\n                    alert('Plotting more than ' + maxDays + ' days of data results in a fair amount of lag (and may not look very good on a plot). If you would like to access and plot large ranges of data yourself, see the data download form below.')\r\n                    return false\r\n                }\r\n\r\n                t1 = Date.now()\r\n                \/\/ document.getElementById('container').style.opacity = 0.5;\r\n                console.log('BEFORE FETCH')\r\n\r\n                fetch('https:\/\/weather.umd.edu\/wordpress\/wp-content\/plugins\/meso-fsct\/functions\/get-data.php', {\r\n                    method: \"POST\",\r\n                    mode: \"same-origin\",\r\n                    cache: 'no-cache',\r\n                    credentials: \"same-origin\",\r\n                    headers: {\r\n                        \"Content-Type\": \"application\/json\",\r\n                        \"Accept\": \"application\/json\"\r\n                    },\r\n                    redirect: 'follow',\r\n                    referrerPolicy: 'no-referrer',\r\n                    body: JSON.stringify({\r\n                        startms: startDt.getTime()\/1000,\r\n                        endms: endDt.getTime()\/1000,\r\n                        db: stationDbMap[newStations[0]],\r\n                        table: 'archive',\r\n                        cols: allFields\r\n                        \/\/ cols: [\r\n                        \/\/     'dateTime',\r\n                        \/\/     'outTemp',\r\n                        \/\/     \/\/ 'dewpoint', 'barometer', 'rainRate', 'windSpeed', 'windGust', 'windDir'\r\n                        \/\/ ]\r\n                    }),\r\n                })\r\n                .then(data => {\r\n                    return data.json();\r\n                })\r\n                .then(data => {\r\n                    \/\/ console.log(data)\r\n                    data_series = []\r\n                    data['data'].forEach((ob) => {\r\n                        \/\/ console.log(ob)\r\n                        data_series.push(allFields.map((f) => {\r\n                            if (f=='dateTime') return ob[f]*1000\r\n                            else if (f=='dewpoint') return Math.round(parseFloat(ob[f])*10)\/10\r\n                            else if (f=='barometer') return Math.round(parseFloat(ob[f])*33.864*10)\/10\r\n                            else return parseFloat(ob[f])\r\n                        }));\r\n                        \/\/ data_series.push([\r\n                            \/\/ ob['dateTime']*1000,\r\n                            \/\/ parseFloat(ob['outTemp']),\r\n                            \/\/ Math.round(parseFloat(ob['dewpoint'])*10)\/10,\r\n                            \/\/ parseFloat(ob['rainRate']),\r\n                            \/\/ Math.round(parseFloat(ob['barometer'])*33.864*10)\/10,\r\n                            \/\/ parseFloat(ob['windGust']),\r\n                            \/\/ parseFloat(ob['windSpeed']),\r\n                            \/\/ parseFloat(ob['windDir']),\r\n                        \/\/ ]);\r\n                    });\r\n                    data_series.reverse()\r\n\r\n                    var smoothnessLength = document.getElementById(\"smoothingLength\").value\r\n                    if (document.getElementById(\"smoothing\").checked == true && data_series.length >= smoothnessLength * 3) {\r\n                        var N = data_series.length\r\n                        var K = data_series[0].length\r\n                        var newData = []\r\n                        for (var i=0; i < N-smoothnessLength; i++) {\r\n                            newData.push([data_series[i][0]])\r\n                        }\r\n                        for (var i=1; i < K; i++) {\r\n                            for (var j=0; j < N - smoothnessLength; j++) {\r\n                                var sumAvg = 0\r\n                                for (var k=0; k < smoothnessLength; k++) {\r\n                                    sumAvg += data_series[j+k][i]\r\n                                }\r\n                                newData[j].push(Math.round(100 * sumAvg\/smoothnessLength)\/100)\r\n                            }\r\n                        }\r\n                        data_series = newData.slice(0)\r\n                    }\r\n\r\n                    let fcount = 0\r\n                    charts = fields.map((f) => {\r\n                        fcount++;\r\n                        \/\/ if (fcount!=0) {\r\n                        console.log(\"HELLELFJOEFJEIOSO:\")\r\n                        console.log(fieldTitleMap[f])\r\n                        divId = 'container' + String(fcount)\r\n                        document.getElementById(divId).style.display = 'block'\r\n\r\n                        return Highcharts.chart(divId, {\r\n                            title: {\r\n                                text: fieldTitleMap[f]\r\n                            },\r\n                            tooltip: {\r\n                                crosshairs: true,\r\n                                shared: true,\r\n                            },\r\n                            chart: {\r\n                                zoomType: 'x',\r\n                            },\r\n                            yAxis: [{\r\n                                    title: {\r\n                                        text: fieldTitleMap[f]\r\n                                    },\r\n                                },\r\n                            ],\r\n                            xAxis: {\r\n                                type: 'datetime'\r\n                            },\r\n                            series: [{\r\n                                name: stationTitleMap[newStations[0]],\r\n                                data: data_series.map(i => [i[0], i[fcount]]),\r\n                                \/\/ color: fieldColorMap[f],\r\n                                color: \"red\", \r\n                                dataGrouping: { enabled: true }\r\n                            },\r\n                            ]\r\n                        })\r\n                        \/\/ }\r\n                    })\r\n\r\n                    \/\/ chart = Highcharts.chart('container0', {\r\n                    \/\/     title: {\r\n                    \/\/         text: stationTitleMap[newStations[0]] + ' Station'\r\n                    \/\/     },\r\n                    \/\/     tooltip: {\r\n                    \/\/         crosshairs: true,\r\n                    \/\/         shared: true,\r\n                    \/\/     },\r\n                    \/\/     chart: {\r\n                    \/\/         zoomType: 'x'\r\n                    \/\/     },\r\n                    \/\/     yAxis: [{\r\n                    \/\/             title: {\r\n                    \/\/                 text: 'Temperature (F)'\r\n                    \/\/             },\r\n                    \/\/             \/\/ height: '33%',\r\n                    \/\/         },\r\n                    \/\/     ],\r\n                    \/\/     xAxis: {\r\n                    \/\/         type: 'datetime'\r\n                    \/\/     },\r\n                    \/\/     series: [{\r\n                    \/\/         name: stationTitleMap[newStations[0]],\r\n                    \/\/         data: data_series.map(i => [i[0], i[1]]),\r\n                    \/\/         color: '#fc0204'\r\n                    \/\/     },\r\n                    \/\/     ]\r\n                    \/\/ })\r\n\r\n                    \/\/ document.getElementById('container').style.opacity = 1;\r\n                \/\/ })\r\n                \/\/ .catch (error => console.log('Error:' + error));\r\n\r\n                    console.log('AFTER FETCH')\r\n\r\n                    newStations.slice(1).forEach((newStation) => {\r\n                        \/\/ console.log('loop iteration')\r\n                        \/\/ console.log(newStation)\r\n                        fetch('https:\/\/weather.umd.edu\/wordpress\/wp-content\/plugins\/meso-fsct\/functions\/get-data.php', {\r\n                            method: \"POST\",\r\n                            mode: \"same-origin\",\r\n                            cache: 'no-cache',\r\n                            credentials: \"same-origin\",\r\n                            headers: {\r\n                                \"Content-Type\": \"application\/json\",\r\n                                \"Accept\": \"application\/json\"\r\n                            },\r\n                            redirect: 'follow',\r\n                            referrerPolicy: 'no-referrer',\r\n                            body: JSON.stringify({\r\n                                startms: startDt.getTime()\/1000,\r\n                                endms: endDt.getTime()\/1000,\r\n                                db: stationDbMap[newStation],\r\n                                table: 'archive',\r\n                                cols: allFields\r\n                                \/\/ cols: [\r\n                                \/\/     'dateTime',\r\n                                \/\/     'outTemp',\r\n                                \/\/     \/\/ 'dewpoint', 'barometer', 'rainRate', 'windSpeed', 'windGust', 'windDir'\r\n                                \/\/ ]\r\n                            }),\r\n                        })\r\n                        .then(data => {\r\n                            return data.json();\r\n                        })\r\n                        .then(data => {\r\n                            data_series = []\r\n                            data['data'].forEach((ob) => {\r\n                                \/\/ console.log(ob)\r\n                                data_series.push(allFields.map((f) => {\r\n                                    if (f=='dateTime') return ob[f]*1000\r\n                                    else if (f=='dewpoint') return Math.round(parseFloat(ob[f])*10)\/10\r\n                                    else if (f=='barometer') return Math.round(parseFloat(ob[f])*33.864*10)\/10\r\n                                    else return parseFloat(ob[f])\r\n                                }));\r\n                                \/\/ data_series.push([\r\n                                    \/\/ ob['dateTime']*1000,\r\n                                    \/\/ parseFloat(ob['outTemp']),\r\n                                    \/\/ Math.round(parseFloat(ob['dewpoint'])*10)\/10,\r\n                                    \/\/ parseFloat(ob['rainRate']),\r\n                                    \/\/ Math.round(parseFloat(ob['barometer'])*33.864*10)\/10,\r\n                                    \/\/ parseFloat(ob['windGust']),\r\n                                    \/\/ parseFloat(ob['windSpeed']),\r\n                                    \/\/ parseFloat(ob['windDir']),\r\n                                \/\/ ]);\r\n                            });\r\n                            data_series.reverse()\r\n\r\n                            var smoothnessLength = document.getElementById(\"smoothingLength\").value\r\n                            if (document.getElementById(\"smoothing\").checked == true && data_series.length >= smoothnessLength * 3) {\r\n                                var N = data_series.length\r\n                                var K = data_series[0].length\r\n                                var newData = []\r\n                                for (var i=0; i < N-smoothnessLength; i++) {\r\n                                    newData.push([data_series[i][0]])\r\n                                }\r\n                                for (var i=1; i < K; i++) {\r\n                                    for (var j=0; j < N - smoothnessLength; j++) {\r\n                                        var sumAvg = 0\r\n                                        for (var k=0; k < smoothnessLength; k++) {\r\n                                            sumAvg += data_series[j+k][i]\r\n                                        }\r\n                                        newData[j].push(Math.round(100 * sumAvg\/smoothnessLength)\/100)\r\n                                    }\r\n                                }\r\n                                data_series = newData.slice(0)\r\n                            }\r\n\r\n                            \/\/ console.log('ADDING ' + newStation)\r\n                            let fcount = 0\r\n                            charts.forEach((chart) => {\r\n                                fcount++\r\n                                chart.addSeries({\r\n                                    name: stationTitleMap[newStation],\r\n                                    data: data_series.map(i => [i[0], i[fcount]]),\r\n                                })\r\n                            })\r\n                            \/\/ console.log('ADDED ' + newStation)\r\n\r\n                            \/\/ chart.series[1].setData(data_series.map(i => [i[0], i[2]]))\r\n                            \/\/ chart.series[2].setData(data_series.map(i => [i[0], i[6]]))\r\n                            \/\/ chart.series[3].setData(data_series.map(i => [i[0], i[5]]))\r\n                            \/\/ chart.series[4].setData(data_series.map(i => [i[0], i[4]]))\r\n                            \/\/ chart.series[5].setData(data_series.map(i => [i[0], i[3]]))\r\n                            \/\/ chart.series[6].setData(data_series.map(i => [i[0], i[7]]))\r\n\r\n                            \/\/ chart.setTitle({text: stationTitleMap[newStation] + ' Station'})\r\n\r\n                            console.log(Date.now() - t1)\r\n                            \/\/ document.getElementById('container').style.opacity = 1;\r\n\r\n                        })\r\n                        .catch (error => console.log('Error:' + error));\r\n                    })\r\n                \r\n                }).catch (error => console.log('Error:' + error));\r\n\r\n                \/\/ chart.redraw();\r\n\r\n                return false\r\n            }\r\n\r\n        <\/script>\r\n\r\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":77,"featured_media":0,"parent":7510,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8104","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/comments?post=8104"}],"version-history":[{"count":1,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8104\/revisions"}],"predecessor-version":[{"id":8105,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8104\/revisions\/8105"}],"up":[{"embeddable":true,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/7510"}],"wp:attachment":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/media?parent=8104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}