|
|
|
|||||
|
|
|
Osservatorio Astronomico di Roma
Graphical User Interface for LBC OBs Reference Manual |
Version Date Page |
1.2 22 Apr 2004
|
|
|

Large Binocular Camera
Graphical User Interface for LBC Observing Blocks
Reference Manual
Author: Stefano Gallozzi
date: 2004-04-22
email: gallozzi@mporzio.astro.it
Copyright © 2004, Stefano Gallozzi & LBC-Team
Graphical User Interface for LBC Observing Blocks,
Reference Manual
Table of Contents
GUI, Graphical User Interface – 1.
Observing Blocks – 2.
Folder Operations – 3.
OB Operations – 4.
Observing Plans – 5.
OP Operations – 6.
Dithering Calculator – 7.
Exposure Time Calculator – 8.
Interactive Pointing – 9.
1. GUI, GRAPHICAL USER INTERFACE
The GUI is a Java multiplatform application designed to be very user friendly in all its operations
Goals of the application are:
- Create a standard for the LBC/LBT ObservingBlock (OB) in a database XML format, compatible with the AVOTables XML standards
- View/Modify a single OB in all its fields
- Concatenate more Observing Bock together in order to create an xml-Observing Plan (OP)

1.1. OB/Plan XML-file Format
The XML Markup Language is a web file format created to organize in a database-like format all type of data; the advantage of using this data architecture is the great flexibility of the web resource in conjunction with the stability of a database approach.
It' possible to define a standard definition of variables types with relative intervals of the parameters inserted in the xml-file (XSD-schema-file).
This application is designed to be totally compatible with the VOTable XML standards.
Lots of Programming Languages libraries are availables to interface with XML (we use SAX=Simple API for XML), but also AXIS is a good choise for web services.
1.2. GUI Organization
The GUI is organized in three main TabPanel divided by topics (view three following pics):
- Target Package Panel (is a slice representing pointing and observation parameters: RA-Dec, Target Name, Proper Motion, ...)
- Observation Description (is a slice representing all the instrument parameters for the observation: dithering pattern, ETC, ...)
- Constrain Sets (is a slide as ESO-Style to constrain the observation by some particular parameter: wheather condition, seeing, exposure time, ...)



