Empirical Site Model for GPS Processing
Create an empirical model from GPS undifferenced phase residuals obtained from a GAMIT processing run to mitigate multipath and site-specific effects.
#==============================================================================
#============================================================================== gamit > 10.5 python 2.6 or greater numpy scipy > 0.12 matplotlib
#==============================================================================
#============================================================================== sklearn > 0.15 (needed for functions in esmML.py) - available from http://scikit-learn.org/stable/index.html - or use pip install sklearn
#==============================================================================
#============================================================================== esm.py esmML.py GamitStationFile.py antenna.py residuals.py gpsTime.py
#==============================================================================
#==============================================================================
Copy python files into ~/gg/com cp esm.py ~/gg/com/ cp GamitStationFile.py ~/gg/com/ cp antenna.py ~/gg/com/ cp residuals.py ~/gg/com/ cp gpsTime.py ~/gg/com/
Set your python path to include this directory, for csh:
setenv PYTHONPATH ~/gg/com.
#==============================================================================
#==============================================================================
In order to run the ESM program, GAMIT needs to be configured correctly.
In your sestbl. ensure the following options are selected:
In your autcln.cmd file we recommend using:
POST phs_res_root DPH SINGLE
This will output all of the DPH one way residuals files for each
satelllite into one single file for each site processed.
#=======
To use the sitemodels generated by this program in GAMIT Copy the sitemodels antmod.SSSS to project/tables/
In Sestbl. :
Use site-specific antenna model = Y;
We had to update two files:
gg/gamit/model/open.f
gg/gamit/model/get_antinfo.f
~/gg/com/links.day needs the following line added:
ls -1 ../tables/antmod.???? | xargs -l1 -I % ln -s % ./ >&! /dev/null
#==============================================================================
#==============================================================================
Overview of workflow:
Assuming the station file and antmod file is available in ~/gg/tables/ (if not use --station_file and --antex to pint to the right path)
-Convert the GAMIT .DPH files into a consolidated file that contains the epoch, azimuth, elevation, LC resiudal and prn
python ~/gg/com/esm.py --trav /short/dk5/repro2/2012/ --site YAR2 --network yyyy_dddnN --save_file /short/dk5/repro2/sitemodel/2012/YAR2.2012.DPH.gz
--trav the GAMIT project directory structure to look through to find DPH
files
--network how the GAMIT project sub directories are formated, currently
supports:
yyyy_dddnN (2012_001n2/)
ddd (001) (not tested yet)
--site 4 character if of the station to create an ESM for (upper case or
lower case, no worries)
--save_file filename to save the consolidated residuals to, I use and
extension of .CL3 to distinguish them from the GAMIT .DPH files (but
this is not required)
-Create the ESM from the consolidated file and save it in antex format:
python ~/gg/com/esm.py --model --site yar2 -f ./t/YAR2.2012.CL3
--site 4 character if of the station to create an ESM for (upper case or
lower case, no worries)
--model create the esm model
-f path to the consolidated phase residual file
This will read the consolidate residual file, do some basic outlier
detection, then do a blockmedian on 0.5 grid for all of the phase residuals, and then save the result to antmod.sss