============================================================================== Computing strain and rotation rates in a GPS network with program CALC_STR ============================================================================== 1st step : get a velocity solution 2nd step : triangulate the network 3rd step : compute strain and rotation rates 4th step : plot strain and rotation rates 1st step : =========== to compute strain and rotation rates within a network, one needs a table with : - points coordinate (longitude, latitude) - points velocities (Easting and Northing) - velocity uncertainties (sigma East, sigma North, correlation) - point names the table should list those numbers in this order : lon lat Veast Vnorth sigVe sigVn correl 0 0 0 0 Site-Name and have the format with which those numbers should be read in first line. exemple : combined-sol.dat ---------------- (2f10.3,3x,2f10.3,3x,2f10.3,f9.2,3x,4f6.1,2x,a4) 128.117 -3.775 16.902 16.890 0.611 0.237 0.01 0.0 0.0 0.0 0.0 AMBO 121.436 -1.010 -0.447 13.787 0.844 0.348 0.12 0.0 0.0 0.0 0.0 AMPA 106.849 -6.491 27.448 -12.805 0.360 0.161 -0.04 0.0 0.0 0.0 0.0 BAKO 114.680 -8.147 34.785 -11.919 0.420 0.180 -0.04 0.0 0.0 0.0 0.0 BALI 114.791 -3.867 28.903 -13.823 0.349 0.149 -0.02 0.0 0.0 0.0 0.0 BATU 102.252 -3.786 28.512 11.197 0.359 0.137 -0.02 0.0 0.0 0.0 0.0 BENG 136.248 -1.167 -7.991 87.169 0.715 0.272 0.01 0.0 0.0 0.0 0.0 BIAK 115.031 4.966 32.200 -11.200 1.900 0.600 0.01 0.0 0.0 0.0 0.0 BRUN 110.208 -7.635 31.024 -11.008 0.471 0.204 0.00 0.0 0.0 0.0 0.0 BUTU 107.313 20.999 34.818 -13.269 0.312 0.154 0.00 0.0 0.0 0.0 0.0 CAMP 101.045 13.121 32.519 -7.347 0.350 0.159 -0.02 0.0 0.0 0.0 0.0 CHON 96.834 -12.188 42.953 45.299 0.498 0.305 0.01 0.0 0.0 0.0 0.0 COCO ----------------- 2nd step : =========== then one needs to define and give the program a list of triangles (or any other type of polygon) in which one wishes to compute the strain and rotation rates. this list is to be specified in a file (usually called strain.list) in the following way : - first line : option parameter indicating the type of computation option 1 means compute strain in Delauney triangles option 2 means compute average strain within an array of sites option 3 means compute strain in specified polygons - second line (if option 3): the number of polygons in the following list - from then on, blocks of two lines : - first line : number of points in polygon (triangle=3) - second line : name of sites which define each polygon (3 names for a triangle) exemple1 : strain.list (compute strain and rotation within an array defined by 17 sites) ---------------------- 2 17 BODA CHAU HTIS KINV KUNT KWEH LEGY LEPA MYOT NYAN SAYE THIT TNYO WETL YANG YWEN ZIBI ---------------------- exemple2 : strain.list (compute strain and rotation in 7 triangles listed) ---------------------- 3 7 3 AMBO LIRA SANA 3 AMBO LIRA WAME 3 AMBO SANA TERN 3 AMBO BIAK WAME 3 AMBO TERN BIAK 3 AMPA BATU TOMI 3 AMPA BATU UJPD ---------------------- 3rd step : =========== to compute the rates is very straightforward : a simple command line to invoque the program, with command line arguments. Runstring: calc_str infile: velocity file name (input to calc_str) outfile: strain and rotation file name (output by calc_str) netfile: list of polygons (or array of points) in which strain and rotation are computed (input to calc_str) format: 1=QOCA/FONDA format (map file) 2=Rundle format 3=stacov format 4=QOCA map format (full C) 5=QOCA map format (separate mode) method: 1=least squares fit 2=robust fit example : calc_str combined-sol.dat combined-sol.out 5 strain.list 1 the output file contains many different informations. if only interested in strain and rotation rates, we need to extract to "good" lines. this is done by : grep -v "gamma" combined-sol.out >! combined-sol.strot The output contains principal strain rates magnitude and orientation, rotation rates, and uncertainties computed at given locations (specified centroid of each polygon). example : (combined-sol.strot) ---------------------- * Strain rate estimated in subnetwork * LON LAT EPS1 EPS1SIG EPS2 EPS2SIG CW-SPIN SPINSIG THETA THETASIG TRIANGLE * (deg) (deg) (1/yr) (1/yr) (1/yr) (1/yr) (1/yr) (1/yr) (deg) (deg) corners 126.6179 -4.6282 7.36E-08 2.69E-09 -6.11E-08 6.38E-10 -3.39E-08 7.75E-10 24.5623 0.5725 SUBNET_01 130.9484 -5.3205 1.52E-08 8.75E-10 -6.59E-08 7.04E-10 -4.48E-08 8.61E-10 13.0013 0.6187 SUBNET_02 127.1495 -1.6547 6.54E-08 2.12E-09 -6.08E-08 1.80E-09 -6.81E-08 9.91E-10 39.7314 0.7494 SUBNET_03 134.4398 -3.0064 1.54E-07 1.15E-09 -2.41E-09 9.14E-10 -7.46E-08 1.28E-09 73.6121 0.4129 SUBNET_04 130.5704 -1.3633 3.55E-08 8.90E-10 -1.89E-08 9.68E-10 -1.03E-07 7.89E-10 39.0948 0.5502 SUBNET_05 ----------------------- 4th step : =========== to plot these strain and rotation rates, we separate strains and rotations in different files and use the GMT package to make a strain rate plot and a rotation rate plot. this is done by program strot2gmt. Runstring: strot2gmt infile: the strain and rotation rates file output by calc_str (followed by grep) example : strot2gmt combined-sol.strot strot2gmt outputs a bunch of 6 files named : strain-cmp.dat : contains compressive strain tensors strain-ext.dat : contains extensive strain tensors strain-sts.dat : contains strike-slip strain tensors strain-int.dat : contains the intensity of strain rot-clw.dat : contains the clockwise rotation rates rot-aclw.dat : contains the anti-clockwise rotation rates then, those files are plot using the GMT commands (see GMT manual for complete explanations): - for strain rate tensors : psvelo strain-ext.dat -R -Jm -Sx0.003/1. -W1/255/0/0 -P -O -K -L -V >> strain.ps psvelo strain-sts.dat -R -Jm -Sx0.003/1. -W1/0/255/0 -P -O -K -L -V >> strain.ps psvelo strain-cmp.dat -R -Jm -Sx0.003/1. -W1/0/0/255 -P -O -K -L -V >> strain.ps - for rotation rate wedges : psvelo rot-clw.dat -R -Jm -Sw0.3/0.1745 -W1/0 -G255/0/0 -E120 -D1 -P -O -K -L -V >> rot.ps psvelo rot-aclw.dat -R -Jm -Sw0.3/0.1745 -W1/0 -G0/0/255 -E120 -D1 -P -O -K -L -V >> rot.ps template complete GMT scripts are plot-strain.gmt and plot-rot.gmt automatic procedure =================== a simple shell script (sh-calc_str) can run automatically the last 3 steps in a raw (provided you have created the velocity table and the polygons list files: combined-sol.dat and strain.list) example : sh-calc_str --------------------- # /bin/rm combined-sol.out /bin/rm combined-sol.strot /bin/rm rot-clw.dat /bin/rm rot-aclw.dat /bin/rm strain-cmp.dat /bin/rm strain.ext.dat /bin/rm strain-sts.dat /bin/rm strain-int.dat calc_str combined-sol.dat combined-sol.out 5 strain.list 1 grep -v "gamma" combined-sol.out > ! combined-sol.strot strot2gmt combined-sol.strot plot-strain.gmt plot-rot.gmt ----------------------