@@ -50,8 +50,8 @@ static const std::string ASSOC_COPY { "assoc-copy" };
5050static const std::string ASSOC_COLUMNS { " assoc-columns" };
5151static const std::string ASSOC_COORD_TYPE { " assoc-coord-type" };
5252static const std::string ASSOC_SOURCE_SIZES { " assoc-source-sizes" };
53- static const std::string ASSOC_SOURCE_WIDTHS { " assoc-source-widths" };
54- static const std::string ASSOC_SOURCE_HEIGHTS { " assoc-source-heights" };
53+ static const std::string ASSOC_SOURCE_HALF_WIDTHS { " assoc-source-half -widths" };
54+ static const std::string ASSOC_SOURCE_HALF_HEIGHTS { " assoc-source-half -heights" };
5555static const std::string ASSOC_DEFAULT_PIXEL_SIZE { " assoc-default-pixel-size" };
5656static const std::string ASSOC_GROUP_ID { " assoc-group-id" };
5757static const std::string ASSOC_CONFIG { " assoc-config" };
@@ -82,6 +82,16 @@ const std::map<std::string, AssocModeConfig::AssocCoordType> assoc_coord_type_ta
8282 std::make_pair (" WORLD" , AssocModeConfig::AssocCoordType::WORLD)
8383};
8484
85+ const std::string COLUMN_X = " x" ;
86+ const std::string COLUMN_Y = " y" ;
87+ const std::string COLUMN_RA = " ra" ;
88+ const std::string COLUMN_DEC = " dec" ;
89+ const std::string COLUMN_WEIGHT = " weight" ;
90+ const std::string COLUMN_GROUP_ID = " group_id" ;
91+ const std::string COLUMN_PIXEL_SIZE = " pixel_size" ;
92+ const std::string COLUMN_PIXEL_HALF_WIDTH = " pixel_half_width" ;
93+ const std::string COLUMN_PIXEL_HALF_HEIGHT = " pixel_half_height" ;
94+
8595std::vector<int > parseColumnList (const std::string& arg) {
8696 if (arg.size () > 0 ) {
8797 try {
@@ -131,11 +141,11 @@ std::map<std::string, Configuration::OptionDescriptionList> AssocModeConfig::get
131141 {ASSOC_COORD_TYPE.c_str (), po::value<std::string>()->default_value (" PIXEL" ),
132142 " Assoc coordinates type: PIXEL, WORLD" },
133143 {ASSOC_SOURCE_SIZES.c_str (), po::value<int >()->default_value (-1 ),
134- " Column containing the source sizes (in reference frame pixels)" },
135- {ASSOC_SOURCE_WIDTHS .c_str (), po::value<int >()->default_value (-1 ),
136- " Column containing the source widths (in reference frame pixels)" },
137- {ASSOC_SOURCE_HEIGHTS .c_str (), po::value<int >()->default_value (-1 ),
138- " Column containing the source heights (in reference frame pixels)" },
144+ " Column containing the source radius (in reference frame pixels)" },
145+ {ASSOC_SOURCE_HALF_WIDTHS .c_str (), po::value<int >()->default_value (-1 ),
146+ " Column containing the source half width (in reference frame pixels)" },
147+ {ASSOC_SOURCE_HALF_HEIGHTS .c_str (), po::value<int >()->default_value (-1 ),
148+ " Column containing the source half height (in reference frame pixels)" },
139149 {ASSOC_DEFAULT_PIXEL_SIZE.c_str (), po::value<double >()->default_value (5.0 ),
140150 " Default source size (in reference frame pixels)" },
141151 {ASSOC_GROUP_ID.c_str (), po::value<int >()->default_value (-1 ),
@@ -218,11 +228,11 @@ void AssocModeConfig::readConfigFromParams(const UserValues& args) {
218228 m_pixel_width_column = args.at (ASSOC_SOURCE_SIZES).as <int >() - 1 ; // config uses 1 as first column
219229 m_pixel_height_column = args.at (ASSOC_SOURCE_SIZES).as <int >() - 1 ; // config uses 1 as first column
220230
221- if (args.find (ASSOC_SOURCE_WIDTHS ) != args.end () && args.at (ASSOC_SOURCE_WIDTHS ).as <int >() > 0 ) {
222- m_pixel_width_column = args.at (ASSOC_SOURCE_WIDTHS ).as <int >() - 1 ; // config uses 1 as first column
231+ if (args.find (ASSOC_SOURCE_HALF_WIDTHS ) != args.end () && args.at (ASSOC_SOURCE_HALF_WIDTHS ).as <int >() > 0 ) {
232+ m_pixel_width_column = args.at (ASSOC_SOURCE_HALF_WIDTHS ).as <int >() - 1 ; // config uses 1 as first column
223233 }
224- if (args.find (ASSOC_SOURCE_HEIGHTS ) != args.end () && args.at (ASSOC_SOURCE_HEIGHTS ).as <int >() > 0 ) {
225- m_pixel_height_column = args.at (ASSOC_SOURCE_HEIGHTS ).as <int >() - 1 ; // config uses 1 as first column
234+ if (args.find (ASSOC_SOURCE_HALF_HEIGHTS ) != args.end () && args.at (ASSOC_SOURCE_HALF_HEIGHTS ).as <int >() > 0 ) {
235+ m_pixel_height_column = args.at (ASSOC_SOURCE_HALF_HEIGHTS ).as <int >() - 1 ; // config uses 1 as first column
226236 }
227237
228238 m_group_id_column = args.at (ASSOC_GROUP_ID).as <int >() - 1 ; // config uses 1 as first column
@@ -233,60 +243,60 @@ void AssocModeConfig::readConfigFromParams(const UserValues& args) {
233243void AssocModeConfig::readConfigFromFile (const std::string& filename) {
234244 m_assoc_columns = parseConfigFile (filename);
235245
236- if (m_assoc_columns.find (" x " ) != m_assoc_columns.end () && m_assoc_columns.find (" y " ) != m_assoc_columns.end ()) {
246+ if (m_assoc_columns.find (COLUMN_X ) != m_assoc_columns.end () && m_assoc_columns.find (COLUMN_Y ) != m_assoc_columns.end ()) {
237247 m_assoc_coord_type = AssocCoordType::PIXEL;
238248
239- m_columns.push_back (m_assoc_columns.at (" x " ));
240- m_assoc_columns.erase (" x " );
241- m_columns.push_back (m_assoc_columns.at (" y " ));
242- m_assoc_columns.erase (" y " );
249+ m_columns.push_back (m_assoc_columns.at (COLUMN_X ));
250+ m_assoc_columns.erase (COLUMN_X );
251+ m_columns.push_back (m_assoc_columns.at (COLUMN_Y ));
252+ m_assoc_columns.erase (COLUMN_Y );
243253
244- if (m_assoc_columns.find (" ra " ) != m_assoc_columns.end () ||
245- m_assoc_columns.find (" dec " ) != m_assoc_columns.end ()) {
254+ if (m_assoc_columns.find (COLUMN_RA ) != m_assoc_columns.end () ||
255+ m_assoc_columns.find (COLUMN_DEC ) != m_assoc_columns.end ()) {
246256 throw Elements::Exception () << " Use either X/Y or RA/DEC coordinates in assoc config file but not both" ;
247257 }
248- } else if (m_assoc_columns.find (" ra " ) != m_assoc_columns.end () &&
249- m_assoc_columns.find (" dec " ) != m_assoc_columns.end ()) {
258+ } else if (m_assoc_columns.find (COLUMN_RA ) != m_assoc_columns.end () &&
259+ m_assoc_columns.find (COLUMN_DEC ) != m_assoc_columns.end ()) {
250260
251261 m_assoc_coord_type = AssocCoordType::WORLD;
252262
253- m_columns.push_back (m_assoc_columns.at (" ra " ));
254- m_assoc_columns.erase (" ra " );
255- m_columns.push_back (m_assoc_columns.at (" dec " ));
256- m_assoc_columns.erase (" dec " );
263+ m_columns.push_back (m_assoc_columns.at (COLUMN_RA ));
264+ m_assoc_columns.erase (COLUMN_RA );
265+ m_columns.push_back (m_assoc_columns.at (COLUMN_DEC ));
266+ m_assoc_columns.erase (COLUMN_DEC );
257267
258- if (m_assoc_columns.find (" x " ) != m_assoc_columns.end () ||
259- m_assoc_columns.find (" y " ) != m_assoc_columns.end ()) {
268+ if (m_assoc_columns.find (COLUMN_X ) != m_assoc_columns.end () ||
269+ m_assoc_columns.find (COLUMN_Y ) != m_assoc_columns.end ()) {
260270 throw Elements::Exception () << " Use either X/Y or RA/DEC coordinates in assoc config file but not both" ;
261271 }
262272 } else {
263273 throw Elements::Exception () << " Missing X/Y or RA/DEC coordinates in assoc config file" ;
264274 }
265275
266- if (m_assoc_columns.find (" weight " ) != m_assoc_columns.end ()) {
267- m_columns.push_back (m_assoc_columns.at (" weight " ));
268- m_assoc_columns.erase (" weight " );
276+ if (m_assoc_columns.find (COLUMN_WEIGHT ) != m_assoc_columns.end ()) {
277+ m_columns.push_back (m_assoc_columns.at (COLUMN_WEIGHT ));
278+ m_assoc_columns.erase (COLUMN_WEIGHT );
269279 }
270280
271- if (m_assoc_columns.find (" pixel_size " ) != m_assoc_columns.end ()) {
272- m_pixel_width_column = m_assoc_columns.at (" pixel_size " );
273- m_pixel_height_column = m_assoc_columns.at (" pixel_size " );
274- m_assoc_columns.erase (" pixel_size " );
281+ if (m_assoc_columns.find (COLUMN_PIXEL_SIZE ) != m_assoc_columns.end ()) {
282+ m_pixel_width_column = m_assoc_columns.at (COLUMN_PIXEL_SIZE );
283+ m_pixel_height_column = m_assoc_columns.at (COLUMN_PIXEL_SIZE );
284+ m_assoc_columns.erase (COLUMN_PIXEL_SIZE );
275285 }
276286
277- if (m_assoc_columns.find (" pixel_width " ) != m_assoc_columns.end ()) {
278- m_pixel_width_column = m_assoc_columns.at (" pixel_width " );
279- m_assoc_columns.erase (" pixel_width " );
287+ if (m_assoc_columns.find (COLUMN_PIXEL_HALF_WIDTH ) != m_assoc_columns.end ()) {
288+ m_pixel_width_column = m_assoc_columns.at (COLUMN_PIXEL_HALF_WIDTH );
289+ m_assoc_columns.erase (COLUMN_PIXEL_HALF_WIDTH );
280290 }
281291
282- if (m_assoc_columns.find (" pixel_height " ) != m_assoc_columns.end ()) {
283- m_pixel_height_column = m_assoc_columns.at (" pixel_height " );
284- m_assoc_columns.erase (" pixel_height " );
292+ if (m_assoc_columns.find (COLUMN_PIXEL_HALF_HEIGHT ) != m_assoc_columns.end ()) {
293+ m_pixel_height_column = m_assoc_columns.at (COLUMN_PIXEL_HALF_HEIGHT );
294+ m_assoc_columns.erase (COLUMN_PIXEL_HALF_HEIGHT );
285295 }
286296
287- if (m_assoc_columns.find (" group_id " ) != m_assoc_columns.end ()) {
288- m_group_id_column = m_assoc_columns.at (" group_id " );
289- m_assoc_columns.erase (" group_id " );
297+ if (m_assoc_columns.find (COLUMN_GROUP_ID ) != m_assoc_columns.end ()) {
298+ m_group_id_column = m_assoc_columns.at (COLUMN_GROUP_ID );
299+ m_assoc_columns.erase (COLUMN_GROUP_ID );
290300 }
291301
292302 for (auto & column_info : m_assoc_columns) {
@@ -429,7 +439,8 @@ std::map<std::string, unsigned int> AssocModeConfig::parseConfigFile(const std:
429439 std::map<std::string, unsigned int > columns;
430440
431441 const std::vector<std::string> reserved_names {
432- " x" , " y" , " ra" , " dec" , " weight" , " group_id" , " pixel_size" , " pixel_width" , " pixel_height"
442+ COLUMN_X, COLUMN_Y, COLUMN_RA, COLUMN_DEC, COLUMN_WEIGHT,
443+ COLUMN_GROUP_ID, COLUMN_PIXEL_SIZE, COLUMN_PIXEL_HALF_WIDTH, COLUMN_PIXEL_HALF_HEIGHT
433444 };
434445
435446 std::ifstream config_file (filename);
@@ -493,10 +504,10 @@ void AssocModeConfig::printConfig() {
493504 }
494505
495506 if (m_pixel_width_column >= 0 ) {
496- std::cout << " PIXEL_WIDTH " << " \t " ;
507+ std::cout << " PIXEL_HALF_WIDTH " << " \t " ;
497508 }
498509 if (m_pixel_height_column >= 0 ) {
499- std::cout << " PIXEL_HEIGHT " << " \t " ;
510+ std::cout << " PIXEL_HALF_HEIGHT " << " \t " ;
500511 }
501512 if (m_group_id_column >= 0 ) {
502513 std::cout << " GROUP_ID" << " \t " ;
0 commit comments