Giter VIP home page Giter VIP logo

accode's Introduction

README 

This is the README file for the Matlab code to process AC data.

==========================================================================
Section 1:
General code organization
==========================================================================
The AC processing code consists of the following types of code:
A)  Scripts to hold the processing logic
B)  Data objects to hold the data, and the functions to process the data
C)  Output data files, plots, and a processing log

Data is processed by YEAR_DAY - a 24 hour period of data which is part of a 
CRUISE_LEG which is part of a CRUISE.

==========================================================================
Section 2:
Main processing files
==========================================================================
The code specifically contains the following scripts:

1)  accode.ini             - a text .ini file, editable to set all the 
                             parameters needed for processing.  Controls how
                             data is processed as well as what processing 
                             takes place.

2)  RUN_CODE.m             - a script to run one/more days of code all at once

3)  IngestManager.m        - a script to call the objects and methods needed  
                             for ingesting raw data files

4)  PreProcessingManager.m - a script to call the objects and methods needed
                             for finding the TSW/FSW transitions in a/c data,
                             flow, and valve data; checking transitions 
                             (manually if necessary); synchronizing a/c data
                             with flow/valve data; separating TSW/FSW

5)  ProcessingManager      - a script to call the objects and methods needed
                             to process the separated a/c TSW/FSW data

6)  OutputManager          - a script to do the final processing needed to 
                             output various file formats (SeaBASS) and final
                             plots

7)  CheckManager           - a script to read SeaBASS data files and output 
                             plots for visual checking purposes


==========================================================================
Section 3:
Setting up a new cruise to process
==========================================================================
The code looks for three folders to put data in:
- Processed Data & Plots for each YEAR_DAY(for now set to: PROCESSED/ )
- A Log file for each YEAR_DAY (for now set to: LOGS/ )
- A directory for saving intermittant files during processing that will get 
overwritten by the next YEAR_DAY processed (for now set to: TEMP/ )
	
1.  Create a directory for each of these, if it doesn't already exist,
and update accode.ini to reference the full path for each of these files.
	
2.  Make sure prepacs.exe is executable by your system.  You might need to 
put it on your path.
	
3.  Update accode.ini to hold all the variables you want for 
processing
		
	Change the paths for your DATA/ LOGS/ PROCESSED/ and TEMP/ directories. 
	Change other variables based on how you want to process the data

4.  Update the import methods for each data type you are using (ac, tsg, flow, etc.)
(See section 4)
	
5.  Run RUN_CODE.m

==========================================================================
Section 4:
Setting up data files
==========================================================================
In this code, the data sources are decoupled from the data types. This means
that different cruises can have the data stored in different formats and 
very little code needs to be changed.  

Before any code can be run, the import functions for importing your raw data 
need to be created.  You can do this manually, or automatically in Matlab.
Four examples are given:
    importfileACS     - the script used for TaraMed to import data output 
                        by prepacs.exe for .bin AC files
    importfileACS_dat - the script used for TaraMed to import data output
                        by prepacs.exe for .dat AC files
    importfileFlow    - the script used for TaraMed to import flow files
                        containing flow and valve data
    importfileTSG     - the script used for TaraMed to import TSG files
                        containing 
It is the job of the "importfiles" to know the file layout of the file and 
identify the data correctly.  The easiest thing might be to edit one of the existing
import files to fit your data.

When IngestManager runs, the objects that call the import methods and assign the data appropriately are:
    ACFileLoader
    GPSFileLoader
    TSGFileLoader

It is the job of the FileLoaders to call the correct import method and assign 
the raw data appropriately to the correct data object

After running IngestManager, the assigned data is now in the data objects:
    ACData
    TemperatureData
    SalinityData
    GPSData
    FlowData
    ValveData

It now no longer matters how the raw data was initally stored, it is now in 
a uniform data structure.


==========================================================================
Section 5:
Editing TSW/FSW transitions manually
==========================================================================
1.  Set MANUAL_MODE = true in accode.ini
2.  Run RUN_CODE.m.  It will stop at the section necessary to be run manually/
3.  Open PreProcessingManager.  Follow the directions when you get to the manual 
    sections.
4.  If you need to re-run the code with the data you set manually, set 
    REPROCESS_MANUAL = true; (keep MANUAL_MODE = false;)

accode's People

Contributors

wendyneary avatar doizuc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.