Processing of adcp deployment ca09 at 0, 140w A technical memorandum describing the processing methods for subsurface RDI narrowband ADCPs deployed in the Equatorial Pacific by PMEL is located on the PMEL web page under publications: Cont #: 2635 Plimpton, P.E., H.P. Freitag, and M.J. McPhaden (2004): Processing of subsurface ADCP data in the equatorial Pacific. NOAA Tech. Memo. OAR PMEL-125 (PB2004-105254), 41 pp. [PDF Version] http://www.pmel.noaa.gov/pubs/PDF/plim2635/plim2635.pdf On the unix machine I have defined: setenv bcprog ~OCRD/plimpton/ndbc/prog setenv bcadcp ~OCRD/plimpton/ndbc/adcp setenv bclogadcp ~OCRD/plimpton/ndbc/adcp/logadcp setenv bcraw ~OCRD/plimpton/ndbc/adcp/raw setenv bcplots ~OCRD/plimpton/ndbc/adcp/plots setenv bcproc ~OCRD/plimpton/ndbc/adcp/proc setenv bcsen ~OCRD/plimpton/ndbc/adcp/sensors Also for sontek: setenv bcs ~OCRD/plimpton/ndbc/sontek setenv bcsraw ~OCRD/plimpton/ndbc/sontek/raw setenv bcsplots ~OCRD/plimpton/ndbc/sontek/plots setenv bcsproc ~OCRD/plimpton/ndbc/sontek/proc look at deployment and recovery log sheets to determine time of anchor drop and release: hr mn dy mo yr anchor drop: 22 05 19 9 03 start date/time for processed data almost 2 hours after drop: 00 00 20 9 03 jd 263 7062 release: 20 39 11 9 04 end date/time 20 00 11 9 04 adcp 20 30 11 9 04 pres sensor* jd 255 58594 * pressure sensor records data every 10 minutes and adcp records data hourly Put raw binary adcp data (140w.001 thru 140w.022) on pc desktop Also have 140WBLK1.DAT file which is made while extracting raw data from adcp and contains instrument setup information Also have EXTRACT.LOG file on status of extracting adcp data from eprom recorder go to c prompt on pc, move to directory with raw adcp data logadcp software found in ~OCRD/plimpton/ndbc/adcp/logadcp run logadcp program by typing (~your pc location)\logadcp enter 140w.001 hit c key for convert enter ca09 exit program, it will have made ascii files ca09.001 to ca09.075 on the pc transfer ascii files ca09.001 to ca09.075 from the pc to the unix machine in $bcraw directory while in the bcraw directory run rdadcpascii prog to convert CA09.001 to CA09.075 to ascii files: ca09.head, ca09.vel, ca09.amp. ca09.good $bcprog/rdadcpascii Program RDADCPASCII Enter input file name: CA09.000 LLead,LVel,LAmp,LPGood,LStatus? (T/F) t t t t f Stem of output filenames: ? ca09 Log file name: ca09_conv.log Header Output filename: ca09.head Velocity Output filename: ca09.vel Amplitude Output filename: ca09.amp % Good Output filename: ca09.good Starting year? 03 Starting and ending ensemble numbers? (just put in 1 to large number) 1 9990 Minutes to add to time word? 0 There are 44 bins available Enter starting and ending bin numbers 1 44 Input file name: CA09.000 Ensemble No. 1, Time 8 24 0 0 3 Ensemble No. 127, Time 8 29 6 0 3 . . Input file name: CA09.075 Ensemble No. 9244, Time 9 12 3 0 4 so adcp data were recorded from 0000 24aug03 to 0300 12sep04 makes $bcraw: ca09.amp,ca09.good,ca09.head,ca09.vel,ca09_conv.log Open $bcraw/ca09.head file and locate the line numbers that correspond to the start and end times of the adcp data: line 649 = 0000 20sep03 line 9237 = 2000 11sep04 649 9 20 0 0 3 0 3 0 300 44 8 8 4 0 1 0 1 0 0 1536 60 25 1791 3 1063 348 160 108 1 1 0 2 9237 9 11 20 0 4 0 3 0 300 44 8 8 4 0 1 0 1 0 0 1536 60 25 2978 2 1147 316 141 96 0 1 0 0 Put line 649 and 9237 into $bcproc/ext_head3.in file and run adcp_ext_head3 $bcprog/adcp_ext_head3 < $bcproc/ext_head3.in makes ca09.tilt file that has several variables including pitch, roll and temperature Next go to $bcsen and process pressure sensor data according to $bcsen/proc.notes Now convert echo amplitudes $bcraw/ca09.amp to approximate target strength so that surface reflection is a maximum for the deployment open $bcraw/ca09.amp file and determine the minimum echo amplitude for each of the 4 beams. For ca9 I used beam1= 130 beam2=121 beam3=126 beam4=148 enter these into the target_strength3.f program for Eref() and compile. $bcprog/target_strength3 < $bcproc/target_strength_ca9.in converts $bcraw/ca09.amp to $bcraw/ca09.tar_str From statistics of TP pressure (bcplots/TPpres_hist.gif) know that mean=293.59 min=289.53 max=338.60 estimate the bin number that would intersect the surface for the min and max depths. The first bin is 1bin + blank =~ 13 and pressure sensor is 2m below transducer 339-15=324 bin 36 with 9m bin widths 289-15=274 bin 30 with 9m bin widths so set the bin range for polfit_to_tgstrnew.in as 27 to 40 and the depth range as 257 to 355 $bcprog/polfit_to_tgstrnew < $bcproc/polfit_to_tgstrnew.in make plot of transducer depth from target strength versus transducer depth from TP pressure sensor can give you plotting software and command files if you get displaa software: $bcplots/regtptg.indat makes $bcplots/regtptg.gif edit out points where surface reflection too small, use 25 db $bcprog/ed_tgstr < $bcproc/edit_tgr_strnew.in converts $bcraw/polfit_to_tgstrnew2.dat to $bcraw/polfit_to_tgstrnew2_ed25.dat make plot of transducer depth from target strength edited versus transducer depth from TP pressure sensor $bcplots/regtptg_ed.indat makes $bcplots/regtptg_ed.gif see that difference between transducer depth from target strength edited and transducer depth from TP pressure sensor is -4.57. Will use this in remap programs later adjust velocities for sound velocity, use mean salinity of 34.86 from microcat and use half hourly temperatures from TP to compute sound velocity at transducer. Every other half hourly temperature averages are used since adcp data are collected at 1st 15 minutes of the hour. $bcprog/fix_surfsndvel < fix_surfsndvel_ca9.in makes $bcraw/ca09_tc.vel CA09 data do not need to be rotated as pre compass calibration was -.10 and post calibration was .4 Below is a sample command file to run rotate_adcp for previous deployment CA08 $bcprog/rotate_adcp < rotate_ca8.in This is only an example !! Next from the historical ctd file (mean_ctd.140w) compute the mean sigmat between the surface and the mean transducer pressure. $bcprog/compute_sigmat_2 < $bcproc/sigmat.in For 292db mean sigma_t = 25.92739 average density = 1.02593 ___________________________________________________________ Next map the data to standard depths with remap_subdata_adjdepth.f Input nArrays new_ymin new_ydel new_numbins outfile theta nom_bw nom_pulse nom_blnk vel_or_amp tlat mean_tdepth(z) depth_adj sidelobe_deepening: narrays = 1, new_ymin=new start depth, new_ydel=new delta depth, new_numbins=new number of depth bins, outfile, theta=20degrees, nom_bin=nominal bin width=8, nom_pulse=nominal pulse length=8, nom_blnk=nominal blanking=4, whether you are processing a velocity or and amplitude file (amplitude signal is collected in the last 1/4 of the pulse), tlat=latitude, mean transducer depth in meters (not db) adjusted for 2.0m difference between the transducer and the pressure sensor = 290m, depth_adj = depth adjustment determined from the regression between the target strength transducer depth and the pressure sensor transducer depth = 4.57, amount to deepen sidelobe cutoff depth (=2. if adjust depth) depthoffset,density,itype,transdepth/1stgooddepth_outfilename,actual_depth_outfilename: depth difference between transducer and pressure sensor = 2.0 from log sheets, average density computed above, itype = 1 means do not set data bad if shallower than sidelobe cutoff and itype = 0 means set data bad if shallower than sidelobe cutoff, name of outfile to output transducer depth, shallowest good depth for profile calculated from (trans_depth*(1-cos(theta))+bin_width +sidelobe adj) and 1st good mapped depth, name of outfile to output actual depth,u,v,err or actual depth, beam1 amp, beam2 amp, beam4 amp next lines are standard read_array inputs the num_ctd_depths num_ctd_var & ctd_file_name nskip ctd_ydel are the same for all deployments which have max depths less than 500m. ___________________________________________________ See $bcproc/remap_data_ca9.in for remapping as described below: First map all the depths even those above the surface and do not set data bad for sidelobe cutoff: $bcprog/remap_subdata_adjustdepth < $bcproc/remap_data_ca9.in map vel from -115 to 315, no sidelobe cutoff make daily average: $bcprog/adcp_avg3 Program ACDP_AVG3 Enter input filename: bcraw/ca09_m115_5_adjdepth.vel Enter output filename: bcraw/ca09d_m115_5_adjdepth.vel Starting and ending ensemble dates? 0 00 20 9 03 23 00 10 9 04 Number of ensembles over which to average? 24 Minimum good per average? 12 Bad data flag? 5120 Make contour plots to make sure everything looks ok $bcplots/cc_remap_vel.indat ! I will give plotting software if you get DISPLAA $bcplots/uvcontour.gif $bcprog/remap_subdata_adjustdepth < $bcproc/remap_data_ca9.in map amp from -115 to 315, no sidelobe cutoff make daily average: $bcprog/adcp_avg3 Program ACDP_AVG3 Enter input filename: bcraw/ca09_m115_5_adjdepth.amp Enter output filename: bcraw/ca09d_m115_5_adjdepth.amp Starting and ending ensemble dates? 0 00 20 9 03 23 00 10 9 04 Number of ensembles over which to average? 24 Minimum good per average? 12 Bad data flag? 5120 Make contour plots to make sure everything looks ok $bcplots/cc_remap_amp.indat ! I will give plotting software if you get DISPLAA $bcplots/beam1.gif beam2.gif beam3.gif beam4.gif Next map the depths beginning at a 10m depth with 5 meter delta depth and set data bad if shallower than sidelobe cutoff depth: $bcprog/remap_subdata_adjustdepth < $bcproc/remap_data_ca9.in map vel from 10 to 315, with sidelobe cutoff make daily average: $bcprog/adcp_avg3 Program ACDP_AVG3 Enter input filename: bcraw/ca09_10_5_adjdepth.vel Enter output filename: bcraw/ca09d_10_5_adjdepth.vel Starting and ending ensemble dates? 0 00 20 9 03 23 00 10 9 04 Number of ensembles over which to average? 24 Minimum good per average? 12 Bad data flag? 5120 $bcprog/remap_subdata_adjustdepth < $bcproc/remap_data_ca9.in map amp from 10 to 315, with sidelobe cutoff $pprog/remap_subdata < remap_data_ca9.in make daily average: $bcprog/adcp_avg3 Program ACDP_AVG3 Enter input filename: bcraw/ca09_10_5_adjdepth.amp Enter output filename: bcraw/ca09d_10_5_adjdepth.amp Starting and ending ensemble dates? 0 00 20 9 03 23 00 10 9 04 Number of ensembles over which to average? 24 Minimum good per average? 12 Bad data flag? 5120 Make sample hourly profile plots throughout the deployment to make sure that sidelobe cutoff depth is deep enough and profiles of vel and amplitude look right w/r/t the surface. Overplot the mapped data (dashed) (bcraw/ca09_10_5_adjdepth.vel) on the unmapped data (line) (bcraw/ca09_m115_5_actd_adjdepth.vel) I will give you the uniplt plotting program when you get DISPLAA $bcplots/pl_prof.indat makes: prof1.gif prof2.gif prof3.gif as samples ___________________________________________________ Now make mapped adcp velocity file that is extrapolated to shallower depths to intercompare with sontek argonaut velocities: can put in the number of bins to extrapolate - use 4 bins to get 5m value most of the time with depths of this deployment: $bcprog/remap_subdata_extrapolate_set < $bcproc/remap_extrapolate.in makes ca09_5_5_adjdepth_ext4.vel make daily average: $bcprog/adcp_avg3 Program ACDP_AVG3 Enter input filename: bcraw/ca09_5_5_adjdepth_ext4.vel Enter output filename: bcraw/ca09d_5_5_adjdepth_ext4.vel Starting and ending ensemble dates? 0 00 20 9 03 23 00 10 9 04 Number of ensembles over which to average? 24 Minimum good per average? 12 Bad data flag? 5120 Make regression plots to make sure that adcp data agrees with sontek argonaut data (deployment pm395 and pm438) to 5 cm/s in speed and 5 degrees in direction. Exclude daily directions when the daily speed is less than 5.0 cm/s for either instrument. I will give you the uniplt plotting program when you get DISPLAA $bcplots/pltreg_all_pm438.indat makes: $bcplots/pltreg_all_pm438a.gif and $bcplots/pltreg_all_pm438b.gif convert format of adcp data (hourly and daily) to give to Dai McClurg to put onto the TOA web page. $bcprog/rdipak_mem < $bcproc/pakrdi140.in makes bcraw/ca9h.adcp and bcraw/ca9d.adcp These go to Dai McClurg and I am done.