# TODO * [from Leïla] Before Step 5. The file should contain only data of the current year. * [from Leïla] Ebas converter. Change "9999.999" to "9999999.9999" in header * [from Leïla] Ebas converter. Update Detection limit values in L2 header: take the ones (1h) from limits_of_detection.yaml * [from Leïla] Ebas converter. Correct errors (uncertainties) that they can't be lower than 0.0001 * [from Leïla] Flag using validity threshold. Change flow rate values to 10% of flow rate ref. * [from Leïla] In Step 1. Creation of a new collection should be an option and not automatic. * [from Leïla] The data chain (except Step 5) should also include Org_mx and Ord_err. To discuss together. * [from Leïla] Step 4.1. Add a step to verify ACSM data with external instruments (MPSS, eBC). To discuss together. * [New] Create data flows to validate and replace existing data chain params. data/campaignData/param/ -> pipelines/params and campaignDescriptor.yaml -> acsm data converter. * [New] DIMA. Add dictionaries to explain variables at different levels. * [New] DIMA. Modify data integration pipeline to not add current datetime in filename when not specified. * [New] DIMA. Set data/ folder as default and only possible output folder * [New] DIMA. Review DataManager File Update. Generated CSV files are not transfering properly. * [New] DIMA. Ensure code snippets that open and close HDF5 files do so securly and do not leave the file locked * [New] DIMA. Revise default csv file reader and enhance it to infer datetime column and format. * [New] Learn how to run docker-compose.yaml * [New] EBAS_SUBMISSION_STEP. Extend time filter to ranges, create a merge data frame function, and construct file name and output dir dynammically. It is currently hardcoded. * [New] Finish command line interface for visualize_datatable_vars and add modes, --flags, --dataset, and save to figures folder in repo * Implement flagging-app specific data operations such as: 1. [New item] When verify flags from checklist is active, enable delete-flag button to delete flag associated with active cell on table. 2. [New item] When verify and ready to trasnfer items on checklist are active, enable record-flags button to record verified flags into the HDF5 file. 3. [New item] When all checklist items active, enable apply button to apply flags to the time series data and save it to the HDF5 file. 1. ~~Define data manager obj with apply flags behavior.~~ 2. Define metadata answering who did the flagging and quality assurance tests? 3. Update intruments/dictionaries/ACSM_TOFWARE_flags.yaml and instruments/readers/flag_reader.py to describe metadata elements based on dictionary. 4. ~~Update DIMA data integration pipeline to allowed user-defined file naming template~~ 5. ~~Design and implement flag visualization feature: click flag on table and display on figure shaded region when feature is enabled~~ 6. Implement schema validator on yaml/json representation of hdf5 metadata 7. Implement updates to 'actris level' and 'processing_script' after operation applied to data/file? * ~~When `Create Flag` is clicked, modify the title to indicate that we are in flagging mode and ROIs can be drawn by dragging.~~ * ~~Update `Commit Flag` logic:~~ ~~3. Update recorded flags directory, and add provenance information to each flag (which instrument and channel belongs to).~~ * Record collected flag information initially in a YAML or JSON file. Is this faster than writing directly to the HDF5 file? * Should we actively transfer collected flags by clicking a button? after commit button is pressed, each flag is now stored in an independent json file * Enable some form of chunk storage and visualization from the HDF5 file. Iterate over chunks for faster display versus access time. 1. Do I need to modify DIMA? 2. What is a good chunk size? 3. What Dash component can we use to iterate over the chunks? ![Screenshot](figures/flagging_app_screenshot.JPG)