Skeleton#

class synthesizAR.Skeleton(strands)[source]#

Bases: object

Construct magnetic field skeleton fieldlines

Parameters:

strands (list of Strand objects) – List of objects containing the information about each strand in the magnetic skeleton.

Examples

>>> import synthesizAR
>>> import astropy.units as u
>>> strand = synthesizAR.Strand('strand', SkyCoord(x=[1,4]*u.Mm, y=[2,5]*u.Mm, z=[3,6]*u.Mm, frame='heliographic_stonyhurst', representation_type='cartesian'), [1e2,1e3] * u.G)
>>> field = synthesizAR.Skeleton([strand,])

Attributes Summary

all_coordinates

Coordinates for all stands in the skeleton.

all_coordinates_centers

Coordinates for all grid cell centers of all strands in the skeleton

all_cross_sectional_areas

Cross-sectional areas for all strands concatenated together.

all_widths

Widths for all strands concatenated together

Methods Summary

configure_loop_simulations(interface, **kwargs)

Configure hydrodynamic simulations for each strand object

from_asdf(filename)

Restore a Skeleton instance from an ASDF file

from_coordinates(coordinates[, field_strengths])

Construct Skeleton from list of coordinates and field strengths

get_chromosphere_mask(footpoint_height)

Returns result of synthesizAR.Strand.get_chromosphere_mask for all strands in skeleton.

load_loop_simulations(interface[, filename, ...])

Load results from hydrodynamic results.

peek(**kwargs)

Plot strand coordinates on the solar disk.

refine_strand(strand, delta_s, **kwargs)

refine_strands(delta_s, **kwargs)

Interpolate strand coordinates and field strengths to a specified spatial resolution and return a new Skeleton object.

to_asdf(filename)

Serialize this instance of Skeleton to an ASDF file

Attributes Documentation

all_coordinates#

Coordinates for all stands in the skeleton.

Note

This should be treated as a collection of points and NOT a continuous structure.

all_coordinates_centers#

Coordinates for all grid cell centers of all strands in the skeleton

Note

This should be treated as a collection of points and NOT a continuous structure.

all_cross_sectional_areas#

Cross-sectional areas for all strands concatenated together.

Note

These are the cross-sectional areas evaluated at the center of the strand.

all_widths#

Widths for all strands concatenated together

Methods Documentation

configure_loop_simulations(interface, **kwargs)[source]#

Configure hydrodynamic simulations for each strand object

classmethod from_asdf(filename)[source]#

Restore a Skeleton instance from an ASDF file

Examples

>>> import synthesizAR
>>> restored_field = synthesizAR.Skeleton.from_asdf('/path/to/skeleton.asdf')
classmethod from_coordinates(coordinates, field_strengths=None, **kwargs)[source]#

Construct Skeleton from list of coordinates and field strengths

Parameters:
  • coordinates (list of SkyCoord objects) – Coordinate of each strand

  • field_strengths (list of Quantity) – Scalar magnetic field strength along the strand

get_chromosphere_mask(footpoint_height: Unit('Mm'))[source]#

Returns result of synthesizAR.Strand.get_chromosphere_mask for all strands in skeleton.

load_loop_simulations(interface, filename=None, parallelize=False, emission_model=None)[source]#

Load results from hydrodynamic results.

Parameters:
  • interface (model interface object) – Interface to the hydrodynamic simulation from which to load the results

  • filename (str or path-like) – Path to zarr store to write hydrodynamic results to

  • parallelize (bool) – If True and a distributed.Client exists, load loop simulations in parallel.

  • emission_model (synthesizAR.atomic.EmissionModel) – Emission model that specifies the ions used in the emission modeling process. This can be optionally specified in order to load the time-dependent ionization fractions for some models.

peek(**kwargs)[source]#

Plot strand coordinates on the solar disk.

static refine_strand(strand, delta_s: Unit('cm'), **kwargs)[source]#
refine_strands(delta_s: Unit('cm'), **kwargs)[source]#

Interpolate strand coordinates and field strengths to a specified spatial resolution and return a new Skeleton object.

This can be important in order to ensure that an adequate number of points are used to represent each fieldline when binning intensities onto the instrument grid.

to_asdf(filename)[source]#

Serialize this instance of Skeleton to an ASDF file