{"id":8236,"date":"2024-12-26T11:26:30","date_gmt":"2024-12-26T16:26:30","guid":{"rendered":"https:\/\/weather.umd.edu\/wordpress\/?page_id=8236"},"modified":"2024-12-26T11:26:32","modified_gmt":"2024-12-26T16:26:32","slug":"mesonet-data-download","status":"publish","type":"page","link":"https:\/\/weather.umd.edu\/wordpress\/mesonet-data-download\/","title":{"rendered":"Mesonet Data Download"},"content":{"rendered":"\n\n\n\n      \r\n\r\n      <!-- <h2>Micronet Data Request Form<\/h2> -->\r\n      <form name='data-request' onsubmit=\"return dataRequest()\">\r\n        <fieldset>\r\n            <!-- <legend> Station Selection <\/legend> -->\r\n            <label for=\"station_select\">Select Station:<\/label>\r\n            <select id=\"station_select\" name=\"station_select\" style=\"-webkit-appearance: auto;\">\r\n                <option value=\"ridgely\">Ridgely<\/option>\r\n                <option value=\"keedysville\">Keedysville<\/option>\r\n                <option value=\"frostburg\">Frostburg<\/option>\r\n                <option value=\"easton\">Easton<\/option>\r\n                <option value=\"clarksville\">Clarksville<\/option>\r\n                <option value=\"collegepark\">College Park<\/option>\r\n                <option value=\"wyemills\">Wye Mills<\/option>\r\n                <!-- <option value=\"vmh\">Van Munching Hall<\/option> -->\r\n            <\/select><br>\r\n        <\/fieldset>\r\n\r\n        <br>\r\n\r\n        <fieldset>\r\n            <!-- <legend>Select Time Range <\/legend> -->\r\n            <label for=\"start_date\">Start Date:<\/label>\r\n            <input id=\"start_date\" type=\"Date\" name=\"start_date\"><br>\r\n            <label for=\"end_date\">End Date:<\/label>\r\n            <input id=\"end_date\" type=\"Date\" name=\"end_date\"><br>\r\n        <\/fieldset>\r\n\r\n        <br>\r\n\r\n        <fieldset>\r\n            <!-- <legend> Select Data Types <\/legend> -->\r\n            <label>Select Data to Include:<\/label><br>\r\n            <table>\r\n                <tr>\r\n                    <td><label for =\"all\"><b>Select All<\/b><\/label><\/td>\r\n                    <td><input id =\"all\" type=\"checkbox\" name=\"checkbox\" value=\"all_data\" onclick=\"toggle(this);\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"outTemp\">Temperature<\/label><\/td>\r\n                    <td><input id =\"outTemp\" type=\"checkbox\" name=\"checkbox\" value=\"temp\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"dewpoint\">Dewpoint<\/label><\/td>\r\n                    <td><input id =\"dewpoint\" type=\"checkbox\" name=\"checkbox\" value=\"dewpt\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"barometer\">Pressure<\/label><\/td>\r\n                    <td><input id =\"barometer\" type=\"checkbox\" name=\"checkbox\" value=\"barometer\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"windSpeed\">Wind Speed<\/label><\/td>\r\n                    <td><input id =\"windSpeed\" type=\"checkbox\" name=\"checkbox\" value=\"windSpeed\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"windDir\">Wind Direction<\/label><\/td>\r\n                    <td><input id =\"windDir\" type=\"checkbox\" name=\"checkbox\" value=\"windDir\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n                <tr>\r\n                    <td><label for =\"rainRate\">Rain Rate<\/label><\/td>\r\n                    <td><input id =\"rainRate\" type=\"checkbox\" name=\"checkbox\" value=\"precip\" onclick=\"uncheckSelectAll();\"><\/td>\r\n                <\/tr>\r\n            <\/table>\r\n        <\/fieldset>\r\n\r\n        <br>\r\n\r\n        <label for=\"output\">Choose Output File Type:<\/label>\r\n        <select id=\"output\" name=\"output\" style=\"-webkit-appearance: auto;\">\r\n            <option value=\"CSV\">CSV<\/option>\r\n            <option value=\"TSV\">TSV<\/option>\r\n        <\/select><br>\r\n        <input type=\"submit\">\r\n        <!-- <input type=\"reset\"> -->\r\n      <\/form>\r\n\r\n\r\n      <script type=\"text\/javascript\" src=\"https:\/\/www.gstatic.com\/charts\/loader.js\"><\/script>\r\n      <script type=\"text\/javascript\">\r\n\r\n        var today = new Date()\r\n        var yesterday = new Date(new Date().getTime() - (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\r\n            console.log(today.toISOString().slice(0,16))\r\n            document.getElementById('end_date').value = today.toISOString().slice(0,10);\r\n            document.getElementById('start_date').value = yesterday.toISOString().slice(0,10);\r\n        });\r\n\r\n        var varParams = {\r\n            'Temperature': {\r\n                label: 'Temperature (F)',\r\n                color: '#fc0204'\r\n            },\r\n            'Dewpoint': {\r\n                label: 'Temperature (F)',\r\n                color: '#048a04'\r\n            },\r\n            'Rain rate': {\r\n                label: 'Rain rate (inches per hour)',\r\n                color: '#4fa1e3'\r\n            },\r\n            'Pressure': {\r\n                label: 'Pressure (mb)',\r\n                color: '#000000'\r\n            },\r\n            'Wind Gusts': {\r\n                label: 'Wind speed (mph)',\r\n                color: '#2c8ede'\r\n            },\r\n            'Wind Speed': {\r\n                label: 'Wind speed (mph)',\r\n                color: '#2c3ede'\r\n            },\r\n        };\r\n\r\n        var stationIdMap = {\r\n            clarksville: 'MDMSNT-01',\r\n            frostburg: 'MDMSNT-02',\r\n            keedysville: 'MDMSNT-03',\r\n            easton: 'MDMSNT-04',\r\n            ridgely: 'MDMSNT-05',\r\n            collegepark: 'MDMSNT-06',\r\n            wyemills: 'MDMSNT-07',\r\n        }\r\n\r\n        function formatDateUTC(date) {\r\n            const year = date.getUTCFullYear();\r\n            const month = String(date.getUTCMonth() + 1).padStart(2, '0');\r\n            const day = String(date.getUTCDate()).padStart(2, '0');\r\n            const hours = String(date.getUTCHours()).padStart(2, '0');\r\n            const minutes = String(date.getUTCMinutes()).padStart(2, '0');\r\n            const seconds = String(date.getUTCSeconds()).padStart(2, '0');\r\n            \r\n            return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\r\n        }\r\n\r\n        function uncheckSelectAll() {\r\n            var checkboxes = document.querySelectorAll('input[type=\"checkbox\"]');\r\n            document.getElementById('all').checked = true\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (!checkboxes[i].checked) {\r\n                    document.getElementById('all').checked = false\r\n                }\r\n            }\r\n        }\r\n\r\n        function toggle(source) {\r\n            var checkboxes = document.querySelectorAll('input[type=\"checkbox\"]');\r\n            for (var i = 0; i < checkboxes.length; i++) {\r\n                if (checkboxes[i] != source) checkboxes[i].checked = source.checked;\r\n            }\r\n        }\r\n\r\n        function dataRequest() {\r\n          let station = document.forms['data-request']['station_select'].value;\r\n          let startdate = document.forms['data-request']['start_date'].value;\r\n          let enddate = document.forms['data-request']['end_date'].value;\r\n          startDt = new Date(startdate)\r\n          endDt = new Date(enddate)\r\n          console.log(station)\r\n          console.log(startdate)\r\n          console.log(enddate)\r\n          console.log(startDt)\r\n          console.log(endDt)\r\n\r\n        \/\/   cols = ['dateTime']\r\n        \/\/   colOptions = ['outTemp', 'dewpoint', 'barometer', 'rainRate', 'windSpeed', 'windDir']\r\n        \/\/   colOptions.forEach((col) => {\r\n        \/\/     if (document.getElementById(col).checked) {\r\n        \/\/       cols.push(col)\r\n        \/\/     }\r\n        \/\/   })\r\n        \/\/   console.log(cols)\r\n\r\n          var cols = ['TMSTAMP', 'Air_Temperature_Avg', 'Relative_Humidity', 'SLP', 'Rain_ICA_Tot', 'WS_Mean', 'WD_Mean', 'Wind_Speed_Max',\r\n                'Snow_Depth_Avg', 'Solar_Radiation_Avg',\r\n                'Soil_Temperature_5cm','Soil_Temperature_10cm','Soil_Temperature_20cm','Soil_Temperature_50cm','Soil_Temperature_100cm',\r\n                'Soil_Moisture_5cm','Soil_Moisture_10cm','Soil_Moisture_20cm','Soil_Moisture_50cm','Soil_Moisture_100cm',\r\n                'station_id']\r\n\r\n          console.log(window.location.pathname)\r\n          path = 'https:\/\/weather.umd.edu\/wordpress\/wp-content\/plugins\/meso-fsct\/functions\/get-mdmesonet-data.php'\r\n          console.log(path)\r\n          fetch(path, {\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: formatDateUTC(new Date(startDt.getTime())),\r\n                endms: formatDateUTC(new Date(endDt.getTime())),\r\n                \/\/ station_id: stationIdMap[station],\r\n                station_id: 'all',\r\n                cols: cols,\r\n            }),\r\n          })\r\n          .then(data => {\r\n            return data.json();\r\n          })\r\n          .then(data => {\r\n            console.log('^^^^^^^^^^^^^^^^^^^^^^')\r\n            console.log(data['data'])\r\n\r\n            data_series = [cols]\r\n            var row;\r\n            data['data'].forEach((ob) => {\r\n              row = []\r\n              for (let key in ob) {\r\n                row.push(ob[key])\r\n              }\r\n              data_series.push(row)\r\n            });\r\n            console.log(data_series)\r\n\r\n            let csvContent = \"data:text\/csv;charset=utf-8,\" \r\n              + data_series.map(e => e.join(\",\")).join(\"\\n\");\r\n\r\n            var encodedUri = encodeURI(csvContent);\r\n            var link = document.createElement('a');\r\n            link.setAttribute('href', encodedUri);\r\n            link.setAttribute('download', station + '_' + startdate + '_' + enddate + '.csv');\r\n            document.body.appendChild(link);\r\n\r\n            link.click();\r\n\r\n          })\r\n          .catch (error => console.log('Error:' + error));\r\n\r\n          return false\r\n        }\r\n      <\/script>\r\n\r\n      \n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":85,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8236","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8236","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\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/comments?post=8236"}],"version-history":[{"count":1,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8236\/revisions"}],"predecessor-version":[{"id":8237,"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/pages\/8236\/revisions\/8237"}],"wp:attachment":[{"href":"https:\/\/weather.umd.edu\/wordpress\/wp-json\/wp\/v2\/media?parent=8236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}