DOCUMENTATION

SYNOPSIS

PERL PROGRAM NAME: iVA.pm 
AUTHOR: Juan Lorenzo
DATE:   Nov 1 2012,
        sept. 13 2013
        oct. 21 2013
        July 15 2015
        Aug 18 2016
        Jan 7 2017

DESCRIPTION: 
Version: 1.0
Package used for interactive velocity analysis
Version 1.0.1 separates graphics from calculations
Version 1.0.2 removes dependency on Config-Simple
Version 1.0.3 considers scaleco or scalel in header

USE

NOTES

Examples

SEISMIC UNIX NOTES

CHANGES and their DATES

Jan 13 2020 Version 1.0.3 _get_data_scale is now calculated internally data_scale parameter removed from gui

STEPS

set defaults

VELAN DATA m/s

import and then

instantiate iclasses

establish hash of shared variables

Instantiate classes:

Option to create a new version of the package 
with a unique name

Import Special Variables

Get configuration information from gui

VELAN DATA 
must be in units of: m/s
must seed first cdp

Set the type of messages you will receive
for now it also sets the CDP number to use
so keep it after setting cdp numbers

Import directory definitions

subroutine clear

sets all variable strings to '' 

sub _get_data_scale

get scalco or scalel from file header

instantiate class

subroutine set_message

define the message family to use
alsoset the cdp nuber (TODO: move option elsewhere)

subroutine message

instructions 

subroutine TV pick file out

subroutine TV pick file in 

look for old data

There is an old pick file to read
textfile_in: ivpicks_old
Requires knowing current cdp number
becaus we are at the start of the process
we will provide the lowest cdp as an indicator
TODO: check all old cdp data files before going on
   to subsequent analyses

subroutine cdp

sets cdp number to consider and is used only 
by sub start 

subroutine cdp_num_suffix

sets cdp number suffix to consider 
used by subs start and next

subroutine start

sets first cdp  to use internally
  and display in the messages 
sets the type of messages to relay
sets the counter for attempts at velocity
analysis for a particular cdp

subroutine pick

Picking data
send cdp number to subroutine 
update cdp_num_suffix
and update the Tvel_outbound.
delete output of previous semblance

  -replot 1st semblance
  -PICK V-T pairs
  -Increment number of tries.
   Semblance display becomes interactive
   when number_of_tries >= 1
   Because display blocks flow,
   place message before semblance
   

sub next

1. increment cdp
   update variable variables
      (cdp_num_suffix, Tvel_inbound and Tvel_outbound)
   Exit if beyond last cdp 
2. reset prompt
   reset the number of tries to zero again
3. Otherwise display the first semblance
  -Based on semblance,
    decide whether to PICK or move on to NEXT CDP
   -radio_buttons stop flow

 delete output of previous semblance
 delete the output of semblance and iSunmo
 delete the output of Vrms2Vint 

subroutine exit

Calculate NMO

0. Message to user
1. delete the output of previous semblance 
2. calculations
3. message is needed because semblance halts flow
   when number_of_tries >0

subroutine icp_sorted_2_old_picks
When user wants to recheck the data  velocity_increment
this subroutine will allow the user to recheck  using an old sorted file
Juan M. Lorenzo
Jan 10 2010

   input file is ivpicks_sorted
   output pick file 
   text file out: ivpicks_old 

sub _iVrms2Vint

Purpose: Convert Vrms to Vinterval  
Juan M. Lorenzo
April 7 2009 
Nov. 19 2013

sub iVpicsk2par_Vpicks

Purpose: Prepare velocity picks for
input to Sunmo 
Interactive mode
Juan M. Lorenzo
April 7 2009
Adapted from Forel and Pennington's iva.sh script
Nov 19 2013

sub semblance

Purpose: Generate Velocity Analysis 
         and Plot the results 

subroutine Write_All_iva_out.pl
Purpose: Write out best vpicked files from iVA 
needs sufile name and cdp number