SourceXtractorPlusPlus
0.13
Please provide a description of the project.
SEFramework
SEFramework
FITS
FitsImageSource.h
Go to the documentation of this file.
1
17
/*
18
* FitsImageSource.h
19
*
20
* Created on: Feb 21, 2018
21
* Author: mschefer
22
*/
23
24
#ifndef _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_
25
#define _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_
26
27
#include <memory>
28
#include <vector>
29
#include <map>
30
31
#include <boost/lexical_cast.hpp>
32
33
#include "
SEFramework/CoordinateSystem/CoordinateSystem.h
"
34
#include "
SEFramework/Image/ImageSourceWithMetadata.h
"
35
#include "
SEFramework/FITS/FitsFileManager.h
"
36
#include "
SEFramework/FITS/FitsFile.h
"
37
#include "
SEUtils/VariantCast.h
"
38
39
40
namespace
SourceXtractor
{
41
42
class
FitsImageSource
:
public
ImageSource
,
public
std::enable_shared_from_this
<ImageSource> {
43
public
:
44
45
54
FitsImageSource
(
const
std::string
&
filename
,
int
hdu_number = 0,
ImageTile::ImageType
image_type =
ImageTile::AutoType
,
55
std::shared_ptr<FitsFileManager>
manager =
FitsFileManager::getInstance
());
56
57
FitsImageSource
(
const
std::string
&
filename
,
int
width,
int
height,
ImageTile::ImageType
image_type,
58
const
std::shared_ptr<CoordinateSystem>
coord_system =
nullptr
,
bool
append=
false
,
59
std::shared_ptr<FitsFileManager>
manager =
FitsFileManager::getInstance
());
60
61
virtual
~FitsImageSource
() =
default
;
62
63
std::string
getRepr
()
const override
{
64
return
m_filename
;
65
}
66
68
int
getWidth
()
const override
{
69
return
m_width
;
70
}
71
73
int
getHeight
()
const override
{
74
return
m_height
;
75
}
76
77
std::shared_ptr<ImageTile>
getImageTile
(
int
x
,
int
y
,
int
width,
int
height)
const override
;
78
79
void
saveTile
(
ImageTile
& tile)
override
;
80
81
template
<
typename
TT>
82
bool
readFitsKeyword
(
const
std::string
& header_keyword, TT& out_value)
const
{
83
auto
& headers =
getMetadata
();
84
auto
i = headers.find(header_keyword);
85
if
(i != headers.end()) {
86
out_value = VariantCast<TT>(i->second.m_value);
87
return
true
;
88
}
89
return
false
;
90
}
91
92
int
getHDU
()
const
{
93
return
m_hdu_number
;
94
}
95
96
ImageTile::ImageType
getType
()
const override
{
97
return
m_image_type
;
98
}
99
100
std::unique_ptr<std::vector<char>
>
getFitsHeaders
(
int
& number_of_records)
const
;
101
102
const
std::map<std::string, MetadataEntry>
getMetadata
()
const override
{
103
return
m_fits_file
->getHDUHeaders(
m_hdu_number
);
104
}
105
106
void
setMetadata
(
std::string
key,
MetadataEntry
value)
override
;
107
108
private
:
109
void
switchHdu
(fitsfile* fptr,
int
hdu_number)
const
;
110
111
int
getDataType
()
const
;
112
int
getImageType
()
const
;
113
114
std::string
m_filename
;
115
std::shared_ptr<FitsFile>
m_fits_file
;
116
std::shared_ptr<FitsFileManager>
m_manager
;
117
118
int
m_hdu_number
;
119
120
int
m_width
;
121
int
m_height
;
122
ImageTile::ImageType
m_image_type
;
123
};
124
125
}
126
127
128
#endif
/* _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_ */
SourceXtractor::FitsImageSource
Definition:
FitsImageSource.h:42
std::string
STL class.
std::shared_ptr
STL class.
SourceXtractor::FitsImageSource::saveTile
void saveTile(ImageTile &tile) override
Definition:
FitsImageSource.cpp:195
conf.filename
string filename
Definition:
conf.py:63
SourceXtractor::FitsImageSource::FitsImageSource
FitsImageSource(const std::string &filename, int hdu_number=0, ImageTile::ImageType image_type=ImageTile::AutoType, std::shared_ptr< FitsFileManager > manager=FitsFileManager::getInstance())
Definition:
FitsImageSource.cpp:47
SourceXtractor::FitsImageSource::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
FitsImageSource.h:68
SourceXtractor::FitsImageSource::m_filename
std::string m_filename
Definition:
FitsImageSource.h:114
SourceXtractor::FitsImageSource::getRepr
std::string getRepr() const override
Human readable representation of this source.
Definition:
FitsImageSource.h:63
SourceXtractor::FitsImageSource::m_width
int m_width
Definition:
FitsImageSource.h:120
SourceXtractor::FitsImageSource::m_manager
std::shared_ptr< FitsFileManager > m_manager
Definition:
FitsImageSource.h:116
CoordinateSystem.h
SourceXtractor::FitsImageSource::getFitsHeaders
std::unique_ptr< std::vector< char > > getFitsHeaders(int &number_of_records) const
Definition:
FitsImageSource.cpp:230
SourceXtractor::FitsImageSource::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
FitsImageSource.h:73
SourceXtractor::FitsImageSource::getHDU
int getHDU() const
Definition:
FitsImageSource.h:92
SourceXtractor::ImageTile
Definition:
ImageTile.h:34
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::FitsFileManager::getInstance
static std::shared_ptr< FitsFileManager > getInstance()
Definition:
FitsFileManager.h:47
ImageSourceWithMetadata.h
SourceXtractor::FitsImageSource::m_hdu_number
int m_hdu_number
Definition:
FitsImageSource.h:118
SourceXtractor::FitsImageSource::m_height
int m_height
Definition:
FitsImageSource.h:121
std::enable_shared_from_this
SourceXtractor::MetadataEntry
Definition:
ImageSource.h:39
std::map
STL class.
SourceXtractor::FitsImageSource::getDataType
int getDataType() const
Definition:
FitsImageSource.cpp:297
SourceXtractor::FitsImageSource::~FitsImageSource
virtual ~FitsImageSource()=default
SourceXtractor::ImageSource
Definition:
ImageSource.h:52
SourceXtractor::FitsImageSource::m_image_type
ImageTile::ImageType m_image_type
Definition:
FitsImageSource.h:122
VariantCast.h
SourceXtractor::FitsImageSource::m_fits_file
std::shared_ptr< FitsFile > m_fits_file
Definition:
FitsImageSource.h:115
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::FitsImageSource::setMetadata
void setMetadata(std::string key, MetadataEntry value) override
Definition:
FitsImageSource.cpp:274
SourceXtractor::FitsImageSource::getMetadata
const std::map< std::string, MetadataEntry > getMetadata() const override
Definition:
FitsImageSource.h:102
SourceXtractor::ImageTile::AutoType
@ AutoType
Definition:
ImageTile.h:38
SourceXtractor::FitsImageSource::getType
ImageTile::ImageType getType() const override
Definition:
FitsImageSource.h:96
SourceXtractor::FitsImageSource::readFitsKeyword
bool readFitsKeyword(const std::string &header_keyword, TT &out_value) const
Definition:
FitsImageSource.h:82
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
std::unique_ptr
STL class.
SourceXtractor::ImageTile::ImageType
ImageType
Definition:
ImageTile.h:37
SourceXtractor::FitsImageSource::getImageType
int getImageType() const
Definition:
FitsImageSource.cpp:313
FitsFile.h
FitsFileManager.h
SourceXtractor::FitsImageSource::switchHdu
void switchHdu(fitsfile *fptr, int hdu_number) const
Definition:
FitsImageSource.cpp:214
SourceXtractor::FitsImageSource::getImageTile
std::shared_ptr< ImageTile > getImageTile(int x, int y, int width, int height) const override
Definition:
FitsImageSource.cpp:174
Generated by
1.8.20