Module pyaurorax.tools.mosaic
Prepare data and create mosaics.
Classes
class MosaicManager (aurorax_obj)
-
Expand source code
class MosaicManager: """ The MosaicManager object is initialized within every PyAuroraX object. It acts as a way to access the submodules and carry over configuration information in the super class. """ def __init__(self, aurorax_obj): self.__aurorax_obj = aurorax_obj def create( self, prepped_data: Union[MosaicData, List[MosaicData]], prepped_skymap: Union[MosaicSkymap, List[MosaicSkymap]], timestamp: datetime.datetime, cartopy_projection: cartopy.crs.Projection, min_elevation: Union[int, List[int]] = 5, cmap: Optional[Union[str, List[str]]] = None, spect_cmap: Optional[Union[str, List[str]]] = None, image_intensity_scales: Optional[Union[List, Dict]] = None, spect_intensity_scales: Optional[Tuple[int, int]] = None, colormap: Optional[Union[str, List[str]]] = None, # deprecated in v1.10.0 spect_colormap: Optional[Union[str, List[str]]] = None, # deprecated in v1.10.0 ) -> Mosaic: """ Create a mosaic object. Args: prepped_data (pyaurorax.tools.MosaicData): The prepared mosaic data. Generated from a prior `prep_images()` function call. prepped_skymap (pyaurorax.tools.MosaicSkymap): The prepared skymap data. Generated from a prior `prep_skymaps()` function call. timestamp (datetime.datetime): The timestamp to generate a mosaic for. Must be within the range of timestamps for which image data was prepped and provided. cartopy_projection (cartopy.crs.Projection): The cartopy projection to use when creating the mosaic. min_elevation (int): The minimum elevation cutoff when projecting images on the map, in degrees. Default is `5`. cmap (str): The matplotlib colormap to use for the rendered image data. Default is `gray`. Commonly used colormaps are: - REGO: `gist_heat` - THEMIS ASI: `gray` - TREx Blue: `Blues_r` - TREx NIR: `gray` - TREx RGB: `None` A list of all available colormaps can be found on the [matplotlib documentation](https://matplotlib.org/stable/gallery/color/colormap_reference.html). colormap (str): Deprecated as of v1.10.0. Use 'cmap' instead in the exact same way. spect_cmap (str): The matplotlib colormap to use for the colorbar if working with spectrograph data. Default is `gnuplot`. image_intensity_scales (List or Dict): Ranges for scaling images. Either a a list with 2 elements which will scale all sites with the same range, or as a dictionary which can be used for scaling each site differently. Example of uniform scaling across all sites: `image_intensity_scales = [2000, 8000]` Example of scaling each site differently: `image_intensity_scales = {"fsmi": [1000, 10000], "gill": [2000, 8000]}` spect_intensity_scales (Tuple[int]): Min and max values, in Rayleighs, to scale ALL spectrograph data. spect_colormap (str): The name of a matplotlib colormap to use for plotting spectrograph data. Returns: The generated `pyaurorax.tools.Mosaic` object. Raises: ValueError: issues encountered with supplied parameters pyaurorax.exceptions.AuroraXError: general issue encountered """ # handle deprecation warnings use_colormap = False use_spect_colormap = False if (colormap is not None): show_warning("The parameter 'colormap' was deprecated in v1.10.0. Please use 'cmap' instead (usage is identical).", stacklevel=1) use_colormap = True if (spect_colormap is not None): show_warning("The parameter 'spect_colormap' was deprecated in v1.10.0. Please use 'spect_cmap' instead (usage is identical).", stacklevel=1) use_spect_colormap = True # run function if (use_colormap is False and use_spect_colormap is False): # normal return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, cmap, spect_cmap, image_intensity_scales, spect_intensity_scales) elif (use_colormap is True and use_spect_colormap is True): # both deprecated parameters were supplied return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, colormap, spect_colormap, image_intensity_scales, spect_intensity_scales) elif (use_colormap is True and use_spect_colormap is False): # one deprecated parameter was supplied (colormap) return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, colormap, spect_cmap, image_intensity_scales, spect_intensity_scales) else: # one deprecated parameter was supplied (spect_colormap) return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, cmap, spect_colormap, image_intensity_scales, spect_intensity_scales) def prep_images(self, image_list: List[Data], data_attribute: Literal["data", "calibrated_data"] = "data", spect_emission: Literal["green", "red", "blue", "hbeta"] = "green", spect_band: Optional[Tuple[float, float]] = None, spect_band_bg: Optional[Tuple[float, float]] = None) -> MosaicData: """ Prepare the image data for use in a mosaic. Args: image_list (List[pyaurorax.data.ucalgary.Data]): List of image data. Each element of the list is the data for each site. data_attribute (str): The data attribute to use when prepping the images. Either `data` or `calibrated_data`. Default is `data`. spect_emission (str): The emission (green, red, blue, hbeta) to prepare from spectrograph data. Default is 'green' (557.7 nm emission). spect_band (Tuple[float]): Manual selection of the wavelength region to integrate for obtaining emissions. Use this to prepare emissions that are not available in spect_emission. spect_band_bg (Tuple[float]): Manual selection of the wavelength region to subtract from integration for manually chosen emissions, via the spect_band argument. Returns: The prepared data, as a `pyaurorax.tools.MosaicData` object. Raises: ValueError: issues encountered with supplied parameters """ return func_prep_images(image_list, data_attribute, spect_emission, spect_band, spect_band_bg) def prep_skymaps(self, skymaps: List[Skymap], height_km: int, site_uid_order: Optional[List[str]] = None, progress_bar_disable: bool = False, n_parallel: int = 1) -> MosaicSkymap: """ Prepare skymap data for use by the mosaic routine. This is not time-dependent, so it would only need to be done once. Allows for plotting multiple images on a map, masking the boundaries between images by elevation angle. Args: skymaps (List[pyaurorax.data.ucalgary.Skymap]): The skymaps to prep. height_km (int): The altitude to utilize, in kilometers. site_uid_order (List[str]): The site list order. The order of this list is not important for plotting, but must be consistent with the order of the `skymaps` parameter. progress_bar_disable (bool): Disable the progress bar. Defaults to `False`. n_parallel (int): Number of skymaps to prepare in parallel using multiprocessing. Default is `1`. Returns: The prepared skymap data as a `pyaurorax.tools.MosaicSkymap` object. Raises: ValueError: issues encountered with supplied parameters """ return func_prep_skymaps(self.__aurorax_obj, skymaps, height_km, site_uid_order, progress_bar_disable, n_parallel)
The MosaicManager object is initialized within every PyAuroraX object. It acts as a way to access the submodules and carry over configuration information in the super class.
Methods
def create(self,
prepped_data: MosaicData | List[MosaicData],
prepped_skymap: MosaicSkymap | List[MosaicSkymap],
timestamp: datetime.datetime,
cartopy_projection: cartopy.crs.Projection,
min_elevation: int | List[int] = 5,
cmap: str | List[str] | None = None,
spect_cmap: str | List[str] | None = None,
image_intensity_scales: List | Dict | None = None,
spect_intensity_scales: Tuple[int, int] | None = None,
colormap: str | List[str] | None = None,
spect_colormap: str | List[str] | None = None) ‑> Mosaic-
Expand source code
def create( self, prepped_data: Union[MosaicData, List[MosaicData]], prepped_skymap: Union[MosaicSkymap, List[MosaicSkymap]], timestamp: datetime.datetime, cartopy_projection: cartopy.crs.Projection, min_elevation: Union[int, List[int]] = 5, cmap: Optional[Union[str, List[str]]] = None, spect_cmap: Optional[Union[str, List[str]]] = None, image_intensity_scales: Optional[Union[List, Dict]] = None, spect_intensity_scales: Optional[Tuple[int, int]] = None, colormap: Optional[Union[str, List[str]]] = None, # deprecated in v1.10.0 spect_colormap: Optional[Union[str, List[str]]] = None, # deprecated in v1.10.0 ) -> Mosaic: """ Create a mosaic object. Args: prepped_data (pyaurorax.tools.MosaicData): The prepared mosaic data. Generated from a prior `prep_images()` function call. prepped_skymap (pyaurorax.tools.MosaicSkymap): The prepared skymap data. Generated from a prior `prep_skymaps()` function call. timestamp (datetime.datetime): The timestamp to generate a mosaic for. Must be within the range of timestamps for which image data was prepped and provided. cartopy_projection (cartopy.crs.Projection): The cartopy projection to use when creating the mosaic. min_elevation (int): The minimum elevation cutoff when projecting images on the map, in degrees. Default is `5`. cmap (str): The matplotlib colormap to use for the rendered image data. Default is `gray`. Commonly used colormaps are: - REGO: `gist_heat` - THEMIS ASI: `gray` - TREx Blue: `Blues_r` - TREx NIR: `gray` - TREx RGB: `None` A list of all available colormaps can be found on the [matplotlib documentation](https://matplotlib.org/stable/gallery/color/colormap_reference.html). colormap (str): Deprecated as of v1.10.0. Use 'cmap' instead in the exact same way. spect_cmap (str): The matplotlib colormap to use for the colorbar if working with spectrograph data. Default is `gnuplot`. image_intensity_scales (List or Dict): Ranges for scaling images. Either a a list with 2 elements which will scale all sites with the same range, or as a dictionary which can be used for scaling each site differently. Example of uniform scaling across all sites: `image_intensity_scales = [2000, 8000]` Example of scaling each site differently: `image_intensity_scales = {"fsmi": [1000, 10000], "gill": [2000, 8000]}` spect_intensity_scales (Tuple[int]): Min and max values, in Rayleighs, to scale ALL spectrograph data. spect_colormap (str): The name of a matplotlib colormap to use for plotting spectrograph data. Returns: The generated `pyaurorax.tools.Mosaic` object. Raises: ValueError: issues encountered with supplied parameters pyaurorax.exceptions.AuroraXError: general issue encountered """ # handle deprecation warnings use_colormap = False use_spect_colormap = False if (colormap is not None): show_warning("The parameter 'colormap' was deprecated in v1.10.0. Please use 'cmap' instead (usage is identical).", stacklevel=1) use_colormap = True if (spect_colormap is not None): show_warning("The parameter 'spect_colormap' was deprecated in v1.10.0. Please use 'spect_cmap' instead (usage is identical).", stacklevel=1) use_spect_colormap = True # run function if (use_colormap is False and use_spect_colormap is False): # normal return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, cmap, spect_cmap, image_intensity_scales, spect_intensity_scales) elif (use_colormap is True and use_spect_colormap is True): # both deprecated parameters were supplied return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, colormap, spect_colormap, image_intensity_scales, spect_intensity_scales) elif (use_colormap is True and use_spect_colormap is False): # one deprecated parameter was supplied (colormap) return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, colormap, spect_cmap, image_intensity_scales, spect_intensity_scales) else: # one deprecated parameter was supplied (spect_colormap) return func_create(prepped_data, prepped_skymap, timestamp, cartopy_projection, min_elevation, cmap, spect_colormap, image_intensity_scales, spect_intensity_scales)
Create a mosaic object.
Args
prepped_data
:MosaicData
- The prepared mosaic data. Generated from a prior
prep_images()
function call. prepped_skymap
:MosaicSkymap
- The prepared skymap data. Generated from a prior
prep_skymaps()
function call. timestamp
:datetime.datetime
- The timestamp to generate a mosaic for. Must be within the range of timestamps for which image data was prepped and provided.
cartopy_projection
:cartopy.crs.Projection
- The cartopy projection to use when creating the mosaic.
min_elevation
:int
- The minimum elevation cutoff when projecting images on the map, in degrees. Default is
5
. cmap
:str
-
The matplotlib colormap to use for the rendered image data. Default is
gray
.Commonly used colormaps are:
- REGO:
gist_heat
- THEMIS ASI:
gray
- TREx Blue:
Blues_r
- TREx NIR:
gray
- TREx RGB:
None
A list of all available colormaps can be found on the matplotlib documentation.
- REGO:
colormap
:str
- Deprecated as of v1.10.0. Use 'cmap' instead in the exact same way.
spect_cmap
:str
- The matplotlib colormap to use for the colorbar if working with spectrograph
data. Default is
gnuplot
. image_intensity_scales
:List
orDict
-
Ranges for scaling images. Either a a list with 2 elements which will scale all sites with the same range, or as a dictionary which can be used for scaling each site differently.
Example of uniform scaling across all sites:
image_intensity_scales = [2000, 8000]
Example of scaling each site differently:
image_intensity_scales = {"fsmi": [1000, 10000], "gill": [2000, 8000]}
spect_intensity_scales
:Tuple[int]
- Min and max values, in Rayleighs, to scale ALL spectrograph data.
spect_colormap
:str
- The name of a matplotlib colormap to use for plotting spectrograph data.
Returns
The generated
Mosaic
object.Raises
ValueError
- issues encountered with supplied parameters
AuroraXError
- general issue encountered
def prep_images(self,
image_list: List[pyucalgarysrs.data.classes.Data],
data_attribute: Literal['data', 'calibrated_data'] = 'data',
spect_emission: Literal['green', 'red', 'blue', 'hbeta'] = 'green',
spect_band: Tuple[float, float] | None = None,
spect_band_bg: Tuple[float, float] | None = None) ‑> MosaicData-
Expand source code
def prep_images(self, image_list: List[Data], data_attribute: Literal["data", "calibrated_data"] = "data", spect_emission: Literal["green", "red", "blue", "hbeta"] = "green", spect_band: Optional[Tuple[float, float]] = None, spect_band_bg: Optional[Tuple[float, float]] = None) -> MosaicData: """ Prepare the image data for use in a mosaic. Args: image_list (List[pyaurorax.data.ucalgary.Data]): List of image data. Each element of the list is the data for each site. data_attribute (str): The data attribute to use when prepping the images. Either `data` or `calibrated_data`. Default is `data`. spect_emission (str): The emission (green, red, blue, hbeta) to prepare from spectrograph data. Default is 'green' (557.7 nm emission). spect_band (Tuple[float]): Manual selection of the wavelength region to integrate for obtaining emissions. Use this to prepare emissions that are not available in spect_emission. spect_band_bg (Tuple[float]): Manual selection of the wavelength region to subtract from integration for manually chosen emissions, via the spect_band argument. Returns: The prepared data, as a `pyaurorax.tools.MosaicData` object. Raises: ValueError: issues encountered with supplied parameters """ return func_prep_images(image_list, data_attribute, spect_emission, spect_band, spect_band_bg)
Prepare the image data for use in a mosaic.
Args
image_list
:List[Data]
- List of image data. Each element of the list is the data for each site.
data_attribute
:str
- The data attribute to use when prepping the images. Either
data
orcalibrated_data
. Default isdata
. spect_emission
:str
- The emission (green, red, blue, hbeta) to prepare from spectrograph data. Default is 'green' (557.7 nm emission).
spect_band
:Tuple[float]
- Manual selection of the wavelength region to integrate for obtaining emissions. Use this to prepare emissions that are not available in spect_emission.
spect_band_bg
:Tuple[float]
- Manual selection of the wavelength region to subtract from integration for manually chosen emissions, via the spect_band argument.
Returns
The prepared data, as a
MosaicData
object.Raises
ValueError
- issues encountered with supplied parameters
def prep_skymaps(self,
skymaps: List[pyucalgarysrs.data.classes.Skymap],
height_km: int,
site_uid_order: List[str] | None = None,
progress_bar_disable: bool = False,
n_parallel: int = 1) ‑> MosaicSkymap-
Expand source code
def prep_skymaps(self, skymaps: List[Skymap], height_km: int, site_uid_order: Optional[List[str]] = None, progress_bar_disable: bool = False, n_parallel: int = 1) -> MosaicSkymap: """ Prepare skymap data for use by the mosaic routine. This is not time-dependent, so it would only need to be done once. Allows for plotting multiple images on a map, masking the boundaries between images by elevation angle. Args: skymaps (List[pyaurorax.data.ucalgary.Skymap]): The skymaps to prep. height_km (int): The altitude to utilize, in kilometers. site_uid_order (List[str]): The site list order. The order of this list is not important for plotting, but must be consistent with the order of the `skymaps` parameter. progress_bar_disable (bool): Disable the progress bar. Defaults to `False`. n_parallel (int): Number of skymaps to prepare in parallel using multiprocessing. Default is `1`. Returns: The prepared skymap data as a `pyaurorax.tools.MosaicSkymap` object. Raises: ValueError: issues encountered with supplied parameters """ return func_prep_skymaps(self.__aurorax_obj, skymaps, height_km, site_uid_order, progress_bar_disable, n_parallel)
Prepare skymap data for use by the mosaic routine. This is not time-dependent, so it would only need to be done once.
Allows for plotting multiple images on a map, masking the boundaries between images by elevation angle.
Args
skymaps
:List[Skymap]
- The skymaps to prep.
height_km
:int
- The altitude to utilize, in kilometers.
site_uid_order
:List[str]
- The site list order. The order of this list is not important for plotting, but must be
consistent with the order of the
skymaps
parameter. progress_bar_disable
:bool
- Disable the progress bar. Defaults to
False
. n_parallel
:int
- Number of skymaps to prepare in parallel using multiprocessing. Default is
1
.
Returns
The prepared skymap data as a
MosaicSkymap
object.Raises
ValueError
- issues encountered with supplied parameters