1.3. GUI Operations on OB/OP
It's possible to perform some operation on OB and Plan:
Create OB-OP (it' also possible to create a directory where to store all data)
Copy/Move/Delete OB-OP
Print/Export to PS file format an OB-OP
View/Modify the content of OB-OP
Save the data in a file OB-OP (xml-format)
These operations are possible thanks to special and specified JavaButtons and JavaMenus located in the top ToolBar.
There are three type of button/menu groups (see following picture):
Folder Buttons (yellow)
Plan Buttons (red)
OB Buttons (green)

It's possible to perform some special operations on the data inserted:
Dithering Pattern Calculation
Exposure Time Calculation
Interactive Pointing
These operations are carried on data and the final results are inserted in the Observing Block File, see below.
2. OBSERVING BLOCK
Each Observing Block for the LBC camera of the LBT Telescope is saved in a XML-databse file (extension .ob).
To the ob-xml file is associated a ob-schema file (extension .xsd), which represents the variable declaration and structure of the relative xml.
The file is subsequently processed by a standard C/C++-library to extract the variables and perform the necessary instrument operations. This C/C++ library is included in the GUI package.
2.1. VARIABLE DEFINITION AND OB STRUCTURE
The Observing Block Structure is composed of three top level fields in the XML-database schema:
LBC_Target field, which represents the relative parameters for the observation of a specific target.
LBC_Channel field, which represents the total observation parameters to customize in the most powerful way possible every single exposure for the B and R Channel.
Constrain Sets field, which represents an ESO like way to define the range for some observation parameters, ie. CSS(Constrain Sets for Seeing) define an interval for the observation seeing, if the place seeing values falls inside that interval the observation should be taken.
Here is a list of all the inserted variables with the respective meaning:
----------------------------------------
<LBC_Target>
- OBName = Observing block name (string), is the name of the OB as it appear on the disk (without .ob extension) - (String).
- TargetName = Target Package Name (string), is the name of the observation target - (String).
- ClassType = Class-type of observation, ie. Standard Star, Flat-field, Dark, Scientific Object – (String).
- TEC_RA & TEC_DEC = Target Equatorial Coordinates, Right Ascention and Declination, is the starting point for the observation on the sky in decimal degree format – (float).
- Equinox = Equinox of coordinates, 1950 or 2000 – (int).
- Offset_RA & Offset_DEC = Offsett in arcsec for RA and Dec, is the arcsec offsetting from the central RA0-DEC0 position – (float).
- ProperMotion_RA & ProperMotion_DEC = RA DEC Proper Motion, is the proper motion of an observation target/object in arcsec for RA and Dec – (float).
- TRACKING, Telescope = Tracking, presetting telescope – (boolean).
Window settings and parameters:
- WXMIN, WXMAX, WYMIN, WYMAX = pixel settings for X-Y window: X=[1,2048], Y=[1,4600] – (int).
- PDIT = Dithering pattern is the logical operation to calculate the dither, ie. Random, UserDefined, Spiral, Circular, TBD (string).
- ADIT, SDIT, DITX0 & DITY0 = Dithering Angle, Scale and offset for X-Y axis, parameters to calculate dithering steps – (float).
- NDIT, DIT0 = Number of dithering offsets and Starting item, parameters to calculate dithering steps – (int).
- XDIT & YDIT = list of dithering pattern in RA and Dec from the central RA0,DEC0 position – (array of floats).
</LBC_Target>
--------------------------------------------------------------
<LBC_Channel>
<B> and <R> = the channel name.
For B and R Arm there are the same parameters, here's a list:
- PSB & PSR = Master, Slave or Off, what kind of setting must perform the Channel – (int: OFF=0, MASTER=1, SLAVE=2).
- RA_B & RA_R = Rotation angle for B and R- Arm, is the angle of rotation for each camera in decimal degree format – (float).
- FocussOffset & FocussStartPosition = keyword which represents the Offset of each step in the fucus procedure and the Starting position for each Arm; the Filter used for this operation are the first filter of the filter list for each Channel with theire own Exposure Time and number of exposure. The two keyword can be setted with the special Jframe (see following fig.) accessible by the “Edit Focus” button in the Observation description - (double).
- Chip1, Chip2, Chip3, Chip4, Shutter = ON/OFF for Chip 1, 2, 3, 4 and Shutter (boolean).
- ReadOutMode_B & ReadOutMode_R = Read Out Mode, ie. fast and slow (boolean)
- CCDBin_B & CCDBin_R = CCD Binning Factor, is the bin factor for the image acquisition – (boolean).
- FilterNumber = Is the Filter number selected (max is 8 for each channel) – (int).
<Filter> = Filter, is the tag to discern between different filters selected.
- FilterName = Is the name of the Filter selected - (String).
- SingleExpoTime = Is the Single Exposure Time for the observation with the selected filter – (float).
- Nexpo = Is the number of exposure taken with the selected filter – (int).
- Focuss = Is a flag for focuss the observation for the selected filter – (boolean).
- Identifier = Is the identifier for the observation – (string).
- Pipeline = Are the pipeline instructions for the selected observation – (string).
</Filter>
User hidden parameters:
- ReadOutTime = Read Out Time, is the total time to download the acquisition image and be ready to take new one – (float).
- TimeOffset = Offsetting Time, is the time necessary to offset the telescope – (float).
- SEEING = Seeing of the observation, is the real seeing for the observation, not calculated – (float).
- MOON = Moon Phase of the observation, is the real moon phase for the observation, not calculated – (int).
Constrain Parameters (like ESO):
- CST = Constrain Sets Timing – (string).
- CSP = Constrain Sets Position – (string).
- CSW = Constrain Sets Weather – (string).
- CSS = Constrain Sets Max Seeing – (String).
- CSF = Constrain Sets Frame – (string).
Additional Parameters:
- OBJECT = Is the name of the Target of Observation – (string).
- OBSID = Is the Identification ID of the Observation – (string).
- PROPID = Is the Proposal Identification ID of the Observation – (string).
- OBSERVER = Is the name of Observer – (string).
- LBCUSER = Is the name of LBC-USER – (string).

2.2. OB-XML & SCHEMA FILE EXAMPLE
Here is an example of a saved Observing Block with its schema file:
OB XML Example File
<?xml version="1.0" encoding="UTF-8" ?>
- <ObservingBlock>
- <LBC_Target>
<OBName>OB1</OBName>
<TargetName>Pg1115+047</TargetName>
<ClassType>Dark</ClassType>
<TEC_RA>12.4563</TEC_RA>
<TEC_DEC>43.7632</TEC_DEC>
<Equinox>2000</Equinox>
<OFF_RA>0.0</OFF_RA>
<OFF_DEC>0.0</OFF_DEC>
<ProperMotion_RA>0.0</ProperMotion_RA>
<ProperMotion_DEC>0.0</ProperMotion_DEC>
<Tracking>1</Tracking>
<Telescope>1</Telescope>
<WXMIN>1</WXMIN>
<WXMAX>2048</WXMAX>
<WYMIN>1</WYMIN>
<WYMAX>4600</WYMAX>
<PDIT>Random</PDIT>
<ADIT>0.0</ADIT>
<SDIT>4.0</SDIT>
<DIT0>0</DIT0>
<DITX0>0.0</DITX0>
<DITY0>0.0</DITY0>
<NDIT>5</NDIT>
<XDIT>0.0 7.214781 0.59198904 -0.3343544 -5.936532</XDIT>
<YDIT>0.0 7.8273206 -1.7054458 0.78919077 -6.1209717</YDIT>
</LBC_Target>
- <LBC_Channel>
- <B_Arm>
<PSB>1</PSB>
<RotAngle_B>3.55</RotAngle_B>
<Focuss_B><FocusOffset>10.0</FocussOffset><FocusStartPosition>0.0</FocusStartPosition></Focuss_B>
<Chip1B>1</Chip1B>
<Chip2B>1</Chip2B>
<Chip3B>1</Chip3B>
<Chip4B>1</Chip4B>
<ShutterB>1</ShutterB>
<ReadOutMode_B>1</ReadOutMode_B>
<CCDBin_B>1</CCDBin_B>
<FilterNumber_B>5</FilterNumber_B>
- <Filter>
<FilterName>B</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>B_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName>U</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>U_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName>V</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>V_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName>StdU</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>StdU_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName>VBess</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>VBess_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
</B_Arm>
- <R_Arm>
<PSR>2</PSR>
<RotAngle_R>3.55</RotAngle_R>
<Focuss_R><FocusOffset>10.0</FocussOffset><FocusStartPosition>0.0</FocusStartPosition></Focuss_R>
<Chip1R>1</Chip1R>
<Chip2R>1</Chip2R>
<Chip3R>1</Chip3R>
<Chip4R>1</Chip4R>
<ShutterR>1</ShutterR>
<ReadOutMode_R>1</ReadOutMode_R>
<CCDBin_R>1</CCDBin_R>
<FilterNumber_R>2</FilterNumber_R>
- <Filter>
<FilterName>I</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>I_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName>R</FilterName>
<SingleExpoTime>40000</SingleExpoTime>
<NExpo>10</NExpo>
<Identifier>R_pipe</Identifier>
<Pipeline>Reduction Instructions</Pipeline>
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
- <Filter>
<FilterName />
<SingleExpoTime />
<NExpo />
<Identifier />
<Pipeline />
</Filter>
</R_Arm>
<ReadOutTime>7.45</ReadOutTime>
<TimeOffset>13.45</TimeOffset>
<Seeing>0.8</Seeing>
<MoonPhase>0</MoonPhase>
</LBC_Channel>
- <ConstrainSets>
<CSTime>CSTTTT</CSTime>
<CSPosition>CSPPPP</CSPosition>
<CSWeather>CSWWWW</CSWeather>
<CSSeeing>CSSSSS</CSSeeing>
<CSFrame>CSFFFF</CSFrame>
</ConstrainSets>
<OBJECT>cdfs</OBJECT>
<OBSID>1234DF-1</OBSID>
<PROPID>1234DF</PROPID>
<OBSERVER />
<LBCUSER>gallozzi</LBCUSER>
</ObservingBlock>
2.3. OB Schema File
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
OBSERVING BLOCK OB for LBC-LBT
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="OBType">
<xsd:sequence>
<xsd:element name="LBC_Target" type="LBC_TargetType"/>
<xsd:element name="LBC_Channel" type="LBC_ChannelType"/>
<xsd:element name="ConstrainSets" type="ConstrainSetsType"/>
<xsd:element name="OBJECT" type="xsd:string"/>
<xsd:element name="OBSID" type="xsd:string"/>
<xsd:element name="PROPID" type="xsd:string"/>
<xsd:element name="OBSERVER" type="xsd:string"/>
<xsd:element name="LBCUSER" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LBC_TargetType">
<xsd:sequence>
<xsd:element name="OBName" type="xsd:string"/>
<xsd:element name="TargetName" type="xsd:string"/>
<xsd:element name="ClassType" type="xsd:string"/>
<xsd:element name="TEC_RA">
<xsd:simpleType>
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="0.0"/>
<xsd:maxExclusive value="360.0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TEC_DEC">
<xsd:simpleType>
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="-90.0"/>
<xsd:maxExclusive value="+90.0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Equinox" type="xsd:integer"/>
<xsd:element name="OFF_RA">
<xsd:simpleType>
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="-9999.9"/>
<xsd:maxExclusive value="+9999.9"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="OFF_DEC">
<xsd:simpleType>
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="-9999.9"/>
<xsd:maxExclusive value="+9999.9"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ProperMotion_RA" type="xsd:float"/>
<xsd:element name="ProperMotion_DEC" type="xsd:float"/>
<xsd:element name="Tracking" type="xsd:boolean"/>
<xsd:element name="Telescope" type="xsd:boolean"/>
<xsd:element name="WXMIN">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
<xsd:maxExclusive value="2048"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="WXMAX">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
<xsd:maxExclusive value="2048"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="WYMIN">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
<xsd:maxExclusive value="4600"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="WYMAX">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
<xsd:maxExclusive value="4600"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PDIT" type="xsd:string"/>
<xsd:element name="ADIT" type="xsd:float"/>
<xsd:element name="SDIT" type="xsd:float"/>
<xsd:element name="DIT0">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DITX0" type="xsd:float"/>
<xsd:element name="DITY0" type="xsd:float"/>
<xsd:element name="NDIT">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="XDIT" type="xsd:float" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="YDIT" type="xsd:float" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FocussType">
<xsd:sequence>
<xsd:element name="FocussOffset" type="xsd:float"/>
<xsd:element name="FocussStartPosition" type="xsd:float"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FilterType">
<xsd:sequence>
<xsd:element name="FilterName" type="xsd:string"/>
<xsd:element name="SingleExpoTime" type="xsd:float"/>
<xsd:element name="NExpo" type="xsd:integer"/>
<xsd:element name="Identifier" type="xsd:string"/>
<xsd:element name="Pipeline" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LBC_ChannelType">
<xsd:sequence>
<xsd:element name="B_Arm" type="B_ArmType"/>
<xsd:element name="R_Arm" type="R_ArmType"/>
<xsd:element name="ReadOutTime" type="xsd:positiveFloat"/>
<xsd:element name="TimeOffset" type="xsd:positiveFloat"/>
<xsd:element name="Seeing" type="xsd:positiveFloat"/>
<xsd:element name="MoonPhase">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minExclusive value="0"/>
<xsd:maxExclusive value="14"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="B_ArmType">
<xsd:sequence>
<xsd:element name="PSB" type="xsd:integer"/>
<xsd:element name="RotAngle_B" type="xsd:float"/>
<xsd:element name="FF_B" type="FocussType"/>
<xsd:element name="Chip1B" type="xsd:boolean"/>
<xsd:element name="Chip2B" type="xsd:boolean"/>
<xsd:element name="Chip3B" type="xsd:boolean"/>
<xsd:element name="Chip4B" type="xsd:boolean"/>
<xsd:element name="ShutterB" type="xsd:boolean"/>
<xsd:element name="ReadOutMode_B" type="xsd:boolean"/>
<xsd:element name="CCDBin_B" type="xsd:integer"/>
<xsd:element name="FilterNumber_B" type="xsd:integer" minOccurs="0" maxOccurs="8"/>
<xsd:element name="Filter" type="FilterType" minOccurs="0" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="R_ArmType">
<xsd:sequence>
<xsd:element name="PSR" type="xsd:integer"/>
<xsd:element name="RotAngle_R" type="xsd:float"/>
<xsd:element name="FF_R" type="FocussType"/>
<xsd:element name="Chip1R" type="xsd:boolean"/>
<xsd:element name="Chip2R" type="xsd:boolean"/>
<xsd:element name="Chip3R" type="xsd:boolean"/>
<xsd:element name="Chip4R" type="xsd:boolean"/>
<xsd:element name="ShutterR" type="xsd:boolean"/>
<xsd:element name="ReadOutMode_R" type="xsd:boolean"/>
<xsd:element name="CCDBin_R" type="xsd:integer"/>
<xsd:element name="FilterNumber_R" type="xsd:integer" minOccurs="0" maxOccurs="8"/>
<xsd:element name="Filter" type="FilterType" minOccurs="0" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ConstrainSetsType">
<xsd:sequence>
<xsd:element name="CST" type="xsd:string"/>
<xsd:element name="CSP" type="xsd:string"/>
<xsd:element name="CSW" type="xsd:string"/>
<xsd:element name="CSS" type="xsd:string"/>
<xsd:element name="CSF" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
2.4. OB Write-Read C/C++ Library
The C/C++ library distributed with this package was created to perform basic operation with the XML OB file generated by the GUI:
Write an example OB.
Read an OB file and put its content in a variable structure, described later.
self-Check utility.
Initializing structure tool.
redirect the output in a standard flow.
Here is the C-variable structure used in the Library:
/*! \struct LBC_TARGET
* Define the Target Variable Structure.
*/
typedef struct {
char *szOBName; /*!Observing Block Name, is the name of the OB without .ob extension.*/
char *szTargetName; /*!Target Name, is the name of the target of the observation.*/
char *szClassTypeObs; /*!Class Type of Observation (Dark, Scientific Object, Standard Star, Flat Field, ecc).*/
double Ra, Dec; /*!RA and DEC Coordinates (decimal degree format)*/
char *szObject; /*!Identifier observation title */
char *szObsID; /*!Unique observation ID */
char *szPropID; /*!Proposal identification */
char *szObserver; /*!Observer Name */
char *szLBCUser; /*!P.I. Name */
// double Offset_Ra, Offset_Dec; /*!RA and DEC Offset (arsec)*/
double ProperMotion_Ra, ProperMotion_Dec; /*! Proper Motion (arsec)*/
int iEquinoxOfCoord; /*!Equinox of Coordinates (1950 or 2000)*/
int fTracking; /*!Tracking, flag for tracking*/
int fTelescope; /*!Preset LBT Telescope, flag for presetting the LBT Telescope*/
int iWinXMin, iWinXMax; /*!Window X Parameters (pixels)*/
int iWinYMin, iWinYMax; /*!Window Y Parameters (pixels)*/
/*DITHERING PARAMETERS*/
int iNDit; /*!Number of Dithering Offset, number of dithering steps*/
double *XDit, *YDit; /*!X-Y Dithering Steps, from starting point [RA0,DEC0] (arcsec)*/
} LBC_TARGET;
/*! \struct LBC_FOCUS
* Define the Structure for Focus quantities for each LBC Channel.
*/
typedef struct {
char *szFocusFilterName; /*!Filter Name for focus procedure*/
int iFocusExpoNumber; /*!Number of Exposures for focus*/
double FocusSingleExpoTime; /*!Single Exposure Time for focus*/
double FocusOffset; /*!Focus Offset for each step*/
double FocusStartPosition; /*!Focus starting position*/
} LBC_FOCUS;
/*! \struct LBC_FILTERS
* Define the Structure for each LBC Channel.
*/
typedef struct {
char *szFilterName; /*!Filter Name*/
int iExpoNumber; /*!Number of Exposures, number of exposure for all dithering steps*/
double SingleExpoTime; /*!Single Exposure Time = (TotalExposureTime / NExposures) for each Dith step (sec)*/
char *szIdentifier; /*!Identifier for Arm, identifier for Pipeline Instructions*/
char *szPipeline; /*!Pipeline Instruction, to be inserted in the keyword*/
} LBC_FILTERS;
/*! \struct LBC_CHANNEL
* Define the Structure for each LBC Channel.
*/
typedef struct {
int iArmSetting; /*!Arm Setting (OFF=0 - MASTER=1 - SLAVE=2)*/
int fReadoutMode; /*!Read-Out Mode, flag for Read-Out Mode (slow=0 - fast=1)*/
int fChip1, fChip2, fChip3, fChip4; /*!Boolean for Chip turned ON-OFF*/
int fShutter; /*!Boolean or Shutter ON-OFF*/
double RotAngle; /*!Rotation Angle for Arm (degree)*/
int iCcdBin; /*!CCD Binning, factor for rebin of the image*/
int iNFilters; /*!Number of Filter for Arm (tot FilterNumber = 8)*/
LBC_FOCUS pFocus; /*!Focus Quantities and Parameters */
LBC_FILTERS *pFilter; /*!Filter Vector of iNFilters elements for Selected Arm */
} LBC_CHANNEL;
/*! \struct LBC_OB
* Define the OB Variable Structure Type
*/
typedef struct {
int fLoaded;
LBC_TARGET LBC_Target;
LBC_CHANNEL B_Arm, R_Arm;
} LBC_OB;
typedef LBC_OB *PLBC_OB; /*!Define Pointer to Main OB-Structure*/
3. FOLDER OPERATIONS
The LBC OB GUI Archiving is organized in the seguent way:
To the top level there are the Folders.
A folder is a User defined directory in a pre-defined path that can
be renamed. This directory can be created by hands through OS commands
or directly by the GUI Interface.
In the directory created the User Interface creates also an ascii fi
le (.descr) with the main Folder parameters (ie.: name and date of crea
tion).
Inside the Folder are present the Plan XML-archive files which conta
in any Observing Blocks. For each Observing Block inside the plan a cop
y is created in the Folder. It's possible also to create a single OB wi
thout connection to any Plan.
3.1. How to Create a new Folder
A new Folder can be created by the User Interface with the Folder Menu
(sub-Item "new Folder"); alternatively you can push the first jButton (
New Folder) on the top of the GUI. In the window you can choose the nam
e of the folder and the absolute path where the Folder have to be putte
n.
You can also use the particular OS system commands to create the named-
Folder in the right path.
3.2. How to Delete a Folder
A Folder can be deleted directly by the User Interface with the Folder
Menu (sub-Item "delete Folder"); alternatively you can push the jButton
(Delete Folder) on the top of the GUI. You only have to select the rig
ht Folder.
Be careful when you delete a complete folder, all its content is define
tly lost.
You can also use the particular OS system commands to delete the named-
Folder with the right path.
3.3. How to View the Folder Content
To view the content of a Folder you have con load it in the jTree. To p
erforn this action you have to choose the Folder Menu (sub-Item "Open F
older"); alternatively you can push the second jButton (Open Folder) on
the top of the GUI.
When a folder is load the jTree shows its path component, in particular
it shows the Plan XML Files. And if the directory was created by the U
ser Interface, in the jText-area is displayed the descriptor file of th
e directory.
3.4. Folder Descriptor Example File
------
Folder Name = ARCHIVIO
Date of Creation = 2003 07 19
------
4. OB OPERATIONS
4.1. How to Create a new OB
To create a new OB it's possible to push on the nineth jButton (new OB) or selecting the jMenu OBs (sub-Item "New OB"). You can insert the new OB name and when you confirm your choise all the other fileds in the mainwindow will be resetted. Anyway no OB will we written on disk until you won't save it. This is the only way to modify or update the “PropsalID” and “LBCUser” XML-keyword.
4.2. How to Create a new OB
To save an OB it's possible to push the relative jButton (save OB) or selecting the jMenu OBs (sub-Item "Save OB"). If a Plan is selected before a copy of the OB will be inserted in the xml-file of the plan and all records of the plan will be updated. Before to write the OB on disk the User Interface perform some calculation and variables check to be sure you selected the right values (See "OB File Structure Help" for more details).
4.3. How to Check for Variables inserted in the OB
It's possible to check for variables before saving the OB file; you only have to push the "validate" button on the right top of the GUI; if no error is displayed the OB is ready to be saved.
4.4. How to Reset OB fields
It's possible to reset all the values in the OB fields if some error has occurred, you only have to push on the right top of the GUI the "reset" button.
4.5. How to Delete an OB
To delete an OB it's possible to push on the relative jButton (delete OB) or seleting the jMenu OBs (sub-Item "Delete OB").
4.6. How to Copy an OB
To copy an OB it's possible to push on the relative jButton (copy OB) or seleting the jMenu OBs (sub-Item "copy OB"). You only have to select the origin and destination OB files.
4.7. How to Open/View OB
To open/view an OB it' s possible to push on the relative jButton (Open OB) or seleting the jMenu OBs (sub-Item "Open OB"). When the descriptor file of the OB is displayed in the new window, it's possible to choose to Load it's parameters in the mainwindow, you only have to push the "Load Values" jButton.
4.8. How to Confront different OBs in a OP
It's possible to confront more OBs in a OP double clicking in the jTree on the relative plan. It's displayed a jTable with all the OBs' records.
4.9. How to Export an OB
To Export a Descriptor file of a OB to a PS format it's possible to push on the relative jButton (export OB to PS file) or seleting the jMenu OBs (sub-Item "Export OB to PS File").
4.10. How to Print an OB
It's possible to print the descriptor file of an OB pushing the "print OB" button or seleting the jMenu OBs (sub-Item "Print OB"). NB: It's necessary to have a default printer installed and working.
5. Observing Plans
The OB Plan Archives are Xml files used to manage the OB data as a database.
A plan is inserted in a particular Folder which can contains more plans and OBs.
The organization of the Plan is described below:
- Plan file (.xml), the real xml database.
- Plan Schema File (.xsd), the schema file to declare the parameters in the xml file.
- Plan Entry-file (.entry), ascii file which contains the list of all OBs in the plan.
Plan descriptor file (.txt), to be visualized in the jTextArea of the GUI.
In the .xml file is inserted the schema file as a xml-comment to permit the download and upload of a single plan file.
5.1. XML PLAN Example
######################
# LBC-OB GUI - Plans #
######################
The OB Plan Archives are Xml files used to manage the OB data as a database.
A plan is inserted in a particular Folder which can contains more plans and OBs.
The organization of the Plan is described below:
- Plan file (.xml), the real xml database.
- Plan Schema File (.xsd), the schema file to declare the parameters in the xml file.
- Plan Entry-file (.entry), ascii file which contains the list of all OBs in the plan.
- Plan descriptor file (.txt), to be visualized in the jTextArea of the GUI.
In the .xml file is inserted the schema file as a xml-comment to permit the download and upload of a single plan file.
#########################
# XML PLAN FILE EXAMPLE #
<?xml version="1.0" encoding="UTF-8" ?>
- <OBPlan xmlns="D:\Documents and Settings\Stefano Gallozzi\Desktop/Plan" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="D:\Documents and Settings\Stefano Gallozzi\Desktop/Plan.xsd">
<currPlan>D:\Documents and Settings\Stefano Gallozzi\Desktop/Plan.xml</currPlan>
<currFolder>D:\Documents and Settings\Stefano Gallozzi\Desktop</currFolder>
<owner>Stefano Gallozzi</owner>
<creationDate>2003/12/24</creationDate>
<comment>Prova Commento</comment>
<?xml version="1.0" encoding="UTF-8" ?>
- <ObservingBlock>
- <LBC_Target>
<OBName>Blocco1</OBName>
<TargetName>Blocco1</TargetName>
<ClassType>Scientific Object</ClassType>
<TEC_RA>12.345</TEC_RA>
<TEC_DEC>21.332</TEC_DEC>
<Equinox>2000</Equinox>
<OFF_RA>5.0</OFF_RA>
<OFF_DEC>3.4</OFF_DEC>
<ProperMotion_RA>0.5</ProperMotion_RA>
<ProperMotion_DEC>1.1</ProperMotion_DEC>
<Tracking>1</Tracking>
<Telescope>1</Telescope>
<WXMIN>1</WXMIN>
<WXMAX>2048</WXMAX>
<WYMIN>1</WYMIN>
<WYMAX>4600</WYMAX>
<PDIT>Circular</PDIT>
<ADIT>0.0</ADIT>
<SDIT>1.0</SDIT>
<DIT0>0</DIT0>
<DITX0>10.0</DITX0>
<DITY0>20.0</DITY0>
<NDIT>1</NDIT>
<XDIT>0.0 21.3 33.4</XDIT>
<YDIT>4.0 43.2 33.0 2.0</YDIT>
</LBC_Target>
- <LBC_Channel>
- <B_Arm>
<PSB>1</PSB>
<RotAngle_B>1.0</RotAngle_B>
- <Focuss_B>
<FocussOffset>10.0</FocussOffset>
<FocussStartPosition>0.0</FocussStartPosition>
</Focuss_B>
<Chip1B>1</Chip1B>
<Chip2B>1</Chip2B>
<Chip3B>1</Chip3B>
<Chip4B>1</Chip4B>
<ShutterB>0</ShutterB>
<ReadOutMode_B>0</ReadOutMode_B>
<CCDBin_B>1</CCDBin_B>
<FilterNumber_B>2</FilterNumber_B>
- <Filter>
<FilterName>2</FilterName>
<SingleExpoTime>122230.0</SingleExpoTime>
<NExpo>1</NExpo>
<Identifier />
<Pipeline>0</Pipeline>
</Filter>
- <Filter>
<FilterName>3</FilterName>
<SingleExpoTime>34320.0</SingleExpoTime>
<NExpo>78</NExpo>
<Identifier />
<Pipeline>0</Pipeline>
</Filter>
- <Filter>
<FilterName>0</FilterName>
<SingleExpoTime>0.0</SingleExpoTime>
<NExpo>1</NExpo>
<Identifier />
<Pipeline>0</Pipeline>
</Filter>
- <Filter>
<FilterName>0</FilterName>
<SingleExpoTime>0.0</SingleExpoTime>
<NExpo>1</NExpo>
<Identifier />
<Pipeline>0</Pipeline>
</Filter>
- <Filter>
<FilterName>0</FilterName>
<SingleExpoTime>0.0</SingleExpoTime>
<NExpo>1</NExpo>
<Identifier />
<Pipeline>0</Pipeline>
</Filter>
- <Filter>