Climate CSV import
Climate files go to Climate CSV in the app, or POST …/climate/csv. DeepLeaf Yield reads most climate computer and logger exports as they are, and shows what it found before anything is saved.
Automatic detection
A file that doesn't use DeepLeaf Yield's own column names is read without a mapping. DeepLeaf Yield finds:
- the header, below any lines of export details above it;
- what each column holds, from column names in English, Dutch, Spanish, or French;
- units in the header, such as
Temp (°C), or in a units row under it, and converts °F, hPa, Pa, µS/cm, and mL/m² to the stored units; - separate date and time columns, and 12-hour clocks;
- several compartments in one file;
- whether dates are written day first or month first.
Anything it can't settle, such as a unit that could be °C or °F, is listed as a problem to fix, never guessed. A file with problems is not imported.
Check before you import
- Choose the file under Climate CSV and press Check the file.
- Read What will be imported: the layout, each column with its unit and conversion, the time range, and the first rows as they would be stored. Untick a column to leave it out.
- If the file holds several compartments, choose one under Compartment. Import the others into their own greenhouse's crop cycle.
- If every date could be read either way, such as 04/05, choose Day first (31/12) or Month first (12/31) under Date order. Otherwise the order is read from the time steps between rows.
- Press Import. Exactly what was checked is stored. A reading already stored for that time, metric, and source is kept, not doubled.
On the API, POST …/climate/csv/preview returns the same check and stores nothing. Send its mapping back with the upload to import exactly what was previewed.
Long or wide
DeepLeaf Yield's own layouts are read directly. Long: one reading per line.
timestamp,metric,value,source
2026-09-29 08:00,temperature_c,23.5,logger
2026-09-29 08:00,humidity_pct,71,logger
Wide: a timestamp column, then one column per metric. The source comes from the form's source field, default csv.
timestamp;temperature_c;humidity_pct;co2_ppm
2026-09-29 08:00;23,5;71;650
Column mapping
Only when detection reads a column wrongly, name the columns under Name the columns yourself (the columns form field):
GHtime=timestamp,Tair=temperature_c,RHair=humidity_pct,CO2air=co2_ppm
Columns left out of the mapping are ignored, and no detection is used.
Delimiters, decimals, and empty cells
- Commas, semicolons, and tabs all work as separators.
- With semicolons or tabs, a comma is read as the decimal mark, so
23,5is 23.5. - Empty cells,
NaN,-, and#N/Aare skipped, and so are repeated header rows. - A byte-order mark from a spreadsheet export is dropped. The file must be UTF-8.
Times
- ISO times such as
2026-09-29 08:00or2026-09-29T08:00+01:00. - Spreadsheet serial days such as
43326.0034722(Excel dates) are read as times. - A time without an offset is read in the greenhouse time zone, or as UTC when the greenhouse has none. An offset written in the time, or a time column marked UTC, always wins.
- Times are stored in UTC.