How to determine variance/std deviation of Gaussian noise from measured data
What is typically done is to apply an orthogonal transform (or a close to tight frame) that


preserves the Gaussianity,
better separates the signal and the noise.


Fourier for simple sums of sines, wavelets for piecewise polynomial signals. Then, identify or parse some coefficient bins (bands, wavelet subbands), expecting that signal coefficients are sparse enough. Then, compute a robust scale estimator (like the Median Absolute Deviation, MAD) on the absolute values of the coefficients. And apply some factor to the result. This could work also with band-pass filters, derivative operators, etc.

You can find implementations in Matlab:


wnoisest: Estimate noise of 1-D wavelet coefficients
adapted for Ricean noise: Robust rician noise estimation for 3D MR


References:


Nonlinear wavelet thresholding: A recursive method to determine the optimal denoising threshold