|
| LicsPcamSnapshot (const Lics::LicsIIFSide &sxordx, const Laos::LaosSeAOType &ao, const std::string &catfil, const double mang, const double parang, const double ra, const double dec, bool bat) |
| constructor specifiying one of the two sides. More...
|
|
| ~LicsPcamSnapshot () |
| close the ICE interface. More...
|
|
int | run (int argc, char *argv[]) |
| The function which will be called intermediately through Application::start() More...
|
|
Nice::SeqPoint | centroids (Basda::Image< ushort > &img) |
| Extract star centroids from the image via sex(1). More...
|
|
Nice::SeqPoint | toFmum (const Nice::SeqPoint pxlst) |
| Convert Pcam pixel coordinates to SE F coordinates. More...
|
|
| LicsPcamSnapshot (const Lics::LicsIIFSide &sxordx, const Laos::LaosSeAOType &ao, const std::string &catfil, const double mang, const double parang, const double ra, const double dec, bool bat) |
|
| ~LicsPcamSnapshot () |
|
int | run (int argc, char *argv[]) |
|
Nice::SeqPoint | centroids (Basda::Image< ushort > &img) |
|
Nice::SeqPoint | toFmum (const Nice::SeqPoint pxlst) |
|
| Application () |
|
| ~Application () |
|
int | init (int &, char *[]) |
|
int | start (int, char *[]) |
|
void | loadTypes () |
|
void | enableHeartbeat () |
|
void | enableLogger () |
|
virtual void | interruptCallback (int _i) |
|
| Application () |
|
| ~Application () |
|
int | init (int &, char *[]) |
|
int | start (int, char *[]) |
|
void | loadTypes () |
|
void | enableHeartbeat () |
|
void | enableLogger () |
|
virtual void | interruptCallback (int _i) |
|
A one-time snapshot of an image from the buffer of the Patrol Camera.
- Since
- 2017-08-21
- Author
- Richard J. Mathar
void Lics::LicsPcamSnapshot::ds9atF |
( |
Basda::Image< ushort > & |
img | ) |
const |
|
protected |
Show the PCAM picture in SE coordinates with ds9(1).
- Parameters
-
img | The Basda image. The 2D array of numbers of the PCam. |
The procedure pops up a ds9 window which shows the patrol camera image properly flipped (to account for the dichroic between Pcam and SE arms) and rotated (by the angle implicit in the measurements of 03/2017). It also shows the coordinate system of the SE motors in units of micrometers as used everywhere in the GUIs. It does shows (predicted) star positions of the catalog in small boxes.
- Author
- Richard J. Mathar
- Since
- 2017-10-24
- Todo:
- work precession into the positions and counter-rotate the ra/dec to J2000.
- Parameters
-
img | The Basda image. The 2D array of numbers of the PCam. |
The procedure pops up a ds9 window which shows the patrol camera image properly flipped (to account for the dichroic between Pcam and SE arms) and rotated (by the angle implicit in the measurements of 03/2017). It also shows the coordinate system of the SE motors in units of micrometers as used everywhere in the GUIs. It does shows (predicted) star positions of the catalog in small boxes.
- Author
- Richard J. Mathar
- Since
- 2017-10-24
- Todo:
- work precession into the positions and counter-rotate the ra/dec to J2000.
int Lics::LicsPcamSnapshot::run |
( |
int |
argc, |
|
|
char * |
argv[] |
|
) |
| |
|
virtual |
The function which will be called intermediately through Application::start()
First use case (if the star catalog is empty): The function tries to connect to laos.{sx|dx}.hws.pcam.ccd47-svr and to retrieve a single image on that specific side. It runs sex(1) through the image to extract the center coordinates of a set of stars (with a criterion that these must raise above the background by a factor of 2). These pixel coordinates within the patrcol camera are then converted with the affine mapping from experiments of Feb 2017 to micrometers in the HWS star enlarger plane. For each of these positions in the SE plane, we proceed with the same algorithm as in the GWS case:
- a list of SE arms (of size between none and 8) is collected that can reach that point.
- For all possible mixes of assigments of points to SE arms we check whether that assignment would lead to a SE overlap (defined by an overlap in the contour of the SE pairs once positioined). We accept assignments where no SE position pair collides. If needed, points are dropped to reduce the number of collisions until a collision-free set of assignments is found. From all assignments which manage to assign an equal number of points, those are prefereed with a minimum total protruding distance of the SE arms into the field (along y). Note that there is no preference given to dropping faint stars preferentially.
- The best assignment of (a possible subset) of points is sent as a map of SE numbers to micron (points) to the associated HWS SE GUI and at the same time the program calls the python preset program to move the SE to these positions. [At that point, the motor controllers may still detect collisions, due to two possible simplifications here: collisions with the SE's that are not assigned are not tested here, and the motor trajectory checker looks at the entire dynamical process of moving the SE arms from the current position set to the assigned ones.]
Second use case (if the star catalog contains stars):
- Try to retrieve a single image of the Pcam on the side.
- Re-display that image with ds9 by superimposing the stars (effectively equinox 2000 but with proper motions to the current epoch) in the image. The choice of the rotation/flip depends on the ghws setting (LINC_HWS for SE, LINC_PCAM for pcam)
- Returns
- An integer as a status value. 0 if successful.
- Since
- 2017-08-21
- Author
- Richard J. Mathar
Implements Nice::Application.