LAST CHANGED : Sun Mar 10 00:23:31 UTC 2019 CRUISE NAME(S) : km1001c CRUISE DATES : 2010/01/30 17:41:17 to 2010/02/01 15:49:15 SHIP NAME : Kilo Moana PORTS : Coos Bay, OR to Coos Bay, OR CHIEF SCIENTIST : Brian Taylor DATABASE NAME : a_km DATA FILES : km2010_029_63671.raw to km2010_031_50400.raw STATUS : to do done ------ ----------- averaged [ x ] loaded [ x ] NOTE: heading correction instrument exists NOTE: time-dependent heading corrections applied IN the ensembles (see cal/rotate/ens_hcorr.ang) check heading correction [ x ] calibration [ x ] edited [ x ] re-check heading correction [ x ] check editing [ x ] figures [ x ] INSTRUMENT : os38 ACQUISITION : PROGRAM : uhdas PROCESSING: : python LOGGING : PARAMETERS : BT : bottom track mode (on or off) SI : sampling interval or averaging period for ensemble (sec) NB : number of bins BL : bin length (m) TD : transducer depth (m) BK : blanking length (m) HO : heading offset applied by DAS (deg) HB : heading bias (deg) CRPH : compensation for roll-pitch-heading, 1:on, 0:off) yy/mm/dd hh:mm:ss BT SI NB BL TD BK HO HB CRPH 2010/01/30 17:46:11 off 300 70 24 7 16 44.55 0.00 0001 HEADING : PRIMARY : heading from gyro CORRECTION : heading correction from posmv NOTE: time-dependent heading corrections applied IN the ensembles (see cal/rotate/ens_hcorr.ang) POSITIONS : gps positions from posmv CALIBRATION : original heading alignment: 44.55 additional rotation 0 final transducer angle is: (original transducer angle) - (rotate_angle) original scale factor 1.006 additional scale factor (none) COMMENTS : all clean PROCESSOR : J.Hummon --- processing parameters ---------- ## (determined from "sonar"): model = os ## (determined from "sonar"): frequency = 38 ## (determined from "sonar"): pingtype = nb ## (determined from "sonar"): instname = os38 badbeam None beamangle 30 configtype python cruisename km1001c datatype uhdas dbname aship ens_len 300 fixfile aship.gps hcorr_inst posmv pgmin 50 proc_engine python ref_method refsm refuv_smoothwin 3 refuv_source nav sonar os38nb txy_file aship.gps xducer_dx 0 xducer_dy 0 yearbase 2010 Process UHDAS data using Python ============================================= (1) directory setup: create a working directory for this cruise mkdir km1001c_fullproc cd km1001c_fullproc (1a) get some information about this cruise: uhdas_info.py --logfile uhdas_info.txt ../../uhdas_data/km1001c cat uhdas_info.txt We see: - positions from ashtech and posmv - headings from gyro, posmv and ashtech - 138 files; all present (1b) configuration file for processing: In order to use CODAS Python processing, we need to generate a suitable configuration file, containing instructions for processing such as transducer depth, transducer angle and ancillary data sources (heading and attitude). This new file contains modern settings and modern syntax for the specified ship: create a new file, with modern syntax and variable names, and then edit as needed. # In km1001c_fullproc make a directory called 'config' mkdir config cd config # and run: uhdas_proc_gen.py -s km # This creates a file called "km_proc.py" # copy to a new version for our cruise (use the cruisename "km1001c"): cp km_proc.py km1001c_proc.py #Edit the file and add these four (4) # lines to the top of km1001c_proc.py # full path to uhdas data directory (do not use relative path) uhdas_dir = '/home/currents/programs/qpy_demos/uhdas_data/km1001c' yearbase = 2010 # usually year of first data logged shipname = 'Kilo Moana' # for documentation cruiseid = 'km1001c' # for titles # go back one level cd .. (2) now we can use that file. Set up the processing directory by typing: adcptree.py os38nb --datatype uhdas --cruisename km1001c NOTE: Now there is no error message about missing configuration files (3) (a) change directories to ADCP processing directory just created cd os38nb NOTE: there is a "config" directory and it has a copy of the file km1001c_proc.py that we created in #2 (b) create a quick_adcp.py control file unix: this example is written as a bash "heredoc" for cut-and-past ease, but you can create q_py.cnt with an editor to have the parts between (or including) the comments windows: - you can create q_py.cnt with an editor to have the parts between (or including) the comments - it may be easier to call it "q_py.txt" to avoid fighting with your editor, which may try to set the suffix cat << EOF > q_py.cnt ####----- begin q_py.cnt------------ ## all lines after the first "#" sign are ignored ## python processing --yearbase 2010 --cruisename km1001c # used to identify configuration files # *must* match prefix of files in config dir --update_gbin ## NOTE: You should generally remake gbins ## - you are not sure ## - if parameters for averaging changed ## - various other reasons. ## ==> MAKE SURE you move the original gbin directory ## to another name first!! # --py_gbindirbase gbin # (will put them adjacent to q_py.cnt) --configtype python ## <=== USE THE NEW FILE WE CREATED --sonar os38nb --dbname aship --datatype uhdas --ens_len 300 --ping_headcorr ## applies heading correction. ## settings found in config files --max_search_depth 3000 ## use topography for editing? ## 0 = "always use amplitude to guess the bottom; ## flag data below the bottom as bad ## -1 = "never search for the bottom" ## positive integer: use ADCP amp to autodetect ## the bottom. Only do this in "deep water", ## i.e. topo says bottom is deeper than this EOF (c) run quick_adcp.py: quick_adcp.py --cntfile q_py.cnt --------- (4) review the data (a) check calibration:heading correction device: figview.py cal/rotate/*png conclude: no action needed (b) check calibration: **watertrack** ------------ Number of edited points: 34 out of 35 amp = 1.0074 + -0.0033 (t - 30.3) phase = 0.05 + 0.1635 (t - 30.3) median mean std amplitude 1.0080 1.0074 0.0064 phase 0.0900 0.0511 0.4541 ------------------- (c) look at the data: dataviewer.py (5) edit "gautoedit" cd edit gautoedit.py # apply editing: cd .. quick_adcp.py --steps2rerun apply_edit:navsteps:calib --auto # check editing -- looks OK dataviewer.py (6) - check calibrations again **watertrack** ------------ Number of edited points: 34 out of 35 amp = 1.0071 + -0.0020 (t - 30.3) phase = 0.05 + 0.1809 (t - 30.3) median mean std amplitude 1.0080 1.0071 0.0058 phase 0.0900 0.0494 0.4431 ------------ still need scale factor: quick_adcp.py --steps2rerun rotate:navsteps:calib --rotate_amplitude 1.007 --auto **watertrack** ------------ Number of edited points: 34 out of 35 amp = 1.0001 + -0.0018 (t - 30.3) phase = 0.05 + 0.1840 (t - 30.3) median mean std amplitude 1.0010 1.0001 0.0058 phase 0.0935 0.0496 0.4439 ------------ phase correction is very small: quick_adcp.py --steps2rerun rotate:navsteps:calib --rotate_angle 0.06 --auto **watertrack** ------------ Number of edited points: 34 out of 35 amp = 1.0001 + -0.0018 (t - 30.3) phase = -0.01 + 0.1828 (t - 30.3) median mean std amplitude 1.0010 1.0001 0.0057 phase 0.0365 -0.0095 0.4437 ------------ OK, done (7) make plots: quick_web.py --interactive - or, to use the same sections as were used in the postprocessing demo mkdir webpy cp ../../km1001c_postproc/os38nb/webpy/sectinfo.txt webpy quick_web.py --redo - view with a browser, look at webpy/index.html (8) extract data adcp_nc.py adcpdb contour/os38nb km1001c_demo os38nb quick_adcp.py --steps2rerun matfiles --auto ---- done with processing. Add os38nb/cruise_info.txt to the top of this file. Edit with correct info