Yet another and IMO simpler way is to use Distort->Glass filter with custom texture. There are several points to keep in mind though:
1. For some strange reason PS requires texture PSD to be in Multichannel mode for it to be used as texture in Glass filter. At least this is so in my CS5. That's really annoying but the workaround is to use simple action:
Convert to Multichannel mode.
Save the document
Return to pre-conversion state in the History panel.
2. The image should be with the background, if it's not already so. The best way is to place some background behind your image, select both layers and convert them to Smart Object. Then apply Glass filter to it.
3. If you use Smart Objects, then, for just about all filters, taking some external files as a parameter, there is a simple way to make PS reread the texture for filter. Just simply turn the eye icon for this filter off and back on
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
. You can include these steps in the action I mentioned above
In your case texture file should be the Grayscale image with some wavy gradient. Just make a Black to White gradient then add a Curves adjustment layer and draw some horizontal wavy curve someplace around 50% level.
For aberration part simply apply the same Glass filter to each individual RGB channel with slightly different parameters.