#include <ReadFitsGeometry.hpp>
Public Member Functions | |
double | centerX () const |
double | centerY () const |
double | density (Position bfr) const override |
string | filename () const |
Position | generatePosition () const override |
double | inclination () const |
int | numPixelsX () const |
int | numPixelsY () const |
double | pixelScale () const |
double | positionAngle () const |
double | scaleHeight () const |
double | SigmaX () const override |
double | SigmaY () const override |
double | SigmaZ () const override |
Public Member Functions inherited from GenGeometry | |
int | dimension () const override |
virtual double | density (Position bfr) const =0 |
virtual int | dimension () const =0 |
virtual Position | generatePosition () const =0 |
virtual double | SigmaX () const =0 |
virtual double | SigmaY () const =0 |
virtual double | SigmaZ () const =0 |
Public Member Functions inherited from SimulationItem | |
template<class T > | |
T * | find (bool setup=true) const |
template<class T > | |
T * | interface (int levels=-999999, bool setup=true) const |
virtual string | itemName () const |
void | setup () |
string | typeAndName () const |
Public Member Functions inherited from Item | |
Item (const Item &)=delete | |
virtual | ~Item () |
void | addChild (Item *child) |
const vector< Item * > & | children () const |
virtual void | clearItemListProperty (const PropertyDef *property) |
void | destroyChild (Item *child) |
virtual bool | getBoolProperty (const PropertyDef *property) const |
virtual vector< double > | getDoubleListProperty (const PropertyDef *property) const |
virtual double | getDoubleProperty (const PropertyDef *property) const |
virtual string | getEnumProperty (const PropertyDef *property) const |
virtual int | getIntProperty (const PropertyDef *property) const |
virtual vector< Item * > | getItemListProperty (const PropertyDef *property) const |
virtual Item * | getItemProperty (const PropertyDef *property) const |
virtual string | getStringProperty (const PropertyDef *property) const |
int | getUtilityProperty (string name) const |
virtual void | insertIntoItemListProperty (const PropertyDef *property, int index, Item *item) |
Item & | operator= (const Item &)=delete |
Item * | parent () const |
virtual void | removeFromItemListProperty (const PropertyDef *property, int index) |
virtual void | setBoolProperty (const PropertyDef *property, bool value) |
virtual void | setDoubleListProperty (const PropertyDef *property, vector< double > value) |
virtual void | setDoubleProperty (const PropertyDef *property, double value) |
virtual void | setEnumProperty (const PropertyDef *property, string value) |
virtual void | setIntProperty (const PropertyDef *property, int value) |
virtual void | setItemProperty (const PropertyDef *property, Item *item) |
virtual void | setStringProperty (const PropertyDef *property, string value) |
void | setUtilityProperty (string name, int value) |
virtual string | type () const |
Protected Member Functions | |
ReadFitsGeometry () | |
void | setupSelfBefore () override |
Protected Member Functions inherited from GenGeometry | |
GenGeometry () | |
Protected Member Functions inherited from Geometry | |
Geometry () | |
Random * | random () const |
void | setupSelfBefore () override |
Protected Member Functions inherited from SimulationItem | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
Protected Member Functions inherited from Item | |
Item () | |
Private Types | |
using | BaseType = GenGeometry |
using | ItemType = ReadFitsGeometry |
Private Member Functions | |
void | deproject (double &x) const |
void | derotate (double &x, double &y) const |
void | project (double &x) const |
void | rotate (double &x, double &y) const |
Private Attributes | |
double | _C1x |
double | _C1y |
double | _C2x |
double | _C2y |
double | _C3x |
double | _C3y |
double | _C4x |
double | _C4y |
double | _centerX |
double | _centerY |
double | _cosi |
double | _cospa |
double | _deltax |
string | _filename |
Array | _image |
double | _inclination |
int | _numPixelsX |
int | _numPixelsY |
int | _nx |
int | _ny |
int | _nz |
double | _pixelScale |
double | _positionAngle |
double | _scaleHeight |
double | _sini |
double | _sinpa |
double | _xmax |
double | _xmin |
Array | _Xv |
double | _ymax |
double | _ymin |
Friends | |
class | ItemRegistry |
The ReadFitsGeometry class is a subclass of the GenGeometry class, and describes a geometry characterized by observations. A 2D observed image FITS file is read into SKIRT
, and deprojected assuming a certain position angle and inclination. The density is assumed to follow a exponential profile in the vertical directions,
\[ \rho(z) = \rho_0\, \exp\left(-\frac{|z|}{h_z}\right). \]
By running a SKIRT
simulation with inclination of 0 degrees and position angle of the simulated galaxy, the SKIRT
model images can be compared with the observations. The model geometry is set by nine parameters: the input filename, the pixel scale \(pix\), the position angle \(pa\), the inclination \(incl\), the number of pixels in x and y direction \(n_x\) and \(n_y\), the center of galaxy in (x,y) image coordinates \(x_c\) and \(y_c\) and the vertical scale height \(h_z\).
This item type is displayed only if the Boolean expression "Level2" evaluates to true after replacing the names by true or false depending on their presence.
|
inlineprotected |
Default constructor for concrete Item subclass ReadFitsGeometry : "a geometry read from a 2D FITS file" .
|
inline |
This function returns the value of the discoverable double property centerX : "x coordinate of the center (in pixels)" .
The minimum value for this property is "]0" .
|
inline |
This function returns the value of the discoverable double property centerY : "y coordinate of the center (in pixels)" .
The minimum value for this property is "]0" .
|
overridevirtual |
This function returns the density \(\rho(x,y,z)\) at the position (x,y,z).
Implements Geometry.
|
private |
This function deprojects the x coordinate of a point in the inclined plane into the x coordinate of that point in the world coordinate system. The following operation is applied:
\[x=\frac{x'}{\cos{\theta}}\]
where \(\theta\) is the inclination.
|
private |
This function transforms a set of x and y coordinates in the plane of the image into the x and y coordinates in the (derotated) inclined plane. The transformation matrix is the inverse of the matrix used for the rotate function.
|
inline |
This function returns the value of the discoverable string property filename : "the name of the input image file" .
|
overridevirtual |
This function generates a random position \((x,y,z)\) from the geometry, by drawing a random point from the appropriate probability density distribution function. The \((x,y)\) coordinates are derived from the normalized cumulative luminosity vector of the observed 2D projection. The z coordinate is derived from the vertical exponential probability distribution function.
Implements Geometry.
|
inline |
This function returns the value of the discoverable double property inclination : "the inclination angle θ of the system" .
This property represents a physical quantity of type "posangle" .
The minimum value for this property is "[0 deg" .
The maximum value for this property is "90 deg[" .
The default value for this property is given by the conditional value expression "0 deg" .
|
inline |
This function returns the value of the discoverable integer property numPixelsX : "number of pixels in the x direction" .
The minimum value for this property is "1" .
|
inline |
This function returns the value of the discoverable integer property numPixelsY : "number of pixels in the y direction" .
The minimum value for this property is "1" .
|
inline |
This function returns the value of the discoverable double property pixelScale : "the physical scale of the image (length per pixel)" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "]0" .
|
inline |
This function returns the value of the discoverable double property positionAngle : "the position angle ω of the system" .
This property represents a physical quantity of type "posangle" .
The minimum value for this property is "-360 deg" .
The maximum value for this property is "360 deg" .
The default value for this property is given by the conditional value expression "0 deg" .
|
private |
This function projects the x coordinate of a point in the world coordinate system into the x coordinate of that point in the inclined plane. The following operation is applied:
\[x'=x\cdot \cos{\theta}\]
where \(\theta\) is the inclination.
|
private |
This function transform a set of x and y coordinates in the inclined plane into the x and y coordinates in the (rotated) plane of the image. The transformation matrix \(\bf{T}\) is given by:
\[ {\bf{T}} = \begin{pmatrix} \cos\omega & -\sin\omega & 0 \\ \sin\omega & \cos\omega & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \]
where \(\omega\) is the position angle.
|
inline |
This function returns the value of the discoverable double property scaleHeight : "the scale height" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "]0" .
|
overrideprotectedvirtual |
This function verifies the validity of the pixel scale, the inclination angle, the number of pixels in the x and y direction, the center of the image in x and y coordinates and the vertical scale height \(h_z\). A vector of normalized cumulative pixel luminosities is computed, satisfying the condition that the total mass equals 1.
Reimplemented from Geometry.
|
overridevirtual |
This function returns the X-axis surface density, i.e. the integration of the density along the entire X-axis,
\[ \Sigma_X = \int_{-\infty}^\infty \rho(x,0,0) \, \text{d} x \]
Implements Geometry.
|
overridevirtual |
This function returns the Y-axis surface density, i.e. the integration of the density along the entire Y-axis,
\[ \Sigma_Y = \int_{-\infty}^\infty \rho(0,y,0) \, \text{d} y \]
Implements Geometry.
|
overridevirtual |
This function returns the Z-axis surface density, i.e. the integration of the density along the entire Z-axis,
\[ \Sigma_Z = \int_{-\infty}^\infty \rho(0,0,z) \, \text{d} z \]
Implements Geometry.