Analyse HOBO Data Online — Drop the HOBOware CSV In As It Is
Read directlyRecognised on sight. You do not have to tell it what the file is, tidy the header up, or delete anything first.
A HOBO logger comes back from the field, you plug it into HOBOware, you export a CSV — and then it turns out the file has a title line above the header, a column of row numbers, the time zone hidden inside a column heading, and four columns at the right-hand end that just say "Logged". Every spreadsheet and every online chart tool trips over at least one of those. This page is what the file actually contains, and what happens to each of those parts when you drop it in here.
Drop it here
Open the resampler and drag the file onto it — as it came off the logger, header lines and all. It reads the file in this browser tab: nothing is uploaded, there is no account, and no request goes out while you work.
Open the file readerWhat the export looks like
"Plot Title: mica 2" "#","Date Time, GMT-07:00","Temp, °C (LGR S/N: 10981298, SEN S/N: 10981298, LBL: Temp_02)","RH, % (LGR S/N: 10981298, SEN S/N: 10981298, LBL: RH_02)","Started (LGR S/N: 10981298)","End Of File (LGR S/N: 10981298)" 1,07/06/22 10:15:20 AM,21.53,44.1,Logged, 2,07/06/22 10:30:20 AM,21.61,44.3,, 3,07/06/22 10:45:20 AM,21.75,44.0,,
# Date Time Temp (°C) LGR S/N: 10350064, #10350064 Intensity (Lux) LGR S/N: 10350064, #10350064 Coupler Attached LGR S/N: 10350064 1 15-12-17 00:00:00 9.324 0.0 2 15-12-17 00:15:00 9.310 0.0
The awkward parts, and what happens to them
- A "Plot Title:" line above the header — or no title line at all, if you turned it off.
- Read as the name of the record and kept out of the way, rather than mistaken for the column headings.
- A "#" column of row numbers, which is not a measurement.
- Dropped, so it never turns up in a list of channels to plot.
- The time zone written inside the timestamp heading — "Date Time, GMT-07:00" — where no date parser looks for it.
- Read off the heading and applied. Ten fifteen in the morning at GMT-07:00 becomes 17:15 UTC, so the series lines up with anything else you compare it against.
- No time zone at all, under the "no quotes or commas" preference. The offset is simply absent from the file.
- Read as UTC, and it tells you it did that rather than quietly assuming. If the logger was on local time you set the offset yourself before comparing the series with anything.
- Channel headings carrying the unit, the logger serial, the sensor serial and a label, all inside one string.
- Split apart: the channel is called "Temp", its unit is °C, and the serials are kept on the side in case you have two loggers in one file.
- Event columns at the right-hand end — Started, Stopped, Coupler Attached, End Of File — whose cells are the word "Logged" or nothing.
- Dropped, because they are not series. Battery voltage is NOT dropped: a collapsing battery is the explanation for half of all bad logger data.
- The date format, which is not one format. Five different spellings turned up across fourteen real exports — day-first and month-first, two-digit and four-digit years, 12-hour and 24-hour, dashes and slashes.
- Nothing is hard-coded. The whole column is examined to work out which order it is in, and where the file genuinely gives no evidence either way, it says so instead of guessing silently.
- Tab-separated, or semicolon-separated, or comma-separated, depending on the export.
- Sniffed from the file. You do not pick a delimiter anywhere.
- A date and a time in two separate columns, under the same export preference.
- Joined back into one instant, rather than one of them being read as the timestamp and the other as a very strange measurement.
- An Excel workbook instead of a CSV — including one written by an older Mac Excel, which counts its dates from 1904 and is otherwise four years and a day out.
- Read directly, in your browser, with the right date system applied and the sheet it read named on screen.
Every line above is asserted by src/core/timeseries/__tests__/parse.test.ts, src/core/timeseries/__tests__/workbook.test.ts, which runs on every change to this site’s code.
You do not have to open HOBOware to read a HOBO file
HOBOware is a desktop install and a licence, and a great deal of HOBO data ends up on the machine of somebody who has the CSV but not the software — a student who was handed a folder, a consultant given a client’s data, anybody on a Mac in a lab that standardised on Windows. The export is a text file and everything you need is in it.
What you cannot get from the CSV is anything HOBOware does to the raw logger file afterwards: sensor calibration applied at readout, derived channels, or the logger launch settings. If the export was made with those already applied then they are in the numbers; if not, nothing on this page recovers them.
It reads .xlsx too, not just CSV
HOBOware will export an Excel workbook, and a lot of HOBO data reaches other people as one. Drop the .xlsx in and it is read directly — the zip is decompressed and the sheet is read in your own browser, with no upload and no library fetched from anywhere. Excel’s two different date systems are both handled, which matters because a workbook saved on an older Mac Excel is four years and a day out otherwise.
A legacy .xls, an .xlsb, or a workbook with a password on it cannot be read, and each of those is named specifically rather than reported as "could not read file" — because the fix is different in each case and "save it as .xlsx" is a useful thing to be told.
What to do with it once it is in
A HOBO logger set to fifteen minutes produces about 35,000 readings a year, which is too many to look at and not enough to summarise with one number. The usual first step is to turn it into hourly or daily values — and to see what that averaging hid, which is drawn as a band around the line rather than left to your imagination.
If the logger recorded temperature and relative humidity together, which most of them do, everything the agricultural calculators need is already in the file: dew point, vapour pressure deficit, growing degree days and winter chill all come from those two columns.
Common questions
- Does my file get uploaded anywhere?
- No. There is nowhere to upload it to — the site is static files and the reading and the arithmetic are JavaScript in your own tab. Load the page, disconnect from the network, and everything still works.
- My export has two loggers pasted end to end. Will that work?
- Partly. Every column is read as one channel of one record, which is right for the common case and wrong for that one — the serials are kept, but nothing splits the file on them yet. If your file is really two deployments, split it before dropping it in.
- The timestamps look shifted by several hours.
- That is the UTC offset. If your export carries "GMT-07:00" in the timestamp heading it is applied and the times you see are in that zone; if the export dropped the offset, the file is read as UTC and a note says so. Set the offset yourself and the series moves back where you expect it.
- What about HOBOlink, rather than HOBOware?
- HOBOlink — now part of the LI-COR cloud — offers a "HOBOware CSV format" export alongside its own, and that export is what this page describes. The native HOBOlink format has not been characterised here, and rather than guess at it, the honest advice is to take the HOBOware-format download.