![]() |
CARTA Backend
The backend component of CARTA
|
#include "Casacore.h"
#include <regex>
#include <casacore/casa/OS/File.h>
#include <casacore/casa/Quanta/UnitMap.h>
#include "ImageData/CartaMiriadImage.h"
#include "Logger/Logger.h"
Functions | |
const std::regex | GILDAS_REGEX (" *[a-zA-Z]+[ .]+\\(T[a-zA-Z_]+[*.]*\\) *") |
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. | |
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) |
std::string FormatBeam | ( | const casacore::GaussianBeam & | gaussian_beam | ) |
Formats a Gaussian beam's parameters into a human-readable string.
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.
"major: <value> <unit> minor: <value> <unit> pa: <value> <unit>"
std::string FormatQuantity | ( | const casacore::Quantity & | quantity | ) |
Formats a Casacore quantity into a human-readable string.
This function converts a casacore::Quantity
into a string representation with six decimal places of precision, including its unit.
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.
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.
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.
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.
const std::regex GILDAS_REGEX | ( | " *++\\(T[a-zA-Z_]+[*.]*\\) *" | [a-zA-Z][.] | ) |
bool IsGildasUnit | ( | const casacore::String & | 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.
void NormalizeUnit | ( | casacore::String & | unit | ) |
Normalizes a given unit string to conform to standard Casacore unit conventions (case-sensitive).
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
.
casacore::AipsError | Caught internally when Casacore unit conversions fail. |