- Fixed bug where the script would crash when there were inconsistencies or errors in the raw binary stream during the
conversion of
GA_DIAG_CODE
. The crash was found in file2021111013.X00
when extractingSIGNAL_STRENGTH
fromGA_DIAG_CODE
and occurred most likely because of an erroneous raw binary file. In case an error (ValueError
) occurs when trying to readSIGNAL_STRENGTH
, the value is now set to-9999
. Among many files over many years and sites,2021111013.X00
was so far the only file where this error occurred.
- Added: new datablock
QCL-B
, used at site CH-CHA in 2012 - Added: new datablock
QCL-D
, used at site CH-CHA in 2009
- Updated env:
PyQt5
needed specific declaration to work inpoetry
env - Now showing all members when clicking on drop-down menus
- Fixed version number
- Added info about missing
AGC
value from IRGA to datablock infoIRGA75-R1.md
- Added new site
CH-FOR
,CH-HON
andCH-TAN
to site selection
Added info about datablocks recorded by the rECord
data logging script. These files are already logged in ASCII
format and thus they do not need to be converted. Info about these files is stored in bico
, to keep them close
to where info about other datablocks are stored, all in one place. Thus, these files are informational only and are
not used for binary conversions.
- Added: new datablock info file
R350-R1.md
- Added: new datablock info file
IRGA75-R1.md
- Added: new datablock
R350-B
. As it turns out, this datablock was already relevant for R3-50 data logged from 2017 onwards. Up to now we used theR350-A
datablock for these data. The difference is thatR350-B
also records the status address and status data, similar toHS50-A
. The size of the datablock is 12 Byte, old data that were converted using theR350-A
datablock instead ofR350-B
still produced correct data for wind and sonic temperature. - Added pdf
r3-50-manual_200502.pdf
to folder/docs
. This is the manufacturer manual for R3-50 sonic anemometers from Feb 2005. - Updated links to GitHub repo.
- Moved repo to GitLab: https://github.com/holukas/bico
- Added: new datablock
QCL-L
, used at site CH-LAE in 2005 - Added: new datablock
QCL-ISO
, used at site CH-LAE in 2008 (uncertain format) - Added: new datablock
QCL-L2
, used at site CH-LAE in 2005 (uncertain format) - Added pdf
sonicread_20190503.pdf
to folder/docs
. This document describes the logging softwareSonic Anemometer Data Aquisition Program
(sonicread
) used for eddy covariance raw data since 2004 (ongoing). Contains some info about data columns and their conversion to proper units. - Added pdf
qcldoc_20200515.pdf
to folder/docs
. This document describes the logging softwareQuantum Cascade Laser (QCL) Data Aquisition Program
(qclread
) used for Aerodyne QCL instruments and contains some info about column order. - Added pdf
lgrdoc_20180601.pdf
to folder/docs
. This document describes the logging softwareLos Gatos Research (LGR) Data Aquisition Program
(lgrread
) used for Los Gatos LGR instruments and contains some info about column order. - Changed: more padding/width for comboboxes to avoid text cutoffs
- Now using
poetry
for dependency management (instead ofconda
)- The package versions for
pandas
,numpy
,matplotlib
and others remain the same as before
- The package versions for
- Removed:
start_bico.py
(is no longer used) - Removed:
environment.yml
(is no longer used)
- Added: new datablock
QCL-C3
- Added: More descriptions in GUI about what numbers mean, e.g. using
0
forRow Limit Per File
- Improved: Better (clearer) plotting of high-res data
- Changed: Hi-res and aggregated plots do not use scientific notation (e.g.,
1e9
) or an offset (e.g.,+1e9
) - Updated links in sidebar
- CRITICAL FIX: In
bin.py
, the return of lineself.check_if_dblock_size_zero(dblock_true_size=dblock_true_size)
was not stored in any variable, therefore this check seems to not have worked. Line was changed toend_of_data_reached = self.check_if_dblock_size_zero(dblock_true_size=dblock_true_size)
. Then indentation was removed for the following break commandif end_of_data_reached: break # Stop for loop
to really stop the for-loop. I assume this does not have major implications on the conversion but only acts as an additional check if data are still available.
- Fixed: Script folder was wrong when running from CLI
- Added: CLI flag
-a
to avoid duplicates when converting files. Is only considered if script is started via CLI. - Added: CLI flag
-d
to convert only the most recent number of days, e.g.-d 3
to convert files from the last 3 days. Is only considered if script is started via CLI. - Changed: Settings file is now called
BICO.settings
- Added automatic detection of working directory
- Included CLI support for automatic script execution without GUI
- Code refactoring: separated the conversion functions (
BicoEngine
) from GUI (BicoGUI
) - Added: new datablock
QCL-C2
(used at CH-DAV) - Changed: switching back to
conda
for dependency management
BICO
is now usingpoetry
for dependency management and packaging- The virtual env created by
poetry
is specific toBICO
and stored alongside the source code in folder.venv
- Updated Python version to 3.9.7, packages were updated to their newest versions
- Removed
conda
env - Renamed source code folder to
src
- Adjusted folder structure
- Added support for CLI execution
- Solved some minor warnings
- Updated version number to 1.
- bug: removed small naming bug in
HS100-A.md
(SA_DIAG_TYPE
,SA_DIAG_VAL
) - bug:
QCL-A3
was incorrectly labelledQCL-A
in converted raw data files
- added: datablock
IRGA72-A-GN1.dblock
- added: datablock
IRGA72-B-GN1.dblock
- added: link to datablock descriptions
- the BICO run id is now shown in the "BICO finished." text message
- some minor text adjustments, clarifications in datablock descriptions
- bug: wrong number of bits for SIGNAL_STRENGTH in
IRGA72-B.dblock
- bug: reading order for extracted variables was wrong in
IRGA72-B.dblock
- bug: wrong number of bits for AGC in
IRGA75-A.dblock
andIRGA75-A-GN1.dblock
- bug: reading order for extracted variables was wrong in
IRGA75-A.dblock
andIRGA75-A-GN1.dblock
- changed: the
'apply_gain'
option forSIGNAL_STRENGTH
in IRGA72 datablocks was changed from6.6666666666666666
to6.67
to be more in line with their manual. This means that the max signal strength that can be reached is100.05
:IRGA72-A.dblock
IRGA72-B.dblock
- added: median is now also shown in hires plots
- added: link for CHANGELOG
- changed: For QCL and LGR instruments, PRESS_CELL in Torr is now converted to hPa.
For the conversion, the parameter
'apply_gain': 1.33322368
was used (was previously set to1
).
The following .dblock files are affected:- LGR-A.dblock
- QCL-A.dblock
- QCL-A2.dblock
- QCL-A4.dblock
- QCL-C.dblock
- not changed: QCL-A3.dblock because it does not record pressure
- changed: CHANGELOG is now a markup file (.md)
- fixed: GUI now shows correct date for version
- small bug:
IRGA75-A-GN1.dblock
:datablock
was incorrectly namedIRGA75-A
- added: CHANGELOG.txt
- TODO LATER parallelize, multiprocessing?
import multiprocessing as mp print("Number of processors: ", mp.cpu_count())