SpecGrid Functions
-
void load_specgrid(const char *specgrid_file_name, SpecGrid *specgrid, Stat *stat)
Create a new
SpecGrid
by loading data from a specgrid file.- Parameters
specgrid_file_name – Name of the specgrid file.
specgrid – Returned grid.
stat – Returned status code.
-
void unload_specgrid(SpecGrid specgrid)
Unload a
specgrid
grid, freeing up memory.- Parameters
specgrid – Grid to unload.
-
void get_specgrid_rank(SpecGrid specgrid, int *rank)
Get the rank (dimension) of the grid.
- Parameters
specgrid – Grid object.
rank – Returned rank.
-
void get_specgrid_lam_min(SpecGrid specgrid, double *lam_min)
Get the minimum wavelength of the grid.
- Parameters
specgrid – Grid object.
lam_min – Returned minimum wavelength.
-
void get_specgrid_lam_max(SpecGrid specgrid, double *lam_max)
Get the maximum wavelength of the grid.
- Parameters
specgrid – Grid object.
lam_max – Returned maximum wavelength.
-
void get_specgrid_cache_lam_min(SpecGrid specgrid, double *cache_lam_min)
Get the minimum wavelength of the grid cache.
- Parameters
specgrid – Grid object.
cache_lam_min – Returned minimum wavelength.
-
void get_specgrid_cache_lam_max(SpecGrid specgrid, double *cache_lam_max)
Get the maximum wavelength of the grid cache.
- Parameters
specgrid – Grid object.
cache_lam_max – Returned maximum wavelength.
-
void get_specgrid_cache_count(SpecGrid specgrid, int *cache_count)
Get the number of nodes currently held in the grid cache.
- Parameters
specgrid – Grid object.
cache_count – Returned number of nodes.
-
void get_specgrid_cache_limit(SpecGrid specgrid, int *cache_limit)
Get the maximum number of nodes to hold in the grid cache.
- Parameters
specgrid – Grid object.
cache_limit – Returned maximum number of nodes.
-
void get_specgrid_axis_x_min(SpecGrid specgrid, int i, double *x_min)
Get the minimum value of the i’th grid axis.
- Parameters
specgrid – Grid object.
i – Axis index (beginning at 0).
x_min – Returned minimum value.
-
void get_specgrid_axis_x_max(SpecGrid specgrid, int i, double *x_max)
Get the maximum value of the i’th grid axis.
- Parameters
specgrid – Grid object.
i – Axis index (beginning at 0).
x_max – Returned maximum value.
-
void get_specgrid_axis_label(SpecGrid specgrid, int i, char *label)
Get the label of the i’th grid axis.
- Parameters
photgrid – Grid object.
i – Index of the label (beginning at 0).
axis_label – Buffer to store axis label buffer (at least 17 bytes, to accomodate label plus null terminator).
-
void set_specgrid_cache_lam_min(SpecGrid specgrid, double cache_lam_min, Stat *stat)
Set the minimum wavelength of the grid cache.
- Parameters
specgrid – Grid object.
cache_lam_min – Minimum wavelength.
stat – Returned status code (set to NULL if not required).
-
void set_specgrid_cache_lam_max(SpecGrid specgrid, double cache_lam_max, Stat *stat)
Set the maximum wavelength of the grid cache.
- Parameters
specgrid – Grid object.
cache_lam_max – Maximum wavelength.
stat – Returned status code (set to NULL if not required).
-
void set_specgrid_cache_limit(SpecGrid specgrid, int cache_limit, Stat *stat)
Set the maximum number of notes to hold in the grid cache. Set to 0 to disable caching.
- Parameters
specgrid – Grid object.
cache_limit – Maximum number of nodes.
stat – Returned status code (set to NULL if not required).
-
void interp_specgrid_intensity(SpecGrid specgrid, double x_vec[], double mu, int n, double lam[], double I[], Stat *stat, bool deriv_vec[])
Interpolate the spectroscopic intensity.
- Parameters
specgrid – Grid object.
x_vec – Atmospheric parameter values.
mu – Cosine of angle of emergence relative to surface normal.
n – Number of points in wavelength abscissa.
lam[n] – Wavelength abscissa (Å).
I[n-1] – Returned spectroscopic intensity (erg/cm^2/s/Å/sr) in bins delineated by lam
stat – Returned status code (set to NULL if not required).
deriv_vec – Derivative flags (set to NULL if not required).
-
void interp_specgrid_E_moment(SpecGrid specgrid, double x_vec[], int k, int n, double lam[], double E[], Stat *stat, bool deriv_vec[])
Interpolate the spectroscopic intensity E-moment.
- Parameters
specgrid – Grid object.
x_vec – Atmospheric parameter values.
k – Degree of moment.
n – Number of points in wavelength abscissa.
lam[n] – Wavelength abscissa (Å).
D[n-1] – Returned spectroscopic intensity E-moment (erg/cm^2/s/Å) in bins delineated by lam
stat – Returned status code (set to NULL if not required).
deriv_vec – Derivative flags (set to NULL if not required).
-
void interp_specgrid_D_moment(SpecGrid specgrid, double x_vec[], int l, int n, double lam[], double D[], Stat *stat, bool deriv_vec[])
Interpolate the spectroscopic intensity D-moment.
- Parameters
specgrid – Grid object.
x_vec – Atmospheric parameter values.
l – Harmonic degree of moment.
n – Number of points in wavelength abscissa.
lam[n] – Wavelength abscissa (Å).
D[n-1] – Returned spectroscopic intensity D-moment (erg/cm^2/s/Å) in bins delineated by lam
stat – Returned status code (set to NULL if not required).
deriv_vec – Derivative flags (set to NULL if not required).
-
void interp_specgrid_flux(SpecGrid specgrid, double x_vec[], int n, double lam[], double F[], Stat *stat, bool deriv_vec[])
Interpolate the spectroscopic flux.
- Parameters
specgrid – Grid object.
x_vec – Atmospheric parameter values.
n – Number of points in wavelength abscissa.
lam[n] – Wavelength abscissa (Å).
F[n-1] – Returned spectroscopic flux (erg/cm^2/s/Å) in bins delineated by lam
stat – Returned status code (set to NULL if not required).
deriv_vec – Derivative flags (set to NULL if not required).