Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About some principles and methods in gen_averaging_kernel.py, gen_disc_load.py and gen_spherical_cap.py #135

Open
SingyuTang opened this issue Jul 20, 2023 · 1 comment

Comments

@SingyuTang
Copy link

Hello, when I read your file named gen_averaging_kernel.py, I need to input (gclm, gslm, eclm, eslm, sigma, hw) 6 parameters. I followed the method in Swenson et al. (2002) and made a little modification to the file named gen_harmonics.py to perform spherical harmonic expansion on the basin $\vartheta_{lm}^c,\vartheta_{lm} ^s$ . Here are some of my questions:
(1) When I use gen_harmonics.py to perform spherical harmonic expansion of the basin, the parameter is selected as METHOD='integration', and coeff = 1.0/(4.0*np.pi) is defined in your file, but it seems that this step is not required in the introduction of Swenson et al. (2002), so I removed it, and based on this, I obtained $(\vartheta_{lm}^c ,\vartheta_{lm}^s)$, I think this should be reasonable. Is this available as an input parameter (gclm, gslm) in the gen_averaging_kernel.py file?
(2) You don't seem to have made too many introductions and notes on the gen_harmonics function, and I haven't found it used in other scripts, so I don't know how to calculate your three input parameters (eclm, eslm, sigma)?
(3) By the way, both gen_disc_load.py and gen_spherical_cap.py seem to be closely related to Jacob et al. (2012). I briefly read this paper, but I can’t seem to find a complete derivation formula in the text to support my understanding of the code in your two files and the method used by your code. Can you provide me with some help, or briefly explain the functions of these two files? Where can I find a more complete description of these methods? These two files do not seem to affect my main direction of learning, but I still want to understand the principle.
(4) On the basis of (3), there is a question about mass coefficients and geoid coefficients. I seem to confuse these two. I always think that there is the following relationship between them. It is also possible that I put these two Both definitions are wrong, and the following formula refers to the notation in Wahr et al. (1998).

fomula

But the following code is used in your code to convert mass coefficients to geoid coefficients

# calculate SH degree dependent factors to convert from coefficients
# of mass into normalized geoid coefficients
dfactor = 4.0*np.pi*factors.cmwe/(1.0 + 2.0*factors.l)

This code does not seem to correspond to the above formula. Is it where I confused the concept, and other more forms of spherical harmonic coefficients? Can you help me answer it?

@tsutterley
Copy link
Owner

From Eq. 4 of Jacob et al. (2012) for spherical caps:

$$\left[\begin{matrix}\tilde{C}_{lm} \\ \tilde{S}_{lm}\end{matrix}\right] = \frac{3}{\rho_\textrm{ave}a}\frac{(1 + k_l)}{(2l + 1)^2}~F_l~\tilde{P}_{lm}(cos\theta)\left[\begin{matrix}\cos(m\phi) \\ \sin(m\phi)\end{matrix}\right]$$

From Eqs. 6 and 7 of Wahr et al. (1998) for integrating surface mass density anomalies over a sphere:

$$\left[\begin{matrix}\tilde{C}_{lm} \\ \tilde{S}_{lm}\end{matrix}\right] = \frac{3}{4\pi\rho_\textrm{ave}a}\frac{(1 + k_l)}{(2l + 1)} \iint \sigma(\theta, \phi)~\tilde{P}_{lm}(cos\theta)\left[\begin{matrix}\cos(m\phi) \\ \sin(m\phi)\end{matrix}\right]\sin\theta~d\theta~d\phi$$

The coefficients from Wahr et al. (1998) are a default attribute within the units class (i.e. factors.cmwe). But getting the units for a spherical cap (from Jacob et al., 2012) can be calculated from this default, which is the dfactor you find in the cap program.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants