CARTA Backend
The backend component of CARTA
Loading...
Searching...
No Matches
Casacore.h File Reference
#include <carta-protobuf/enums.pb.h>
#include <casacore/images/Images/ImageInterface.h>
#include <casacore/images/Images/ImageOpener.h>
#include <casacore/scimath/Mathematics/GaussianBeam.h>
Include dependency graph for Casacore.h:
This graph shows which files directly or indirectly include this file:

Functions

casacore::String GetResolvedFilename (const std::string &root_dir, const std::string &directory, const std::string &file, std::string &message)
 Resolves a file path based on a given root directory and relative subdirectory.
 
casacore::ImageOpener::ImageTypes CasacoreImageType (const std::string &filename)
 Determines the image type of a given filename using Casacore.
 
CARTA::FileType FolderImageType (const std::string &folder_path, std::string &message)
 Determines the image type of a directory. Returns unknown for all files.
 
void GetSpectralCoordPreferences (casacore::ImageInterface< float > *image, bool &prefer_velocity, bool &optical_velocity, bool &prefer_wavelength, bool &air_wavelength)
 Determines the spectral coordinate preferences based on an image's native spectral type.
 
std::string FormatBeam (const casacore::GaussianBeam &gaussian_beam)
 Formats a Gaussian beam's parameters into a human-readable string.
 
std::string FormatQuantity (const casacore::Quantity &quantity)
 Formats a Casacore quantity into a human-readable string.
 
void NormalizeUnit (casacore::String &unit)
 Normalizes a given unit string to conform to standard Casacore unit conventions (case-sensitive).
 
bool IsGildasUnit (const casacore::String &unit)
 Check if input unit string is in the format used by the GILDAS CLASS software.
 

Function Documentation

◆ CasacoreImageType()

casacore::ImageOpener::ImageTypes CasacoreImageType ( const std::string &  filename)
inline

Determines the image type of a given filename using Casacore.

This function utilizes casacore::ImageOpener::imageType to identify the type of an image file based on its name.

Parameters
[in]filenameA string reference to the path to the image file..
Returns
The image type as a casacore::ImageOpener::ImageTypes value.
Here is the caller graph for this function:

◆ FolderImageType()

CARTA::FileType FolderImageType ( const std::string &  folder_path,
std::string &  message 
)

Determines the image type of a directory. Returns unknown for all files.

Parameters
[in]folder_pathThe folder path to check, represented as a string.
[out]messageError message if an image but not a supported type
Returns
The CARTA::FileType of the directory, unknown if not an image.

This function determines the image type of a directory. If not an image, returns UNKNOWN type.

Note
If the path is a file, does not check type and returns UNKNOWN.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FormatBeam()

std::string FormatBeam ( const casacore::GaussianBeam &  gaussian_beam)

Formats a Gaussian beam's parameters into a human-readable string.

Parameters
[in]gaussian_beamThe reference to the Casacore Gaussian beam object whose parameters will be formatted.
Returns
A formatted string containing the beam's major axis, minor axis, and position angle, including their respective units.

This function retrieves the major axis, minor axis, and position angle (PA) of a given casacore::GaussianBeam and formats them into a structured string with six decimal places of precision.

Note
The output format is: "major: <value> <unit> minor: <value> <unit> pa: <value> <unit>"
Here is the caller graph for this function:

◆ FormatQuantity()

std::string FormatQuantity ( const casacore::Quantity &  quantity)

Formats a Casacore quantity into a human-readable string.

Parameters
[in]quantityA reference to a Casacore Quantity object that represents the quantity to be formatted.
Returns
A formatted string in the form of "<value> <unit>", where <value> is displayed with six decimal places.

This function converts a casacore::Quantity into a string representation with six decimal places of precision, including its unit.

Here is the caller graph for this function:

◆ GetResolvedFilename()

casacore::String GetResolvedFilename ( const std::string &  root_dir,
const std::string &  directory,
const std::string &  file,
std::string &  message 
)

Resolves a file path based on a given root directory and relative subdirectory.

Parameters
[in]root_dirA string refence to the root directory in which the file is expected to reside.
[in]directoryA string refence to the relative directory path within the root directory.
[in]fileA string refence to the name of the file to resolve.
[out]messageA reference to a string that will contain an error message if the resolution fails.
Returns
The resolved absolute filename as a casacore::String if successful, otherwise an empty string.

This function constructs an absolute file path using a specified root directory, a relative subdirectory, and a file name. It checks whether the resulting file path exists and is readable. If any issue is encountered, an error message is set.

Here is the caller graph for this function:

◆ GetSpectralCoordPreferences()

void GetSpectralCoordPreferences ( casacore::ImageInterface< float > *  image,
bool &  prefer_velocity,
bool &  optical_velocity,
bool &  prefer_wavelength,
bool &  air_wavelength 
)

Determines the spectral coordinate preferences based on an image's native spectral type.

Parameters
[in]imagePointer to a casacore::ImageInterface<float> representing the image whose spectral coordinate system will be analyzed.
[out]prefer_velocityA boolean value set to true if velocity-based representation is preferred.
[out]optical_velocityA boolean value set to true if optical velocity representation is preferred.
[out]prefer_wavelengthA boolean value set to true if wavelength-based representation is preferred.
[out]air_wavelengthA boolean value set to true if air wavelength representation is preferred.

This function analyses the spectral coordinate system of the provided image and sets preference flags for velocity, wavelength, and their specific variations. It considers the image's native spectral type and applies special handling for CartaMiriadImage types.

Note
If the image contains a spectral axis, its native type is determined and used to update the preference flags accordingly.
Warning
The function modifies the output parameters in place; ensure they are initialized properly.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsGildasUnit()

bool IsGildasUnit ( const casacore::String &  unit)

Check if input unit string is in the format used by the GILDAS CLASS software.

Parameters
[in]unitA unit string to check.
Returns
true if a GILDAS unit.

This function uses regex to check if unit is in the GILDAS CLASS software format "unit (Ttype)" where the "type" describes the temperature T. It also tests for casacore Unit name changes where " " and "*" are replaced with ".". For example: "K (Ta*)" --> "K.(Ta.)" in casacore.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NormalizeUnit()

void NormalizeUnit ( casacore::String &  unit)

Normalizes a given unit string to conform to standard Casacore unit conventions (case-sensitive).

Parameters
[in,out]unitA string reference to the unit string to normalise. It is modified in place with the corrected and validated unit name if possible.

This function converts various unit representations into their standardised Casacore equivalents. It replaces non-standard units with correct forms, fixes case inconsistencies, and removes invalid characters. Additionally, it attempts to map the unit to a valid Casacore unit using UnitMap::fromFITS and UnitVal::check.

Note
If the unit contains a recognized prefix, the function attempts to normalise with and without the prefix.
Warning
If the unit cannot be resolved to a known Casacore unit, it remains unchanged.
Exceptions
casacore::AipsErrorCaught internally when Casacore unit conversions fail.
Here is the call graph for this function:
Here is the caller graph for this function: