NOISE:
1. Added mpi option and fixed error in handling wrong file, in extract_corrdata()
2. Fixed error handling in get_stationpairs().
3. Added split_sides() to split corrfile sides and save separately.
4. Added shaping_corrdata() to wrap shaping function, convolving with wavelet.
5. Added split option in merge_pairs().
TYPES:
1. Added CorrData.shaping() to shape the data with wavelet.
2. Added CorrData.save() to wrap saving functions.
3. In CorrData.to_asdf(), save stack_method.
4. Fixed a bug in CorrData.to_egf() where the zero lag was not handled correctly. The negative side was wrong.
UTILS:
1. Added gaussian() and ricker() as the shaping wavelets.
2. Added box_smooth().
DOWNLOADERS:
1. In read_data(), changed default to False for getstainv.
HELPERS:
1. Added wavelet_labels().
MONITORING:
1. Added vpcluster_evaluate_kmean() to find the optimal number of clusters.
DISPERSION:
1. Improved frequency steps in disp_waveform_bp().
STACKING:
1. Synced with stackmaster functions.
CLUSTERING:
1. Automatically determine the optimal number of clusters.
==================================================================