Skip to content

Tasks 1-6 of the summer practice 2025#2

Open
Leoni-inoeL wants to merge 5 commits into4sunshine:mainfrom
Leoni-inoeL:main
Open

Tasks 1-6 of the summer practice 2025#2
Leoni-inoeL wants to merge 5 commits into4sunshine:mainfrom
Leoni-inoeL:main

Conversation

@Leoni-inoeL
Copy link
Copy Markdown

This code corresponds to the given tasks of the summer practice and can be used to analyze the magnetic field of the Sun.

@4sunshine 4sunshine self-requested a review July 18, 2025 04:38

b_mean, indices = calculate_b_mean(data, coordinates, center, radius)
rotation_matrix, B_n = create_local_frame(b_mean)
b_local = np.apply_along_axis(transform_field, 3, data, rotation_matrix)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is better to apply_along_axis when there are no other ways.

You can try options like:
reshape B:

‘Nx Ny Nz 3 -> -1, 3
B@rotation.T
-1, 3 -> Nx Ny Nz 3

Or you can also try np.einsum


def calculate_b_mean(data_, coordinates_, center_, radius_):
squared_dist = np.sum((coordinates_ - np.array(center_)) ** 2, axis=-1)
mask = np.array(squared_dist <= radius_**2)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This already should be a np.array, no need to convert again

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

Successfully merging this pull request may close these issues.

2 participants