diff --git a/XSHOOTER/.gitignore b/XSHOOTER/.gitignore new file mode 100644 index 00000000..e29d8a50 --- /dev/null +++ b/XSHOOTER/.gitignore @@ -0,0 +1,3 @@ +calibration/downloads/ +__pycache__/ +.pytest_cache/ diff --git a/XSHOOTER/calibration/ESO_COPYING b/XSHOOTER/calibration/ESO_COPYING new file mode 100644 index 00000000..b9bd89f5 --- /dev/null +++ b/XSHOOTER/calibration/ESO_COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/XSHOOTER/calibration/eso_etc/NIR_fudge.dat b/XSHOOTER/calibration/eso_etc/NIR_fudge.dat new file mode 100644 index 00000000..92aa13fb --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/NIR_fudge.dat @@ -0,0 +1,18 @@ +900 0.142 +1005.77 0.142 +1046 0.404 +1089.58 0.405 +1136.96 0.542 +1188.64 0.391 +1245.24 0.431 +1307.5 0.474 +1376.31 0.615 +1452.78 0.752 +1538.23 0.707 +1634.38 0.695 +1743.33 0.735 +1867.86 0.893 +2011.54 0.9 +2179.17 0.869 +2377.28 0.978 +2500 0.978 diff --git a/XSHOOTER/calibration/eso_etc/UVB_fudge.dat b/XSHOOTER/calibration/eso_etc/UVB_fudge.dat new file mode 100644 index 00000000..6eb9934d --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/UVB_fudge.dat @@ -0,0 +1,14 @@ +300 1.552 +312.2 1.552 +325 1.09 +339.8 1.049 +356.1 1.051 +373.5 1.021 +393.2 1.037 +414.5 1.027 +438.8 1.008 +466.4 1.009 +496.8 0.986 +531 0.995 +556 0.964 +600 0.964 diff --git a/XSHOOTER/calibration/eso_etc/VIS_fudge.dat b/XSHOOTER/calibration/eso_etc/VIS_fudge.dat new file mode 100644 index 00000000..0999bc9e --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/VIS_fudge.dat @@ -0,0 +1,17 @@ +500 0.813 +550.5 0.813 +568 0.821 +585.9 0.788 +607.7 0.782 +629.5 0.783 +653.8 0.8 +682.1 0.783 +711.2 0.796 +742.6 0.79 +777.6 0.812 +815.8 0.804 +860.2 0.8 +904.3 0.786 +957.3 0.864 +1001.6 0.816 +1100 0.816 diff --git a/XSHOOTER/calibration/eso_etc/ccd926.dat b/XSHOOTER/calibration/eso_etc/ccd926.dat new file mode 100644 index 00000000..14354c5a --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/ccd926.dat @@ -0,0 +1,176 @@ +250 0 +252 0 +254 0 +256 0 +258 0 +260 0 +262 0 +264 0 +266 0 +268 0 +270 0 +272 0 +274 0 +276 0 +278 0 +280 0 +282 0 +284 0 +286 0 +288 0 +290 0 +292 0 +294 0 +296 0 +298 0 +300 0.547 +302 0.6034 +304 0.6598 +306 0.7162 +308 0.7726 +310 0.829 +312 0.8226 +314 0.8162 +316 0.8098 +318 0.8034 +320 0.797 +322 0.8018 +324 0.8066 +326 0.8114 +328 0.8162 +330 0.821 +332 0.8238 +334 0.8266 +336 0.8294 +338 0.8322 +340 0.835 +342 0.8346 +344 0.8342 +346 0.8338 +348 0.8334 +350 0.833 +352 0.83 +354 0.827 +356 0.824 +358 0.821 +360 0.818 +362 0.8198 +364 0.8216 +366 0.8234 +368 0.8252 +370 0.827 +372 0.8326 +374 0.8382 +376 0.8438 +378 0.8494 +380 0.855 +382 0.8586 +384 0.8622 +386 0.8658 +388 0.8694 +390 0.873 +392 0.8752 +394 0.8774 +396 0.8796 +398 0.8818 +400 0.884 +402 0.8839 +404 0.8838 +406 0.8837 +408 0.8836 +410 0.8835 +412 0.8834 +414 0.8833 +416 0.8832 +418 0.8831 +420 0.883 +422 0.8823 +424 0.8816 +426 0.8809 +428 0.8802 +430 0.8795 +432 0.8788 +434 0.8781 +436 0.8774 +438 0.8767 +440 0.876 +442 0.8747 +444 0.8734 +446 0.8721 +448 0.8708 +450 0.8695 +452 0.8682 +454 0.8669 +456 0.8656 +458 0.8643 +460 0.863 +462 0.8616 +464 0.8602 +466 0.8588 +468 0.8574 +470 0.856 +472 0.8546 +474 0.8532 +476 0.8518 +478 0.8504 +480 0.849 +482 0.8475 +484 0.846 +486 0.8445 +488 0.843 +490 0.8415 +492 0.84 +494 0.8385 +496 0.837 +498 0.8355 +500 0.834 +502 0.833 +504 0.832 +506 0.831 +508 0.83 +510 0.829 +512 0.828 +514 0.827 +516 0.826 +518 0.825 +520 0.824 +522 0.823 +524 0.822 +526 0.821 +528 0.82 +530 0.819 +532 0.818 +534 0.817 +536 0.816 +538 0.815 +540 0.814 +542 0.8134 +544 0.8128 +546 0.8122 +548 0.8116 +550 0.811 +552 0.8104 +554 0.8098 +556 0.8092 +558 0.8086 +560 0.808 +562 0.8075 +564 0.807 +566 0.8065 +568 0.806 +570 0.8055 +572 0.805 +574 0.8045 +576 0.804 +578 0.8035 +580 0.803 +582 0.8022 +584 0.8014 +586 0.8006 +588 0.7998 +590 0.799 +592 0.7982 +594 0.7974 +596 0.7966 +598 0.7958 +600 0.795 diff --git a/XSHOOTER/calibration/eso_etc/ccd927.dat b/XSHOOTER/calibration/eso_etc/ccd927.dat new file mode 100644 index 00000000..688663d0 --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/ccd927.dat @@ -0,0 +1,125 @@ +480 0.715 +485 0.7188 +490 0.7225 +495 0.7262 +500 0.73 +505 0.7345 +510 0.739 +515 0.7435 +520 0.748 +525 0.7522 +530 0.7565 +535 0.7608 +540 0.765 +545 0.77 +550 0.775 +555 0.7795 +560 0.784 +565 0.7893 +570 0.7945 +575 0.7997 +580 0.805 +585 0.8095 +590 0.814 +595 0.8185 +600 0.823 +605 0.8283 +610 0.8335 +615 0.8387 +620 0.844 +625 0.8488 +630 0.8535 +635 0.8582 +640 0.863 +645 0.867 +650 0.871 +655 0.875 +660 0.879 +665 0.8828 +670 0.8865 +675 0.8902 +680 0.894 +685 0.8975 +690 0.901 +695 0.9045 +700 0.908 +705 0.911 +710 0.914 +715 0.917 +720 0.92 +725 0.9225 +730 0.925 +735 0.9275 +740 0.93 +745 0.931 +750 0.932 +755 0.933 +760 0.934 +765 0.932 +770 0.93 +775 0.928 +780 0.926 +785 0.9243 +790 0.9225 +795 0.9207 +800 0.919 +805 0.9163 +810 0.9135 +815 0.9107 +820 0.908 +825 0.8998 +830 0.8915 +835 0.8832 +840 0.875 +845 0.865 +850 0.855 +855 0.8445 +860 0.834 +865 0.8257 +870 0.8175 +875 0.8093 +880 0.801 +885 0.7855 +890 0.77 +895 0.7545 +900 0.739 +905 0.7167 +910 0.6945 +915 0.6723 +920 0.65 +925 0.6258 +930 0.6015 +935 0.5773 +940 0.553 +945 0.531 +950 0.509 +955 0.4865 +960 0.464 +965 0.4363 +970 0.4085 +975 0.3807 +980 0.353 +985 0.3237 +990 0.2945 +995 0.2652 +1000 0.236 +1005 0.209 +1010 0.182 +1015 0.155 +1020 0.128 +1025 0.1095 +1030 0.091 +1035 0.0725 +1040 0.054 +1045 0.048 +1050 0.042 +1055 0.036 +1060 0.03 +1065 0.0262 +1070 0.0225 +1075 0.0187 +1080 0.015 +1085 0.013 +1090 0.011 +1095 0.009 +1100 0.007 diff --git a/XSHOOTER/calibration/eso_etc/ccd928.dat b/XSHOOTER/calibration/eso_etc/ccd928.dat new file mode 100644 index 00000000..bf6e91bb --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/ccd928.dat @@ -0,0 +1,153 @@ +980 0.8142 +990 0.82 +1000 0.8258 +1010 0.8317 +1020 0.8181 +1030 0.8173 +1040 0.8223 +1050 0.8186 +1060 0.8235 +1070 0.8332 +1080 0.8476 +1090 0.8598 +1100 0.8701 +1110 0.8834 +1120 0.8967 +1130 0.9088 +1140 0.9175 +1150 0.9271 +1160 0.935 +1170 0.9362 +1180 0.9328 +1190 0.9259 +1200 0.9212 +1210 0.9187 +1220 0.9141 +1230 0.9085 +1240 0.9031 +1250 0.9014 +1260 0.8994 +1270 0.8982 +1280 0.8986 +1290 0.8985 +1300 0.8975 +1310 0.8931 +1320 0.8874 +1330 0.8809 +1340 0.8749 +1350 0.8691 +1360 0.8624 +1370 0.8552 +1380 0.8473 +1390 0.8385 +1400 0.8291 +1410 0.8199 +1420 0.8137 +1430 0.8075 +1440 0.8012 +1450 0.795 +1460 0.7902 +1470 0.7866 +1480 0.784 +1490 0.7824 +1500 0.782 +1510 0.7825 +1520 0.7836 +1530 0.7858 +1540 0.7887 +1550 0.7927 +1560 0.7974 +1570 0.8015 +1580 0.8051 +1590 0.8088 +1600 0.8122 +1610 0.8157 +1620 0.8192 +1630 0.8226 +1640 0.8261 +1650 0.8294 +1660 0.8324 +1670 0.8361 +1680 0.8393 +1690 0.8427 +1700 0.8464 +1710 0.8497 +1720 0.8525 +1730 0.8548 +1740 0.8574 +1750 0.8586 +1760 0.8582 +1770 0.8553 +1780 0.8503 +1790 0.8431 +1800 0.8367 +1810 0.8312 +1820 0.8196 +1830 0.8155 +1840 0.8127 +1850 0.8059 +1860 0.8016 +1870 0.7978 +1880 0.7955 +1890 0.8004 +1900 0.8095 +1910 0.8179 +1920 0.8255 +1930 0.8292 +1940 0.824 +1950 0.8175 +1960 0.8141 +1970 0.8213 +1980 0.817 +1990 0.8131 +2000 0.8026 +2010 0.8024 +2020 0.7896 +2030 0.7874 +2040 0.7832 +2050 0.782 +2060 0.7789 +2070 0.776 +2080 0.7616 +2090 0.7592 +2100 0.7563 +2110 0.7546 +2120 0.74 +2130 0.7369 +2140 0.7235 +2150 0.7216 +2160 0.718 +2170 0.7164 +2180 0.7155 +2190 0.714 +2200 0.7131 +2210 0.712 +2220 0.7102 +2230 0.7091 +2240 0.7084 +2250 0.7064 +2260 0.705 +2270 0.7039 +2280 0.7051 +2290 0.7034 +2300 0.7018 +2310 0.6999 +2320 0.6987 +2330 0.7012 +2340 0.7006 +2350 0.6999 +2360 0.6991 +2370 0.6974 +2380 0.695 +2390 0.6897 +2400 0.6852 +2410 0.6781 +2420 0.6688 +2430 0.6556 +2440 0.6349 +2450 0.6155 +2460 0.6175 +2470 0.592 +2480 0.5485 +2490 0.4982 +2500 0.4796 diff --git a/XSHOOTER/calibration/eso_etc/instr_NIR.dat b/XSHOOTER/calibration/eso_etc/instr_NIR.dat new file mode 100644 index 00000000..3640bb2b --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/instr_NIR.dat @@ -0,0 +1,663 @@ +982.5 0.0053938 +985 0.0209295 +987.5 0.0364652 +990 0.0520008 +992.5 0.0675365 +995 0.0830722 +997.5 0.0986079 +1000 0.114143 +1002.5 0.129679 +1005 0.145215 +1005.77 0.15 +1007.5 0.160751 +1010 0.176286 +1012.5 0.191822 +1015 0.207358 +1017.5 0.222893 +1020 0.238429 +1022.5 0.253965 +1025 0.2695 +1027.5 0.285036 +1030 0.300572 +1032.5 0.316107 +1035 0.331643 +1037.5 0.347179 +1040 0.362714 +1042.5 0.37825 +1045 0.393786 +1046 0.4 +1047.5 0.400344 +1050 0.400918 +1052.5 0.401492 +1055 0.402065 +1057.5 0.402639 +1060 0.403212 +1062.5 0.403786 +1065 0.40436 +1067.5 0.404934 +1070 0.405507 +1072.5 0.406081 +1075 0.406654 +1077.5 0.407228 +1080 0.407802 +1082.5 0.408375 +1085 0.408949 +1087.5 0.409523 +1089.58 0.41 +1090 0.410089 +1092.5 0.410616 +1095 0.411144 +1097.5 0.411672 +1100 0.412199 +1102.5 0.412727 +1105 0.413255 +1107.5 0.413782 +1110 0.41431 +1112.5 0.414838 +1115 0.415365 +1117.5 0.415893 +1120 0.41642 +1122.5 0.416948 +1125 0.417476 +1127.5 0.418003 +1130 0.418531 +1132.5 0.419059 +1135 0.419586 +1136.96 0.42 +1137.5 0.420314 +1140 0.421765 +1142.5 0.423216 +1145 0.424667 +1147.5 0.426118 +1150 0.42757 +1152.5 0.429021 +1155 0.430472 +1157.5 0.431923 +1160 0.433375 +1162.5 0.434826 +1165 0.436277 +1167.5 0.437728 +1170 0.43918 +1172.5 0.440631 +1175 0.442082 +1177.5 0.443533 +1180 0.444985 +1182.5 0.446436 +1185 0.447887 +1187.5 0.449338 +1188.64 0.45 +1190 0.44976 +1192.5 0.449318 +1195 0.448876 +1197.5 0.448435 +1200 0.447993 +1202.5 0.447551 +1205 0.447109 +1207.5 0.446668 +1210 0.446226 +1212.5 0.445784 +1215 0.445343 +1217.5 0.444901 +1220 0.444459 +1222.5 0.444018 +1225 0.443576 +1227.5 0.443134 +1230 0.442693 +1232.5 0.442251 +1235 0.441809 +1237.5 0.441368 +1240 0.440926 +1242.5 0.440484 +1245 0.440042 +1245.24 0.44 +1247.5 0.440363 +1250 0.440765 +1252.5 0.441166 +1255 0.441568 +1257.5 0.441969 +1260 0.442371 +1262.5 0.442772 +1265 0.443174 +1267.5 0.443575 +1270 0.443977 +1272.5 0.444378 +1275 0.44478 +1277.5 0.445182 +1280 0.445583 +1282.5 0.445985 +1285 0.446386 +1287.5 0.446788 +1290 0.447189 +1292.5 0.447591 +1295 0.447992 +1297.5 0.448394 +1300 0.448795 +1302.5 0.449197 +1305 0.449598 +1307.5 0.45 +1310 0.449637 +1312.5 0.449273 +1315 0.44891 +1317.5 0.448547 +1320 0.448183 +1322.5 0.44782 +1325 0.447457 +1327.5 0.447093 +1330 0.44673 +1332.5 0.446367 +1335 0.446003 +1337.5 0.44564 +1340 0.445277 +1342.5 0.444914 +1345 0.44455 +1347.5 0.444187 +1350 0.443824 +1352.5 0.44346 +1355 0.443097 +1357.5 0.442734 +1360 0.44237 +1362.5 0.442007 +1365 0.441644 +1367.5 0.44128 +1370 0.440917 +1372.5 0.440554 +1375 0.44019 +1376.31 0.44 +1377.5 0.44 +1380 0.44 +1382.5 0.44 +1385 0.44 +1387.5 0.44 +1390 0.44 +1392.5 0.44 +1395 0.44 +1397.5 0.44 +1400 0.44 +1402.5 0.44 +1405 0.44 +1407.5 0.44 +1410 0.44 +1412.5 0.44 +1415 0.44 +1417.5 0.44 +1420 0.44 +1422.5 0.44 +1425 0.44 +1427.5 0.44 +1430 0.44 +1432.5 0.44 +1435 0.44 +1437.5 0.44 +1440 0.44 +1442.5 0.44 +1445 0.44 +1447.5 0.44 +1450 0.44 +1452.5 0.44 +1452.78 0.44 +1455 0.44026 +1457.5 0.440552 +1460 0.440845 +1462.5 0.441138 +1465 0.44143 +1467.5 0.441723 +1470 0.442015 +1472.5 0.442308 +1475 0.4426 +1477.5 0.442893 +1480 0.443186 +1482.5 0.443478 +1485 0.443771 +1487.5 0.444063 +1490 0.444356 +1492.5 0.444648 +1495 0.444941 +1497.5 0.445234 +1500 0.445526 +1502.5 0.445819 +1505 0.446111 +1507.5 0.446404 +1510 0.446696 +1512.5 0.446989 +1515 0.447281 +1517.5 0.447574 +1520 0.447867 +1522.5 0.448159 +1525 0.448452 +1527.5 0.448744 +1530 0.449037 +1532.5 0.449329 +1535 0.449622 +1537.5 0.449915 +1538.23 0.45 +1540 0.450184 +1542.5 0.450444 +1545 0.450704 +1547.5 0.450964 +1550 0.451224 +1552.5 0.451484 +1555 0.451744 +1557.5 0.452004 +1560 0.452264 +1562.5 0.452524 +1565 0.452784 +1567.5 0.453044 +1570 0.453304 +1572.5 0.453564 +1575 0.453824 +1577.5 0.454084 +1580 0.454344 +1582.5 0.454604 +1585 0.454864 +1587.5 0.455124 +1590 0.455384 +1592.5 0.455644 +1595 0.455904 +1597.5 0.456164 +1600 0.456424 +1602.5 0.456684 +1605 0.456944 +1607.5 0.457204 +1610 0.457464 +1612.5 0.457724 +1615 0.457984 +1617.5 0.458244 +1620 0.458504 +1622.5 0.458764 +1625 0.459024 +1627.5 0.459284 +1630 0.459545 +1632.5 0.459805 +1634.38 0.46 +1635 0.459943 +1637.5 0.459714 +1640 0.459484 +1642.5 0.459255 +1645 0.459025 +1647.5 0.458796 +1650 0.458566 +1652.5 0.458337 +1655 0.458107 +1657.5 0.457878 +1660 0.457649 +1662.5 0.457419 +1665 0.45719 +1667.5 0.45696 +1670 0.456731 +1672.5 0.456501 +1675 0.456272 +1677.5 0.456042 +1680 0.455813 +1682.5 0.455583 +1685 0.455354 +1687.5 0.455124 +1690 0.454895 +1692.5 0.454665 +1695 0.454436 +1697.5 0.454207 +1700 0.453977 +1702.5 0.453748 +1705 0.453518 +1707.5 0.453289 +1710 0.453059 +1712.5 0.45283 +1715 0.4526 +1717.5 0.452371 +1720 0.452141 +1722.5 0.451912 +1725 0.451682 +1727.5 0.451453 +1730 0.451223 +1732.5 0.450994 +1735 0.450765 +1737.5 0.450535 +1740 0.450306 +1742.5 0.450076 +1743.33 0.45 +1745 0.450134 +1747.5 0.450335 +1750 0.450536 +1752.5 0.450736 +1755 0.450937 +1757.5 0.451138 +1760 0.451339 +1762.5 0.451539 +1765 0.45174 +1767.5 0.451941 +1770 0.452142 +1772.5 0.452342 +1775 0.452543 +1777.5 0.452744 +1780 0.452945 +1782.5 0.453145 +1785 0.453346 +1787.5 0.453547 +1790 0.453748 +1792.5 0.453948 +1795 0.454149 +1797.5 0.45435 +1800 0.454551 +1802.5 0.454751 +1805 0.454952 +1807.5 0.455153 +1810 0.455354 +1812.5 0.455554 +1815 0.455755 +1817.5 0.455956 +1820 0.456157 +1822.5 0.456358 +1825 0.456558 +1827.5 0.456759 +1830 0.45696 +1832.5 0.457161 +1835 0.457361 +1837.5 0.457562 +1840 0.457763 +1842.5 0.457964 +1845 0.458164 +1847.5 0.458365 +1850 0.458566 +1852.5 0.458767 +1855 0.458967 +1857.5 0.459168 +1860 0.459369 +1862.5 0.45957 +1865 0.45977 +1867.5 0.459971 +1867.86 0.46 +1870 0.460149 +1872.5 0.460323 +1875 0.460497 +1877.5 0.460671 +1880 0.460845 +1882.5 0.461019 +1885 0.461193 +1887.5 0.461367 +1890 0.461541 +1892.5 0.461715 +1895 0.461889 +1897.5 0.462063 +1900 0.462237 +1902.5 0.462411 +1905 0.462585 +1907.5 0.462759 +1910 0.462933 +1912.5 0.463107 +1915 0.463281 +1917.5 0.463455 +1920 0.463629 +1922.5 0.463803 +1925 0.463977 +1927.5 0.464151 +1930 0.464325 +1932.5 0.464499 +1935 0.464673 +1937.5 0.464847 +1940 0.465021 +1942.5 0.465195 +1945 0.465369 +1947.5 0.465543 +1950 0.465717 +1952.5 0.465891 +1955 0.466065 +1957.5 0.466239 +1960 0.466413 +1962.5 0.466587 +1965 0.466761 +1967.5 0.466935 +1970 0.467109 +1972.5 0.467283 +1975 0.467457 +1977.5 0.467631 +1980 0.467805 +1982.5 0.467979 +1985 0.468153 +1987.5 0.468327 +1990 0.468501 +1992.5 0.468675 +1995 0.468849 +1997.5 0.469023 +2000 0.469197 +2002.5 0.469371 +2005 0.469545 +2007.5 0.469719 +2010 0.469893 +2011.54 0.47 +2012.5 0.47 +2015 0.47 +2017.5 0.47 +2020 0.47 +2022.5 0.47 +2025 0.47 +2027.5 0.47 +2030 0.47 +2032.5 0.47 +2035 0.47 +2037.5 0.47 +2040 0.47 +2042.5 0.47 +2045 0.47 +2047.5 0.47 +2050 0.47 +2052.5 0.47 +2055 0.47 +2057.5 0.47 +2060 0.47 +2062.5 0.47 +2065 0.47 +2067.5 0.47 +2070 0.47 +2072.5 0.47 +2075 0.47 +2077.5 0.47 +2080 0.47 +2082.5 0.47 +2085 0.47 +2087.5 0.47 +2090 0.47 +2092.5 0.47 +2095 0.47 +2097.5 0.47 +2100 0.47 +2102.5 0.47 +2105 0.47 +2107.5 0.47 +2110 0.47 +2112.5 0.47 +2115 0.47 +2117.5 0.47 +2120 0.47 +2122.5 0.47 +2125 0.47 +2127.5 0.47 +2130 0.47 +2132.5 0.47 +2135 0.47 +2137.5 0.47 +2140 0.47 +2142.5 0.47 +2145 0.47 +2147.5 0.47 +2150 0.47 +2152.5 0.47 +2155 0.47 +2157.5 0.47 +2160 0.47 +2162.5 0.47 +2165 0.47 +2167.5 0.47 +2170 0.47 +2172.5 0.47 +2175 0.47 +2177.5 0.47 +2179.17 0.47 +2180 0.469958 +2182.5 0.469832 +2185 0.469706 +2187.5 0.469579 +2190 0.469453 +2192.5 0.469327 +2195 0.469201 +2197.5 0.469075 +2200 0.468949 +2202.5 0.468822 +2205 0.468696 +2207.5 0.46857 +2210 0.468444 +2212.5 0.468318 +2215 0.468191 +2217.5 0.468065 +2220 0.467939 +2222.5 0.467813 +2225 0.467687 +2227.5 0.46756 +2230 0.467434 +2232.5 0.467308 +2235 0.467182 +2237.5 0.467056 +2240 0.466929 +2242.5 0.466803 +2245 0.466677 +2247.5 0.466551 +2250 0.466425 +2252.5 0.466299 +2255 0.466172 +2257.5 0.466046 +2260 0.46592 +2262.5 0.465794 +2265 0.465668 +2267.5 0.465541 +2270 0.465415 +2272.5 0.465289 +2275 0.465163 +2277.5 0.465037 +2280 0.46491 +2282.5 0.464784 +2285 0.464658 +2287.5 0.464532 +2290 0.464406 +2292.5 0.464279 +2295 0.464153 +2297.5 0.464027 +2300 0.463901 +2302.5 0.463775 +2305 0.463649 +2307.5 0.463522 +2310 0.463396 +2312.5 0.46327 +2315 0.463144 +2317.5 0.463018 +2320 0.462891 +2322.5 0.462765 +2325 0.462639 +2327.5 0.462513 +2330 0.462387 +2332.5 0.46226 +2335 0.462134 +2337.5 0.462008 +2340 0.461882 +2342.5 0.461756 +2345 0.461629 +2347.5 0.461503 +2350 0.461377 +2352.5 0.461251 +2355 0.461125 +2357.5 0.460998 +2360 0.460872 +2362.5 0.460746 +2365 0.46062 +2367.5 0.460494 +2370 0.460367 +2372.5 0.460241 +2375 0.460115 +2377.28 0.46 +2377.5 0.459989 +2380 0.459863 +2382.5 0.459736 +2385 0.45961 +2387.5 0.459484 +2390 0.459358 +2392.5 0.459232 +2395 0.459106 +2397.5 0.458979 +2400 0.458853 +2402.5 0.458727 +2405 0.458601 +2407.5 0.458475 +2410 0.458348 +2412.5 0.458222 +2415 0.458096 +2417.5 0.45797 +2420 0.457844 +2422.5 0.457717 +2425 0.457591 +2427.5 0.457465 +2430 0.457339 +2432.5 0.457213 +2435 0.457087 +2437.5 0.45696 +2440 0.456834 +2442.5 0.456708 +2445 0.456582 +2447.5 0.456456 +2450 0.456329 +2452.5 0.456203 +2455 0.456077 +2457.5 0.455951 +2460 0.455825 +2462.5 0.455698 +2465 0.455572 +2467.5 0.455446 +2470 0.45532 +2472.5 0.455194 +2475 0.455067 +2477.5 0.454941 +2480 0.454815 +2482.5 0.454689 +2485 0.454563 +2487.5 0.454436 +2490 0.45431 +2492.5 0.454184 +2495 0.454058 +2497.5 0.453932 +2500 0.453805 +2502.5 0.453679 +2505 0.453553 +2507.5 0.453427 +2510 0.453301 +2512.5 0.453174 +2515 0.453048 +2517.5 0.452922 +2520 0.452796 +2522.5 0.45267 +2525 0.452544 +2527.5 0.452417 +2530 0.452291 +2532.5 0.452165 +2535 0.452039 +2537.5 0.451913 +2540 0.451786 +2542.5 0.45166 +2545 0.451534 +2547.5 0.451408 +2550 0.451282 +2552.5 0.451155 +2555 0.451029 +2557.5 0.450903 +2560 0.450777 +2562.5 0.450651 +2565 0.450524 +2567.5 0.450398 +2570 0.450272 +2572.5 0.450146 +2575 0.45002 +2577.5 0.449894 +2580 0.449767 +2582.5 0.449641 +2585 0.449515 +2587.5 0.449389 +2590 0.449263 +2592.5 0.449136 +2595 0.44901 +2597.5 0.448884 +2600 0.448758 diff --git a/XSHOOTER/calibration/eso_etc/instr_UVB.dat b/XSHOOTER/calibration/eso_etc/instr_UVB.dat new file mode 100644 index 00000000..1ddb6385 --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/instr_UVB.dat @@ -0,0 +1,129 @@ +280 0.495156 +282.5 0.493203 +285 0.49125 +287.5 0.489297 +290 0.487344 +292.5 0.485391 +295 0.483438 +297.5 0.481484 +300 0.479531 +302.5 0.477578 +305 0.475625 +307.5 0.473672 +310 0.471719 +312.2 0.47 +312.5 0.469766 +315 0.467813 +317.5 0.465859 +320 0.463906 +322.5 0.461953 +325 0.46 +327.5 0.454932 +330 0.449865 +332.5 0.444797 +335 0.43973 +337.5 0.434662 +339.8 0.43 +340 0.430368 +342.5 0.434969 +345 0.439571 +347.5 0.444172 +350 0.448773 +352.5 0.453374 +355 0.457975 +356.1 0.46 +357.5 0.463218 +360 0.468965 +362.5 0.474713 +365 0.48046 +367.5 0.486207 +370 0.491954 +372.5 0.497701 +373.5 0.5 +375 0.499239 +377.5 0.49797 +380 0.4967 +382.5 0.495432 +385 0.494162 +387.5 0.492893 +390 0.491624 +392.5 0.490355 +393.2 0.49 +395 0.489155 +397.5 0.487981 +400 0.486808 +402.5 0.485634 +405 0.48446 +407.5 0.483286 +410 0.482113 +412.5 0.480939 +414.5 0.48 +415 0.48 +417.5 0.48 +420 0.48 +422.5 0.48 +425 0.48 +427.5 0.48 +430 0.48 +432.5 0.48 +435 0.48 +437.5 0.48 +438.8 0.48 +440 0.479565 +442.5 0.478659 +445 0.477754 +447.5 0.476848 +450 0.475942 +452.5 0.475036 +455 0.47413 +457.5 0.473225 +460 0.472319 +462.5 0.471413 +465 0.470507 +466.4 0.47 +467.5 0.470362 +470 0.471184 +472.5 0.472007 +475 0.472829 +477.5 0.473651 +480 0.474474 +482.5 0.475296 +485 0.476118 +487.5 0.476941 +490 0.477763 +492.5 0.478585 +495 0.479408 +496.8 0.48 +497.5 0.479181 +500 0.476257 +502.5 0.473333 +505 0.470409 +507.5 0.467485 +510 0.464561 +512.5 0.461637 +515 0.458713 +517.5 0.45579 +520 0.452865 +522.5 0.449941 +525 0.447018 +527.5 0.444094 +530 0.44117 +531 0.44 +532.5 0.425 +535 0.4 +537.5 0.375 +540 0.35 +542.5 0.325 +545 0.3 +547.5 0.275 +550 0.25 +552.5 0.225 +555 0.2 +556 0.19 +557.5 0.175 +560 0.15 +562.5 0.125 +565 0.1 +567.5 0.075 +570 0.05 +572.5 0.025 diff --git a/XSHOOTER/calibration/eso_etc/instr_VIS.dat b/XSHOOTER/calibration/eso_etc/instr_VIS.dat new file mode 100644 index 00000000..a0a04ef3 --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/instr_VIS.dat @@ -0,0 +1,217 @@ +547.5 0.0085714 +550 0.0514286 +550.5 0.06 +552.5 0.0942857 +555 0.137143 +557.5 0.18 +560 0.222857 +562.5 0.265714 +565 0.308571 +567.5 0.351429 +568 0.36 +570 0.36 +572.5 0.36 +575 0.36 +577.5 0.36 +580 0.36 +582.5 0.36 +585 0.36 +585.9 0.36 +587.5 0.36367 +590 0.369404 +592.5 0.375138 +595 0.380871 +597.5 0.386605 +600 0.392339 +602.5 0.398073 +605 0.403807 +607.5 0.409541 +607.7 0.41 +610 0.41211 +612.5 0.414404 +615 0.416697 +617.5 0.418991 +620 0.421284 +622.5 0.423578 +625 0.425872 +627.5 0.428165 +629.5 0.43 +630 0.430617 +632.5 0.433704 +635 0.43679 +637.5 0.439877 +640 0.442963 +642.5 0.446049 +645 0.449136 +647.5 0.452222 +650 0.455309 +652.5 0.458395 +653.8 0.46 +655 0.460424 +657.5 0.461307 +660 0.462191 +662.5 0.463074 +665 0.463958 +667.5 0.464841 +670 0.465724 +672.5 0.466608 +675 0.467491 +677.5 0.468375 +680 0.469258 +682.1 0.47 +682.5 0.47055 +685 0.473986 +687.5 0.477423 +690 0.480859 +692.5 0.484295 +695 0.487732 +697.5 0.491168 +700 0.494605 +702.5 0.498041 +705 0.501478 +707.5 0.504914 +710 0.508351 +711.2 0.51 +712.5 0.510414 +715 0.51121 +717.5 0.512006 +720 0.512803 +722.5 0.513599 +725 0.514395 +727.5 0.515191 +730 0.515987 +732.5 0.516783 +735 0.51758 +737.5 0.518376 +740 0.519172 +742.5 0.519968 +742.6 0.52 +745 0.519314 +747.5 0.5186 +750 0.517886 +752.5 0.517171 +755 0.516457 +757.5 0.515743 +760 0.515029 +762.5 0.514314 +765 0.5136 +767.5 0.512886 +770 0.512171 +772.5 0.511457 +775 0.510743 +777.5 0.510029 +777.6 0.51 +780 0.510628 +782.5 0.511283 +785 0.511937 +787.5 0.512592 +790 0.513246 +792.5 0.5139 +795 0.514555 +797.5 0.515209 +800 0.515864 +802.5 0.516518 +805 0.517173 +807.5 0.517827 +810 0.518482 +812.5 0.519136 +815 0.519791 +815.8 0.52 +817.5 0.519234 +820 0.518108 +822.5 0.516982 +825 0.515856 +827.5 0.51473 +830 0.513604 +832.5 0.512478 +835 0.511351 +837.5 0.510225 +840 0.509099 +842.5 0.507973 +845 0.506847 +847.5 0.505721 +850 0.504595 +852.5 0.503468 +855 0.502342 +857.5 0.501216 +860 0.50009 +860.2 0.5 +862.5 0.5 +865 0.5 +867.5 0.5 +870 0.5 +872.5 0.5 +875 0.5 +877.5 0.5 +880 0.5 +882.5 0.5 +885 0.5 +887.5 0.5 +890 0.5 +892.5 0.5 +895 0.5 +897.5 0.5 +900 0.5 +902.5 0.5 +904.3 0.5 +905 0.498811 +907.5 0.494566 +910 0.490321 +912.5 0.486075 +915 0.48183 +917.5 0.477585 +920 0.47334 +922.5 0.469094 +925 0.464849 +927.5 0.460604 +930 0.456359 +932.5 0.452113 +935 0.447868 +937.5 0.443623 +940 0.439377 +942.5 0.435132 +945 0.430887 +947.5 0.426642 +950 0.422396 +952.5 0.418151 +955 0.413906 +957.3 0.41 +957.5 0.409368 +960 0.401467 +962.5 0.393566 +965 0.385666 +967.5 0.377765 +970 0.369864 +972.5 0.361964 +975 0.354063 +977.5 0.346162 +980 0.338262 +982.5 0.330361 +985 0.32246 +987.5 0.31456 +990 0.306659 +992.5 0.298758 +995 0.290858 +997.5 0.282957 +1000 0.275056 +1001.6 0.27 +1002.5 0.267156 +1005 0.259255 +1007.5 0.251354 +1010 0.243454 +1012.5 0.235553 +1015 0.227652 +1017.5 0.219752 +1020 0.211851 +1022.5 0.20395 +1025 0.19605 +1027.5 0.188149 +1030 0.180248 +1032.5 0.172347 +1035 0.164447 +1037.5 0.156546 +1040 0.148646 +1042.5 0.140745 +1045 0.132844 +1047.5 0.124943 +1050 0.117043 diff --git a/XSHOOTER/calibration/eso_etc/nir_dit_ron.dat b/XSHOOTER/calibration/eso_etc/nir_dit_ron.dat new file mode 100644 index 00000000..085b5869 --- /dev/null +++ b/XSHOOTER/calibration/eso_etc/nir_dit_ron.dat @@ -0,0 +1,27 @@ +0 25.6 +1 25.6 +2 24.4 +3 23.1 +4 20.9 +5 19.9 +6 18.4 +7 17.9 +8 16.8 +16 13 +32 10.2 +64 8.1 +100 7.4 +150 6.9 +200 6.8 +250 6.6 +300 6.7 +360 6.8 +475 7 +600 7.2 +700 7.5 +800 7.8 +900 8 +1200 8.6 +1500 9.2 +1800 9.9 +1e+10 10 diff --git a/XSHOOTER/calibration/eso_model.c b/XSHOOTER/calibration/eso_model.c new file mode 100644 index 00000000..5ec129aa --- /dev/null +++ b/XSHOOTER/calibration/eso_model.c @@ -0,0 +1,1290 @@ +/* Mathematical kernel from ESO X-shooter pipeline 3.8.12. + * Copyright (C) 2006 European Southern Observatory. + * GPL-2.0-or-later; see ESO_COPYING. + * Source: xsh/xsh_model_kernel.c, xsh_model_kernel.h, xsh_model_ref_ind.h. + * https://ftp.eso.org/pub/dfs/pipelines/instruments/xshooter/xshoo-kit-3.8.12-3.tar.gz + * Mathematical function bodies are unchanged. CPL I/O and unused functions + * are omitted; the last four functions expose the kernel for offline table + * preparation only. This file is not part of the ScopeSim runtime. + */ +#include +#include +#include +#include +#define NIR_FIX 36 +#define mm2um 1000.0 +#define mm2nm 1000000.0 +#define XSH_TRACE_MSG(x) +static const int vectordim=4; +typedef double DOUBLE; + + +typedef DOUBLE vec[4]; +typedef DOUBLE cvec[4]; +typedef DOUBLE mat[4][4]; + +typedef int detloc[3]; +typedef int XY[3]; + +typedef struct { + DOUBLE best,min,max; + int flag; + char name[20]; +} ann_all_par; + +typedef struct + { + int counter; + double x; + double y; + int arm; + double wave; + double flux; + int slit_pos; + int order; + } coord ; + +struct xs_3 +{ + + int arm; + double chipxpix,chipypix; + double xsize_corr, ysize_corr; + int ASIZE, BSIZE, SIZE; + int morder, morder_min, morder_max; + DOUBLE blaze_pad; + DOUBLE temper, t_ir_p2, t_ir_p3; + DOUBLE mues, nues, taues, slit_scale, es_s, es_w, es_x, es_xf, es_y, es_y_tot; + DOUBLE fcol; + DOUBLE mup1, cmup1, nup1, taup1; + DOUBLE rind, rind2, rind3, rind_a1, rind_a2, rind_a3, rind_b1, rind_b2, rind_lm1, rind_lm2, rind_lm3, rind_wta0, rind_wta1, rind_wta2, rind_wtb0, rind_wtb1, rind_wtb2; + DOUBLE rind_delta; + DOUBLE mup2, nup2, taup2; + DOUBLE mup3, nup3, taup3; + DOUBLE mup4, nup4, taup4; + DOUBLE mup5, nup5, taup5; + DOUBLE mup6, nup6, taup6; + + DOUBLE mug, nug, taug, sg, grat_alpha, grat_beta; + DOUBLE mud, nud, taud, pix, pix_X, pix_Y, offx, offy, flipx, flipy, xpospix, ypospix, fdet; + + detloc chippix; + double xdet,ydet; + + double chipx, chipy, chipxup, chipyup, chipxdown, chipydown, chiprot; + + + double pc_x_xx, pc_x_x1, pc_x_yy, pc_x_y1, pc_x_xy, pc_x_x3, pc_x_x2y, pc_x_y2x, pc_x_y3; + double pc_y_xx, pc_y_x1, pc_y_yy, pc_y_y1, pc_y_xy, pc_y_x3, pc_y_x2y, pc_y_y2x, pc_y_y3; + + double pc4_x_xy3,pc4_x_x3y,pc4_x_x2y2,pc4_x_x4,pc4_x_y4; + double pc4_y_xy3,pc4_y_x3y,pc4_y_x2y2,pc4_y_x4,pc4_y_y4; + + + double d2_x3, d2_x2, d2_x1; + double d2_y3x3, d2_y3x2, d2_y3x1,d2_y3x0,d2_y2x3, d2_y2x2, d2_y2x1,d2_y2x0,d2_y1x3, d2_y1x2, d2_y1x1,d2_y1x0; + + double ca_x0,ca_x1,ca_y0,ca_y1; + + + mat e_slit; + mat mup_ir_cor, mup_ir_cor_out, toprism1, toprism2, toprism3, toprism4, toprism5, toprism6, prism_out, ret_prism2, ret_prism1, ret_prism_out1,ret_prism4, ret_prism3, ret_prism_out2,ret_prism6, ret_prism5, ret_prism_out3,todetector; + mat tograt, grat_out; + DOUBLE slit[10]; + + + double config_mjd; +}; +typedef struct xs_3 xsh_xs_3; +/* $Id: xsh_model_ref_ind.h,v 1.4 2010-07-28 11:17:30 amodigli Exp $ + * + * This file is part of the ESO X-shooter Pipeline + * Copyright (C) 2006 European Southern Observatory + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + + +#ifndef XSH_MODEL_REF_IND_H +#define XSH_MODEL_REF_IND_H + +static double schott_sf6_manu [6][7] = { + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,260.0}, + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,270.0}, + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,280.0}, + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,290.0}, + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,300.0}, + {1.72618475,0.392383376,1.05068036,0.0134871947,0.0569318095,118.557185,310.0} + }; + +static double silica_zemax [6][7] = { + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,260.0}, + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,270.0}, + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,280.0}, + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,290.0}, + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,300.0}, + {0.6961663,0.4079426,0.8974794,0.004679148,0.01351206,97.934,310.0}}; + +static double znse [6][7] = { + {4.43472613286,0.437534439541,2.94296707239,0.20047046355,0.383301991611,47.9937969433,95.0}, + {4.43542230714,0.438059580351,2.9265319319,0.200506374102,0.383453912766,47.8502966353,100.0}, + {4.43612895652,0.438586230317,2.91141326949,0.200541768113,0.383612197906,47.7172014285,105.0}, + {4.43604895636,0.439902006841,2.88537551027,0.200541339195,0.38368776333,47.4933353795,110.0}, + {4.43675967885,0.440440921835,2.87838606989,0.200575497514,0.383853032135,47.4256517629,115.0}, + {4.4374705012,0.440979834519,2.87139508026,0.200609780065,0.384017392306,47.3579544185,120.0}}; +#endif + + + +void xsh_3_detpix(struct xs_3 *p_xs_3) +; +void xsh_3_eval(DOUBLE lambda, + int morder, + DOUBLE** ref_ind, + struct xs_3* p_xs_3) +; +void xsh_3_init(struct xs_3 * p_xs_3) +; +static void xsh_copyvector(vec a, vec b) +; +void xsh_matrixforvector(vec a,mat B,vec c) +; +double xsh_model_sellmeier_ext(int arm, double temper, double lam_sqr) +; +void xsh_multiplymatrix(mat A, mat B, mat C) +; +void xsh_normall(vec a) +; +void xsh_normz(vec a) +; +static void xsh_nullmatrix(mat A) +; +static void xsh_nullvector(vec a) +; +void xsh_ref_ind_read(int arm, DOUBLE** ref_ind_T,DOUBLE temper) +; +void xsh_refract(vec b, DOUBLE rind, vec a) +; +void +xsh_rotationmatrix(mat A, const char axis, const DOUBLE angle) +; +void +xsh_rotin(mat A,const DOUBLE x_angle, const DOUBLE y_angle,const DOUBLE z_angle) +; +void xsh_subtractvectors(vec a, vec b) +; +void xsh_transpose(mat A ,mat B) +; +void xsh_3_detpix(struct xs_3 *p_xs_3) +{ + + double xdet2, ydet2; + + double xdet_c, xdet_c2, xdet_c3, ydet_c, ydet_c2, ydet_c3; + double d2_y1=0.0; + double d2_y2=0.0; + double d2_y3=0.0; + double pc_x, pc_y, dstn_x, dstn_y; + double xdet_c4, ydet_c4; + + int array_size_fix=0; + + + + + p_xs_3->xpospix=0.0; + p_xs_3->ypospix=0.0; + p_xs_3->chippix[0]=-1; + p_xs_3->chippix[1]=0; + p_xs_3->chippix[2]=0; + +#ifndef FCCDD_FLAG + + + + ydet2=p_xs_3->ydet*p_xs_3->ydet; + double ydet3=ydet2*p_xs_3->ydet; + xdet2=p_xs_3->xdet*p_xs_3->xdet; + double xdet3=xdet2*p_xs_3->xdet; + xdet_c=p_xs_3->xdet-p_xs_3->chipx; + + xdet_c2=xdet_c*xdet_c; + xdet_c3=xdet_c2*xdet_c; + xdet_c4=xdet_c3*xdet_c; + ydet_c=p_xs_3->ydet-p_xs_3->chipy; + + ydet_c2=ydet_c*ydet_c; + ydet_c3=ydet_c2*ydet_c; + ydet_c4=ydet_c3*ydet_c; + + + pc_x=p_xs_3->chipx+ + (p_xs_3->pc_x_xx*xdet_c2)+ + (p_xs_3->pc_x_x1*xdet_c)+ + (p_xs_3->pc_x_yy*ydet_c2)+ + (p_xs_3->pc_x_y1*ydet_c)+ + (p_xs_3->pc_x_xy*xdet_c*ydet_c)+ + (p_xs_3->pc_x_x3*xdet_c3)+ + (p_xs_3->pc_x_x2y*xdet_c2*ydet_c)+ + (p_xs_3->pc_x_y2x*xdet_c*ydet_c2)+ + (p_xs_3->pc_x_y3*ydet_c3)+ + (p_xs_3->pc4_x_xy3*xdet_c*ydet_c3)+ + (p_xs_3->pc4_x_x3y*xdet_c3*ydet_c)+ + (p_xs_3->pc4_x_x2y2*xdet_c2*ydet_c2)+ + (p_xs_3->pc4_x_x4*xdet_c4)+ + (p_xs_3->pc4_x_y4*ydet_c4); + pc_y=p_xs_3->chipy+ + (p_xs_3->pc_y_xx*xdet_c2)+ + (p_xs_3->pc_y_x1*xdet_c)+ + (p_xs_3->pc_y_yy*ydet_c2)+ + (p_xs_3->pc_y_y1*ydet_c)+ + (p_xs_3->pc_y_xy*xdet_c*ydet_c)+ + (p_xs_3->pc_y_x3*xdet_c3)+ + (p_xs_3->pc_y_x2y*xdet_c2*ydet_c)+ + (p_xs_3->pc_y_y2x*xdet_c*ydet_c2)+ + (p_xs_3->pc_y_y3*ydet_c3)+ + (p_xs_3->pc4_y_xy3*xdet_c*ydet_c3)+ + (p_xs_3->pc4_y_x3y*xdet_c3*ydet_c)+ + (p_xs_3->pc4_y_x2y2*xdet_c2*ydet_c2)+ + (p_xs_3->pc4_y_x4*xdet_c4)+ + (p_xs_3->pc4_y_y4*ydet_c4); + + + + + + + + + + + + + + + + + + + + + + + p_xs_3->xdet=pc_x; + p_xs_3->ydet=pc_y; + + + if (p_xs_3->arm<2) { + dstn_y=(p_xs_3->d2_x3*ydet_c3)+(p_xs_3->d2_x2*ydet_c2)+(p_xs_3->d2_x1*ydet_c); + + p_xs_3->ydet=p_xs_3->ydet+dstn_y; + + + + + + + + } + else if (p_xs_3->arm==2) { + + if (p_xs_3->d2_x3!=0.0) { + dstn_x=(p_xs_3->d2_x3*xdet_c3)+(p_xs_3->d2_x2*xdet_c2)+(p_xs_3->d2_x1*xdet_c); + + p_xs_3->xdet=p_xs_3->xdet+dstn_x; + d2_y3=(p_xs_3->d2_y3x3*xdet_c3)+(p_xs_3->d2_y3x2*xdet_c2)+(p_xs_3->d2_y3x1*xdet_c)+p_xs_3->d2_y3x0; + d2_y2=(p_xs_3->d2_y2x3*xdet_c3)+(p_xs_3->d2_y2x2*xdet_c2)+(p_xs_3->d2_y2x1*xdet_c)+p_xs_3->d2_y2x0; + d2_y1=(p_xs_3->d2_y1x3*xdet_c3)+(p_xs_3->d2_y1x2*xdet_c2)+(p_xs_3->d2_y1x1*xdet_c)+p_xs_3->d2_y1x0; + + + + + dstn_y=(d2_y3*ydet_c3)+(d2_y2*ydet_c2)+(d2_y1*ydet_c); + p_xs_3->ydet=p_xs_3->ydet+dstn_y; + } + + else { + dstn_y=(p_xs_3->ca_x1*(xdet_c-p_xs_3->ca_x0)+p_xs_3->ca_y1*(ydet_c-p_xs_3->ca_y0))*p_xs_3->es_y_tot; + p_xs_3->ydet=p_xs_3->ydet+dstn_y; + } + } +#endif +#ifdef CCCDD_FLAG + + h_det=sqrt(p_xs_3->xdet*p_xs_3->xdet+p_xs_3->xdet*p_xs_3->xdet); + + p_xs_3->xdet=(p_xs_3->fdet*p_xs_3->xdet/h_det)*sin(h_det/p_xs_3->fdet); + p_xs_3->ydet=(p_xs_3->fdet*p_xs_3->ydet/h_det)*sin(h_det/p_xs_3->fdet); +#endif + + + + + + + + + + + + + + + + + + + + + p_xs_3->chippix[0]=1; + + + if(p_xs_3->arm!=2) { + p_xs_3->xpospix=0.5*(p_xs_3->chipxpix+p_xs_3->xsize_corr)-(p_xs_3->ydet-p_xs_3->chipy)/p_xs_3->pix_X; + p_xs_3->ypospix=0.5*(p_xs_3->chipypix+p_xs_3->ysize_corr)-(p_xs_3->xdet-p_xs_3->chipx)/p_xs_3->pix_Y; + } + else { + p_xs_3->xpospix=0.5*(p_xs_3->chipxpix+p_xs_3->xsize_corr)+(p_xs_3->xdet-p_xs_3->chipx)/p_xs_3->pix_X; + p_xs_3->ypospix=0.5*(p_xs_3->chipypix+p_xs_3->ysize_corr)+(p_xs_3->ydet-p_xs_3->chipy)/p_xs_3->pix_Y; + array_size_fix=NIR_FIX; + } + + + if (p_xs_3->pix_X>0.029) { + p_xs_3->xpospix=p_xs_3->xpospix+0.25; + } + if (p_xs_3->pix_Y>0.029) { + p_xs_3->ypospix=p_xs_3->ypospix+0.25; + } + + if (p_xs_3->xpospix>p_xs_3->chipxpix-1+array_size_fix) { + p_xs_3->xpospix=-1.0; + p_xs_3->ypospix=-1.0; + p_xs_3->chippix[0]=6; + } + if (p_xs_3->xpospix<0) { + p_xs_3->xpospix=-1.0; + p_xs_3->ypospix=-1.0; + p_xs_3->chippix[0]=5; + } + if (p_xs_3->ypospix<0) { + p_xs_3->xpospix=-1.0; + p_xs_3->ypospix=-1.0; + p_xs_3->chippix[0]=8; + } + if (p_xs_3->ypospix>p_xs_3->chipypix-1) { + p_xs_3->xpospix=-1.0; + p_xs_3->ypospix=-1.0; + p_xs_3->chippix[0]=7; + } + + p_xs_3->chippix[1]=(int)(p_xs_3->xpospix-0.5)+1; + p_xs_3->chippix[2]=(int)(p_xs_3->ypospix-0.5)+1; + + + + + + + + + + + + + + + + + + + + + + + + return; +} +void xsh_3_eval(DOUBLE lambda, + int morder, + DOUBLE** ref_ind, + struct xs_3* p_xs_3) +{ + DOUBLE lambda_um,lamf,rind_up,rind_down,xx,yy,dndT; + vec vres,slitpos2,slitpos,detproj; + + mat mech={ {1,0,0,0}, + {morder*(p_xs_3->sg),1,0,0}, + {0,0,1,0}, + {0,0,0,-1}}; + mat chrom_corr={ {1,0,0,0}, + {0,1,0,0}, + {0,0,1,0}, + {0,0,0,1}}; + + + + vec vres1={lambda, + 0, + 0, + -p_xs_3->fcol}; + + + XSH_TRACE_MSG(vres1) + + + slitpos[0]=0.0; + slitpos[1]=1.0*p_xs_3->es_x; + + if (p_xs_3->config_mjd>2455409.0) { + + if (p_xs_3->arm==0) { + if (lambda>0.000425) { + slitpos[2]=-1.0*p_xs_3->es_y_tot*(1.0+(lambda-0.000425)*p_xs_3->offx); + } + else{ + slitpos[2]=-1.0*p_xs_3->es_y_tot*(1.0+(lambda-0.000425)*p_xs_3->offy); + } + } + else if (p_xs_3->arm==1) { + if (lambda>0.000650) { + slitpos[2]=1.0*(p_xs_3->es_y_tot)*(1.0+(lambda-0.000900)*p_xs_3->offx); + } + else{ + slitpos[2]=1.0*(p_xs_3->es_y_tot)*(1.0+(lambda-0.000018)*p_xs_3->offy); + } + } + else if (p_xs_3->arm==2) { + if (lambda>0.001400) { + slitpos[2]=1.0*(p_xs_3->es_y_tot-p_xs_3->es_y)*(1.0+(lambda-0.001600)*p_xs_3->offx)+p_xs_3->es_y; + } + else{ + slitpos[2]=1.0*(p_xs_3->es_y_tot)*(1.0+(lambda-0.000990)*p_xs_3->offy); + } + } + } + else { + if (p_xs_3->arm==0) { + slitpos[2]=-1.0*p_xs_3->es_y_tot; + } + else { + slitpos[2]=1.0*p_xs_3->es_y_tot; + } + } + slitpos[3]=0.0; + xsh_matrixforvector(slitpos2,p_xs_3->e_slit,slitpos); + xsh_subtractvectors(vres1,slitpos2); + xsh_copyvector(vres,vres1); + xsh_normall(vres); + if (p_xs_3->arm!=2 && p_xs_3->config_mjd<2455409.0) { + + xsh_rotin(chrom_corr,vres[2]*(lambda-p_xs_3->offy)*p_xs_3->offx,0.0,0.0); + xsh_matrixforvector(vres,chrom_corr,vres); + } + + XSH_TRACE_MSG(vres) + + + + if (p_xs_3->arm==2) xsh_matrixforvector(vres,p_xs_3->mup_ir_cor,vres); + + xsh_matrixforvector(vres,p_xs_3->toprism1,vres); + + + lambda_um=lambda* mm2um; + lamf=lambda_um*lambda_um; + + if (p_xs_3->arm==1) { + + + p_xs_3->rind=sqrt(ref_ind[0][0]*lamf/(lamf-ref_ind[0][3])+ref_ind[0][1]*lamf/(lamf-ref_ind[0][4])+ref_ind[0][2]*lamf/(lamf-ref_ind[0][5])+1.0); + + + double lam_ig2=0.04963984; + double H=71.0867E-06; + double G=-50.2451E-06; + double R; + + R=lamf/(lamf-lam_ig2); + dndT=(G*R+H*R*R)/(2.0*p_xs_3->rind); + + + + + p_xs_3->rind+=dndT*(p_xs_3->temper-293.15); + + } + else { + + p_xs_3->rind=xsh_model_sellmeier_ext(p_xs_3->arm,p_xs_3->temper,lamf); + } + + + + + + + + xsh_refract(vres,p_xs_3->rind,vres); + + + + xsh_matrixforvector(vres,p_xs_3->toprism2,vres); + + + + xsh_refract(vres,1.0/(p_xs_3->rind),vres); + + + + + xsh_matrixforvector(vres,p_xs_3->toprism1,vres); + + + + + XSH_TRACE_MSG(vres) + if (p_xs_3->arm==2) { + XSH_TRACE_MSG(vres) + + + xsh_matrixforvector(vres,p_xs_3->toprism3,vres); + + + + + rind_up=sqrt(ref_ind[1][0]*lamf/(lamf-ref_ind[1][3]*ref_ind[1][3])+ref_ind[1][1]*lamf/(lamf-ref_ind[1][4]*ref_ind[1][4])+ref_ind[1][2]*lamf/(lamf-ref_ind[1][5]*ref_ind[1][5])+1.0); + + + rind_down=sqrt(ref_ind[0][0]*lamf/(lamf-ref_ind[0][3]*ref_ind[0][3])+ref_ind[0][1]*lamf/(lamf-ref_ind[0][4]*ref_ind[0][4])+ref_ind[0][2]*lamf/(lamf-ref_ind[0][5]*ref_ind[0][5])+1.0); + + + p_xs_3->rind2=rind_down+((p_xs_3->t_ir_p2-ref_ind[0][6])/(ref_ind[1][6]-ref_ind[0][6]))*(rind_up-rind_down); + + + xsh_refract(vres,p_xs_3->rind2,vres); + + + + xsh_matrixforvector(vres,p_xs_3->toprism4,vres); + + + + xsh_refract(vres,1.0/(p_xs_3->rind2),vres); + + + + + xsh_matrixforvector(vres,p_xs_3->toprism3,vres); + + + XSH_TRACE_MSG(vres) + + + xsh_matrixforvector(vres,p_xs_3->toprism5,vres); + XSH_TRACE_MSG(vres) + + + + rind_up=sqrt(ref_ind[1][0]*lamf/(lamf-ref_ind[1][3]*ref_ind[1][3])+ref_ind[1][1]*lamf/(lamf-ref_ind[1][4]*ref_ind[1][4])+ref_ind[1][2]*lamf/(lamf-ref_ind[1][5]*ref_ind[1][5])+1.0); + + + rind_down=sqrt(ref_ind[0][0]*lamf/(lamf-ref_ind[0][3]*ref_ind[0][3])+ref_ind[0][1]*lamf/(lamf-ref_ind[0][4]*ref_ind[0][4])+ref_ind[0][2]*lamf/(lamf-ref_ind[0][5]*ref_ind[0][5])+1.0); + + + p_xs_3->rind3=rind_down+((p_xs_3->t_ir_p3-ref_ind[0][6])/(ref_ind[1][6]-ref_ind[0][6]))*(rind_up-rind_down); + + + xsh_refract(vres,p_xs_3->rind3,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->toprism6,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_refract(vres,1.0/(p_xs_3->rind3),vres); + XSH_TRACE_MSG(vres) + + + + + + + xsh_matrixforvector(vres,p_xs_3->toprism5,vres); + XSH_TRACE_MSG(vres) + + + + } + + + + + + + + + + xsh_matrixforvector(vres,p_xs_3->tograt,vres); + XSH_TRACE_MSG(vres) + + + p_xs_3->grat_alpha=atan(vres[1]/vres[3]); + + + + xsh_matrixforvector(vres,mech,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_normz(vres); + XSH_TRACE_MSG(vres) + + + p_xs_3->grat_beta=atan(vres[1]/vres[3]); + + + + xsh_matrixforvector(vres,p_xs_3->grat_out,vres); + XSH_TRACE_MSG(vres) + + + + + if (p_xs_3->arm==2) { + + xsh_matrixforvector(vres,p_xs_3->ret_prism6,vres); + XSH_TRACE_MSG(vres) + + + + + + xsh_refract(vres,p_xs_3->rind3,vres); + XSH_TRACE_MSG(vres) + + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism5,vres); + XSH_TRACE_MSG(vres) + + + + + + xsh_refract(vres,1.0/(p_xs_3->rind3),vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism6,vres); + XSH_TRACE_MSG(vres) + + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism4,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_refract(vres,p_xs_3->rind2,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism3,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_refract(vres,1.0/(p_xs_3->rind2),vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism4,vres); + XSH_TRACE_MSG(vres) + + + } + + + xsh_matrixforvector(vres,p_xs_3->ret_prism2,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_refract(vres,p_xs_3->rind,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism1,vres); + XSH_TRACE_MSG(vres) + + + + + xsh_refract(vres,1.0/(p_xs_3->rind),vres); + XSH_TRACE_MSG(vres) + + + + + xsh_matrixforvector(vres,p_xs_3->ret_prism2,vres); + XSH_TRACE_MSG(vres) + + + if (p_xs_3->arm==2) xsh_matrixforvector(vres,p_xs_3->mup_ir_cor_out,vres); + XSH_TRACE_MSG(vres) + + +#ifdef FCCDD_FLAG + xsh_matrixforvector(vres,p_xs_3->todetector,vres); + XSH_TRACE_MSG(vres) + +#endif + + + xx=(p_xs_3->flipx)*(p_xs_3->fdet)/((vres[3]/vres[1])*cos(p_xs_3->nud)-sin(p_xs_3->nud)); + yy=(p_xs_3->flipy)*(p_xs_3->fdet)/((vres[3]/vres[2])*cos(p_xs_3->mud)-sin(p_xs_3->mud)); + + + + +#ifdef CCCDD_FLAG + + xx=(p_xs_3->flipx)*(p_xs_3->fdet)*vres[1]; + yy=(p_xs_3->flipy)*(p_xs_3->fdet)*vres[2]; +#endif + +#ifdef XCCCDD_FLAG + + xx=(p_xs_3->flipx)*(p_xs_3->fdet)*2.0*vres[1]; + yy=(p_xs_3->flipy)*(p_xs_3->fdet)*2.0*vres[2]; +#endif + + + detproj[0]=0.0; + detproj[1]=xx*cos(-p_xs_3->taud)+yy*sin(-p_xs_3->taud); + detproj[2]=-xx*sin(-p_xs_3->taud)+yy*cos(-p_xs_3->taud); + detproj[3]=0.0; + xsh_copyvector(vres,detproj); + XSH_TRACE_MSG(vres) + + + p_xs_3->morder=(float)(morder); + + p_xs_3->xdet=vres[1]; + p_xs_3->ydet=vres[2]; +} +void xsh_3_init(struct xs_3 * p_xs_3) +{ + +#ifdef FCCDD_FLAG + xsh_rotin(p_xs_3->todetector,-0.062,0.01,0.0); +#endif + + + + xsh_rotin(p_xs_3->e_slit,p_xs_3->mues,p_xs_3->nues,p_xs_3->taues); + + + xsh_rotin(p_xs_3->mup_ir_cor,p_xs_3->cmup1,0.0,0.0); + xsh_rotin(p_xs_3->mup_ir_cor_out,-p_xs_3->cmup1,0.0,0.0); + xsh_rotin(p_xs_3->toprism1,p_xs_3->mup1,p_xs_3->nup1,p_xs_3->taup1); + xsh_rotin(p_xs_3->toprism2,p_xs_3->mup2,p_xs_3->nup2,p_xs_3->taup2); + + + + + + + + xsh_rotin(p_xs_3->toprism3,p_xs_3->mup3,p_xs_3->nup3,p_xs_3->taup3); + xsh_rotin(p_xs_3->toprism4,p_xs_3->mup4,p_xs_3->nup4,p_xs_3->taup4); + + + + + + + xsh_rotin(p_xs_3->toprism5,p_xs_3->mup5,p_xs_3->nup5,p_xs_3->taup5); + xsh_rotin(p_xs_3->toprism6,p_xs_3->mup6,p_xs_3->nup6,p_xs_3->taup6); + + + + + + + xsh_rotin(p_xs_3->tograt,p_xs_3->mug,p_xs_3->nug,p_xs_3->taug); + xsh_transpose(p_xs_3->grat_out,p_xs_3->tograt); + + + + + + xsh_transpose(p_xs_3->ret_prism2,p_xs_3->toprism1); + xsh_transpose(p_xs_3->ret_prism1,p_xs_3->toprism2); + xsh_multiplymatrix(p_xs_3->ret_prism_out1,p_xs_3->toprism2,p_xs_3->toprism1); + xsh_transpose(p_xs_3->ret_prism4,p_xs_3->toprism3); + xsh_transpose(p_xs_3->ret_prism3,p_xs_3->toprism4); + xsh_multiplymatrix(p_xs_3->ret_prism_out2,p_xs_3->toprism4,p_xs_3->toprism3); + xsh_transpose(p_xs_3->ret_prism6,p_xs_3->toprism5); + xsh_transpose(p_xs_3->ret_prism5,p_xs_3->toprism6); + xsh_multiplymatrix(p_xs_3->ret_prism_out3,p_xs_3->toprism6,p_xs_3->toprism5); + + + if (p_xs_3->arm!=2) { + p_xs_3->chipxup=p_xs_3->chipx+p_xs_3->pix_Y*(0.5*p_xs_3->chipypix); + p_xs_3->chipxdown=p_xs_3->chipx-p_xs_3->pix_Y*(0.5*p_xs_3->chipypix); + p_xs_3->chipyup=p_xs_3->chipy+p_xs_3->pix_X*(0.5*p_xs_3->chipxpix); + p_xs_3->chipydown=p_xs_3->chipy-p_xs_3->pix_X*(0.5*p_xs_3->chipxpix); + } + else { + p_xs_3->chipxup=p_xs_3->chipx+p_xs_3->pix_X*(0.5*p_xs_3->chipxpix+NIR_FIX); + p_xs_3->chipxdown=p_xs_3->chipx-p_xs_3->pix_X*(0.5*p_xs_3->chipxpix); + p_xs_3->chipyup=p_xs_3->chipy+p_xs_3->pix_Y*(+0.5*p_xs_3->chipypix); + p_xs_3->chipydown=p_xs_3->chipy-p_xs_3->pix_Y*(0.5*p_xs_3->chipypix); + } +} +static void xsh_copyvector(vec a, vec b) +{ + int i; + for(i=0; i 1.0) { + a[1]=0.0; + a[2]=1.0; + a[3]=0.0; + return; + } + double x1_sqr = a[1]*a[1]; + if (x1_sqr > 1.0) { + a[1]=1.0; + a[2]=0.0; + a[3]=0.0; + return; + } + double sum_sqrs = x1_sqr + x2_sqr; + if (sum_sqrs > 1.0) { + double norm = 1./sqrt (sum_sqrs); + a[1] *=norm; + a[2] *=norm; + a[3]=0.0; + } + else{ + if (a[3]>=0) a[3]=sqrt(1.0- sum_sqrs); + else a[3]=-sqrt(1.0-sum_sqrs); + } + + return; +} +static void xsh_nullmatrix(mat A) +{ + + register int i,j; + for(i=0; i=ref_ind_T[ii][6]) + { + + flag=1; + for (jj=0; jj<7; jj++) { + ref_ind_T[0][jj]=ref_ind_T[ii][jj]; + } + } + else if (temperarm=value; return 1;} +if (!strcmp(name, "ca_x0")) {p->ca_x0=value; return 1;} +if (!strcmp(name, "ca_x1")) {p->ca_x1=value; return 1;} +if (!strcmp(name, "ca_y0")) {p->ca_y0=value; return 1;} +if (!strcmp(name, "ca_y1")) {p->ca_y1=value; return 1;} +if (!strcmp(name, "chiprot")) {p->chiprot=value; return 1;} +if (!strcmp(name, "chipx")) {p->chipx=value; return 1;} +if (!strcmp(name, "chipy")) {p->chipy=value; return 1;} +if (!strcmp(name, "cmup1")) {p->cmup1=value; return 1;} +if (!strcmp(name, "config_mjd")) {p->config_mjd=value; return 1;} +if (!strcmp(name, "d2_x1")) {p->d2_x1=value; return 1;} +if (!strcmp(name, "d2_x2")) {p->d2_x2=value; return 1;} +if (!strcmp(name, "d2_x3")) {p->d2_x3=value; return 1;} +if (!strcmp(name, "d2_y1x0")) {p->d2_y1x0=value; return 1;} +if (!strcmp(name, "d2_y1x1")) {p->d2_y1x1=value; return 1;} +if (!strcmp(name, "d2_y1x2")) {p->d2_y1x2=value; return 1;} +if (!strcmp(name, "d2_y1x3")) {p->d2_y1x3=value; return 1;} +if (!strcmp(name, "d2_y2x0")) {p->d2_y2x0=value; return 1;} +if (!strcmp(name, "d2_y2x1")) {p->d2_y2x1=value; return 1;} +if (!strcmp(name, "d2_y2x2")) {p->d2_y2x2=value; return 1;} +if (!strcmp(name, "d2_y2x3")) {p->d2_y2x3=value; return 1;} +if (!strcmp(name, "d2_y3x0")) {p->d2_y3x0=value; return 1;} +if (!strcmp(name, "d2_y3x1")) {p->d2_y3x1=value; return 1;} +if (!strcmp(name, "d2_y3x2")) {p->d2_y3x2=value; return 1;} +if (!strcmp(name, "d2_y3x3")) {p->d2_y3x3=value; return 1;} +if (!strcmp(name, "es_s")) {p->es_s=value; return 1;} +if (!strcmp(name, "es_w")) {p->es_w=value; return 1;} +if (!strcmp(name, "es_x")) {p->es_x=value; return 1;} +if (!strcmp(name, "es_y")) {p->es_y=value; return 1;} +if (!strcmp(name, "fcol")) {p->fcol=value; return 1;} +if (!strcmp(name, "fdet")) {p->fdet=value; return 1;} +if (!strcmp(name, "flipx")) {p->flipx=value; return 1;} +if (!strcmp(name, "flipy")) {p->flipy=value; return 1;} +if (!strcmp(name, "mud")) {p->mud=value; return 1;} +if (!strcmp(name, "mues")) {p->mues=value; return 1;} +if (!strcmp(name, "mug")) {p->mug=value; return 1;} +if (!strcmp(name, "mup1")) {p->mup1=value; return 1;} +if (!strcmp(name, "mup2")) {p->mup2=value; return 1;} +if (!strcmp(name, "mup3")) {p->mup3=value; return 1;} +if (!strcmp(name, "mup4")) {p->mup4=value; return 1;} +if (!strcmp(name, "mup5")) {p->mup5=value; return 1;} +if (!strcmp(name, "mup6")) {p->mup6=value; return 1;} +if (!strcmp(name, "nud")) {p->nud=value; return 1;} +if (!strcmp(name, "nues")) {p->nues=value; return 1;} +if (!strcmp(name, "nug")) {p->nug=value; return 1;} +if (!strcmp(name, "nup1")) {p->nup1=value; return 1;} +if (!strcmp(name, "nup2")) {p->nup2=value; return 1;} +if (!strcmp(name, "nup3")) {p->nup3=value; return 1;} +if (!strcmp(name, "nup4")) {p->nup4=value; return 1;} +if (!strcmp(name, "nup5")) {p->nup5=value; return 1;} +if (!strcmp(name, "nup6")) {p->nup6=value; return 1;} +if (!strcmp(name, "offx")) {p->offx=value; return 1;} +if (!strcmp(name, "offy")) {p->offy=value; return 1;} +if (!strcmp(name, "pc4_x_x2y2")) {p->pc4_x_x2y2=value; return 1;} +if (!strcmp(name, "pc4_x_x3y")) {p->pc4_x_x3y=value; return 1;} +if (!strcmp(name, "pc4_x_x4")) {p->pc4_x_x4=value; return 1;} +if (!strcmp(name, "pc4_x_xy3")) {p->pc4_x_xy3=value; return 1;} +if (!strcmp(name, "pc4_x_y4")) {p->pc4_x_y4=value; return 1;} +if (!strcmp(name, "pc4_y_x2y2")) {p->pc4_y_x2y2=value; return 1;} +if (!strcmp(name, "pc4_y_x3y")) {p->pc4_y_x3y=value; return 1;} +if (!strcmp(name, "pc4_y_x4")) {p->pc4_y_x4=value; return 1;} +if (!strcmp(name, "pc4_y_xy3")) {p->pc4_y_xy3=value; return 1;} +if (!strcmp(name, "pc4_y_y4")) {p->pc4_y_y4=value; return 1;} +if (!strcmp(name, "pc_x_x1")) {p->pc_x_x1=value; return 1;} +if (!strcmp(name, "pc_x_x2y")) {p->pc_x_x2y=value; return 1;} +if (!strcmp(name, "pc_x_x3")) {p->pc_x_x3=value; return 1;} +if (!strcmp(name, "pc_x_xx")) {p->pc_x_xx=value; return 1;} +if (!strcmp(name, "pc_x_xy")) {p->pc_x_xy=value; return 1;} +if (!strcmp(name, "pc_x_y1")) {p->pc_x_y1=value; return 1;} +if (!strcmp(name, "pc_x_y2x")) {p->pc_x_y2x=value; return 1;} +if (!strcmp(name, "pc_x_y3")) {p->pc_x_y3=value; return 1;} +if (!strcmp(name, "pc_x_yy")) {p->pc_x_yy=value; return 1;} +if (!strcmp(name, "pc_y_x1")) {p->pc_y_x1=value; return 1;} +if (!strcmp(name, "pc_y_x2y")) {p->pc_y_x2y=value; return 1;} +if (!strcmp(name, "pc_y_x3")) {p->pc_y_x3=value; return 1;} +if (!strcmp(name, "pc_y_xx")) {p->pc_y_xx=value; return 1;} +if (!strcmp(name, "pc_y_xy")) {p->pc_y_xy=value; return 1;} +if (!strcmp(name, "pc_y_y1")) {p->pc_y_y1=value; return 1;} +if (!strcmp(name, "pc_y_y2x")) {p->pc_y_y2x=value; return 1;} +if (!strcmp(name, "pc_y_y3")) {p->pc_y_y3=value; return 1;} +if (!strcmp(name, "pc_y_yy")) {p->pc_y_yy=value; return 1;} +if (!strcmp(name, "pix")) {p->pix=value; return 1;} +if (!strcmp(name, "sg")) {p->sg=value; return 1;} +if (!strcmp(name, "slit[0]")) {p->slit[0]=value; return 1;} +if (!strcmp(name, "slit[1]")) {p->slit[1]=value; return 1;} +if (!strcmp(name, "slit[2]")) {p->slit[2]=value; return 1;} +if (!strcmp(name, "slit[3]")) {p->slit[3]=value; return 1;} +if (!strcmp(name, "slit[4]")) {p->slit[4]=value; return 1;} +if (!strcmp(name, "slit[5]")) {p->slit[5]=value; return 1;} +if (!strcmp(name, "slit[6]")) {p->slit[6]=value; return 1;} +if (!strcmp(name, "slit[7]")) {p->slit[7]=value; return 1;} +if (!strcmp(name, "slit[8]")) {p->slit[8]=value; return 1;} +if (!strcmp(name, "slit_scale")) {p->slit_scale=value; return 1;} +if (!strcmp(name, "t_ir_p2")) {p->t_ir_p2=value; return 1;} +if (!strcmp(name, "t_ir_p3")) {p->t_ir_p3=value; return 1;} +if (!strcmp(name, "taud")) {p->taud=value; return 1;} +if (!strcmp(name, "taues")) {p->taues=value; return 1;} +if (!strcmp(name, "taug")) {p->taug=value; return 1;} +if (!strcmp(name, "taup1")) {p->taup1=value; return 1;} +if (!strcmp(name, "taup2")) {p->taup2=value; return 1;} +if (!strcmp(name, "taup3")) {p->taup3=value; return 1;} +if (!strcmp(name, "taup4")) {p->taup4=value; return 1;} +if (!strcmp(name, "taup5")) {p->taup5=value; return 1;} +if (!strcmp(name, "taup6")) {p->taup6=value; return 1;} +if (!strcmp(name, "temper")) {p->temper=value; return 1;} +return 0;} + +void initialize_model(int nx, int ny, double xcorr, double ycorr) { + model.ASIZE=nx; model.BSIZE=ny; model.SIZE=ny; + model.chipxpix=nx; model.chipypix=ny; + model.xsize_corr=xcorr; model.ysize_corr=ycorr; + model.pix_X=model.pix; model.pix_Y=model.pix; + for (int i=0; i<8; i++) index_rows[i]=indices[i]; + double temperature = model.arm==2 ? model.t_ir_p2 : model.temper; + xsh_ref_ind_read(model.arm, index_rows, temperature); + xsh_3_init(&model); +} +void evaluate(int n, double *wave_nm, double *slit_as, double eta_as, int order, double *x, double *y) { + double original_es_x=model.es_x; + model.morder=order; + model.es_x=original_es_x + eta_as * model.slit_scale; + for (int i=0; i dispersion.min()+1) & (dp < dispersion.max()-1) + dp = dp[covered] + wave = interp1d(dispersion[order], wavelengths[order])(dp) + cp = np.interp(dp, dispersion[order], cross[order]) + cross_pixels = np.rint(cp).astype(int)[:, None] + np.arange(-30, 31) + on_detector = (cross_pixels >= 0) & (cross_pixels < (ny if arm == 'nir' else nx)) + cross_pixels = np.clip(cross_pixels, 0, (ny if arm == 'nir' else nx)-1) + xx, yy = (dp[:, None]+np.zeros_like(cross_pixels), cross_pixels) if arm == 'nir' else (cross_pixels, dp[:, None]+np.zeros_like(cross_pixels)) + xmm, ymm = (xx+.5-nx/2)*pixel, (yy+.5-ny/2)*pixel + s = trace.xy2xi(xmm, ymm) + gx, gy = trace.xy2xi.gradient() + ds = abs((gy if arm == 'nir' else gx)(xmm, ymm))*pixel + weight = np.clip((1.8-abs(s-slit_position))/ds+.5, 0, 1)*on_detector + rate = np.sum(difference[yy, xx]*weight, axis=1)*gain/exposure + return wave, rate, abs(np.gradient(wave)) + + +def measure(data_dir): + traces = fits.open(ROOT/'traces/traces.fits') + extinction = fits.getdata(data_dir/'atmos-ext-uvb.fits', 1) + with fits.open(data_dir/'sky-default-raw.fits') as sky_file: + sky = sky_file[1].data + sky_wave = (sky['lam']*u.Unit(sky_file[1].columns['lam'].unit)).to_value(u.um) + mirrors = Table.read(ROOT.parent/'VLT/TC_mirror_aluminium.dat', format='ascii') + area = np.pi/4*(8.2**2-1.116**2)*u.m**2 + corrections, measurements, checks = [fits.PrimaryHDU()], [fits.PrimaryHDU()], [] + for arm_id, arm in enumerate(['uvb', 'vis', 'nir']): + first = fits.open(data_dir/f'standard-{arm}.fits') + second = fits.open(data_dir/f'standard-b-{arm}.fits') + data_a, data_b = first[0].data, second[0].data + if arm != 'nir': + start = first[0].header['ESO DET OUT1 PRSCX'] + data_a, data_b = data_a[:, start:start+2048], data_b[:, start:start+2048] + difference = data_a.astype('float64')-data_b + reference = fits.getdata(data_dir/f'response-{arm}.fits', 1) + qe = Table.read(ROOT/f'throughput/qe_{arm}.dat', format='ascii') + for row in traces[1].data: + if row['aperture_id'] != arm_id: + continue + trace = SpectralTrace(traces[row['extension_id']]) + measured = [] + for slit_position, sign, header in [(-2.5, 1, first[0].header), (2.5, -1, second[0].header)]: + wave, rate, dwave = order_rate(trace, sign*difference, slit_position, trace.meta['pixel_size'], [.63, .64, 2.29][arm_id], header['EXPTIME'], arm) + use = (wave*1000 >= reference['LAMBDA'][0]) & (wave*1000 <= reference['LAMBDA'][-1]) + wave, rate, dwave = wave[use], rate[use], dwave[use] + flux = np.interp(wave*1000, reference['LAMBDA'], reference['REF'])*u.erg/u.cm**2/u.s/u.AA + incident = (flux*area*(dwave*u.um)/(c.h*c.c/(wave*u.um))).to_value(1/u.s) + airmass = header['ESO TEL AIRM START'] + if arm == 'nir': + transmission = np.interp(wave, sky_wave, sky['trans'])**(airmass/1.3) + else: + transmission = 10**(-.4*airmass*np.interp(wave*1000, extinction['LAMBDA'], extinction['EXTINCTION'])) + telescope = np.interp(wave, mirrors['wavelength'], mirrors['reflection'])**2 + quantum_efficiency = np.interp(wave, qe['wavelength'], qe['transmission']) + throughput = rate/(incident*transmission*telescope*quantum_efficiency) + order = np.argsort(wave) + measured.append((wave[order], throughput[order])) + wave, eta_a = measured[0] + wave_b, eta_b = measured[1] + overlap = (wave >= wave_b[0]) & (wave <= wave_b[-1]) + wave, eta_a = wave[overlap], eta_a[overlap] + eta_b = np.interp(wave, wave_b, eta_b) + # Exclude molecular absorption and use robust 32-pixel continuum bins + # to suppress cosmic rays and fixed-pattern structure in unflattened data. + molecular = np.interp(wave, sky_wave, sky['trans_ma']) + rows = [] + for start in range(0, len(wave)-31, 32): + index = slice(start, start+32) + if np.min(molecular[index]) < .97 or np.min(eta_a[index]) <= 0 or np.min(eta_b[index]) <= 0: + continue + rows.append((np.mean(wave[index]), np.median(eta_a[index]), np.median(eta_b[index]))) + table = Table(rows=rows, names=['wavelength', 'throughput_a', 'throughput_b']) + table['wavelength'].unit = u.um + measurements.append(fits.table_to_hdu(table)) + measurements[-1].name = trace.trace_id + if arm == 'nir': + continue + # Calibrate the smooth order response directly in physical throughput. + # Outside the sampled interval, retain its endpoint value explicitly. + # Molecular gaps are interpolated; they are not independent calibrations. + profile = PchipInterpolator(table['wavelength'], table['throughput_a']) + ew = np.linspace(trace.wave_min, trace.wave_max, 1025) + efficiency = profile(np.clip(ew, table['wavelength'][0], table['wavelength'][-1])) + output = fits.table_to_hdu(Table([ew*u.um, efficiency], names=['wavelength', 'efficiency'])) + output.name = trace.trace_id + corrections.append(output) + residual = table['throughput_b']/profile(table['wavelength'])-1 + checks.append((trace.trace_id, len(table), np.median(residual), np.sqrt(np.mean(residual**2)))) + fits.HDUList(corrections).writeto(ROOT/'calibration/optical_response.fits', overwrite=True, checksum=True) + fits.HDUList(measurements).writeto(ROOT/'calibration/standard_measurements.fits', overwrite=True, checksum=True) + Table(rows=checks, names=['order', 'continuum_bins', 'nod_b_fractional_bias', 'nod_b_fractional_rms']).write(ROOT/'calibration/standard_repeatability.ecsv', overwrite=True) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--data-dir', required=True, type=Path) + measure(parser.parse_args().data_dir) diff --git a/XSHOOTER/calibration/model_nir.fits b/XSHOOTER/calibration/model_nir.fits new file mode 100644 index 00000000..a26cb962 --- /dev/null +++ b/XSHOOTER/calibration/model_nir.fits @@ -0,0 +1,7 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H DATE = '2024-01-02T10:24:22' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'ESO ' / European Southern Observatory TELESCOP= 'Tel name not set' / ESO Telescope Name INSTRUME= 'XSHOOTER' / Instrument used. OBJECT = 'LAMP,WAVE' / Original target. MJD-OBS = 60311.41700462 / Obs start 2024-01-02T10:00:29.199 DATE-OBS= '2024-01-02T10:00:29.1992' / Observing date PI-COI = 'XSHOOTER Operation Team' / PI-COI name. ARCFILE = 'M.XSHOOTER.2024-01-03T13:03:56.276.fits' / Archive File Name DATAMD5 = '9441962672f0b9b0d2775a1aba15d358' / MD5 checksum PIPEFILE= 'r.XSHOO.2024-01-02T10:00:29.199_tpl_0007.fits' / no comment HIERARCH ESO OBS DID = 'ESO-VLT-DIC.OBS-2.2' / OBS Dictionary HIERARCH ESO OBS GRP = '0 ' / linked blocks HIERARCH ESO OBS ID = 200189624 / Observation block ID HIERARCH ESO OBS NAME = 'Calibration' / OB name HIERARCH ESO OBS NTPL = 18 / Number of templates within OB HIERARCH ESO OBS PI-COI ID = 52022 / ESO internal PI-COI ID HIERARCH ESO OBS PI-COI NAME = 'XSHOOTER Operation Team' / PI-COI name HIERARCH ESO OBS PROG ID = '60.A-9022(C)' / ESO program identification HIERARCH ESO OBS START = '2024-01-02T09:10:44' / OB start time HIERARCH ESO OBS TPLNO = 8 / Template number within OB HIERARCH ESO TPL DID = 'ESO-VLT-DIC.TPL-1.9' / Data dictionary for TPL HIERARCH ESO TPL EXPNO = 1 / Exposure number within template HIERARCH ESO TPL ID = 'XSHOOTER_slt_cal_NIRArcsMultiplePinhole' / Templ HIERARCH ESO TPL NAME = 'Stand-alone Daytime Calibration Template' / Temp HIERARCH ESO TPL NEXP = 2 / Number of exposures within templat HIERARCH ESO TPL PRESEQ = 'XSHOOTER_slt_cal_NIRArcsMultiplePinhole.seq' / S HIERARCH ESO TPL START = '2024-01-02T09:59:46' / TPL start time HIERARCH ESO TPL VERSION = '$Revision: 192749 $' / Version of the template HIERARCH ESO INS ADC1 DEC = -235528.29476 / Telescope desclination [deg]. HIERARCH ESO INS ADC1 ENC END = 14980 / Encoder position at end [Enc] HIERARCH ESO INS ADC1 ENC START = 14980 / Encoder position at start [Enc] HIERARCH ESO INS ADC1 END = 72.4951 / Position angle at end [deg]. HIERARCH ESO INS ADC1 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC1 RA = 120829.236997 / Telescope right ascension [deg]. HIERARCH ESO INS ADC1 START = 72.495 / ADC position at start [deg]. HIERARCH ESO INS ADC2 DEC = -235528.29476 / Telescope desclination [deg]. HIERARCH ESO INS ADC2 ENC END = 56459 / Encoder position at end [Enc] HIERARCH ESO INS ADC2 ENC START = 56459 / Encoder position at start [Enc] HIERARCH ESO INS ADC2 END = 273.731 / Position angle at end [deg]. HIERARCH ESO INS ADC2 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC2 RA = 120829.236997 / Telescope right ascension [deg]. HIERARCH ESO INS ADC2 START = 273.731 / ADC position at start [deg]. HIERARCH ESO INS ADC3 DEC = -235528.29476 / Telescope desclination [deg]. HIERARCH ESO INS ADC3 ENC END = 14501 / Encoder position at end [Enc] HIERARCH ESO INS ADC3 ENC START = 14501 / Encoder position at start [Enc] HIERARCH ESO INS ADC3 END = 70.177 / Position angle at end [deg]. HIERARCH ESO INS ADC3 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC3 RA = 120829.236997 / Telescope right ascension [deg]. HIERARCH ESO INS ADC3 START = 70.177 / ADC position at start [deg]. HIERARCH ESO INS ADC4 DEC = -235528.29476 / Telescope desclination [deg]. HIERARCH ESO INS ADC4 ENC END = 56765 / Encoder position at end [Enc] HIERARCH ESO INS ADC4 ENC START = 56765 / Encoder position at start [Enc] HIERARCH ESO INS ADC4 END = 275.212 / Position angle at end [deg]. HIERARCH ESO INS ADC4 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC4 RA = 120829.236997 / Telescope right ascension [deg]. HIERARCH ESO INS ADC4 START = 275.212 / ADC position at start [deg]. HIERARCH ESO INS DATE = '2005-04-01' / Instrument release date (yyyy-mm-d HIERARCH ESO INS DID = 'ESO-VLT-DIC.XSHOOTER_ICS-363028' / Data dictiona HIERARCH ESO INS FOCU1 ENC = 27082 / Absolute position [Enc]. HIERARCH ESO INS FOCU1 POS = 15.6 / Position [C]. HIERARCH ESO INS FOCU2 ENC = 11750 / Absolute position [Enc]. HIERARCH ESO INS FOCU2 POS = 0. / Position [C]. HIERARCH ESO INS ID = 'XSHOOTER/176642' / Instrument ID. HIERARCH ESO INS LAMP2 ID = 'SPL2 ' / Lamp ID. HIERARCH ESO INS LAMP2 NAME = 'ArHgNeXe_Lamp' / Lamp name. HIERARCH ESO INS LAMP2 ST = T / Lamp activated. HIERARCH ESO INS MIRR1 ID = ' ' / Mirror unique ID. HIERARCH ESO INS MIRR1 NAME = ' ' / Mirror name. HIERARCH ESO INS MIRR1 NO = -1 / Mirror slide position. HIERARCH ESO INS MODE = 'SLITSPEC' / Instrument mode used. HIERARCH ESO INS OPTI2 ID = 'SLOT ' / OPTIi unique ID. HIERARCH ESO INS OPTI2 NAME = 'SLOT ' / OPTIi name. HIERARCH ESO INS OPTI2 NO = 3 / OPTIi slot number. HIERARCH ESO INS OPTI2 TYPE = 'MIRROR ' / OPTIi element. HIERARCH ESO INS OPTI3 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI3 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI3 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI3 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI4 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI4 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI4 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI4 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI5 ID = 'PS11 ' / OPTIi unique ID. HIERARCH ESO INS OPTI5 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI5 NO = 11 / OPTIi slot number. HIERARCH ESO INS OPTI5 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS PATH = 'SLITSPEC' / Optical path used. HIERARCH ESO INS SENS21 ID = 'CA1F1 ' / sensor ID. HIERARCH ESO INS SENS21 NAME = 'Cab.1 Flow rate' / sensor common name. HIERARCH ESO INS SENS21 VAL = 0. / Cab. 1 Flow rate [l/h] HIERARCH ESO INS SENS60 ID = 'NPM ' / sensor ID. HIERARCH ESO INS SENS60 NAME = 'NIR cryo. P' / sensor common name. HIERARCH ESO INS SENS60 VAL = 4.88E-05 / NIR Pressure [mbar] HIERARCH ESO INS SENS81 ID = 'RANGE ' / sensor ID. HIERARCH ESO INS SENS81 NAME = 'Heater Range' / sensor common name. HIERARCH ESO INS SENS81 VAL = 4. / Lake 340 Heater Range HIERARCH ESO INS SENS82 ID = 'HEATR ' / sensor ID. HIERARCH ESO INS SENS82 NAME = 'Heater output' / sensor common name. HIERARCH ESO INS SENS82 VAL = 52.6 / Lake 340 Heater output HIERARCH ESO INS SENSOR4 SWSIM = T / If T, function is software simulat HIERARCH ESO INS SHUT1 ID = 'INSH ' / Shutter ID. HIERARCH ESO INS SHUT1 NAME = 'Instrument shutter' / Shutter name. HIERARCH ESO INS SHUT1 ST = F / Shutter open. HIERARCH ESO INS SWSIM = 'NORMAL ' / Software simulation. HIERARCH ESO INS TEMP1 ID = 'TMUC ' / Temperature sensor ID. HIERARCH ESO INS TEMP1 NAME = 'UVB Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP1 VAL = 15.33 / UVB Camera temp. [C] HIERARCH ESO INS TEMP10 ID = 'TMA ' / Temperature sensor ID. HIERARCH ESO INS TEMP10 NAME = 'Ambient temp.' / Temperature sensor name. HIERARCH ESO INS TEMP10 VAL = 15.11 / Ambient temp. [C] HIERARCH ESO INS TEMP11 ID = 'TMADC ' / Temperature sensor ID. HIERARCH ESO INS TEMP11 NAME = 'BB UVB ADC temp.' / Temperature sensor name. HIERARCH ESO INS TEMP11 VAL = 17.51 / BB UVB ADC temp. [C] HIERARCH ESO INS TEMP2 ID = 'TMUP ' / Temperature sensor ID. HIERARCH ESO INS TEMP2 NAME = 'UVB Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP2 VAL = 15.11 / UVB Prism temp. [C] HIERARCH ESO INS TEMP21 ID = 'CA1OT ' / Temperature sensor ID. HIERARCH ESO INS TEMP21 NAME = 'Cab.1 outlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP21 VAL = 0. / Cab. 1 outlet temp. [C] HIERARCH ESO INS TEMP22 ID = 'CA1IT ' / Temperature sensor ID. HIERARCH ESO INS TEMP22 NAME = 'Cab.1 inlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP22 VAL = 0. / Cab. 1 inlet temp. [C] HIERARCH ESO INS TEMP23 ID = 'CA1CT ' / Temperature sensor ID. HIERARCH ESO INS TEMP23 NAME = 'Cab.1 temp.' / Temperature sensor name. HIERARCH ESO INS TEMP23 VAL = 0. / Cab. 1 temp. [C] HIERARCH ESO INS TEMP24 ID = 'CA1AT ' / Temperature sensor ID. HIERARCH ESO INS TEMP24 NAME = 'Cab.1 Amb. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP24 VAL = 0. / Cab. 1 Amb. temp. [C] HIERARCH ESO INS TEMP3 ID = 'TMUB ' / Temperature sensor ID. HIERARCH ESO INS TEMP3 NAME = 'UVB bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP3 VAL = 15.28 / UVB bench temp. [C] HIERARCH ESO INS TEMP4 ID = 'TMVC ' / Temperature sensor ID. HIERARCH ESO INS TEMP4 NAME = 'VIS Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP4 VAL = 14.13 / VIS Camera temp. [C] HIERARCH ESO INS TEMP5 ID = 'TMVP ' / Temperature sensor ID. HIERARCH ESO INS TEMP5 NAME = 'VIS Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP5 VAL = 14.86 / VIS Prism temp. [C] HIERARCH ESO INS TEMP6 ID = 'TMVB ' / Temperature sensor ID. HIERARCH ESO INS TEMP6 NAME = 'VIS bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP6 VAL = 14.3 / VIS bench temp. [C] HIERARCH ESO INS TEMP7 ID = 'TMUCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP7 NAME = 'UVB cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP7 VAL = 10.49 / UVB cryo. temp. [C] HIERARCH ESO INS TEMP8 ID = 'TMVCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP8 NAME = 'VIS cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP8 VAL = 12.12 / VIS cryo. temp. [C] HIERARCH ESO INS TEMP80 ID = 'OBCT ' / Temperature sensor ID. HIERARCH ESO INS TEMP80 NAME = 'OB Cover Tel.' / Temperature sensor name. HIERARCH ESO INS TEMP80 VAL = 103.91 / OB Cover Telescope [K] HIERARCH ESO INS TEMP81 ID = 'OBCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP81 NAME = 'OB Cover Tank' / Temperature sensor name. HIERARCH ESO INS TEMP81 VAL = 104.09 / OB Cover Tank [K] HIERARCH ESO INS TEMP82 ID = 'OBPR ' / Temperature sensor ID. HIERARCH ESO INS TEMP82 NAME = 'OB Prism1' / Temperature sensor name. HIERARCH ESO INS TEMP82 VAL = 103.25 / OB Prism1 [K] HIERARCH ESO INS TEMP83 ID = 'OBCL ' / Temperature sensor ID. HIERARCH ESO INS TEMP83 NAME = 'OB Corrector Lens' / Temperature sensor name. HIERARCH ESO INS TEMP83 VAL = 104.15 / OB Corrector Lens [K] HIERARCH ESO INS TEMP84 ID = 'CP ' / Temperature sensor ID. HIERARCH ESO INS TEMP84 NAME = 'Cryo. Cold Plate' / Temperature sensor name. HIERARCH ESO INS TEMP84 VAL = 86.759 / Cryostat Cold Plate [K] HIERARCH ESO INS TEMP85 ID = 'RS ' / Temperature sensor ID. HIERARCH ESO INS TEMP85 NAME = 'Cryo. rad. shield' / Temperature sensor name. HIERARCH ESO INS TEMP85 VAL = 98.822 / Cryostat rad. shield [K] HIERARCH ESO INS TEMP86 ID = 'DCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP86 NAME = 'CCD Copper bar' / Temperature sensor name. HIERARCH ESO INS TEMP86 VAL = 76.597 / CCD Copper bar [K] HIERARCH ESO INS TEMP9 ID = 'TMNCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP9 NAME = 'NIR cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP9 VAL = 21.57 / NIR cryo. temp. [C] HIERARCH ESO INS TEMP90 ID = 'NHT ' / Temperature sensor ID. HIERARCH ESO INS TEMP90 NAME = 'NIR Head temp.' / Temperature sensor name. HIERARCH ESO INS TEMP90 VAL = 79. / NIR Head temp. [K] HIERARCH ESO INS TILT1 AFCX = 1.148 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT1 AFCY = -0.171 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT1 CONVX = 0.208 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT1 CONVY = 0.269 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT1 ENGX = 6.183 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT1 ENGY = 4.82 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT1 ID = 'afcs1 ' / AFCS ID. HIERARCH ESO INS TILT1 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT1 NAME = 'Flexure comp. UVB' / AFCS description. HIERARCH ESO INS TILT1 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT1 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT1 POSXEND = 1.183 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSXSTART = 1.183 / Piezo position at start in X [volt HIERARCH ESO INS TILT1 POSYEND = -0.18 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSYSTART = -0.18 / Piezo position at start in Y [volt HIERARCH ESO INS TILT1 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT1 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT1 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT1 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT2 AFCX = -0.098 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT2 AFCY = -0.135 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT2 CONVX = 0.291 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT2 CONVY = 0.384 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT2 ENGX = 4.9 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT2 ENGY = 4.952 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT2 ID = 'afcs2 ' / AFCS ID. HIERARCH ESO INS TILT2 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT2 NAME = 'Flexure comp. VIS' / AFCS description. HIERARCH ESO INS TILT2 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT2 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT2 POSXEND = -0.1 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSXSTART = -0.1 / Piezo position at start in X [volt HIERARCH ESO INS TILT2 POSYEND = -0.047 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSYSTART = -0.047 / Piezo position at start in Y [volt HIERARCH ESO INS TILT2 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT2 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT2 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT2 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT3 AFCX = 0.868 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT3 AFCY = 0.38 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT3 CONVX = 0.58 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT3 CONVY = 0.56 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT3 ENGX = 5.952 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT3 ENGY = 5.384 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT3 ID = 'afcs3 ' / AFCS ID. HIERARCH ESO INS TILT3 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT3 NAME = 'Flexure comp. NIR' / AFCS description. HIERARCH ESO INS TILT3 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT3 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT3 POSXEND = 0.952 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSXSTART = 0.952 / Piezo position at start in X [volt HIERARCH ESO INS TILT3 POSYEND = 0.381 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSYSTART = 0.381 / Piezo position at start in Y [volt HIERARCH ESO INS TILT3 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT3 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT3 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT3 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO DET CHIP GAIN = 2.29 / Gain in e-/ADU HIERARCH ESO DET CHIP ID = 'ESO-Hawaii2RG' / Detector ID HIERARCH ESO DET CHIP NAME = 'Hawaii2RG' / Detector name HIERARCH ESO DET CHIP NX = 2048 / Pixels in X HIERARCH ESO DET CHIP NY = 1100 / Pixels in Y HIERARCH ESO DET CHIP PXSPACE = 1.8E-05 / Pixel-Pixel Spacing HIERARCH ESO DET CHIP RON = 0. / Read-out noise in e HIERARCH ESO DET CHIP TYPE = 'IR ' / The Type of Det Chip HIERARCH ESO DET CHOP FREQ = 0 / Chopping Frequency HIERARCH ESO DET CON OPMODE = 'NORMAL ' / Operational Mode HIERARCH ESO DET DID = 'ESO-VLT-DIC.IRACE-1.48' / Dictionary Name and Re HIERARCH ESO DET DIT = 0.6651 / Integration Time HIERARCH ESO DET DITDELAY = 0. / Pause Between DITs HIERARCH ESO DET EXP NAME = 'XSHOOTER_SLT_WAVE_NIR_002_0001' / Exposure Name HIERARCH ESO DET EXP NO = 63159 / Exposure number HIERARCH ESO DET EXP UTC = '2024-01-02T10:00:52.1513' / File Creation Time HIERARCH ESO DET FILE CUBE ST = F / Data Cube On/Off HIERARCH ESO DET FRAM NO = 1 / Frame number HIERARCH ESO DET FRAM TYPE = 'INT ' / Frame type HIERARCH ESO DET FRAM UTC = '2024-01-02T10:00:51.3301' / Time Recv Frame HIERARCH ESO DET IRACE ADC1 DELAY = 7 / ADC Delay Adjustment HIERARCH ESO DET IRACE ADC1 ENABLE = 1 / Enable ADC Board (0/1) HIERARCH ESO DET IRACE ADC1 FILTER1 = 0 / ADC Filter1 Adjustment HIERARCH ESO DET IRACE ADC1 FILTER2 = 0 / ADC Filter2 Adjustment HIERARCH ESO DET IRACE ADC1 HEADER = 1 / Header of ADC Board HIERARCH ESO DET IRACE ADC1 NAME = 'ADC-RG ' / Name for ADC Board HIERARCH ESO DET IRACE ADC2 DELAY = 7 / ADC Delay Adjustment HIERARCH ESO DET IRACE ADC2 ENABLE = 1 / Enable ADC Board (0/1) HIERARCH ESO DET IRACE ADC2 FILTER1 = 0 / ADC Filter1 Adjustment HIERARCH ESO DET IRACE ADC2 FILTER2 = 0 / ADC Filter2 Adjustment HIERARCH ESO DET IRACE ADC2 HEADER = 1 / Header of ADC Board HIERARCH ESO DET IRACE ADC2 NAME = 'ADC-RG ' / Name for ADC Board HIERARCH ESO DET IRACE SEQCONT = F / Sequencer Continuous Mode HIERARCH ESO DET MINDIT = 0.6651 / Minimum DIT HIERARCH ESO DET MODE NAME = ' ' / DCS Detector Mode HIERARCH ESO DET NCORRS = 4 / Read-Out Mode HIERARCH ESO DET NCORRS NAME = 'NonDest ' / Read-Out Mode Name HIERARCH ESO DET NDIT = 10 / # of Sub-Integrations HIERARCH ESO DET NDITSKIP = 0 / DITs skipped at 1st.INT HIERARCH ESO DET NDSAMPLES = 2 / # of Non-Dest. Samples HIERARCH ESO DET NDSKIP = 1 / Samples skipped per DIT HIERARCH ESO DET RSPEED = 6 / Read-Speed Factor HIERARCH ESO DET RSPEEDADD = 0 / Read-Speed Add HIERARCH ESO DET SATLEVEL = 42000 / Saturation Level HIERARCH ESO DET VOLT1 CLKHI1 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI10 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI11 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI12 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI13 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI14 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI15 = 0. / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI16 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI2 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI3 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI4 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI5 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI6 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI7 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI8 = 3.3 / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHI9 = 0. / Set Value High-Clock HIERARCH ESO DET VOLT1 CLKHINM1 = 'clk1Hi FSYNCB' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM10 = 'clk10Hi MODECTRL1' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM11 = 'clk11Hi MODECTRL2' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM12 = 'clock12Hi HORIWMEN' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM13 = 'clock13Hi VERTWMEN' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM14 = 'clock14Hi CSB' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM15 = 'clock15Hi DATACLK' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM16 = 'clock16Hi DATAIN' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM2 = 'clk2Hi VCLK' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM3 = 'clk3Hi LSYNCB' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM4 = 'clk4Hi HCLK' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM5 = 'clk5Hi READEN' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM6 = 'clk6Hi RESETEN' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM7 = 'clk7Hi MAINRESETB' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM8 = 'clk8Hi BUFDISABLE' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHINM9 = 'clk9Hi FASTENPAD' / Name of High-Clock HIERARCH ESO DET VOLT1 CLKHIT1 = 3.3252 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT10 = 3.3301 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT11 = 3.3398 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT12 = 3.3447 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT13 = 3.3398 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT14 = 3.3252 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT15 = 0.0439 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT16 = 3.3398 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT2 = 3.335 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT3 = 3.3301 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT4 = 3.335 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT5 = 3.3301 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT6 = 3.3252 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT7 = 3.3301 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT8 = 3.3252 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKHIT9 = 0.0439 / Tel Value High-Clock HIERARCH ESO DET VOLT1 CLKLO1 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO10 = 3.3 / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO11 = 3.3 / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO12 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO13 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO14 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO15 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO16 = 3.3 / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO2 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO3 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO4 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO5 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO6 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO7 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO8 = 3.3 / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLO9 = 0. / Set value Low-Clock HIERARCH ESO DET VOLT1 CLKLONM1 = 'clk1Lo FSYNCB' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM10 = 'clk10Lo MODECTRL1' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM11 = 'clk11Lo MODECTRL2' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM12 = 'clock12Lo HORIWMEN' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM13 = 'clock13Lo VERTWMEN' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM14 = 'clock14Lo CSB' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM15 = 'clock15Lo DATACLK' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM16 = 'clock16Lo DATAIN' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM2 = 'clk2Lo VCLK' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM3 = 'clk3Lo LSYNCB' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM4 = 'clk4Lo HCLK' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM5 = 'clk5Lo READEN' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM6 = 'clk6Lo RESETEN' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM7 = 'clk7Lo MAINRESETB' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM8 = 'clk8Lo BUFDISABLE' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLONM9 = 'clk9Lo FASTENPAD' / Name of Low-Clock HIERARCH ESO DET VOLT1 CLKLOT1 = 0.0439 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT10 = 3.3398 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT11 = 3.335 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT12 = 0.0391 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT13 = 0.0537 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT14 = 0.0391 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT15 = 0.0293 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT16 = 3.3398 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT2 = 0.0537 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT3 = 0.0439 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT4 = 0.0488 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT5 = 0.0488 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT6 = 0.0391 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT7 = 0.0488 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT8 = 3.3301 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 CLKLOT9 = 0.0391 / Tel Value Low-Clock HIERARCH ESO DET VOLT1 DC1 = 3.3 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC10 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC11 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC12 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC13 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC14 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC15 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC2 = 3.3 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC3 = 3.3 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC4 = 1.5 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC5 = 0.5 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC6 = 2.3 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC7 = 3.5 / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC8 = 3. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DC9 = 0. / Set value DC-Voltage HIERARCH ESO DET VOLT1 DCNM1 = 'DC1 VDD ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM10 = 'DC10 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM11 = 'DC11 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM12 = 'DC12 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM13 = 'DC13 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM14 = 'DC14 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM15 = 'DC15 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM2 = 'DC2 VDDA' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM3 = 'DC3 VBIASPOWER' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM4 = 'DC4 DSUB' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM5 = 'DC5 VRESET' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM6 = 'DC6 BIASGATE' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM7 = 'DC7 EXTREF' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM8 = 'DC8 VLOAD' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCNM9 = 'DC9 ' / Name of DC-voltage HIERARCH ESO DET VOLT1 DCTA1 = 3.3105 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA10 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA11 = 0.0098 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA12 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA13 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA14 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA15 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA2 = 3.3105 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA3 = 3.3105 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA4 = 1.5088 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA5 = 0.5029 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA6 = 2.3145 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA7 = 3.5107 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA8 = 3.0127 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTA9 = 0.0049 / Tel Value 1 for DC HIERARCH ESO DET VOLT1 DCTB1 = 3.3008 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB10 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB11 = 0.0098 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB12 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB13 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB14 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB15 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB2 = 3.3057 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB3 = 3.3008 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB4 = 1.5039 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB5 = 0.5029 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB6 = 2.2656 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB7 = 3.4912 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB8 = 3.0078 / Tel Value 2 for DC HIERARCH ESO DET VOLT1 DCTB9 = 0.0049 / Tel Value 2 for DC HIERARCH ESO DET WIN NX = 2048 / # of Pixels in X HIERARCH ESO DET WIN NY = 1100 / # of Pixels in Y HIERARCH ESO DET WIN STARTX = 1 / Lower left X ref HIERARCH ESO DET WIN STARTY = 1 / Lower left Y ref HIERARCH ESO DET WIN TYPE = 0 / Win-Type: 0=SW/1=HW HIERARCH ESO PRO CATG = 'XSH_MOD_CFG_OPT_2D_NIR' / Category of pipeline product HIERARCH ESO PRO ANCESTOR = 'XSHOO.2024-01-02T10:00:29.199.fits' HIERARCH ESO PRO DID = 'PRO-1.15' / Data dictionary for PRO HIERARCH ESO PRO TYPE = 'REDUCED ' / Product type HIERARCH ESO PRO TECH = 'ECHELLE,MULTI-PINHOLE' / Observation technique HIERARCH ESO PRO SCIENCE = F / Scientific product if T HIERARCH ESO PRO REC1 ID = 'xsh_2dmap' / Pipeline recipe (unique) identifier HIERARCH ESO PRO REC1 DRS ID = 'cpl-7.3.1' / Data Reduction System identifier HIERARCH ESO PRO REC1 PIPE ID = 'xshoo/3.6.5a' / Pipeline (unique) identifier HIERARCH ESO PRO REC1 RAW1 NAME = 'XSHOO.2024-01-02T10:00:29.199.fits' / File naHIERARCH ESO PRO REC1 RAW1 CATG = 'WAVE_NIR_ON' / Category of raw frame HIERARCH ESO PRO REC1 RAW2 NAME = 'XSHOO.2024-01-02T10:00:57.308.fits' / File naHIERARCH ESO PRO REC1 RAW2 CATG = 'WAVE_NIR_OFF' / Category of raw frame HIERARCH ESO PRO DATANCOM = 2 / Number of combined frames HIERARCH ESO PRO REC1 CAL1 NAME= 'r.XSHOO.2024-01-01T11:45:10.320_tpl_0000.fits'HIERARCH ESO PRO REC1 CAL1 CATG = 'ORDER_TAB_EDGES_SLIT_NIR' / Category of calibHIERARCH ESO PRO REC1 CAL1 DATAMD5 = 'e28e745f99323529e636dd8e02eaf478' / MD5 siHIERARCH ESO PRO REC1 CAL2 NAME= 'r.XSHOO.2024-01-02T09:48:52.875_tpl_0005.fits'HIERARCH ESO PRO REC1 CAL2 CATG = 'XSH_MOD_CFG_OPT_FMT_NIR' / Category of calibrHIERARCH ESO PRO REC1 CAL2 DATAMD5 = '7f4ae607818fdf1504d52d41d397594b' / MD5 siHIERARCH ESO PRO REC1 CAL3 NAME = 'XS_GALL_091001B_NIR.fits' / File name of caliHIERARCH ESO PRO REC1 CAL3 CATG = 'ARC_LINE_LIST_NIR' / Category of calibration HIERARCH ESO PRO REC1 CAL3 DATAMD5 = '332aac0c7b705dde0ff0d1fbd4c45218' / MD5 siHIERARCH ESO PRO REC1 CAL4 NAME = 'XS_GALM_091001B_NIR.fits' / File name of caliHIERARCH ESO PRO REC1 CAL4 CATG = 'ARC_LINE_LIST_INTMON_NIR' / Category of calibHIERARCH ESO PRO REC1 CAL4 DATAMD5 = 'c4667a4a1bfca324eb87d0cc1f2b203e' / MD5 siHIERARCH ESO PRO REC1 CAL5 NAME = 'XS_GSFT_090930A_NIR_9p.fits' / File name of cHIERARCH ESO PRO REC1 CAL5 CATG = 'SPECTRAL_FORMAT_TAB_NIR' / Category of calibrHIERARCH ESO PRO REC1 CAL6 NAME = 'XS_GBPM_091001A_NIR.fits' / File name of caliHIERARCH ESO PRO REC1 CAL6 CATG = 'BP_MAP_RP_NIR' / Category of calibration framHIERARCH ESO PRO REC1 CAL6 DATAMD5 = '6f99f13903272739f959c96eda6d7e1b' / MD5 siHIERARCH ESO PRO REC1 PARAM1 NAME = 'keep-temp' / If 'no', temporary files are dHIERARCH ESO PRO REC1 PARAM1 VALUE = 'no ' / Default: 'no' HIERARCH ESO PRO REC1 PARAM2 NAME = 'debug-level' / Additional xshooter debug leHIERARCH ESO PRO REC1 PARAM2 VALUE = 'none ' / Default: 'none' HIERARCH ESO PRO REC1 PARAM3 NAME = 'time-stamp' / Add timestamp to product fileHIERARCH ESO PRO REC1 PARAM3 VALUE = 'false ' / Default: false HIERARCH ESO PRO REC1 PARAM4 NAME = 'decode-bp' / Integer representation of the HIERARCH ESO PRO REC1 PARAM4 VALUE = '2144337919' / Default: 2144337919 HIERARCH ESO PRO REC1 PARAM5 NAME = 'pre-overscan-corr' / pre-overscan correctioHIERARCH ESO PRO REC1 PARAM5 VALUE = '0 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM6 NAME = 'detectarclines-fit-win-hsize' / Half windowHIERARCH ESO PRO REC1 PARAM6 VALUE = '6 ' / Default: 6 HIERARCH ESO PRO REC1 PARAM7 NAME = 'detectarclines-search-win-hsize' / Half winHIERARCH ESO PRO REC1 PARAM7 VALUE = '3 ' / Default: 3 HIERARCH ESO PRO REC1 PARAM8 NAME = 'detectarclines-running-median-hsize' / HalfHIERARCH ESO PRO REC1 PARAM8 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM9 NAME = 'detectarclines-wavesol-deg-lambda' / DegreeHIERARCH ESO PRO REC1 PARAM9 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM10 NAME = 'detectarclines-wavesol-deg-order' / DegreeHIERARCH ESO PRO REC1 PARAM10 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM11 NAME = 'detectarclines-wavesol-deg-slit' / Degree HIERARCH ESO PRO REC1 PARAM11 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM12 NAME = 'detectarclines-min-sn' / Minimum signal-toHIERARCH ESO PRO REC1 PARAM12 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM13 NAME = 'detectarclines-find-lines-center' / MethodHIERARCH ESO PRO REC1 PARAM13 VALUE = 'gaussian' / Default: 'gaussian' HIERARCH ESO PRO REC1 PARAM14 NAME = 'detectarclines-clip-sigma' / Kappa value iHIERARCH ESO PRO REC1 PARAM14 VALUE = '2 ' / Default: 2 HIERARCH ESO PRO REC1 PARAM15 NAME = 'detectarclines-clip-niter' / Number of iteHIERARCH ESO PRO REC1 PARAM15 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM16 NAME = 'detectarclines-clip-frac' / Minimal fractiHIERARCH ESO PRO REC1 PARAM16 VALUE = '0.7 ' / Default: 0.7 HIERARCH ESO PRO REC1 PARAM17 NAME = 'dispersol-deg-x' / Degree in X in the polyHIERARCH ESO PRO REC1 PARAM17 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM18 NAME = 'dispersol-deg-y' / Degree in Y in the polyHIERARCH ESO PRO REC1 PARAM18 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM19 NAME = 'model-maxit' / Number/10 of annealing iterHIERARCH ESO PRO REC1 PARAM19 VALUE = '1000 ' / Default: 500 HIERARCH ESO PRO REC1 PARAM20 NAME = 'model-anneal-factor' / Multiplier applied HIERARCH ESO PRO REC1 PARAM20 VALUE = '0.5 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM21 NAME = 'model-scenario' / selects preset flag and HIERARCH ESO PRO REC1 PARAM21 VALUE = '8 ' / Default: 4 HIERARCH ESO QC MODEL NDAT = 1853 HIERARCH ESO QC MODEL PREDICT RESX_MIN = -0.69963247751275 HIERARCH ESO QC MODEL PREDICT RESY_MIN = -0.937204397815094 HIERARCH ESO QC MODEL PREDICT RESX_MAX = 0.0862843649647402 HIERARCH ESO QC MODEL PREDICT RESY_MAX = 1.33783324590775 HIERARCH ESO QC MODEL PREDICT RESX_AVG = -0.255528861570653 HIERARCH ESO QC MODEL PREDICT RESY_AVG = -0.176023905886889 HIERARCH ESO QC MODEL PREDICT RESX_MED = -0.254650389236758 HIERARCH ESO QC MODEL PREDICT RESY_MED = -0.1744031969547 HIERARCH ESO QC MODEL PREDICT RESX_RMS = 0.102157474669703 HIERARCH ESO QC MODEL PREDICT RESY_RMS = 0.190269829587982 HIERARCH ESO QC MODEL ANNEAL RESX_MIN = -0.391566407941923 HIERARCH ESO QC MODEL ANNEAL RESY_MIN = -0.621655643923646 HIERARCH ESO QC MODEL ANNEAL RESX_MAX = 0.341120439861243 HIERARCH ESO QC MODEL ANNEAL RESY_MAX = 1.64348900278458 HIERARCH ESO QC MODEL ANNEAL RESX_AVG = 0.000269880599610766 HIERARCH ESO QC MODEL ANNEAL RESY_AVG = 0.000942639519733203 HIERARCH ESO QC MODEL ANNEAL RESX_MED = 0.00305695071540413 HIERARCH ESO QC MODEL ANNEAL RESY_MED = 0.00535539916495509 HIERARCH ESO QC MODEL ANNEAL RESX_RMS = 0.101804827980034 HIERARCH ESO QC MODEL ANNEAL RESY_RMS = 0.168675418717308 HIERARCH ESO OCS DET3 IMGNAME = 'XSHOOTER_SLT_WAVE_NIR_' / Data File Name. HIERARCH ESO SEQ ARM = 'NIR ' / Instrument Arm ORIGFILE= 'XS_PMC2_240101A_NIR_H2.fits' / Original File Name CHECKSUM= 'EaDAGVA5EaAAEUA3' / HDU checksum updated 2024-01-03T13:03:56 DATASUM = ' 0' / data unit checksum updated 2024-01-03T13:03:56 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 42 / width of table in bytes NAXIS2 = 91 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 6 / number of fields in each row TTYPE1 = 'Best_Guess' / label for field 1 TFORM1 = '1D ' / data format of field: 8-byte DOUBLE TTYPE2 = 'Low_Limit' / label for field 2 TFORM2 = '1D ' / data format of field: 8-byte DOUBLE TTYPE3 = 'High_Limit' / label for field 3 TFORM3 = '1D ' / data format of field: 8-byte DOUBLE TTYPE4 = 'Compute_Flag' / label for field 4 TFORM4 = '1J ' / data format of field: 4-byte INTEGER TTYPE5 = 'Parameter_Name' / label for field 5 TFORM5 = '10A ' / data format of field: ASCII Character TTYPE6 = 'Parameter_Units' / label for field 6 TFORM6 = '4A ' / data format of field: ASCII Character CHECKSUM= 'UOXXaNWVVNWVaNWV' / HDU checksum updated 2024-01-03T13:03:56 DATASUM = '2473409829' / data unit checksum updated 2024-01-03T13:03:56 END @@@arm @YÐ@YÐ@YÐtemper K @YÐ@YÐ@YÐt_ir_p2 K @YÐ@YÐ@YÐt_ir_p3 K @i¾o“Žë@i¾o“Žë@i¾o“Žëes_x mm @ ü*““ @ ü*““ @ ü*““ es_y mm mues deg nues deg ?×#˺QI?×#˺QI?×#˺QItaues deg ?ྼá9'S?ྼá9'S?ྼá9'Sslit_scalemm/"@p£× +=q@p£× +=q@p£× +=qes_s mm ?àü•|Ôfõ?àü•|Ôfõ?àü•|Ôfões_w mm @�â‚}ÊŽ:@�â‚}ÊŽ:@�â‚}ÊŽ:fcol mm @ a­qŽõZ@ a­qŽõZ@ a­qŽõZcmup1 deg @9Ù”½ÑH@9Ù”½ÑH@9Ù”½ÑHmup1 deg ?Í/¯L¢ü¾?Í/¯L¢ü¾?Í/¯L¢ü¾nup1 deg taup1 deg ÀA¥ +{=ÁÞÀA¥ +{=ÁÞÀA¥ +{=ÁÞmup2 deg ¿Ô:Ÿ‡þ}¿Ô:Ÿ‡þ}¿Ô:Ÿ‡þ}nup2 deg taup2 deg @< |lž¿­@< |lž¿­@< |lž¿­mup3 deg ¿ ëÆ H$¿ ëÆ H$¿ ëÆ H$nup3 deg taup3 deg À5È’ì—.À5È’ì—.À5È’ì—.mup4 deg ?±Ýš!‹§Ù?±Ýš!‹§Ù?±Ýš!‹§Ùnup4 deg taup4 deg @úçOÑÒ“@>úçOÑÒ“@>úçOÑÒ“@pc_y_x3 ¿\0"åï¿\0"åï¿\0"åïpc_y_x2y >íaÞ)HÝ­>íaÞ)HÝ­>íaÞ)HÝ­pc_y_y2x ¿CÝqçÿ¿CÝqçÿ¿CÝqçÿpc_y_y3 ¾›pÏs"é¾›pÏs"é¾›pÏs"épc4_x_xy3 ¾©ð4WÊGS¾©ð4WÊGS¾©ð4WÊGSpc4_x_x3y ¾¾Ò!roU®¾¾Ò!roU®¾¾Ò!roU®pc4_x_x2y2 ¾ÄÕªžÖo…¾ÄÕªžÖo…¾ÄÕªžÖo…pc4_x_x4 >–J0X ~Y>–J0X ~Y>–J0X ~Ypc4_x_y4 ¾ÈÚN@1i¾ÈÚN@1i¾ÈÚN@1ipc4_y_xy3 ¾ÑÂM4ÐT!¾ÑÂM4ÐT!¾ÑÂM4ÐT!pc4_y_x3y >��½&àó.>��½&àó.>��½&àó.pc4_y_x2y2 ¾¥ˆ=9󾥈=9󾥈=9ópc4_y_x4 ¾�„ÒÜ—˜f¾�„ÒÜ—˜f¾�„ÒÜ—˜fpc4_y_y4 @$ž Èx@$ž Èx@$ž Èxca_x0 ¿�j0i]¿�j0i]¿�j0i]ca_x1 Àÿ·jêâ Àÿ·jêâ Àÿ·jêâ ca_y0 ¿.¼áœ`ù¿.¼áœ`ù¿.¼áœ`ùca_y1 d2_x1 d2_x2 d2_x3 ¿ð¿ð¿ðflipx ?ð?ð?ðflipy ÀõÂ�\(öÀõÂ�\(öÀõÂ�\(öslit[0] " À8Që…¸À8Që…¸À8Që…¸slit[1] " ÀõÂ�\(öÀõÂ�\(öÀõÂ�\(öslit[2] " ¿öõÂ�\(ö¿öõÂ�\(ö¿öõÂ�\(öslit[3] " slit[4] " ?öõÂ�\(ö?öõÂ�\(ö?öõÂ�\(öslit[5] " @õÂ�\(ö@õÂ�\(ö@õÂ�\(öslit[6] " @8Që…¸@8Që…¸@8Që…¸slit[7] " @õÂ�\(ö@õÂ�\(ö@õÂ�\(öslit[8] " config_mjddays \ No newline at end of file diff --git a/XSHOOTER/calibration/model_uvb.fits b/XSHOOTER/calibration/model_uvb.fits new file mode 100644 index 00000000..b3c7e513 --- /dev/null +++ b/XSHOOTER/calibration/model_uvb.fits @@ -0,0 +1,4 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H DATE = '2024-01-02T10:25:37' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'ESO ' / European Southern Observatory TELESCOP= 'Tel name not set' / ESO Telescope Name INSTRUME= 'XSHOOTER' / Instrument used. OBJECT = 'LAMP,WAVE' / Original target. MJD-OBS = 60311.415838525 / MJD start (2024-01-02T09:58:48.449) DATE-OBS= '2024-01-02T09:58:48.448' / Date of observation PI-COI = 'XSHOOTER Operation Team' / PI-COI name. ARCFILE = 'M.XSHOOTER.2024-01-03T13:03:57.940.fits' / Archive File Name DATAMD5 = '9c6f68da55e20fd03fb60dad5a4a77f7' / MD5 checksum PIPEFILE= 'r.XSHOO.2024-01-02T09:58:48.448_0007.fits' / no comment HIERARCH ESO OBS DID = 'ESO-VLT-DIC.OBS-2.2' / OBS Dictionary HIERARCH ESO OBS GRP = '0 ' / linked blocks HIERARCH ESO OBS ID = 200189624 / Observation block ID HIERARCH ESO OBS NAME = 'Calibration' / OB name HIERARCH ESO OBS NTPL = 18 / Number of templates within OB HIERARCH ESO OBS PI-COI ID = 52022 / ESO internal PI-COI ID HIERARCH ESO OBS PI-COI NAME = 'XSHOOTER Operation Team' / PI-COI name HIERARCH ESO OBS PROG ID = '60.A-9022(C)' / ESO program identification HIERARCH ESO OBS START = '2024-01-02T09:10:44' / OB start time HIERARCH ESO OBS TPLNO = 7 / Template number within OB HIERARCH ESO TPL DID = 'ESO-VLT-DIC.TPL-1.9' / Data dictionary for TPL HIERARCH ESO TPL EXPNO = 1 / Exposure number within template HIERARCH ESO TPL ID = 'XSHOOTER_slt_cal_UVBVisArcsMultiplePinhole' / Te HIERARCH ESO TPL NAME = 'Stand-alone Daytime Calibration Template' / Temp HIERARCH ESO TPL NEXP = 2 / Number of exposures within templat HIERARCH ESO TPL PRESEQ = 'XSHOOTER_slt_cal_UVBVisArcsMultiplePinhole.seq' HIERARCH ESO TPL START = '2024-01-02T09:58:04' / TPL start time HIERARCH ESO TPL VERSION = '$Revision: 192749 $' / Version of the template HIERARCH ESO INS ADC1 DEC = -235528.30025 / Telescope desclination [deg]. HIERARCH ESO INS ADC1 ENC END = 14980 / Encoder position at end [Enc] HIERARCH ESO INS ADC1 ENC START = 14980 / Encoder position at start [Enc] HIERARCH ESO INS ADC1 END = 72.4951 / Position angle at end [deg]. HIERARCH ESO INS ADC1 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC1 RA = 120658.990189 / Telescope right ascension [deg]. HIERARCH ESO INS ADC1 START = 72.495 / ADC position at start [deg]. HIERARCH ESO INS ADC2 DEC = -235528.30025 / Telescope desclination [deg]. HIERARCH ESO INS ADC2 ENC END = 56459 / Encoder position at end [Enc] HIERARCH ESO INS ADC2 ENC START = 56459 / Encoder position at start [Enc] HIERARCH ESO INS ADC2 END = 273.731 / Position angle at end [deg]. HIERARCH ESO INS ADC2 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC2 RA = 120658.990189 / Telescope right ascension [deg]. HIERARCH ESO INS ADC2 START = 273.731 / ADC position at start [deg]. HIERARCH ESO INS ADC3 DEC = -235528.30025 / Telescope desclination [deg]. HIERARCH ESO INS ADC3 ENC END = 14501 / Encoder position at end [Enc] HIERARCH ESO INS ADC3 ENC START = 14501 / Encoder position at start [Enc] HIERARCH ESO INS ADC3 END = 70.177 / Position angle at end [deg]. HIERARCH ESO INS ADC3 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC3 RA = 120658.990189 / Telescope right ascension [deg]. HIERARCH ESO INS ADC3 START = 70.177 / ADC position at start [deg]. HIERARCH ESO INS ADC4 DEC = -235528.30025 / Telescope desclination [deg]. HIERARCH ESO INS ADC4 ENC END = 56765 / Encoder position at end [Enc] HIERARCH ESO INS ADC4 ENC START = 56765 / Encoder position at start [Enc] HIERARCH ESO INS ADC4 END = 275.212 / Position angle at end [deg]. HIERARCH ESO INS ADC4 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC4 RA = 120658.990189 / Telescope right ascension [deg]. HIERARCH ESO INS ADC4 START = 275.212 / ADC position at start [deg]. HIERARCH ESO INS DATE = '2005-04-01' / Instrument release date (yyyy-mm-d HIERARCH ESO INS DID = 'ESO-VLT-DIC.XSHOOTER_ICS-363028' / Data dictiona HIERARCH ESO INS FOCU1 ENC = 27082 / Absolute position [Enc]. HIERARCH ESO INS FOCU1 POS = 15.6 / Position [C]. HIERARCH ESO INS FOCU2 ENC = 11750 / Absolute position [Enc]. HIERARCH ESO INS FOCU2 POS = 0. / Position [C]. HIERARCH ESO INS ID = 'XSHOOTER/176642' / Instrument ID. HIERARCH ESO INS LAMP1 ID = 'SPL1 ' / Lamp ID. HIERARCH ESO INS LAMP1 NAME = 'ThAr_Lamp' / Lamp name. HIERARCH ESO INS LAMP1 ST = T / Lamp activated. HIERARCH ESO INS MIRR1 ID = 'ThAr_D2 ' / Mirror unique ID. HIERARCH ESO INS MIRR1 NAME = 'ThAr_D2 ' / Mirror name. HIERARCH ESO INS MIRR1 NO = 2 / Mirror slide position. HIERARCH ESO INS MODE = 'SLITSPEC' / Instrument mode used. HIERARCH ESO INS OPTI2 ID = 'SLOT ' / OPTIi unique ID. HIERARCH ESO INS OPTI2 NAME = 'SLOT ' / OPTIi name. HIERARCH ESO INS OPTI2 NO = 3 / OPTIi slot number. HIERARCH ESO INS OPTI2 TYPE = 'MIRROR ' / OPTIi element. HIERARCH ESO INS OPTI3 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI3 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI3 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI3 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI4 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI4 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI4 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI4 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI5 ID = 'PS8 ' / OPTIi unique ID. HIERARCH ESO INS OPTI5 NAME = 'Blind ' / OPTIi name. HIERARCH ESO INS OPTI5 NO = 8 / OPTIi slot number. HIERARCH ESO INS OPTI5 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS PATH = 'SLITSPEC' / Optical path used. HIERARCH ESO INS SENS21 ID = 'CA1F1 ' / sensor ID. HIERARCH ESO INS SENS21 NAME = 'Cab.1 Flow rate' / sensor common name. HIERARCH ESO INS SENS21 VAL = 0. / Cab. 1 Flow rate [l/h] HIERARCH ESO INS SENS60 ID = 'NPM ' / sensor ID. HIERARCH ESO INS SENS60 NAME = 'NIR cryo. P' / sensor common name. HIERARCH ESO INS SENS60 VAL = 4.84E-05 / NIR Pressure [mbar] HIERARCH ESO INS SENS81 ID = 'RANGE ' / sensor ID. HIERARCH ESO INS SENS81 NAME = 'Heater Range' / sensor common name. HIERARCH ESO INS SENS81 VAL = 4. / Lake 340 Heater Range HIERARCH ESO INS SENS82 ID = 'HEATR ' / sensor ID. HIERARCH ESO INS SENS82 NAME = 'Heater output' / sensor common name. HIERARCH ESO INS SENS82 VAL = 52.7 / Lake 340 Heater output HIERARCH ESO INS SENSOR4 SWSIM = T / If T, function is software simulat HIERARCH ESO INS SHUT1 ID = 'INSH ' / Shutter ID. HIERARCH ESO INS SHUT1 NAME = 'Instrument shutter' / Shutter name. HIERARCH ESO INS SHUT1 ST = F / Shutter open. HIERARCH ESO INS SWSIM = 'NORMAL ' / Software simulation. HIERARCH ESO INS TEMP1 ID = 'TMUC ' / Temperature sensor ID. HIERARCH ESO INS TEMP1 NAME = 'UVB Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP1 VAL = 15.33 / UVB Camera temp. [C] HIERARCH ESO INS TEMP10 ID = 'TMA ' / Temperature sensor ID. HIERARCH ESO INS TEMP10 NAME = 'Ambient temp.' / Temperature sensor name. HIERARCH ESO INS TEMP10 VAL = 15.11 / Ambient temp. [C] HIERARCH ESO INS TEMP11 ID = 'TMADC ' / Temperature sensor ID. HIERARCH ESO INS TEMP11 NAME = 'BB UVB ADC temp.' / Temperature sensor name. HIERARCH ESO INS TEMP11 VAL = 17.51 / BB UVB ADC temp. [C] HIERARCH ESO INS TEMP2 ID = 'TMUP ' / Temperature sensor ID. HIERARCH ESO INS TEMP2 NAME = 'UVB Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP2 VAL = 15.11 / UVB Prism temp. [C] HIERARCH ESO INS TEMP21 ID = 'CA1OT ' / Temperature sensor ID. HIERARCH ESO INS TEMP21 NAME = 'Cab.1 outlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP21 VAL = 0. / Cab. 1 outlet temp. [C] HIERARCH ESO INS TEMP22 ID = 'CA1IT ' / Temperature sensor ID. HIERARCH ESO INS TEMP22 NAME = 'Cab.1 inlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP22 VAL = 0. / Cab. 1 inlet temp. [C] HIERARCH ESO INS TEMP23 ID = 'CA1CT ' / Temperature sensor ID. HIERARCH ESO INS TEMP23 NAME = 'Cab.1 temp.' / Temperature sensor name. HIERARCH ESO INS TEMP23 VAL = 0. / Cab. 1 temp. [C] HIERARCH ESO INS TEMP24 ID = 'CA1AT ' / Temperature sensor ID. HIERARCH ESO INS TEMP24 NAME = 'Cab.1 Amb. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP24 VAL = 0. / Cab. 1 Amb. temp. [C] HIERARCH ESO INS TEMP3 ID = 'TMUB ' / Temperature sensor ID. HIERARCH ESO INS TEMP3 NAME = 'UVB bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP3 VAL = 15.28 / UVB bench temp. [C] HIERARCH ESO INS TEMP4 ID = 'TMVC ' / Temperature sensor ID. HIERARCH ESO INS TEMP4 NAME = 'VIS Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP4 VAL = 14.13 / VIS Camera temp. [C] HIERARCH ESO INS TEMP5 ID = 'TMVP ' / Temperature sensor ID. HIERARCH ESO INS TEMP5 NAME = 'VIS Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP5 VAL = 14.86 / VIS Prism temp. [C] HIERARCH ESO INS TEMP6 ID = 'TMVB ' / Temperature sensor ID. HIERARCH ESO INS TEMP6 NAME = 'VIS bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP6 VAL = 14.21 / VIS bench temp. [C] HIERARCH ESO INS TEMP7 ID = 'TMUCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP7 NAME = 'UVB cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP7 VAL = 10.45 / UVB cryo. temp. [C] HIERARCH ESO INS TEMP8 ID = 'TMVCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP8 NAME = 'VIS cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP8 VAL = 12.12 / VIS cryo. temp. [C] HIERARCH ESO INS TEMP80 ID = 'OBCT ' / Temperature sensor ID. HIERARCH ESO INS TEMP80 NAME = 'OB Cover Tel.' / Temperature sensor name. HIERARCH ESO INS TEMP80 VAL = 103.92 / OB Cover Telescope [K] HIERARCH ESO INS TEMP81 ID = 'OBCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP81 NAME = 'OB Cover Tank' / Temperature sensor name. HIERARCH ESO INS TEMP81 VAL = 104.1 / OB Cover Tank [K] HIERARCH ESO INS TEMP82 ID = 'OBPR ' / Temperature sensor ID. HIERARCH ESO INS TEMP82 NAME = 'OB Prism1' / Temperature sensor name. HIERARCH ESO INS TEMP82 VAL = 103.25 / OB Prism1 [K] HIERARCH ESO INS TEMP83 ID = 'OBCL ' / Temperature sensor ID. HIERARCH ESO INS TEMP83 NAME = 'OB Corrector Lens' / Temperature sensor name. HIERARCH ESO INS TEMP83 VAL = 104.13 / OB Corrector Lens [K] HIERARCH ESO INS TEMP84 ID = 'CP ' / Temperature sensor ID. HIERARCH ESO INS TEMP84 NAME = 'Cryo. Cold Plate' / Temperature sensor name. HIERARCH ESO INS TEMP84 VAL = 86.728 / Cryostat Cold Plate [K] HIERARCH ESO INS TEMP85 ID = 'RS ' / Temperature sensor ID. HIERARCH ESO INS TEMP85 NAME = 'Cryo. rad. shield' / Temperature sensor name. HIERARCH ESO INS TEMP85 VAL = 98.813 / Cryostat rad. shield [K] HIERARCH ESO INS TEMP86 ID = 'DCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP86 NAME = 'CCD Copper bar' / Temperature sensor name. HIERARCH ESO INS TEMP86 VAL = 76.593 / CCD Copper bar [K] HIERARCH ESO INS TEMP9 ID = 'TMNCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP9 NAME = 'NIR cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP9 VAL = 21.53 / NIR cryo. temp. [C] HIERARCH ESO INS TEMP90 ID = 'NHT ' / Temperature sensor ID. HIERARCH ESO INS TEMP90 NAME = 'NIR Head temp.' / Temperature sensor name. HIERARCH ESO INS TEMP90 VAL = 79. / NIR Head temp. [K] HIERARCH ESO INS TILT1 AFCX = 1.148 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT1 AFCY = -0.171 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT1 CONVX = 0.208 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT1 CONVY = 0.269 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT1 ENGX = 6.182 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT1 ENGY = 4.819 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT1 ID = 'afcs1 ' / AFCS ID. HIERARCH ESO INS TILT1 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT1 NAME = 'Flexure comp. UVB' / AFCS description. HIERARCH ESO INS TILT1 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT1 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT1 POSXEND = 1.18 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSXSTART = 1.18 / Piezo position at start in X [volt HIERARCH ESO INS TILT1 POSYEND = -0.18 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSYSTART = -0.18 / Piezo position at start in Y [volt HIERARCH ESO INS TILT1 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT1 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT1 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT1 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT2 AFCX = -0.098 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT2 AFCY = -0.135 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT2 CONVX = 0.291 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT2 CONVY = 0.384 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT2 ENGX = 4.901 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT2 ENGY = 4.954 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT2 ID = 'afcs2 ' / AFCS ID. HIERARCH ESO INS TILT2 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT2 NAME = 'Flexure comp. VIS' / AFCS description. HIERARCH ESO INS TILT2 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT2 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT2 POSXEND = -0.099 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSXSTART = -0.099 / Piezo position at start in X [volt HIERARCH ESO INS TILT2 POSYEND = -0.047 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSYSTART = -0.047 / Piezo position at start in Y [volt HIERARCH ESO INS TILT2 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT2 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT2 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT2 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT3 AFCX = 0.868 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT3 AFCY = 0.38 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT3 CONVX = 0.58 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT3 CONVY = 0.56 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT3 ENGX = 5.952 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT3 ENGY = 5.383 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT3 ID = 'afcs3 ' / AFCS ID. HIERARCH ESO INS TILT3 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT3 NAME = 'Flexure comp. NIR' / AFCS description. HIERARCH ESO INS TILT3 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT3 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT3 POSXEND = 0.951 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSXSTART = 0.951 / Piezo position at start in X [volt HIERARCH ESO INS TILT3 POSYEND = 0.382 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSYSTART = 0.382 / Piezo position at start in Y [volt HIERARCH ESO INS TILT3 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT3 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT3 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT3 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO DET BITS = 16 / Bits per pixel readout HIERARCH ESO DET CHIP1 DATE = '2005-04-22' / Date of installation [YYYY-MM-DD] HIERARCH ESO DET CHIP1 ID = 'Pisces Austr II' / Detector chip identification HIERARCH ESO DET CHIP1 INDEX = 1 / Chip index HIERARCH ESO DET CHIP1 NAME = 'e2v CC44-82' / Detector chip name HIERARCH ESO DET CHIP1 NX = 2048 / # of pixels along X HIERARCH ESO DET CHIP1 NY = 4102 / # of pixels along Y HIERARCH ESO DET CHIP1 PSZX = 15. / Size of pixel in X HIERARCH ESO DET CHIP1 PSZY = 15. / Size of pixel in Y HIERARCH ESO DET CHIP1 X = 1 / X location in array HIERARCH ESO DET CHIP1 XGAP = 0. / Gap between chips along x HIERARCH ESO DET CHIP1 Y = 1 / Y location in array HIERARCH ESO DET CHIP1 YGAP = 0. / Gap between chips along y HIERARCH ESO DET CHIPS = 1 / # of chips in detector array HIERARCH ESO DET DATE = '2005-04-22' / Installation date HIERARCH ESO DET DEC = 0. / Apparent 00:00:00.0 DEC at start HIERARCH ESO DET DID = 'ESO-VLT-DIC.XSHOOT_CCD,ESO-VLT-DIC.FCDDCS' / Dic HIERARCH ESO DET EXP NO = 461 / Unique exposure ID number HIERARCH ESO DET EXP RDTTIME = 16.553 / image readout time HIERARCH ESO DET EXP TYPE = 'Normal ' / Exposure type HIERARCH ESO DET EXP XFERTIM = 16.571 / image transfer time HIERARCH ESO DET FRAM ID = 1 / Image sequencial number HIERARCH ESO DET FRAM TYPE = 'Normal ' / Type of frame HIERARCH ESO DET ID = 'CCD FIERA - Rev: 238334' / Detector system Id HIERARCH ESO DET NAME = 'shdetb - shdetb' / Name of detector system HIERARCH ESO DET OUT1 CHIP = 1 / Chip to which the output belongs HIERARCH ESO DET OUT1 CONAD = 1.83 / Conversion from ADUs to electrons HIERARCH ESO DET OUT1 GAIN = 0.55 / Conversion from electrons to ADU HIERARCH ESO DET OUT1 ID = 'R ' / Output ID as from manufacturer HIERARCH ESO DET OUT1 INDEX = 2 / Output index HIERARCH ESO DET OUT1 NAME = 'R ' / Description of output HIERARCH ESO DET OUT1 NX = 2048 / valid pixels along X HIERARCH ESO DET OUT1 NY = 3000 / valid pixels along Y HIERARCH ESO DET OUT1 OVSCX = 48 / Overscan region in X HIERARCH ESO DET OUT1 OVSCY = 0 / Overscan region in Y HIERARCH ESO DET OUT1 PRSCX = 48 / Prescan region in X HIERARCH ESO DET OUT1 PRSCY = 0 / Prescan region in Y HIERARCH ESO DET OUT1 RON = 4.6 / [e-] Readout noise per output (ele HIERARCH ESO DET OUT1 X = 2048 / X location of output HIERARCH ESO DET OUT1 Y = 1 / Y location of output HIERARCH ESO DET OUTPUTS = 1 / # of outputs HIERARCH ESO DET OUTREF = 0 / reference output HIERARCH ESO DET RA = 0. / Apparent 00:00:00.0 RA at start HIERARCH ESO DET READ CLOCK = '400k/1pt/lg' / Readout clock pattern used HIERARCH ESO DET READ MODE = 'normal ' / Readout method HIERARCH ESO DET READ NFRAM = 1 / Number of readouts buffered in sin HIERARCH ESO DET READ SPEED = '1pt/400k/lg' / Readout speed HIERARCH ESO DET SHUT ID = 'VA 25mm BistableCCD Sensor1' / Shutter unique id HIERARCH ESO DET SHUT TMCLOS = 0. / Time taken to close shutter HIERARCH ESO DET SHUT TMOPEN = 0. / Time taken to open shutter HIERARCH ESO DET SHUT TYPE = 'Iris on Slit' / type of shutter HIERARCH ESO DET SOFW MODE = 'Normal ' / CCD sw operational mode HIERARCH ESO DET TELE INT = 600. / Interval between two successive te HIERARCH ESO DET TELE NO = 4 / # of sources active HIERARCH ESO DET TLM1 END = 153. / Telemetry value at read completion HIERARCH ESO DET TLM1 ID = 'CCD Sensor1' / ID of telemetry sensor HIERARCH ESO DET TLM1 NAME = 'CCD T1 ' / Description of telemetry param. HIERARCH ESO DET TLM1 START = 153. / Telemetry value at read start HIERARCH ESO DET TLM2 END = 154.6 / Telemetry value at read completion HIERARCH ESO DET TLM2 ID = 'CCD Sensor2' / ID of telemetry sensor HIERARCH ESO DET TLM2 NAME = 'CCD T2 ' / Description of telemetry param. HIERARCH ESO DET TLM2 START = 154.6 / Telemetry value at read start HIERARCH ESO DET TLM3 END = 284.5 / Telemetry value at read completion HIERARCH ESO DET TLM3 ID = 'Box Temp' / ID of telemetry sensor HIERARCH ESO DET TLM3 NAME = 'EBOX T ' / Description of telemetry param. HIERARCH ESO DET TLM3 START = 284.5 / Telemetry value at read start HIERARCH ESO DET TLM4 END = 8.8E-07 / Telemetry value at read completion HIERARCH ESO DET TLM4 ID = 'Vacuum ' / ID of telemetry sensor HIERARCH ESO DET TLM4 NAME = 'Vacuum ' / Description of telemetry param. HIERARCH ESO DET TLM4 START = 8.8E-07 / Telemetry value at read start HIERARCH ESO DET WIN1 BINX = 1 / Binning factor along X HIERARCH ESO DET WIN1 BINY = 1 / Binning factor along Y HIERARCH ESO DET WIN1 DIT1 = 14.999996 / actual subintegration time HIERARCH ESO DET WIN1 DKTM = 15.3908 / Dark current time HIERARCH ESO DET WIN1 NDIT = 1 / # of subintegrations HIERARCH ESO DET WIN1 NX = 2144 / # of pixels along X HIERARCH ESO DET WIN1 NY = 3000 / # of pixels along Y HIERARCH ESO DET WIN1 ST = T / If T, window enabled HIERARCH ESO DET WIN1 STRX = 1 / Lower left pixel in X HIERARCH ESO DET WIN1 STRY = 1 / Lower left pixel in Y HIERARCH ESO DET WIN1 UIT1 = 15. / user defined subintegration time HIERARCH ESO DET WINDOWS = 1 / # of windows readout HIERARCH ESO PRO CATG = 'XSH_MOD_CFG_OPT_2D_UVB' / Category of pipeline product HIERARCH ESO PRO ANCESTOR = 'XSHOO.2024-01-02T09:58:48.448.fits' HIERARCH ESO PRO DID = 'PRO-1.15' / Data dictionary for PRO HIERARCH ESO PRO TYPE = 'REDUCED ' / Product type HIERARCH ESO PRO TECH = 'ECHELLE,MULTI-PINHOLE' / Observation technique HIERARCH ESO PRO SCIENCE = F / Scientific product if T HIERARCH ESO PRO REC1 ID = 'xsh_2dmap' / Pipeline recipe (unique) identifier HIERARCH ESO PRO REC1 DRS ID = 'cpl-7.3.1' / Data Reduction System identifier HIERARCH ESO PRO REC1 PIPE ID = 'xshoo/3.6.5a' / Pipeline (unique) identifier HIERARCH ESO PRO REC1 RAW1 NAME = 'XSHOO.2024-01-02T09:58:48.448.fits' / File naHIERARCH ESO PRO REC1 RAW1 CATG = 'WAVE_UVB' / Category of raw frame HIERARCH ESO PRO DATANCOM = 1 / Number of combined frames HIERARCH ESO PRO REC1 CAL1 NAME= 'r.XSHOO.2024-01-02T09:37:29.725_tpl_0000.fits'HIERARCH ESO PRO REC1 CAL1 CATG = 'MASTER_BIAS_UVB' / Category of calibration frHIERARCH ESO PRO REC1 CAL1 DATAMD5 = '61264eba4ec6b8abda4248c5e783911d' / MD5 siHIERARCH ESO PRO REC1 CAL2 NAME= 'r.XSHOO.2024-01-02T10:03:48.425_tpl_0000.fits'HIERARCH ESO PRO REC1 CAL2 CATG = 'ORDER_TAB_EDGES_SLIT_UVB' / Category of calibHIERARCH ESO PRO REC1 CAL2 DATAMD5 = '3d946121c92877366a588157d462f4f1' / MD5 siHIERARCH ESO PRO REC1 CAL3 NAME = 'r.XSHOO.2024-01-02T09:47:07.356_0005.fits' HIERARCH ESO PRO REC1 CAL3 CATG = 'XSH_MOD_CFG_OPT_FMT_UVB' / Category of calibrHIERARCH ESO PRO REC1 CAL3 DATAMD5 = '84a5d03245111296b9a29a87e1c7aaae' / MD5 siHIERARCH ESO PRO REC1 CAL4 NAME = 'XS_GALL_091001B_UVB.fits' / File name of caliHIERARCH ESO PRO REC1 CAL4 CATG = 'ARC_LINE_LIST_UVB' / Category of calibration HIERARCH ESO PRO REC1 CAL4 DATAMD5 = '716325feebc0d8f958a249a4e3c603d1' / MD5 siHIERARCH ESO PRO REC1 CAL5 NAME = 'XS_GALM_091001B_UVB.fits' / File name of caliHIERARCH ESO PRO REC1 CAL5 CATG = 'ARC_LINE_LIST_INTMON_UVB' / Category of calibHIERARCH ESO PRO REC1 CAL5 DATAMD5 = 'c662ce5d543847a01f1448a2ca208856' / MD5 siHIERARCH ESO PRO REC1 CAL6 NAME = 'XS_GSFT_091001A_UVB.fits' / File name of caliHIERARCH ESO PRO REC1 CAL6 CATG = 'SPECTRAL_FORMAT_TAB_UVB' / Category of calibrHIERARCH ESO PRO REC1 CAL6 DATAMD5 = 'cb66fee5070f774602aa02e63fb0d6d5' / MD5 siHIERARCH ESO PRO REC1 PARAM1 NAME = 'keep-temp' / If 'no', temporary files are dHIERARCH ESO PRO REC1 PARAM1 VALUE = 'no ' / Default: 'no' HIERARCH ESO PRO REC1 PARAM2 NAME = 'debug-level' / Additional xshooter debug leHIERARCH ESO PRO REC1 PARAM2 VALUE = 'none ' / Default: 'none' HIERARCH ESO PRO REC1 PARAM3 NAME = 'time-stamp' / Add timestamp to product fileHIERARCH ESO PRO REC1 PARAM3 VALUE = 'false ' / Default: false HIERARCH ESO PRO REC1 PARAM4 NAME = 'decode-bp' / Integer representation of the HIERARCH ESO PRO REC1 PARAM4 VALUE = '2144337919' / Default: 2144337919 HIERARCH ESO PRO REC1 PARAM5 NAME = 'pre-overscan-corr' / pre-overscan correctioHIERARCH ESO PRO REC1 PARAM5 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM6 NAME = 'detectarclines-fit-win-hsize' / Half windowHIERARCH ESO PRO REC1 PARAM6 VALUE = '6 ' / Default: 6 HIERARCH ESO PRO REC1 PARAM7 NAME = 'detectarclines-search-win-hsize' / Half winHIERARCH ESO PRO REC1 PARAM7 VALUE = '3 ' / Default: 3 HIERARCH ESO PRO REC1 PARAM8 NAME = 'detectarclines-running-median-hsize' / HalfHIERARCH ESO PRO REC1 PARAM8 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM9 NAME = 'detectarclines-wavesol-deg-lambda' / DegreeHIERARCH ESO PRO REC1 PARAM9 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM10 NAME = 'detectarclines-wavesol-deg-order' / DegreeHIERARCH ESO PRO REC1 PARAM10 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM11 NAME = 'detectarclines-wavesol-deg-slit' / Degree HIERARCH ESO PRO REC1 PARAM11 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM12 NAME = 'detectarclines-min-sn' / Minimum signal-toHIERARCH ESO PRO REC1 PARAM12 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM13 NAME = 'detectarclines-find-lines-center' / MethodHIERARCH ESO PRO REC1 PARAM13 VALUE = 'gaussian' / Default: 'gaussian' HIERARCH ESO PRO REC1 PARAM14 NAME = 'detectarclines-clip-sigma' / Kappa value iHIERARCH ESO PRO REC1 PARAM14 VALUE = '2 ' / Default: 2 HIERARCH ESO PRO REC1 PARAM15 NAME = 'detectarclines-clip-niter' / Number of iteHIERARCH ESO PRO REC1 PARAM15 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM16 NAME = 'detectarclines-clip-frac' / Minimal fractiHIERARCH ESO PRO REC1 PARAM16 VALUE = '0.7 ' / Default: 0.7 HIERARCH ESO PRO REC1 PARAM17 NAME = 'dispersol-deg-x' / Degree in X in the polyHIERARCH ESO PRO REC1 PARAM17 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM18 NAME = 'dispersol-deg-y' / Degree in Y in the polyHIERARCH ESO PRO REC1 PARAM18 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM19 NAME = 'model-maxit' / Number/10 of annealing iterHIERARCH ESO PRO REC1 PARAM19 VALUE = '500 ' / Default: 500 HIERARCH ESO PRO REC1 PARAM20 NAME = 'model-anneal-factor' / Multiplier applied HIERARCH ESO PRO REC1 PARAM20 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM21 NAME = 'model-scenario' / selects preset flag and HIERARCH ESO PRO REC1 PARAM21 VALUE = '8 ' / Default: 4 HIERARCH ESO QC MODEL NDAT = 3316 HIERARCH ESO QC MODEL PREDICT RESX_MIN = 0.139217878265526 HIERARCH ESO QC MODEL PREDICT RESY_MIN = -6.16755101790636 HIERARCH ESO QC MODEL PREDICT RESX_MAX = 1.01794232115162 HIERARCH ESO QC MODEL PREDICT RESY_MAX = 3.46260388926248 HIERARCH ESO QC MODEL PREDICT RESX_AVG = 0.49962757389755 HIERARCH ESO QC MODEL PREDICT RESY_AVG = 0.0983453301308799 HIERARCH ESO QC MODEL PREDICT RESX_MED = 0.503840149517259 HIERARCH ESO QC MODEL PREDICT RESY_MED = 0.109003961921985 HIERARCH ESO QC MODEL PREDICT RESX_RMS = 0.0651088248575295 HIERARCH ESO QC MODEL PREDICT RESY_RMS = 0.30940075128134 HIERARCH ESO QC MODEL ANNEAL RESX_MIN = -0.360006542611927 HIERARCH ESO QC MODEL ANNEAL RESY_MIN = -6.2529548597654 HIERARCH ESO QC MODEL ANNEAL RESX_MAX = 0.514386831571755 HIERARCH ESO QC MODEL ANNEAL RESY_MAX = 3.36765606128301 HIERARCH ESO QC MODEL ANNEAL RESX_AVG = -0.000595469216278192 HIERARCH ESO QC MODEL ANNEAL RESY_AVG = -0.00178212842889225 HIERARCH ESO QC MODEL ANNEAL RESX_MED = 0.00420440279810919 HIERARCH ESO QC MODEL ANNEAL RESY_MED = 0.0098243463497738 HIERARCH ESO QC MODEL ANNEAL RESX_RMS = 0.0651661124124859 HIERARCH ESO QC MODEL ANNEAL RESY_RMS = 0.309020095948337 HIERARCH ESO OCS DET1 IMGNAME = 'XSHOOTER_SLT_WAVE_UVB_' / Data File Name. HIERARCH ESO SEQ ARM = 'UVB ' / Instrument Arm ORIGFILE= 'XS_PMC2_240101A_1x1_UVB_Ps.fits' / Original File Name CHECKSUM= 'GFQRJ9POGCPOG9PO' / HDU checksum updated 2024-01-03T13:03:58 DATASUM = ' 0' / data unit checksum updated 2024-01-03T13:03:58 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 42 / width of table in bytes NAXIS2 = 91 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 6 / number of fields in each row TTYPE1 = 'Best_Guess' / label for field 1 TFORM1 = '1D ' / data format of field: 8-byte DOUBLE TTYPE2 = 'Low_Limit' / label for field 2 TFORM2 = '1D ' / data format of field: 8-byte DOUBLE TTYPE3 = 'High_Limit' / label for field 3 TFORM3 = '1D ' / data format of field: 8-byte DOUBLE TTYPE4 = 'Compute_Flag' / label for field 4 TFORM4 = '1J ' / data format of field: 4-byte INTEGER TTYPE5 = 'Parameter_Name' / label for field 5 TFORM5 = '10A ' / data format of field: ASCII Character TTYPE6 = 'Parameter_Units' / label for field 6 TFORM6 = '4A ' / data format of field: ASCII Character CHECKSUM= '3WclAUbi4UbiAUbi' / HDU checksum updated 2024-01-03T13:03:58 DATASUM = '1833495973' / data unit checksum updated 2024-01-03T13:03:58 END arm @r(õÂ�\@r(õÂ�\@r(õÂ�\temper K  º€ º€ º€t_ir_p2 K t_ir_p3 K ?Òí1©±0…?Òí1©±0…?Òí1©±0…es_x mm ¿` Nµ ‚´¿` Nµ ‚´¿` Nµ ‚´es_y mm mues deg nues deg ?Õ 0Ý?‘?Õ 0Ý?‘?Õ 0Ý?‘taues deg ?Ï'kâ­?Ï'kâ­?Ï'kâ­slit_scalemm/"@záG®{@záG®{@záG®{es_s mm ?Õ�$Ý/?Õ�$Ý/?Õ�$Ý/es_w mm @ƒ¾v +Ê.ø@ƒ¾v +Ê.ø@ƒ¾v +Ê.øfcol mm cmup1 deg ÀG¿€^»äÛÀG¿€^»äÛÀG¿€^»äÛmup1 deg ¿Ì Ðæ¿Ì Ðæ¿Ì Ðænup1 deg ?äZ´ªîëW?äZ´ªîëW?äZ´ªîëWtaup1 deg @MÉÜ€ïV@MÉÜ€ïV@MÉÜ€ïVmup2 deg ?Ô[WM¯ð?Ô[WM¯ð?Ô[WM¯ðnup2 deg ?Õl'‹ñ?Õl'‹ñ?Õl'‹ñtaup2 deg mup3 deg ”»ƒLx?”»ƒLx?”»ƒLx?nup3 deg ã·ã·ã·taup3 deg Õ˜IÕ˜IÕ˜Imup4 deg nup4 deg taup4 deg mup5 deg nup5 deg taup5 deg ŸeT‹_ŸeT‹_ŸeT‹_mup6 deg nup6 deg taup6 deg ¿öýI“lì¿öýI“lì¿öýI“lìmug deg ÀE^×.ŽÀE^×.ŽÀE^×.Žnug deg ¿ã¹À8¿ã¹À8¿ã¹À8taug deg @fµ�«W±@fµ�«W±@fµ�«W±sg mm-1@pZvhÖÒ†@pZvhÖÒ†@pZvhÖÒ†fdet mm ¿³§'ü�п³§'ü�п³§'ü�Ðmud deg ¿·’¯Ïý.J¿·’¯Ïý.J¿·’¯Ïý.Jnud deg @f�“-ä@f�“-ä@f�“-ätaud deg ?ޏQë…¸?ޏQë…¸?ޏQë…¸pix mm À ]ßFÿjÀ ]ßFÿjÀ ]ßFÿjchipx mm À0£¤¬°À0£¤¬°À0£¤¬°chipy mm @V€@V€@V€chiprot deg ?•Ï[¿~µ?•Ï[¿~µ?•Ï[¿~µpc_x_xx ?ï·YŸq‹?ï·YŸq‹?ï·YŸq‹pc_x_x1 ? Êe€öfc? Êe€öfc? Êe€öfcpc_x_yy ?lÒ Â??lÒ Â??lÒ Â?pc_x_y1 ¿8gR— 0—¿8gR— 0—¿8gR— 0—pc_x_xy >óAxOÊÑÌ>óAxOÊÑÌ>óAxOÊÑÌpc_x_x3 ¾�\¥ éúß¾�\¥ éúß¾�\¥ éúßpc_x_x2y >ðùL‰¦ü>ðùL‰¦ü>ðùL‰¦üpc_x_y2x ¾›l�g"º¾›l�g"º¾›l�g"ºpc_x_y3 ?#x|«óçõ?#x|«óçõ?#x|«óçõpc_y_xx ?u¬›B¶s?u¬›B¶s?u¬›B¶spc_y_x1 >×¼â¢9!>×¼â¢9!>×¼â¢9!pc_y_yy ?ײַe�1N?ײַe�1N?ײַe�1Npc_y_y1 ?+¡[ÿ['?+¡[ÿ['?+¡[ÿ['pc_y_xy >s5CÎã¯O>s5CÎã¯O>s5CÎã¯Opc_y_x3 >é°j„D¸>é°j„D¸>é°j„D¸pc_y_x2y >ÆÝ£øÂÚ>ÆÝ£øÂÚ>ÆÝ£øÂÚpc_y_y2x ¾òÌ'&HÑC¾òÌ'&HÑC¾òÌ'&HÑCpc_y_y3 d2_y1x0 d2_y1x1 d2_y1x2 d2_y1x3 d2_y2x0 d2_y2x1 d2_y2x2 d2_y2x3 d2_y3x0 d2_y3x1 d2_y3x2 d2_y3x3 @Y€@Y€@Y€offx pix @i€@i€@i€offy pix ?[‹“Ãì‚?[‹“Ãì‚?[‹“Ãì‚d2_x1 ?L´{Î'ùÚ?L´{Î'ùÚ?L´{Î'ùÚd2_x2 ?ݲ3·¸?ݲ3·¸?ݲ3·¸d2_x3 ?ð?ð?ðflipx ?ð?ð?ðflipy À›=ÈK^À›=ÈK^À›=ÈK^slit[0] " ÀômÅÖ8†ÀômÅÖ8†ÀômÅÖ8†slit[1] " À›=ÈK^À›=ÈK^À›=ÈK^slit[2] " ¿ö›=ÈK^¿ö›=ÈK^¿ö›=ÈK^slit[3] " slit[4] " ?ö›=ÈK^?ö›=ÈK^?ö›=ÈK^slit[5] " @›=ÈK^@›=ÈK^@›=ÈK^slit[6] " @ômÅÖ8†@ômÅÖ8†@ômÅÖ8†slit[7] " @›=ÈK^@›=ÈK^@›=ÈK^slit[8] " AB»¹AB»¹AB»¹config_mjddays \ No newline at end of file diff --git a/XSHOOTER/calibration/model_vis.fits b/XSHOOTER/calibration/model_vis.fits new file mode 100644 index 00000000..0f274dcb --- /dev/null +++ b/XSHOOTER/calibration/model_vis.fits @@ -0,0 +1,10 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H DATE = '2024-01-02T10:25:21' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'ESO ' / European Southern Observatory TELESCOP= 'Tel name not set' / ESO Telescope Name INSTRUME= 'XSHOOTER' / Instrument used. OBJECT = 'LAMP,WAVE' / Original target. MJD-OBS = 60311.415897712 / MJD start (2024-01-02T09:58:53.562) DATE-OBS= '2024-01-02T09:58:53.562' / Date of observation PI-COI = 'XSHOOTER Operation Team' / PI-COI name. ARCFILE = 'M.XSHOOTER.2024-01-03T13:03:59.573.fits' / Archive File Name DATAMD5 = '5870997b4c52d7d1d0ac719412ed562b' / MD5 checksum PIPEFILE= 'r.XSHOO.2024-01-02T09:58:53.562_0007.fits' / no comment HIERARCH ESO OBS DID = 'ESO-VLT-DIC.OBS-2.2' / OBS Dictionary HIERARCH ESO OBS GRP = '0 ' / linked blocks HIERARCH ESO OBS ID = 200189624 / Observation block ID HIERARCH ESO OBS NAME = 'Calibration' / OB name HIERARCH ESO OBS NTPL = 18 / Number of templates within OB HIERARCH ESO OBS PI-COI ID = 52022 / ESO internal PI-COI ID HIERARCH ESO OBS PI-COI NAME = 'XSHOOTER Operation Team' / PI-COI name HIERARCH ESO OBS PROG ID = '60.A-9022(C)' / ESO program identification HIERARCH ESO OBS START = '2024-01-02T09:10:44' / OB start time HIERARCH ESO OBS TPLNO = 7 / Template number within OB HIERARCH ESO TPL DID = 'ESO-VLT-DIC.TPL-1.9' / Data dictionary for TPL HIERARCH ESO TPL EXPNO = 2 / Exposure number within template HIERARCH ESO TPL ID = 'XSHOOTER_slt_cal_UVBVisArcsMultiplePinhole' / Te HIERARCH ESO TPL NAME = 'Stand-alone Daytime Calibration Template' / Temp HIERARCH ESO TPL NEXP = 2 / Number of exposures within templat HIERARCH ESO TPL PRESEQ = 'XSHOOTER_slt_cal_UVBVisArcsMultiplePinhole.seq' HIERARCH ESO TPL START = '2024-01-02T09:58:04' / TPL start time HIERARCH ESO TPL VERSION = '$Revision: 192749 $' / Version of the template HIERARCH ESO INS ADC1 DEC = -235528.30059 / Telescope desclination [deg]. HIERARCH ESO INS ADC1 ENC END = 14980 / Encoder position at end [Enc] HIERARCH ESO INS ADC1 ENC START = 14980 / Encoder position at start [Enc] HIERARCH ESO INS ADC1 END = 72.4951 / Position angle at end [deg]. HIERARCH ESO INS ADC1 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC1 RA = 120643.949096 / Telescope right ascension [deg]. HIERARCH ESO INS ADC1 START = 72.495 / ADC position at start [deg]. HIERARCH ESO INS ADC2 DEC = -235528.30059 / Telescope desclination [deg]. HIERARCH ESO INS ADC2 ENC END = 56459 / Encoder position at end [Enc] HIERARCH ESO INS ADC2 ENC START = 56459 / Encoder position at start [Enc] HIERARCH ESO INS ADC2 END = 273.731 / Position angle at end [deg]. HIERARCH ESO INS ADC2 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC2 RA = 120643.949096 / Telescope right ascension [deg]. HIERARCH ESO INS ADC2 START = 273.731 / ADC position at start [deg]. HIERARCH ESO INS ADC3 DEC = -235528.30059 / Telescope desclination [deg]. HIERARCH ESO INS ADC3 ENC END = 14501 / Encoder position at end [Enc] HIERARCH ESO INS ADC3 ENC START = 14501 / Encoder position at start [Enc] HIERARCH ESO INS ADC3 END = 70.177 / Position angle at end [deg]. HIERARCH ESO INS ADC3 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC3 RA = 120643.949096 / Telescope right ascension [deg]. HIERARCH ESO INS ADC3 START = 70.177 / ADC position at start [deg]. HIERARCH ESO INS ADC4 DEC = -235528.30059 / Telescope desclination [deg]. HIERARCH ESO INS ADC4 ENC END = 56765 / Encoder position at end [Enc] HIERARCH ESO INS ADC4 ENC START = 56765 / Encoder position at start [Enc] HIERARCH ESO INS ADC4 END = 275.212 / Position angle at end [deg]. HIERARCH ESO INS ADC4 MODE = 'OFF ' / ADC mode. HIERARCH ESO INS ADC4 RA = 120643.949096 / Telescope right ascension [deg]. HIERARCH ESO INS ADC4 START = 275.212 / ADC position at start [deg]. HIERARCH ESO INS DATE = '2005-04-01' / Instrument release date (yyyy-mm-d HIERARCH ESO INS DID = 'ESO-VLT-DIC.XSHOOTER_ICS-363028' / Data dictiona HIERARCH ESO INS FOCU1 ENC = 27082 / Absolute position [Enc]. HIERARCH ESO INS FOCU1 POS = 15.6 / Position [C]. HIERARCH ESO INS FOCU2 ENC = 11750 / Absolute position [Enc]. HIERARCH ESO INS FOCU2 POS = 0. / Position [C]. HIERARCH ESO INS ID = 'XSHOOTER/176642' / Instrument ID. HIERARCH ESO INS LAMP1 ID = 'SPL1 ' / Lamp ID. HIERARCH ESO INS LAMP1 NAME = 'ThAr_Lamp' / Lamp name. HIERARCH ESO INS LAMP1 ST = T / Lamp activated. HIERARCH ESO INS MIRR1 ID = 'ThAr_D2 ' / Mirror unique ID. HIERARCH ESO INS MIRR1 NAME = 'ThAr_D2 ' / Mirror name. HIERARCH ESO INS MIRR1 NO = 2 / Mirror slide position. HIERARCH ESO INS MODE = 'SLITSPEC' / Instrument mode used. HIERARCH ESO INS OPTI2 ID = 'SLOT ' / OPTIi unique ID. HIERARCH ESO INS OPTI2 NAME = 'SLOT ' / OPTIi name. HIERARCH ESO INS OPTI2 NO = 3 / OPTIi slot number. HIERARCH ESO INS OPTI2 TYPE = 'MIRROR ' / OPTIi element. HIERARCH ESO INS OPTI3 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI3 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI3 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI3 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI4 ID = 'PS4 ' / OPTIi unique ID. HIERARCH ESO INS OPTI4 NAME = 'Pin_row ' / OPTIi name. HIERARCH ESO INS OPTI4 NO = 4 / OPTIi slot number. HIERARCH ESO INS OPTI4 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS OPTI5 ID = 'PS8 ' / OPTIi unique ID. HIERARCH ESO INS OPTI5 NAME = 'Blind ' / OPTIi name. HIERARCH ESO INS OPTI5 NO = 8 / OPTIi slot number. HIERARCH ESO INS OPTI5 TYPE = 'SLIT ' / OPTIi element. HIERARCH ESO INS PATH = 'SLITSPEC' / Optical path used. HIERARCH ESO INS SENS21 ID = 'CA1F1 ' / sensor ID. HIERARCH ESO INS SENS21 NAME = 'Cab.1 Flow rate' / sensor common name. HIERARCH ESO INS SENS21 VAL = 0. / Cab. 1 Flow rate [l/h] HIERARCH ESO INS SENS60 ID = 'NPM ' / sensor ID. HIERARCH ESO INS SENS60 NAME = 'NIR cryo. P' / sensor common name. HIERARCH ESO INS SENS60 VAL = 4.83E-05 / NIR Pressure [mbar] HIERARCH ESO INS SENS81 ID = 'RANGE ' / sensor ID. HIERARCH ESO INS SENS81 NAME = 'Heater Range' / sensor common name. HIERARCH ESO INS SENS81 VAL = 4. / Lake 340 Heater Range HIERARCH ESO INS SENS82 ID = 'HEATR ' / sensor ID. HIERARCH ESO INS SENS82 NAME = 'Heater output' / sensor common name. HIERARCH ESO INS SENS82 VAL = 52.7 / Lake 340 Heater output HIERARCH ESO INS SENSOR4 SWSIM = T / If T, function is software simulat HIERARCH ESO INS SHUT1 ID = 'INSH ' / Shutter ID. HIERARCH ESO INS SHUT1 NAME = 'Instrument shutter' / Shutter name. HIERARCH ESO INS SHUT1 ST = F / Shutter open. HIERARCH ESO INS SWSIM = 'NORMAL ' / Software simulation. HIERARCH ESO INS TEMP1 ID = 'TMUC ' / Temperature sensor ID. HIERARCH ESO INS TEMP1 NAME = 'UVB Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP1 VAL = 15.33 / UVB Camera temp. [C] HIERARCH ESO INS TEMP10 ID = 'TMA ' / Temperature sensor ID. HIERARCH ESO INS TEMP10 NAME = 'Ambient temp.' / Temperature sensor name. HIERARCH ESO INS TEMP10 VAL = 15.11 / Ambient temp. [C] HIERARCH ESO INS TEMP11 ID = 'TMADC ' / Temperature sensor ID. HIERARCH ESO INS TEMP11 NAME = 'BB UVB ADC temp.' / Temperature sensor name. HIERARCH ESO INS TEMP11 VAL = 17.51 / BB UVB ADC temp. [C] HIERARCH ESO INS TEMP2 ID = 'TMUP ' / Temperature sensor ID. HIERARCH ESO INS TEMP2 NAME = 'UVB Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP2 VAL = 15.11 / UVB Prism temp. [C] HIERARCH ESO INS TEMP21 ID = 'CA1OT ' / Temperature sensor ID. HIERARCH ESO INS TEMP21 NAME = 'Cab.1 outlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP21 VAL = 0. / Cab. 1 outlet temp. [C] HIERARCH ESO INS TEMP22 ID = 'CA1IT ' / Temperature sensor ID. HIERARCH ESO INS TEMP22 NAME = 'Cab.1 inlet temp.' / Temperature sensor name. HIERARCH ESO INS TEMP22 VAL = 0. / Cab. 1 inlet temp. [C] HIERARCH ESO INS TEMP23 ID = 'CA1CT ' / Temperature sensor ID. HIERARCH ESO INS TEMP23 NAME = 'Cab.1 temp.' / Temperature sensor name. HIERARCH ESO INS TEMP23 VAL = 0. / Cab. 1 temp. [C] HIERARCH ESO INS TEMP24 ID = 'CA1AT ' / Temperature sensor ID. HIERARCH ESO INS TEMP24 NAME = 'Cab.1 Amb. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP24 VAL = 0. / Cab. 1 Amb. temp. [C] HIERARCH ESO INS TEMP3 ID = 'TMUB ' / Temperature sensor ID. HIERARCH ESO INS TEMP3 NAME = 'UVB bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP3 VAL = 15.28 / UVB bench temp. [C] HIERARCH ESO INS TEMP4 ID = 'TMVC ' / Temperature sensor ID. HIERARCH ESO INS TEMP4 NAME = 'VIS Camera temp.' / Temperature sensor name. HIERARCH ESO INS TEMP4 VAL = 14.13 / VIS Camera temp. [C] HIERARCH ESO INS TEMP5 ID = 'TMVP ' / Temperature sensor ID. HIERARCH ESO INS TEMP5 NAME = 'VIS Prism temp.' / Temperature sensor name. HIERARCH ESO INS TEMP5 VAL = 14.86 / VIS Prism temp. [C] HIERARCH ESO INS TEMP6 ID = 'TMVB ' / Temperature sensor ID. HIERARCH ESO INS TEMP6 NAME = 'VIS bench temp.' / Temperature sensor name. HIERARCH ESO INS TEMP6 VAL = 14.21 / VIS bench temp. [C] HIERARCH ESO INS TEMP7 ID = 'TMUCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP7 NAME = 'UVB cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP7 VAL = 10.45 / UVB cryo. temp. [C] HIERARCH ESO INS TEMP8 ID = 'TMVCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP8 NAME = 'VIS cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP8 VAL = 12.12 / VIS cryo. temp. [C] HIERARCH ESO INS TEMP80 ID = 'OBCT ' / Temperature sensor ID. HIERARCH ESO INS TEMP80 NAME = 'OB Cover Tel.' / Temperature sensor name. HIERARCH ESO INS TEMP80 VAL = 103.91 / OB Cover Telescope [K] HIERARCH ESO INS TEMP81 ID = 'OBCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP81 NAME = 'OB Cover Tank' / Temperature sensor name. HIERARCH ESO INS TEMP81 VAL = 104.1 / OB Cover Tank [K] HIERARCH ESO INS TEMP82 ID = 'OBPR ' / Temperature sensor ID. HIERARCH ESO INS TEMP82 NAME = 'OB Prism1' / Temperature sensor name. HIERARCH ESO INS TEMP82 VAL = 103.25 / OB Prism1 [K] HIERARCH ESO INS TEMP83 ID = 'OBCL ' / Temperature sensor ID. HIERARCH ESO INS TEMP83 NAME = 'OB Corrector Lens' / Temperature sensor name. HIERARCH ESO INS TEMP83 VAL = 104.14 / OB Corrector Lens [K] HIERARCH ESO INS TEMP84 ID = 'CP ' / Temperature sensor ID. HIERARCH ESO INS TEMP84 NAME = 'Cryo. Cold Plate' / Temperature sensor name. HIERARCH ESO INS TEMP84 VAL = 86.723 / Cryostat Cold Plate [K] HIERARCH ESO INS TEMP85 ID = 'RS ' / Temperature sensor ID. HIERARCH ESO INS TEMP85 NAME = 'Cryo. rad. shield' / Temperature sensor name. HIERARCH ESO INS TEMP85 VAL = 98.81 / Cryostat rad. shield [K] HIERARCH ESO INS TEMP86 ID = 'DCB ' / Temperature sensor ID. HIERARCH ESO INS TEMP86 NAME = 'CCD Copper bar' / Temperature sensor name. HIERARCH ESO INS TEMP86 VAL = 76.597 / CCD Copper bar [K] HIERARCH ESO INS TEMP9 ID = 'TMNCR ' / Temperature sensor ID. HIERARCH ESO INS TEMP9 NAME = 'NIR cryo. temp.' / Temperature sensor name. HIERARCH ESO INS TEMP9 VAL = 21.53 / NIR cryo. temp. [C] HIERARCH ESO INS TEMP90 ID = 'NHT ' / Temperature sensor ID. HIERARCH ESO INS TEMP90 NAME = 'NIR Head temp.' / Temperature sensor name. HIERARCH ESO INS TEMP90 VAL = 79.001 / NIR Head temp. [K] HIERARCH ESO INS TILT1 AFCX = 1.148 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT1 AFCY = -0.171 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT1 CONVX = 0.208 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT1 CONVY = 0.269 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT1 ENGX = 6.183 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT1 ENGY = 4.82 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT1 ID = 'afcs1 ' / AFCS ID. HIERARCH ESO INS TILT1 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT1 NAME = 'Flexure comp. UVB' / AFCS description. HIERARCH ESO INS TILT1 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT1 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT1 POSXEND = 1.18 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSXSTART = 1.18 / Piezo position at start in X [volt HIERARCH ESO INS TILT1 POSYEND = -0.18 / Piezo position at end [volt]. HIERARCH ESO INS TILT1 POSYSTART = -0.18 / Piezo position at start in Y [volt HIERARCH ESO INS TILT1 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT1 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT1 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT1 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT2 AFCX = -0.098 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT2 AFCY = -0.135 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT2 CONVX = 0.291 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT2 CONVY = 0.384 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT2 ENGX = 4.9 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT2 ENGY = 4.953 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT2 ID = 'afcs2 ' / AFCS ID. HIERARCH ESO INS TILT2 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT2 NAME = 'Flexure comp. VIS' / AFCS description. HIERARCH ESO INS TILT2 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT2 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT2 POSXEND = -0.099 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSXSTART = -0.099 / Piezo position at start in X [volt HIERARCH ESO INS TILT2 POSYEND = -0.047 / Piezo position at end [volt]. HIERARCH ESO INS TILT2 POSYSTART = -0.047 / Piezo position at start in Y [volt HIERARCH ESO INS TILT2 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT2 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT2 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT2 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO INS TILT3 AFCX = 0.868 / Flexure corr. in X [volt]. HIERARCH ESO INS TILT3 AFCY = 0.38 / Flexure corr. in Y [volt]. HIERARCH ESO INS TILT3 CONVX = 0.58 / VoltToMarcsec conversion in X. HIERARCH ESO INS TILT3 CONVY = 0.56 / VoltToMarcsec conversion in Y. HIERARCH ESO INS TILT3 ENGX = 5.952 / Piezo voltage at end in X [volt]. HIERARCH ESO INS TILT3 ENGY = 5.384 / Piezo voltage at end in Y [volt]. HIERARCH ESO INS TILT3 ID = 'afcs3 ' / AFCS ID. HIERARCH ESO INS TILT3 MODE = 'STAT ' / AFCS mode. HIERARCH ESO INS TILT3 NAME = 'Flexure comp. NIR' / AFCS description. HIERARCH ESO INS TILT3 OFFSETX = 5. / Offset voltage in X [volt]. HIERARCH ESO INS TILT3 OFFSETY = 5. / Offset voltage in Y [volt]. HIERARCH ESO INS TILT3 POSXEND = 0.951 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSXSTART = 0.951 / Piezo position at start in X [volt HIERARCH ESO INS TILT3 POSYEND = 0.382 / Piezo position at end [volt]. HIERARCH ESO INS TILT3 POSYSTART = 0.382 / Piezo position at start in Y [volt HIERARCH ESO INS TILT3 REFRACXEND = -9999. / Atm. refr. corr. end in X [volt] HIERARCH ESO INS TILT3 REFRACXST = -9999. / Atm. refr. corr. start in X [volt HIERARCH ESO INS TILT3 REFRACYEND = -9999. / Atm. refr. corr. end in Y [volt] HIERARCH ESO INS TILT3 REFRACYST = -9999. / Atm. refr. corr. start in Y [volt HIERARCH ESO DET BITS = 16 / Bits per pixel readout HIERARCH ESO DET CHIP1 DATE = '2005-04-22' / Date of installation [YYYY-MM-DD] HIERARCH ESO DET CHIP1 ID = 'Catherine' / Detector chip identification HIERARCH ESO DET CHIP1 INDEX = 1 / Chip index HIERARCH ESO DET CHIP1 NAME = 'MIT/LL CCID-20' / Detector chip name HIERARCH ESO DET CHIP1 NX = 2048 / # of pixels along X HIERARCH ESO DET CHIP1 NY = 4102 / # of pixels along Y HIERARCH ESO DET CHIP1 PSZX = 15. / Size of pixel in X HIERARCH ESO DET CHIP1 PSZY = 15. / Size of pixel in Y HIERARCH ESO DET CHIP1 X = 1 / X location in array HIERARCH ESO DET CHIP1 XGAP = 0. / Gap between chips along x HIERARCH ESO DET CHIP1 Y = 1 / Y location in array HIERARCH ESO DET CHIP1 YGAP = 0. / Gap between chips along y HIERARCH ESO DET CHIPS = 1 / # of chips in detector array HIERARCH ESO DET DATE = '2005-04-22' / Installation date HIERARCH ESO DET DEC = 0. / Apparent 00:00:00.0 DEC at start HIERARCH ESO DET DID = 'ESO-VLT-DIC.XSHOOT_CCD,ESO-VLT-DIC.FCDDCS' / Dic HIERARCH ESO DET EXP NO = 431 / Unique exposure ID number HIERARCH ESO DET EXP RDTTIME = 21.075 / image readout time HIERARCH ESO DET EXP TYPE = 'Normal ' / Exposure type HIERARCH ESO DET EXP XFERTIM = 36.874 / image transfer time HIERARCH ESO DET FRAM ID = 1 / Image sequencial number HIERARCH ESO DET FRAM TYPE = 'Normal ' / Type of frame HIERARCH ESO DET ID = 'CCD FIERA - Rev: 238334' / Detector system Id HIERARCH ESO DET NAME = 'shdetv - shdetv' / Name of detector system HIERARCH ESO DET OUT1 CHIP = 1 / Chip to which the output belongs HIERARCH ESO DET OUT1 CONAD = 1.64 / Conversion from ADUs to electrons HIERARCH ESO DET OUT1 GAIN = 0.61 / Conversion from electrons to ADU HIERARCH ESO DET OUT1 ID = 'A ' / Output ID as from manufacturer HIERARCH ESO DET OUT1 INDEX = 1 / Output index HIERARCH ESO DET OUT1 NAME = 'A ' / Description of output HIERARCH ESO DET OUT1 NX = 2048 / valid pixels along X HIERARCH ESO DET OUT1 NY = 4000 / valid pixels along Y HIERARCH ESO DET OUT1 OVSCX = 48 / Overscan region in X HIERARCH ESO DET OUT1 OVSCY = 0 / Overscan region in Y HIERARCH ESO DET OUT1 PRSCX = 10 / Prescan region in X HIERARCH ESO DET OUT1 PRSCY = 0 / Prescan region in Y HIERARCH ESO DET OUT1 RON = 6.6 / [e-] Readout noise per output (ele HIERARCH ESO DET OUT1 X = 1 / X location of output HIERARCH ESO DET OUT1 Y = 1 / Y location of output HIERARCH ESO DET OUTPUTS = 1 / # of outputs HIERARCH ESO DET OUTREF = 0 / reference output HIERARCH ESO DET RA = 0. / Apparent 00:00:00.0 RA at start HIERARCH ESO DET READ CLOCK = '400k/1pt/lg' / Readout clock pattern used HIERARCH ESO DET READ MODE = 'normal ' / Readout method HIERARCH ESO DET READ NFRAM = 1 / Number of readouts buffered in sin HIERARCH ESO DET READ SPEED = '1pt/400k/lg' / Readout speed HIERARCH ESO DET SHUT ID = 'VA 25mm BistableCCD Sensor1' / Shutter unique id HIERARCH ESO DET SHUT TMCLOS = 0. / Time taken to close shutter HIERARCH ESO DET SHUT TMOPEN = 0. / Time taken to open shutter HIERARCH ESO DET SHUT TYPE = 'Iris on Slit' / type of shutter HIERARCH ESO DET SOFW MODE = 'Normal ' / CCD sw operational mode HIERARCH ESO DET TELE INT = 600. / Interval between two successive te HIERARCH ESO DET TELE NO = 4 / # of sources active HIERARCH ESO DET TLM1 END = 135. / Telemetry value at read completion HIERARCH ESO DET TLM1 ID = 'CCD Sensor1' / ID of telemetry sensor HIERARCH ESO DET TLM1 NAME = 'CCD T1 ' / Description of telemetry param. HIERARCH ESO DET TLM1 START = 135. / Telemetry value at read start HIERARCH ESO DET TLM2 END = 142.8 / Telemetry value at read completion HIERARCH ESO DET TLM2 ID = 'CCD Sensor2' / ID of telemetry sensor HIERARCH ESO DET TLM2 NAME = 'CCD T2 ' / Description of telemetry param. HIERARCH ESO DET TLM2 START = 142.8 / Telemetry value at read start HIERARCH ESO DET TLM3 END = 0. / Telemetry value at read completion HIERARCH ESO DET TLM3 ID = 'Box Temp' / ID of telemetry sensor HIERARCH ESO DET TLM3 NAME = 'EBOX T ' / Description of telemetry param. HIERARCH ESO DET TLM3 START = 0. / Telemetry value at read start HIERARCH ESO DET TLM4 END = 1.5E-05 / Telemetry value at read completion HIERARCH ESO DET TLM4 ID = 'Vacuum ' / ID of telemetry sensor HIERARCH ESO DET TLM4 NAME = 'Vacuum ' / Description of telemetry param. HIERARCH ESO DET TLM4 START = 1.5E-05 / Telemetry value at read start HIERARCH ESO DET WIN1 BINX = 1 / Binning factor along X HIERARCH ESO DET WIN1 BINY = 1 / Binning factor along Y HIERARCH ESO DET WIN1 DIT1 = 10.000004 / actual subintegration time HIERARCH ESO DET WIN1 DKTM = 10.4004 / Dark current time HIERARCH ESO DET WIN1 NDIT = 1 / # of subintegrations HIERARCH ESO DET WIN1 NX = 2106 / # of pixels along X HIERARCH ESO DET WIN1 NY = 4000 / # of pixels along Y HIERARCH ESO DET WIN1 ST = T / If T, window enabled HIERARCH ESO DET WIN1 STRX = 1 / Lower left pixel in X HIERARCH ESO DET WIN1 STRY = 1 / Lower left pixel in Y HIERARCH ESO DET WIN1 UIT1 = 10. / user defined subintegration time HIERARCH ESO DET WINDOWS = 1 / # of windows readout HIERARCH ESO PRO CATG = 'XSH_MOD_CFG_OPT_2D_VIS' / Category of pipeline product HIERARCH ESO PRO ANCESTOR = 'XSHOO.2024-01-02T09:58:53.562.fits' HIERARCH ESO PRO DID = 'PRO-1.15' / Data dictionary for PRO HIERARCH ESO PRO TYPE = 'REDUCED ' / Product type HIERARCH ESO PRO TECH = 'ECHELLE,MULTI-PINHOLE' / Observation technique HIERARCH ESO PRO SCIENCE = F / Scientific product if T HIERARCH ESO PRO REC1 ID = 'xsh_2dmap' / Pipeline recipe (unique) identifier HIERARCH ESO PRO REC1 DRS ID = 'cpl-7.3.1' / Data Reduction System identifier HIERARCH ESO PRO REC1 PIPE ID = 'xshoo/3.6.5a' / Pipeline (unique) identifier HIERARCH ESO PRO REC1 RAW1 NAME = 'XSHOO.2024-01-02T09:58:53.562.fits' / File naHIERARCH ESO PRO REC1 RAW1 CATG = 'WAVE_VIS' / Category of raw frame HIERARCH ESO PRO DATANCOM = 1 / Number of combined frames HIERARCH ESO PRO REC1 CAL1 NAME= 'r.XSHOO.2024-01-02T09:37:53.277_tpl_0000.fits'HIERARCH ESO PRO REC1 CAL1 CATG = 'MASTER_BIAS_VIS' / Category of calibration frHIERARCH ESO PRO REC1 CAL1 DATAMD5 = '8a967f6adfea9fa522d1060c93a0ffbf' / MD5 siHIERARCH ESO PRO REC1 CAL2 NAME= 'r.XSHOO.2024-01-01T12:40:00.568_tpl_0000.fits'HIERARCH ESO PRO REC1 CAL2 CATG = 'ORDER_TAB_EDGES_SLIT_VIS' / Category of calibHIERARCH ESO PRO REC1 CAL2 DATAMD5 = '3bc1f0d8a6cc9c0a3d1d49d92f4b404c' / MD5 siHIERARCH ESO PRO REC1 CAL3 NAME = 'r.XSHOO.2024-01-02T09:47:12.537_0005.fits' HIERARCH ESO PRO REC1 CAL3 CATG = 'XSH_MOD_CFG_OPT_FMT_VIS' / Category of calibrHIERARCH ESO PRO REC1 CAL3 DATAMD5 = 'b68ea06c8684360784b200ce1fb350fa' / MD5 siHIERARCH ESO PRO REC1 CAL4 NAME = 'XS_GALL_091001B_VIS.fits' / File name of caliHIERARCH ESO PRO REC1 CAL4 CATG = 'ARC_LINE_LIST_VIS' / Category of calibration HIERARCH ESO PRO REC1 CAL4 DATAMD5 = 'd8f02f22cfe364fa306a5b82cbe5320b' / MD5 siHIERARCH ESO PRO REC1 CAL5 NAME = 'XS_GALM_091001A_VIS.fits' / File name of caliHIERARCH ESO PRO REC1 CAL5 CATG = 'ARC_LINE_LIST_INTMON_VIS' / Category of calibHIERARCH ESO PRO REC1 CAL5 DATAMD5 = 'd23a9f0b11b8fa5cf29d4a9f2c67c727' / MD5 siHIERARCH ESO PRO REC1 CAL6 NAME = 'XS_GSFT_091001B_VIS.fits' / File name of caliHIERARCH ESO PRO REC1 CAL6 CATG = 'SPECTRAL_FORMAT_TAB_VIS' / Category of calibrHIERARCH ESO PRO REC1 CAL6 DATAMD5 = '9b447dab81b23bf0fbccda78f6fdc79d' / MD5 siHIERARCH ESO PRO REC1 PARAM1 NAME = 'keep-temp' / If 'no', temporary files are dHIERARCH ESO PRO REC1 PARAM1 VALUE = 'no ' / Default: 'no' HIERARCH ESO PRO REC1 PARAM2 NAME = 'debug-level' / Additional xshooter debug leHIERARCH ESO PRO REC1 PARAM2 VALUE = 'none ' / Default: 'none' HIERARCH ESO PRO REC1 PARAM3 NAME = 'time-stamp' / Add timestamp to product fileHIERARCH ESO PRO REC1 PARAM3 VALUE = 'false ' / Default: false HIERARCH ESO PRO REC1 PARAM4 NAME = 'decode-bp' / Integer representation of the HIERARCH ESO PRO REC1 PARAM4 VALUE = '2144337919' / Default: 2144337919 HIERARCH ESO PRO REC1 PARAM5 NAME = 'pre-overscan-corr' / pre-overscan correctioHIERARCH ESO PRO REC1 PARAM5 VALUE = '3 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM6 NAME = 'detectarclines-fit-win-hsize' / Half windowHIERARCH ESO PRO REC1 PARAM6 VALUE = '6 ' / Default: 6 HIERARCH ESO PRO REC1 PARAM7 NAME = 'detectarclines-search-win-hsize' / Half winHIERARCH ESO PRO REC1 PARAM7 VALUE = '3 ' / Default: 3 HIERARCH ESO PRO REC1 PARAM8 NAME = 'detectarclines-running-median-hsize' / HalfHIERARCH ESO PRO REC1 PARAM8 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM9 NAME = 'detectarclines-wavesol-deg-lambda' / DegreeHIERARCH ESO PRO REC1 PARAM9 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM10 NAME = 'detectarclines-wavesol-deg-order' / DegreeHIERARCH ESO PRO REC1 PARAM10 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM11 NAME = 'detectarclines-wavesol-deg-slit' / Degree HIERARCH ESO PRO REC1 PARAM11 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM12 NAME = 'detectarclines-min-sn' / Minimum signal-toHIERARCH ESO PRO REC1 PARAM12 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM13 NAME = 'detectarclines-find-lines-center' / MethodHIERARCH ESO PRO REC1 PARAM13 VALUE = 'gaussian' / Default: 'gaussian' HIERARCH ESO PRO REC1 PARAM14 NAME = 'detectarclines-clip-sigma' / Kappa value iHIERARCH ESO PRO REC1 PARAM14 VALUE = '2 ' / Default: 2 HIERARCH ESO PRO REC1 PARAM15 NAME = 'detectarclines-clip-niter' / Number of iteHIERARCH ESO PRO REC1 PARAM15 VALUE = '0 ' / Default: 0 HIERARCH ESO PRO REC1 PARAM16 NAME = 'detectarclines-clip-frac' / Minimal fractiHIERARCH ESO PRO REC1 PARAM16 VALUE = '0.7 ' / Default: 0.7 HIERARCH ESO PRO REC1 PARAM17 NAME = 'dispersol-deg-x' / Degree in X in the polyHIERARCH ESO PRO REC1 PARAM17 VALUE = '4 ' / Default: 4 HIERARCH ESO PRO REC1 PARAM18 NAME = 'dispersol-deg-y' / Degree in Y in the polyHIERARCH ESO PRO REC1 PARAM18 VALUE = '5 ' / Default: 5 HIERARCH ESO PRO REC1 PARAM19 NAME = 'model-maxit' / Number/10 of annealing iterHIERARCH ESO PRO REC1 PARAM19 VALUE = '500 ' / Default: 500 HIERARCH ESO PRO REC1 PARAM20 NAME = 'model-anneal-factor' / Multiplier applied HIERARCH ESO PRO REC1 PARAM20 VALUE = '1 ' / Default: 1 HIERARCH ESO PRO REC1 PARAM21 NAME = 'model-scenario' / selects preset flag and HIERARCH ESO PRO REC1 PARAM21 VALUE = '8 ' / Default: 4 HIERARCH ESO QC MODEL NDAT = 4104 HIERARCH ESO QC MODEL PREDICT RESX_MIN = -1.00540638591667 HIERARCH ESO QC MODEL PREDICT RESY_MIN = -1.30308463205688 HIERARCH ESO QC MODEL PREDICT RESX_MAX = 0.79123421012855 HIERARCH ESO QC MODEL PREDICT RESY_MAX = 3.52496588103259 HIERARCH ESO QC MODEL PREDICT RESX_AVG = 0.0571981803822093 HIERARCH ESO QC MODEL PREDICT RESY_AVG = -0.0477794258609724 HIERARCH ESO QC MODEL PREDICT RESX_MED = 0.061085484833427 HIERARCH ESO QC MODEL PREDICT RESY_MED = -0.0527939029663003 HIERARCH ESO QC MODEL PREDICT RESX_RMS = 0.112183495381328 HIERARCH ESO QC MODEL PREDICT RESY_RMS = 0.200250130004924 HIERARCH ESO QC MODEL ANNEAL RESX_MIN = -1.0491927560364 HIERARCH ESO QC MODEL ANNEAL RESY_MIN = -1.25889109675791 HIERARCH ESO QC MODEL ANNEAL RESX_MAX = 0.739817072330652 HIERARCH ESO QC MODEL ANNEAL RESY_MAX = 3.57272567960854 HIERARCH ESO QC MODEL ANNEAL RESX_AVG = 0.00101235127262206 HIERARCH ESO QC MODEL ANNEAL RESY_AVG = 0.00104462085298337 HIERARCH ESO QC MODEL ANNEAL RESX_MED = 0.00364133199730077 HIERARCH ESO QC MODEL ANNEAL RESY_MED = -0.00551640284936639 HIERARCH ESO QC MODEL ANNEAL RESX_RMS = 0.10927191093365 HIERARCH ESO QC MODEL ANNEAL RESY_RMS = 0.199876964897261 HIERARCH ESO OCS DET2 IMGNAME = 'XSHOOTER_SLT_WAVE_VIS_' / Data File Name. HIERARCH ESO SEQ ARM = 'VIS ' / Instrument Arm ORIGFILE= 'XS_PMC2_240101A_1x1_VIS_Ct.fits' / Original File Name CHECKSUM= 'TXFaUU9WTUCaTU9W' / HDU checksum updated 2024-01-03T13:03:59 DATASUM = ' 0' / data unit checksum updated 2024-01-03T13:03:59 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 42 / width of table in bytes NAXIS2 = 91 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 6 / number of fields in each row TTYPE1 = 'Best_Guess' / label for field 1 TFORM1 = '1D ' / data format of field: 8-byte DOUBLE TTYPE2 = 'Low_Limit' / label for field 2 TFORM2 = '1D ' / data format of field: 8-byte DOUBLE TTYPE3 = 'High_Limit' / label for field 3 TFORM3 = '1D ' / data format of field: 8-byte DOUBLE TTYPE4 = 'Compute_Flag' / label for field 4 TFORM4 = '1J ' / data format of field: 4-byte INTEGER TTYPE5 = 'Parameter_Name' / label for field 5 TFORM5 = '10A ' / data format of field: ASCII Character TTYPE6 = 'Parameter_Units' / label for field 6 TFORM6 = '4A ' / data format of field: ASCII Character CHECKSUM= 'i2Ahi14fi19fi19f' / HDU checksum updated 2024-01-03T13:03:59 DATASUM = '250737898' / data unit checksum updated 2024-01-03T13:03:59 END ?ð?ð?ðarm @r(õÂ�\@r(õÂ�\@r(õÂ�\temper K t_ir_p2 K t_ir_p3 K ¿± 9Ä šZ¿± 9Ä šZ¿± 9Ä šZes_x mm ?k"�”ÈLƒ?k"�”ÈLƒ?k"�”ÈLƒes_y mm mues deg nues deg ?³ð|³ÝØ?³ð|³ÝØ?³ð|³ÝØtaues deg ?Ð.Íh³Eg?Ð.Íh³Eg?Ð.Íh³Egslit_scalemm/"@záG®{@záG®{@záG®{es_s mm ?ÐQë…¸R?ÐQë…¸R?ÐQë…¸Res_w mm @ƒkM7ïß@ƒkM7ïß@ƒkM7ïßfcol mm À3õlwD™À3õlwD™À3õlwD™cmup1 deg ÀHd€�–ÀHd€�–ÀHd€�–mup1 deg ?Äþ·0?Äþ·0?Äþ·0nup1 deg ¿Á<Á´¾OL¿Á<Á´¾OL¿Á<Á´¾OLtaup1 deg @H¥ø +|Ç@H¥ø +|Ç@H¥ø +|Çmup2 deg ¿­d»'Ó㬿­d»'Ó㬿­d»'Óã¬nup2 deg ¿Ãfñ‚¢)þ¿Ãfñ‚¢)þ¿Ãfñ‚¢)þtaup2 deg mup3 deg nup3 deg taup3 deg mup4 deg nup4 deg taup4 deg mup5 deg nup5 deg taup5 deg mup6 deg ­Ø :î­Ø :î­Ø :înup6 deg taup6 deg ¿ú�³ ;¿ú�³ ;¿ú�³ ;mug deg ÀK wi…ðÀK wi…ðÀK wi…ðnug deg ¿vg^"Ši{¿vg^"Ši{¿vg^"Ši{taug deg @XßbŠVô0@XßbŠVô0@XßbŠVô0sg mm-1@q@õÙ~1<@q@õÙ~1<@q@õÙ~1<fdet mm ¿£×£!5]¿£×£!5]¿£×£!5]mud deg ¿óln ‚†Î¿óln ‚†Î¿óln ‚†Înud deg @f�õ³R@f�õ³R@f�õ³Rtaud deg ?ޏQë…¸?ޏQë…¸?ޏQë…¸pix mm ?ّ‑?ّ‑?ّ‑chipx mm À4t€ Ý…À4t€ Ý…À4t€ Ý…chipy mm @V€@V€@V€chiprot deg ¾ö’—(x^¾ö’—(x^¾ö’—(x^pc_x_xx ?ð®Q9_?ð®Q9_?ð®Q9_pc_x_x1 ? øÏÆï”#? øÏÆï”#? øÏÆï”#pc_x_yy ¿tôÆ‘¿tôÆ‘¿tôÆ‘pc_x_y1 ¿V6•£D§À¿V6•£D§À¿V6•£D§Àpc_x_xy ¾Ë%ëÝ]Z�¾Ë%ëÝ]Z�¾Ë%ëÝ]Z�pc_x_x3 ¾€�«P¥à¾€�«P¥à¾€�«P¥àpc_x_x2y ¾Ø7ú]ÄÓª¾Ø7ú]ÄÓª¾Ø7ú]ÄÓªpc_x_y2x ¾�Õ +:¾¾�Õ +:¾¾�Õ +:¾pc_x_y3 ?H�ùf Ö2?H�ùf Ö2?H�ùf Ö2pc_y_xx ¿��oÄ骿��oÄ骿��oÄéªpc_y_x1 ?‰Håž‹A?‰Håž‹A?‰Håž‹Apc_y_yy ?ïÃÆ«?ïÃÆ«?ïÃÆ«pc_y_y1 >õ¦,~Û¤»>õ¦,~Û¤»>õ¦,~Û¤»pc_y_xy >Ž®îØø>Ž®îØø>Ž®îØøpc_y_x3 ¾áSÝ„µ®¾áSÝ„µ®¾áSÝ„µ®pc_y_x2y >£yõïL�>£yõïL�>£yõïL�pc_y_y2x ¿ +‡ê$†>¿ +‡ê$†>¿ +‡ê$†>pc_y_y3 d2_y1x0 d2_y1x1 d2_y1x2 d2_y1x3 d2_y2x0 d2_y2x1 d2_y2x2 d2_y2x3 d2_y3x0 d2_y3x1 d2_y3x2 d2_y3x3 @>@>@>offx pix À$À$À$offy pix ¿Ÿ11Î*óñ¿Ÿ11Î*óñ¿Ÿ11Î*óñd2_x1 ¿Qý3H™&¿Qý3H™&¿Qý3H™&d2_x2 ?î–»ØØÂ?î–»ØØÂ?î–»ØØÂd2_x3 ?ð?ð?ðflipx ?ð?ð?ðflipy ÀS÷ÎÙ‡ÀS÷ÎÙ‡ÀS÷ÎÙ‡slit[0] " À~ùÛ"ÐåÀ~ùÛ"ÐåÀ~ùÛ"Ðåslit[1] " ÀS÷ÎÙ‡ÀS÷ÎÙ‡ÀS÷ÎÙ‡slit[2] " ¿÷S÷ÎÙ‡¿÷S÷ÎÙ‡¿÷S÷ÎÙ‡slit[3] " slit[4] " ?÷S÷ÎÙ‡?÷S÷ÎÙ‡?÷S÷ÎÙ‡slit[5] " @S÷ÎÙ‡@S÷ÎÙ‡@S÷ÎÙ‡slit[6] " @~ùÛ"Ðå@~ùÛ"Ðå@~ùÛ"Ðåslit[7] " @S÷ÎÙ‡@S÷ÎÙ‡@S÷ÎÙ‡slit[8] " AB»¹AB»¹AB»¹config_mjddays \ No newline at end of file diff --git a/XSHOOTER/calibration/optical_response.fits b/XSHOOTER/calibration/optical_response.fits new file mode 100644 index 00000000..55aa56d4 Binary files /dev/null and b/XSHOOTER/calibration/optical_response.fits differ diff --git a/XSHOOTER/calibration/physical_model.py b/XSHOOTER/calibration/physical_model.py new file mode 100644 index 00000000..b529d584 --- /dev/null +++ b/XSHOOTER/calibration/physical_model.py @@ -0,0 +1,52 @@ +"""ESO's calibrated optical kernel, used only to prepare ScopeSim trace tables. + +The library holds one active arm at a time, matching the preparation loop. +Simulation uses the prepared FITS files and requires neither this module nor a +C compiler. Internal model coordinates are converted separately by the caller. +""" +from pathlib import Path +import ctypes +import subprocess +import numpy as np +from astropy.table import Table + +ROOT = Path(__file__).parent + + +def build_kernel(directory): + directory.mkdir(parents=True, exist_ok=True) + library = directory / 'eso_model.so' + subprocess.run(['cc', '-shared', '-fPIC', '-O2', str(ROOT / 'eso_model.c'), '-o', str(library), '-lm'], check=True) + return library + + +class PhysicalModel: + def __init__(self, library, arm): + self.library = ctypes.CDLL(str(library)) + self.library.set_parameter.argtypes = [ctypes.c_char_p, ctypes.c_double] + self.library.reset_model.restype = None + self.library.initialize_model.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_double, ctypes.c_double] + self.library.initialize_model.restype = None + array = np.ctypeslib.ndpointer(dtype=np.float64, ndim=1, flags='C_CONTIGUOUS') + self.library.evaluate.argtypes = [ctypes.c_int, array, array, ctypes.c_double, ctypes.c_int, array, array] + self.library.evaluate.restype = None + parameters = Table.read(ROOT / f'model_{arm}.fits', hdu=1) + self.parameters = dict(zip(np.char.strip(parameters['Parameter_Name']), parameters['Best_Guess'])) + self.library.reset_model() + angular = {'mues', 'nues', 'taues', 'cmup1', 'mug', 'nug', 'taug', 'mud', 'nud', 'taud', 'chiprot'} + angular.update(f'{prefix}{i}' for prefix in ['mup', 'nup', 'taup'] for i in range(1, 7)) + for name, value in self.parameters.items(): + if name in angular: + value = np.deg2rad(value) + if self.library.set_parameter(name.encode(), value) != 1: + raise KeyError(name) + # xsh_data_instrument.c and xsh_model_arm_constants.h: internal model sizes. + dimensions = {'uvb': (2048, 3000, 96., 0.), 'vis': (2048, 4000, 96., 0.), 'nir': (1020, 2040, 4., 8.)} + self.library.initialize_model(*dimensions[arm]) + + def __call__(self, wavelength_nm, slit_arcsec, order, eta_arcsec=0): + wavelength_nm = np.ascontiguousarray(wavelength_nm, dtype=np.float64) + slit_arcsec = np.ascontiguousarray(slit_arcsec, dtype=np.float64) + x, y = np.empty_like(wavelength_nm), np.empty_like(wavelength_nm) + self.library.evaluate(len(x), wavelength_nm, slit_arcsec, eta_arcsec, order, x, y) + return x, y diff --git a/XSHOOTER/calibration/slit_resolution.ecsv b/XSHOOTER/calibration/slit_resolution.ecsv new file mode 100644 index 00000000..8e5a532a --- /dev/null +++ b/XSHOOTER/calibration/slit_resolution.ecsv @@ -0,0 +1,24 @@ +# %ECSV 1.0 +# --- +# datatype: +# - {name: arm, datatype: string} +# - {name: slit_arcsec, unit: arcsec, datatype: float64} +# - {name: reference_R, datatype: int64} +# - {name: model_R, datatype: float64} +# - {name: fractional_error, datatype: float64} +# schema: astropy-2.0 +arm slit_arcsec reference_R model_R fractional_error +UVB 0.5 9700 9672.854097593941 -0.002798546639799837 +UVB 0.8 6700 6608.218215626431 -0.013698773787099938 +UVB 1.0 5400 5383.711782743362 -0.003016336529007013 +UVB 1.3 4100 4191.229862225606 0.022251185908684246 +UVB 1.6 3200 3423.998745372947 0.06999960792904592 +VIS 0.4 18400 18457.764179838072 0.003139357599895254 +VIS 0.7 11400 11142.772052916074 -0.02256385500736191 +VIS 0.9 8900 8743.243314949963 -0.017613110679779442 +VIS 1.2 6500 6593.128801162627 0.014327507871173317 +VIS 1.5 5000 5287.0667197038365 0.05741334394076736 +NIR 0.4 11600 11704.553663281138 0.009013246834580935 +NIR 0.6 8100 8074.551839337022 -0.0031417482299972432 +NIR 0.9 5600 5452.1280937236115 -0.026405697549355067 +NIR 1.2 4300 4105.5319594358725 -0.045225125712587744 diff --git a/XSHOOTER/calibration/standard_measurements.fits b/XSHOOTER/calibration/standard_measurements.fits new file mode 100644 index 00000000..5a5834f6 Binary files /dev/null and b/XSHOOTER/calibration/standard_measurements.fits differ diff --git a/XSHOOTER/calibration/standard_repeatability.ecsv b/XSHOOTER/calibration/standard_repeatability.ecsv new file mode 100644 index 00000000..a9b4da4a --- /dev/null +++ b/XSHOOTER/calibration/standard_repeatability.ecsv @@ -0,0 +1,36 @@ +# %ECSV 1.0 +# --- +# datatype: +# - {name: order, datatype: string} +# - {name: continuum_bins, datatype: int64} +# - {name: nod_b_fractional_bias, datatype: float64} +# - {name: nod_b_fractional_rms, datatype: float64} +# schema: astropy-2.0 +order continuum_bins nod_b_fractional_bias nod_b_fractional_rms +UVB_13 86 -0.032353523186082145 0.16421993248200176 +UVB_14 93 -0.007037596421887504 0.010632669540307714 +UVB_15 93 -0.007287429033590698 0.01172829422236263 +UVB_16 93 -0.009256545659129145 0.012832761538475379 +UVB_17 93 -0.010764927708111882 0.027796997341089973 +UVB_18 93 -0.009293256128322547 0.016025473382567487 +UVB_19 93 -0.009083939213707426 0.013998354184808997 +UVB_20 93 -0.005065724106676828 0.01844406683740275 +UVB_21 93 -0.00658418587016496 0.015684797413889895 +UVB_22 93 -0.006196489407747308 0.021486874409469593 +UVB_23 93 -0.010638978488790363 0.04439461669769377 +UVB_24 67 -0.0265543074054585 0.03635922748573164 +VIS_16 46 0.008513969863966908 0.021410247684132216 +VIS_17 4 0.029693000771252476 0.02972321528278055 +VIS_18 47 0.007682975081807486 0.012106532201232808 +VIS_19 83 0.016081758671578017 0.018819832008178654 +VIS_20 43 0.009378535036832947 0.014278088802941503 +VIS_21 83 0.014206633625650555 0.015114403445250087 +VIS_22 66 0.01589314821066634 0.02130639413122634 +VIS_23 43 0.009727092471127463 0.011441761577916569 +VIS_24 79 0.01092420823966167 0.03353395735680118 +VIS_25 96 0.011517459882217862 0.0181266211181002 +VIS_26 110 0.009125442661444771 0.013764814099190538 +VIS_27 110 0.009682939764955378 0.014006839365794523 +VIS_28 105 0.008101474855620294 0.015871887012680313 +VIS_29 102 0.0002626654512207782 0.02062652222720522 +VIS_30 69 -0.009606199255197456 0.04148529442253448 diff --git a/XSHOOTER/calibration/trace_residuals.ecsv b/XSHOOTER/calibration/trace_residuals.ecsv new file mode 100644 index 00000000..d777d28a --- /dev/null +++ b/XSHOOTER/calibration/trace_residuals.ecsv @@ -0,0 +1,54 @@ +# %ECSV 1.0 +# --- +# datatype: +# - {name: order, datatype: string} +# - {name: degree, datatype: int64} +# - {name: forward_rms_pix, datatype: float64} +# - {name: forward_max_pix, datatype: float64} +# - {name: inverse_rms_pix, datatype: float64} +# - {name: inverse_max_pix, datatype: float64} +# schema: astropy-2.0 +order degree forward_rms_pix forward_max_pix inverse_rms_pix inverse_max_pix +UVB_13 5 0.0015613122775746252 0.0033238821088239488 0.0014664621824980106 0.0032314438546241714 +UVB_14 5 0.0015726015028583616 0.0033414178515767286 0.0014864863124297936 0.003273347240142329 +UVB_15 5 0.00158881355179112 0.0033692846562521795 0.0015104866790106985 0.0033259879188343587 +UVB_16 5 0.0016196313390047271 0.0034279764705356596 0.0015491216248893895 0.003410065794523795 +UVB_17 5 0.0018345157238968696 0.0051301032890032185 0.0016848851657405878 0.0049002277279650746 +UVB_18 5 0.0017164107506668525 0.0043379322603179496 0.0016654134389651107 0.003770558219291858 +UVB_19 5 0.0016849134206980627 0.0035433905249550807 0.0016372260510381332 0.0035901046193586765 +UVB_20 5 0.001707971638927708 0.003583217598324744 0.0016668921706800884 0.003648716225432205 +UVB_21 5 0.0017316272586883309 0.0036362101465484075 0.001696695620575159 0.003705673970068731 +UVB_22 5 0.0017484520495781974 0.0036810573864979094 0.001718824084072264 0.0037453083946888876 +UVB_23 5 0.0017796441367959924 0.0037563065909514987 0.001754810771795242 0.003814389180360988 +UVB_24 5 0.0018176095269595972 0.0038454783499170028 0.001796795759356058 0.003896433869553864 +VIS_16 5 0.00697420856797676 0.016047156998642217 0.0069725304793512915 0.015730184945277115 +VIS_17 5 0.006957167955874303 0.015984533127698 0.006955502319991808 0.0156731473228958 +VIS_18 5 0.007011719546370871 0.01608790158198494 0.0070100876289279305 0.015780272601935545 +VIS_19 5 0.007051274933294316 0.016156246503538432 0.007049672269500947 0.01585279276879307 +VIS_20 5 0.0071490695677086874 0.016358720081784055 0.007147512470190443 0.0160581593339575 +VIS_21 5 0.007197130052666208 0.016444936391381924 0.0071956096920596175 0.016148878072938775 +VIS_22 5 0.007259852536930956 0.01656509673870744 0.007258367927621719 0.01627307817960287 +VIS_23 5 0.007306209194968138 0.01664689104599917 0.007304756666967063 0.016359477249783747 +VIS_24 5 0.008094999537878693 0.02684213559703867 0.007571694965771207 0.02756860296757416 +VIS_25 5 0.008809365434239914 0.02897365207622402 0.007953722919459384 0.01901876120309902 +VIS_26 5 0.007506447231580508 0.017026128070632276 0.007505104314388203 0.016753070380355607 +VIS_27 5 0.007604698520623842 0.017224518836344536 0.0076034035734484995 0.01695612874498093 +VIS_28 5 0.007680484872243018 0.017370949179827587 0.007679235773515046 0.017108168070583147 +VIS_29 5 0.007762239727235426 0.017530256855612283 0.007761045265790401 0.017273820830678688 +VIS_30 5 0.005023018554825261 0.011312918866030735 0.005020381402458403 0.01113808924635065 +NIR_11 4 0.01605046138277653 0.04051648637127759 0.017217546489214818 0.05809218475799039 +NIR_12 4 0.017236064439017058 0.043966105578366256 0.018302667029282405 0.060704952798875056 +NIR_13 4 0.01878948687391842 0.048417471436947655 0.01976485704496851 0.06433263638945308 +NIR_14 4 0.020068239257445924 0.05216484906089178 0.020970467743638293 0.06709243446527392 +NIR_15 4 0.021753914159366974 0.05699995460171866 0.022586079611140418 0.07088343715279662 +NIR_16 4 0.02377258753749477 0.06274103604234192 0.024537481184586592 0.07548136785802421 +NIR_17 4 0.025942234361506767 0.06887803746765357 0.026647157047143894 0.08032583819094813 +NIR_18 4 0.028540778033685387 0.07616955946660549 0.029188475133096893 0.08617288304507992 +NIR_19 5 0.004809040401623709 0.012776817016073326 0.004830904397266779 0.013396439852376556 +NIR_20 5 0.0053009761527131865 0.01423532029474809 0.005318272027599554 0.014879014012637441 +NIR_21 5 0.005868771888665359 0.015923431140351253 0.0058819678623419 0.01659089046954467 +NIR_22 5 0.00658427991556698 0.018037555837960236 0.006593706669000218 0.018730394296657897 +NIR_23 5 0.007386266199772169 0.020441538420264155 0.007392449206361206 0.02116226129030952 +NIR_24 5 0.00831216225488845 0.023234905693340437 0.008315514000648169 0.023982825092284502 +NIR_25 5 0.0065170316469920385 0.01850006561416726 0.006521170238417572 0.019134293862418952 +NIR_26 4 0.0166574251482539 0.04433605693962299 0.017305450753652803 0.04927016348385945 diff --git a/XSHOOTER/prepare_calibrations.py b/XSHOOTER/prepare_calibrations.py new file mode 100644 index 00000000..df7dc6d0 --- /dev/null +++ b/XSHOOTER/prepare_calibrations.py @@ -0,0 +1,171 @@ +"""Prepare ScopeSim tables from the calibrated ESO X-shooter optical model. + +All inputs are pinned in calibration/. The attributed ESO mathematical kernel +is compiled only for preparation. Simulation needs the generated FITS tables, +not an ESO installation or a compiler. Run this script from any directory. +""" +from pathlib import Path +import argparse +import tempfile + +import numpy as np +from astropy.io import fits +from astropy.table import Table +from astropy import units as u +from scopesim.effects.spectral_trace_list_utils import SpectralTrace +from calibration.physical_model import PhysicalModel, build_kernel + +ROOT = Path(__file__).parent +# Full standard readout science geometry (overscan omitted for CCDs). +ARM = {'uvb': (2048, 3000, .015), 'vis': (2048, 4000, .015), 'nir': (2048, 1100, .018)} +# Gaussian optical blur fitted to Table 13 after slit and pixel integration. +OPTICAL_R = {'uvb': 17000, 'vis': 43000, 'nir': 46000} +# User Manual v10, Table 14, NIR orders 11--26; wavelengths in nm. +NIR_BLAZE = [2377.28, 2179.17, 2011.54, 1867.86, 1743.33, 1634.38, 1538.23, 1452.78, 1376.31, 1307.5, 1245.24, 1188.64, 1136.96, 1089.58, 1046.0, 1005.77] + + +def focal_plane(arm, xp, yp): + """ESO internal half-pixel-centered coordinates -> raw-oriented focal mm. + + CCDs: undo pipeline UVB rotation, with prescan/overscan already removed. + NIR: undo CPL's positive quarter-turn and the crop of raw columns 4:2044 + and rows 20:1076 (xsh_data_pre.c). Standard raw readout is 2048 x 1100. + """ + nx, ny, pixel = ARM[arm] + if arm == 'uvb': + x, y = nx - xp, ny - yp + elif arm == 'vis': + x, y = xp, yp + else: + x, y = 2044 - yp, xp + 20 + return (x - nx / 2) * pixel, (y - ny / 2) * pixel + + +def prepare(build): + library = build_kernel(build) + optical_response = fits.open(ROOT / 'calibration' / 'optical_response.fits') + catalog, traces, efficiencies, checks = [], [], [], [] + cache = ROOT / 'calibration' / 'eso_etc' + for arm_id, arm in enumerate(ARM): + nx, ny, pixel = ARM[arm] + model = PhysicalModel(library, arm) + orders = {'uvb': range(13, 25), 'vis': range(16, 31), 'nir': range(11, 27)}[arm] + if arm == 'nir': + optics = np.loadtxt(cache / 'instr_NIR.dat') + correction = np.loadtxt(cache / 'NIR_fudge.dat') + qe = np.loadtxt(cache / f'ccd{926 + arm_id}.dat') + for index, order in enumerate(orders): + blaze_nm = 2 * np.sin(np.deg2rad(-model.parameters['nug'])) / (order * model.parameters['sg']) * 1e6 + scan = np.linspace(blaze_nm * (1 - 2 / order), blaze_nm * (1 + 2 / order), 2049) + covered = [] + for s in [-5.5, 0, 5.5]: + xp, yp = model(scan, np.full_like(scan, s), order) + x, y = focal_plane(arm, xp, yp) + inside = (abs(x) <= nx * pixel / 2) & (abs(y) <= ny * pixel / 2) + covered.extend(scan[inside]) + # One scan interval beyond the detector intersection keeps edge pixels + # covered. The physical model, rather than an extrapolated inverse, + # provides the coordinates outside the illuminated detector footprint. + limits = [min(covered) - (scan[1] - scan[0]), max(covered) + (scan[1] - scan[0])] + wave, slit = np.meshgrid(np.linspace(*limits, 193), np.linspace(-5.5, 5.5, 21)) + xp, yp = model(wave.ravel(), slit.ravel(), order) + x, y = focal_plane(arm, xp, yp) + table = Table([wave.ravel() / 1000 * u.um, slit.ravel() * u.arcsec, x * u.mm, y * u.mm], names=['wavelength', 's', 'x', 'y']) + name = f'{arm.upper()}_{order}' + hdu = fits.table_to_hdu(table) + hdu.name = name + hdu.header['DISPDIR'] = 'x' if arm == 'nir' else 'y' + hdu.header['PIXSIZE'] = (pixel, 'Physical unbinned pixel size [mm]') + wv, sv = np.meshgrid(np.linspace(*limits, 90)[1:-1], np.linspace(-5.4, 5.4, 12)) + xv, yv = model(wv.ravel(), sv.ravel(), order) + xv, yv = focal_plane(arm, xv, yv) + for degree in range(4, 13): + hdu.header['FITDEG'] = degree + trace = SpectralTrace(hdu, trace_flux_jacobian=True) + dx = trace.xilam2x(sv.ravel(), wv.ravel() / 1000) - xv + dy = trace.xilam2y(sv.ravel(), wv.ravel() / 1000) - yv + residual = np.hypot(dx, dy) / pixel + si, wi = trace.xy2xi(xv, yv), trace.xy2lam(xv, yv) + inverse = np.hypot(trace.xilam2x(si, wi) - xv, trace.xilam2y(si, wi) - yv) / pixel + if max(np.sqrt(np.mean(residual**2)), np.sqrt(np.mean(inverse**2))) < .03 and max(residual.max(), inverse.max()) < .1: + break + else: + raise ValueError(f'{name}: forward/inverse mapping fails the subpixel requirement') + checks.append((name, degree, np.sqrt(np.mean(residual**2)), residual.max(), np.sqrt(np.mean(inverse**2)), inverse.max())) + # The cross-slit wavelength shift comes from the same calibrated + # optical model, including prism anamorphism. It is independent of + # the numerical sky-grid spacing and the requested on-chip binning. + xp, yp = model(wave.ravel(), slit.ravel(), order, eta_arcsec=.01) + xm, ym = model(wave.ravel(), slit.ravel(), order, eta_arcsec=-.01) + xp, yp = focal_plane(arm, xp, yp) + xm, ym = focal_plane(arm, xm, ym) + table['dlam_deta'] = (trace.xy2lam(xp, yp) - trace.xy2lam(xm, ym)) / .02 * u.um / u.arcsec + header = hdu.header.copy() + hdu = fits.table_to_hdu(table) + hdu.header.extend(header, update=True) + hdu.header['SLITCOL'] = 'dlam_deta' + hdu.header['LSFRES'] = OPTICAL_R[arm] + print(name, 'degree', degree, 'RMS [pix]', round(checks[-1][2], 5), flush=True) + catalog.append((name, len(traces) + 2, arm_id, arm_id)) + traces.append(hdu) + if arm == 'nir': + # ETC envelope and scalar diffraction blaze are an explicit + # approximation to the NIR order response. + ew = np.linspace(*limits, 1025) + blaze = np.sinc(order * (NIR_BLAZE[index] / ew - 1))**2 + throughput = np.interp(ew, optics[:, 0], optics[:, 1], left=0, right=0) + throughput *= np.interp(ew, correction[:, 0], correction[:, 1]) * blaze + eff = fits.table_to_hdu(Table([ew / 1000 * u.um, throughput], names=['wavelength', 'efficiency'])) + eff.name = name + else: + eff = optical_response[name].copy() + efficiencies.append(eff) + with (ROOT / 'throughput' / f'qe_{arm}.dat').open('w') as output: + output.write('# wavelength_unit: um\n# Source: ESO ETC ccd' + str(926 + arm_id) + '.dat\nwavelength transmission\n') + np.savetxt(output, np.column_stack([qe[:, 0] / 1000, qe[:, 1]]), fmt='%.9g') + optical_response.close() + cat = fits.table_to_hdu(Table(rows=catalog, names=['description', 'extension_id', 'aperture_id', 'image_plane_id'])) + primary = fits.PrimaryHDU() + primary.header['ECAT'] = 1 + primary.header['EDATA'] = 2 + primary.header['INSTRUME'] = 'XSHOOTER' + fits.HDUList([primary, cat] + traces).writeto(ROOT / 'traces' / 'traces.fits', overwrite=True, checksum=True) + fits.HDUList([primary.copy(), cat.copy()] + efficiencies).writeto(ROOT / 'throughput' / 'orders.fits', overwrite=True, checksum=True) + # Table 12 measures the warm stray light at four wavelengths, separately + # from dark current and sky. Approximate its detector variation by a smooth + # cross-dispersion profile, constant outside the measured positions. No + # structure along dispersion is constrained by these four measurements. + measurements = np.array([1.048, 1.238, 1.300, 1.682]) + positions = [] + nir_traces = [SpectralTrace(hdu) for hdu in traces if hdu.name.startswith('NIR')] + for wave in measurements: + trace = min(nir_traces, key=lambda tr: abs((tr.wave_min + tr.wave_max) / 2 - wave)) + positions.append(trace.xilam2y(0, wave) / ARM['nir'][2] + ARM['nir'][1] / 2 - .5) + index = np.argsort(positions) + positions = np.array(positions)[index] + unfiltered = np.array([.06, .10, .13, .15])[index] + filtered = np.array([.02, .03, .04, .04])[index] + background = [fits.PrimaryHDU()] + for slit_name in ['0.4', '0.6', '0.9', '1.2', '5.0', '0.6JH', '0.9JH']: + aperture = Table.read(ROOT / 'slits' / f'slit_{slit_name}.dat', format='ascii') + slit_width = np.ptp(aperture['y']) + rates = filtered if slit_name.endswith('JH') else unfiltered + row_rate = np.interp(np.arange(ARM['nir'][1]), positions, rates) * slit_width + rate_map = np.broadcast_to(row_rate[:, None], (ARM['nir'][1], ARM['nir'][0])).astype('float32') + hdu = fits.CompImageHDU(rate_map, name=slit_name, compression_type='GZIP_1', quantize_level=0) + hdu.header['BUNIT'] = 'electron / s' + background.append(hdu) + fits.HDUList(background).writeto(ROOT / 'detector' / 'nir_background.fits', overwrite=True, checksum=True) + Table(rows=checks, names=['order', 'degree', 'forward_rms_pix', 'forward_max_pix', 'inverse_rms_pix', 'inverse_max_pix']).write(ROOT / 'calibration' / 'trace_residuals.ecsv', overwrite=True) + with (ROOT / 'detector' / 'nir_read_noise.dat').open('w') as output: + output.write('# dit_unit: s\n# read_noise_unit: electron\n# Source: ESO ETC nir_dit_ron.dat\ndit read_noise\n') + read_noise = np.loadtxt(cache / 'nir_dit_ron.dat') + measured = (read_noise[:, 0] >= 1) & (read_noise[:, 0] <= 1800) + np.savetxt(output, read_noise[measured], fmt='%.9g') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.parse_args() + with tempfile.TemporaryDirectory(prefix='xshooter-model-') as directory: + prepare(Path(directory))