From 57bd1474de431df7a26854f2143c688d1bceff5e Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Tue, 6 Aug 2024 09:34:21 +1000 Subject: [PATCH 01/36] Initial commit for DREAMS --- DREAMS/DREAMS.yaml | 52 + DREAMS/DREAMS_InGaAs.yaml | 62 + DREAMS/FPA_array_layout.dat | 23 + DREAMS/LIST_DREAMS_mirrors_static.dat | 10 + DREAMS/QE_InGaAs.dat | 2110 +++++++++++++++++++++++++ DREAMS/TER_atmosphere.dat | 359 +++++ DREAMS/TER_mirror.dat | 22 + DREAMS/default.yaml | 44 + DREAMS/filters/H.dat | 367 +++++ DREAMS/filters/I.dat | 29 + DREAMS/filters/J.dat | 341 ++++ 11 files changed, 3419 insertions(+) create mode 100644 DREAMS/DREAMS.yaml create mode 100644 DREAMS/DREAMS_InGaAs.yaml create mode 100644 DREAMS/FPA_array_layout.dat create mode 100644 DREAMS/LIST_DREAMS_mirrors_static.dat create mode 100644 DREAMS/QE_InGaAs.dat create mode 100644 DREAMS/TER_atmosphere.dat create mode 100644 DREAMS/TER_mirror.dat create mode 100644 DREAMS/default.yaml create mode 100644 DREAMS/filters/H.dat create mode 100644 DREAMS/filters/I.dat create mode 100644 DREAMS/filters/J.dat diff --git a/DREAMS/DREAMS.yaml b/DREAMS/DREAMS.yaml new file mode 100644 index 00000000..0bf83cca --- /dev/null +++ b/DREAMS/DREAMS.yaml @@ -0,0 +1,52 @@ +--- + +### Leopold Figl SBIG camera +object : instrument +alias : INST +name : DREAMS +description : + DREAMS is a 0.5m telescope operated + by the Department of Astropyhics at the University of ANU. + +properties: + temperature: -40 # deg + pixel_scale : 2.48 # arcsec / pixel + plate_scale : 206.265 # arcsec / mm + +effects: +- name : seeing_psf + description : Schoepfl PSF + class : SeeingPSF + kwargs : + fwhm : 15.00 # [arcsec] +- name : skycalc_average_atmo + description : atmospheric properties for a default skycalc run + class : AtmosphericTERCurve + include : True + kwargs : + filename: "TER_atmosphere.dat" + rescale_emission: + filter_name: "!OBS.filter_name" + filename_format: "filters/{}.dat" + value: "!OBS.bg_mag" + unit: mag +- name: dreams_static_surfaces + description : telescope and camera optical surfaces + class: SurfaceList + kwargs: + filename: LIST_DREAMS_mirrors_static.dat + +- name: filter_curve + description : transmission curve for filter + class: FilterCurve + kwargs: + filter_name: "!OBS.filter_name" + filename_format: "filters/{}.dat" + minimum_throughput: !!float 1.01E-4 + outer: 0.05088 + outer_unit: "m" + +- name: fits_headers + description : FITS headers + class: ExtraFitsKeywords + include: True diff --git a/DREAMS/DREAMS_InGaAs.yaml b/DREAMS/DREAMS_InGaAs.yaml new file mode 100644 index 00000000..e59666ca --- /dev/null +++ b/DREAMS/DREAMS_InGaAs.yaml @@ -0,0 +1,62 @@ +--- +### Princeton DREAMS InGaAs DETECTOR +object : detector +alias : DET +name : DREAMS_InGaAs_detector +description : base configuration for Dreams camera + +properties: + image_plane_id : 0 + temperature : -60 + dit : "!OBS.dit" + ndit : "!OBS.ndit" + width: 1280 + height: 1024 + x: 0 + y: 0 +effects: +- name: full_detector_array + description: THe full DREAMS detector array list + class: DetectorList + include: True + kwargs: + filename : FPA_array_layout.dat + active_detectors : "all" + +- name: qe_curve + description : Quantum efficiency curves for each detector + class : QuantumEfficiencyCurve + kwargs : + filename : QE_InGaAs.dat + +- name: exposure_action + description: Summing up sky signal for all DITs and NDITs + class: SummedExposure + +- name: dark_current + description : SBIG dark current + class: DarkCurrent + kwargs: + value: 67.00 + +- name: shot_noise + description : apply Poisson shot noise to images + class: ShotNoise + +- name: detector_linearity + class: LinearityCurve + kwargs: + incident: [0, 57143, 999999999999] + measured: [0, 57143, 57143] + +- name : readout_noise + description : Readout noise frames + class : BasicReadoutNoise + kwargs : + noise_std : 75 + +- name : detector_binning + description : Binning the detector frames + class : BinnedImage + kwargs : + bin_size : "!DET.bin_size" diff --git a/DREAMS/FPA_array_layout.dat b/DREAMS/FPA_array_layout.dat new file mode 100644 index 00000000..8fcbc105 --- /dev/null +++ b/DREAMS/FPA_array_layout.dat @@ -0,0 +1,23 @@ +# name : DREAMS 1280SCICAM +# author : Anjali Shivani Reddy +# sources : https://github.com/Astrogirlanajli/DREAMS/blob/main/5240-0001%20Scicam%20FPA%20Drawing%20mm%20v1.pdf +# date_created : 2024-05-04 +# type : detector:chip_list +# x_cen_unit : mm +# y_cen_unit : mm +# x_size_unit : pix +# y_size_unit : pix +# pixel_size_unit : mm +# angle_unit : deg +# gain_unit : electron/adu +# +id x_cen y_cen x_size y_size pixel_size angle gain +1 -8.015 12.95 1280 1024 0.012 0.0 4.3 +2 8.015 12.95 1280 1024 0.012 0.0 4.3 +3 -8.015 0.000 1280 1024 0.012 0.0 4.3 +4 8.015 0.000 1280 1024 0.012 0.0 4.3 +5 -8.015 -12.95 1280 1024 0.012 0.0 4.3 +6 8.015 -12.95 1280 1024 0.012 0.0 4.3 + + + diff --git a/DREAMS/LIST_DREAMS_mirrors_static.dat b/DREAMS/LIST_DREAMS_mirrors_static.dat new file mode 100644 index 00000000..2374a591 --- /dev/null +++ b/DREAMS/LIST_DREAMS_mirrors_static.dat @@ -0,0 +1,10 @@ +# name : mirror_list +# outer_unit : m +# inner_unit : m +# angle_unit : degree +# temperature_unit : deg_C +# description : A list of optical surfaces in the telescope and camera. M[1-2] are the telescope mirrors. +# +name outer inner angle temperature action filename +M1 0.5 0.0 0 -40 reflection TER_mirror.dat +M2 0.5 0.0 0 -40 reflection TER_mirror.dat \ No newline at end of file diff --git a/DREAMS/QE_InGaAs.dat b/DREAMS/QE_InGaAs.dat new file mode 100644 index 00000000..dc1b3997 --- /dev/null +++ b/DREAMS/QE_InGaAs.dat @@ -0,0 +1,2110 @@ +# action : transmission +# wavelength_unit : um +# +wavelength transmission +0.8010318882867862 0.47089420439103236 +0.8014842434347645 0.48637536025609485 +0.8019365985827428 0.4782511781493827 +0.8023889537307212 0.4820753360496684 +0.8028413088786994 0.4801019014406843 +0.8032936640266778 0.4951879706049592 +0.8037460191746562 0.4854655975193126 +0.8041983743226344 0.4779761523419514 +0.8046507294706128 0.48708141997460186 +0.805103084618591 0.4954502240424059 +0.8055554397665694 0.4903882986383811 +0.8060077949145478 0.4798940500624708 +0.806460150062526 0.4914403608191411 +0.8069125052105044 0.4919116092563264 +0.8073648603584826 0.49835634128127587 +0.807817215506461 0.4913668876260093 +0.8082695706544394 0.5013908364552738 +0.8087219258024176 0.49272335888249363 +0.809174280950396 0.49176292156710844 +0.8096266360983744 0.5001332936507897 +0.8100789912463526 0.5060827720485669 +0.810531346394331 0.4932895006623416 +0.8109837015423093 0.4899480317398698 +0.8114360566902876 0.5129003924694524 +0.811888411838266 0.5036580829871373 +0.8123407669862442 0.521378114201553 +0.8127931221342226 0.5089788246934933 +0.8132454772822009 0.5094160116436093 +0.8136978324301792 0.5038243538692838 +0.8141501875781576 0.500999927317526 +0.8146025427261359 0.512790358500075 +0.8150548978741142 0.5075755617215246 +0.8155072530220925 0.5136192779763299 +0.8159596081700708 0.5094001326210471 +0.8164119633180492 0.5187288257583673 +0.8168643184660275 0.5096415851450098 +0.817316673614006 0.5244929705961495 +0.8177690287619842 0.5149645913923855 +0.8182213839099626 0.5082860694005431 +0.8186737390579409 0.5157472692039915 +0.8191260942059192 0.5133295895725465 +0.8195784493538976 0.5235370868883883 +0.8200308045018759 0.5123898588945561 +0.8204831596498542 0.5138419326371507 +0.8209355147978326 0.5153684699363054 +0.8213878699458108 0.5239066694956467 +0.8218402250937892 0.5197909436851418 +0.8222925802417675 0.5261470848870973 +0.8227449353897458 0.5249129760087206 +0.8231972905377242 0.5176420121004677 +0.8236496456857024 0.5218676081912741 +0.8241020008336808 0.5194426633542697 +0.8245543559816592 0.5239692869811301 +0.8250067111296374 0.522292277840277 +0.8254590662776158 0.522509387804168 +0.825911421425594 0.5216608504692286 +0.8263637765735724 0.5330535570146695 +0.8268161317215508 0.5214851219131633 +0.827268486869529 0.5213116119026252 +0.8277208420175074 0.5315423441121081 +0.8281731971654857 0.5248424684935676 +0.828625552313464 0.5267708785690023 +0.8290779074614424 0.5277943656024868 +0.8295302626094206 0.5383842747445415 +0.829982617757399 0.530398621997895 +0.8304349729053773 0.5287625295206951 +0.8308873280533556 0.5305573904750741 +0.831339683201334 0.5403105983197929 +0.8317920383493123 0.5350609178790564 +0.8322443934972906 0.5316453137668528 +0.832696748645269 0.5304650984511308 +0.8331491037932472 0.5238120945493419 +0.8336014589412256 0.5404437502901583 +0.8340538140892039 0.534718115878815 +0.8345061692371822 0.5440638180960914 +0.8349585243851606 0.5362643780233887 +0.8354108795331389 0.5485984269295616 +0.8358632346811172 0.5384122052940203 +0.8363155898290955 0.5493292729820369 +0.8367679449770739 0.5431785637747059 +0.8372203001250522 0.5341772894816258 +0.8376726552730305 0.5424053585507559 +0.8381250104210088 0.5357315642990873 +0.8385773655689871 0.5432300515578357 +0.8390297207169655 0.5494345466945538 +0.8394820758649438 0.5557072111174213 +0.8399344310129221 0.5475024776173165 +0.8403867861609005 0.5518404107524977 +0.8408391413088787 0.5463154933667538 +0.8412914964568571 0.54034123385343 +0.8417438516048354 0.5535759662792546 +0.8421962067528137 0.5438549333153077 +0.8426485619007921 0.546066823045234 +0.8431009170487704 0.5394317250000327 +0.8435532721967487 0.550315758935525 +0.8440056273447271 0.547123676520044 +0.8444579824927053 0.5588180590343446 +0.8449103376406837 0.5453590778360722 +0.845362692788662 0.5580067975664034 +0.8458150479366403 0.5545511419521976 +0.8462674030846187 0.5455497578121793 +0.8467197582325969 0.5536485579340398 +0.8471721133805753 0.5464304963518025 +0.8476244685285537 0.5476773006907014 +0.8480768236765319 0.5446342456708898 +0.8485291788245103 0.5583400628145256 +0.8489815339724885 0.5554291915708868 +0.8494338891204669 0.5581877004030071 +0.8498862442684453 0.5471994321938263 +0.8503385994164235 0.55551411222484 +0.8507909545644019 0.5520797741617329 +0.8512433097123802 0.5507043456140436 +0.8516956648603585 0.5591679406279103 +0.8521480200083369 0.5559278474746914 +0.8526003751563151 0.5568327225971743 +0.8530527303042935 0.5557972380365195 +0.8535050854522719 0.5642698663657932 +0.8539574406002501 0.5596435915380064 +0.8544097957482285 0.5675683344013722 +0.8548621508962068 0.562149052236872 +0.8553145060441851 0.558742112000945 +0.8557668611921635 0.5666242950809517 +0.8562192163401418 0.5631813755087266 +0.8566715714881201 0.5719319120619912 +0.8571239266360984 0.5692455128896152 +0.8575762817840767 0.5703728314757014 +0.8580286369320551 0.5673776047623325 +0.8584809920800334 0.5758328049048766 +0.8589333472280117 0.5731699430018067 +0.85938570237599 0.5743732446194868 +0.8598380575239684 0.5745147192542853 +0.8602904126719467 0.5697237007398714 +0.860742767819925 0.5808171594467861 +0.8611951229679033 0.5789399624227742 +0.8616474781158816 0.5866898715046033 +0.86209983326386 0.5804487004929103 +0.8625521884118383 0.5873049757162503 +0.8630045435598166 0.5866591238453189 +0.863456898707795 0.5938496540057908 +0.8639092538557732 0.5867902006586823 +0.8643616090037516 0.5912918330141301 +0.86481396415173 0.5869824439624476 +0.8652663192997082 0.5856310783977161 +0.8657186744476866 0.5978358193057899 +0.8661710295956649 0.5976348001003795 +0.8666233847436432 0.603815930024901 +0.8670757398916216 0.5973156367080468 +0.8675280950395998 0.6066828675410232 +0.8679804501875782 0.6033787686190117 +0.8684328053355566 0.6117045861685754 +0.8688851604835348 0.6088163213247918 +0.8693375156315132 0.6018682221482226 +0.8697898707794914 0.6089181242218001 +0.8702422259274698 0.6062654697588341 +0.8706945810754482 0.6156839220686146 +0.8711469362234264 0.6132913643973663 +0.8715992913714048 0.6157406293295234 +0.872051646519383 0.6096738651354611 +0.8725040016673614 0.6190905714231699 +0.8729563568153398 0.6165561841714551 +0.873408711963318 0.6240873484425964 +0.8738610671112964 0.6218575451102507 +0.8743134222592747 0.6157259224683621 +0.874765777407253 0.620213800335835 +0.8752181325552314 0.6178401253660973 +0.8756704877032097 0.629603899799777 +0.876122842851188 0.6274489386187656 +0.8765751979991664 0.6305233152857525 +0.8770275531471446 0.6244241975064149 +0.877479908295123 0.6310796960891962 +0.8779322634431013 0.6286822055307195 +0.8783846185910796 0.6388398977525456 +0.878836973739058 0.6361565949390031 +0.8792893288870363 0.633021627743403 +0.8797416840350146 0.6371802356252616 +0.8801940391829929 0.6325447081553793 +0.8806463943309712 0.6404141093828508 +0.8810987494789496 0.6413360671732459 +0.8815511046269279 0.6440083297857134 +0.8820034597749062 0.6381220026945215 +0.8824558149228845 0.6540646585903065 +0.8829081700708629 0.6543477697191069 +0.8833605252188412 0.6476236795251598 +0.8838128803668195 0.6548441279734694 +0.8842652355147979 0.6530756489843601 +0.8847175906627761 0.6590622898456945 +0.8851699458107546 0.6527238638128297 +0.885622300958733 0.6642625896706643 +0.8860746561067111 0.6618124648321162 +0.8865270112546895 0.666396620649061 +0.8869793664026677 0.660312139900687 +0.8874317215506462 0.672960353094911 +0.8878840766986246 0.6752452198714229 +0.8883364318466027 0.6704519867174369 +0.8887887869945811 0.678283149459181 +0.8892411421425596 0.6733499691034486 +0.8896934972905378 0.6851065207428292 +0.8901458524385162 0.6826617215576668 +0.8905982075864943 0.688123279481066 +0.8910505627344728 0.6849232624346502 +0.8915029178824512 0.6887891655066505 +0.8919552730304294 0.6872149137515707 +0.8924076281784078 0.7036493229824993 +0.8928599833263859 0.701933013157201 +0.8933123384743644 0.6988305814973047 +0.8937646936223428 0.7065206560680093 +0.894217048770321 0.702201654005022 +0.8946694039182994 0.7147357810614607 +0.8951217590662777 0.7102785052080475 +0.895574114214256 0.7219096984703919 +0.8960264693622344 0.7173473748540347 +0.8964788245102127 0.7234063819268937 +0.896931179658191 0.7177344128455259 +0.8973835348061694 0.7148723577206265 +0.8978358899541476 0.7274734219173544 +0.898288245102126 0.7261171048571243 +0.8987406002501043 0.7338756661113136 +0.8991929553980826 0.7292528876514471 +0.899645310546061 0.7417607476390661 +0.9000976656940393 0.7382414545347628 +0.9005500208420176 0.7496612904340902 +0.9010023759899959 0.7442226061986018 +0.9014547311379743 0.75095255751471 +0.9019070862859526 0.745542463819696 +0.9023594414339309 0.7424156496639351 +0.9028117965819092 0.762366862714994 +0.9032641517298875 0.7553873418886446 +0.9037165068778659 0.7633495792481476 +0.9041688620258442 0.756407378276301 +0.9046212171738225 0.7677185084619217 +0.9050735723218009 0.7608914244674061 +0.9055259274697791 0.7715331027413144 +0.9059782826177575 0.768736624054473 +0.9064306377657358 0.7697914716157669 +0.9068829929137141 0.7641147128985696 +0.9073353480616925 0.7617995150644904 +0.9077877032096707 0.7703289626063763 +0.9082400583576491 0.763617631428572 +0.9086924135056275 0.7655584910828089 +0.9091447686536057 0.7608746241926224 +0.9095971238015841 0.7740479811200482 +0.9100494789495625 0.7726775270890082 +0.9105018340975407 0.7771890216293977 +0.9109541892455191 0.7712919838346327 +0.9114065443934973 0.7639408864342714 +0.9118588995414757 0.7688608048889239 +0.9123112546894541 0.7684803563643905 +0.9127636098374323 0.7743046775476653 +0.9132159649854107 0.7682825948302059 +0.913668320133389 0.7692280068293615 +0.9141206752813673 0.7647455295864921 +0.9145730304293457 0.7757663548836949 +0.9150253855773239 0.7717466767376406 +0.9154777407253023 0.7768290520975631 +0.9159300958732806 0.768879598791029 +0.9163824510212589 0.761882773609971 +0.9168348061692373 0.7693141543670086 +0.9172871613172155 0.7634329868875323 +0.9177395164651939 0.7639801609638651 +0.9181918716131722 0.7588384332165584 +0.9186442267611505 0.7580061840679599 +0.9190965819091289 0.753907971993306 +0.9195489370571072 0.7651968087598925 +0.9200012922050855 0.7607101583519282 +0.9204536473530639 0.7648283261339965 +0.9209060025010422 0.7567289689802648 +0.9213583576490205 0.7541105983833716 +0.9218107127969988 0.7585139325485544 +0.9222630679449771 0.7591511970746464 +0.9227154230929555 0.7609303117189721 +0.9231677782409338 0.7589875827474809 +0.9236201333889121 0.7593666354372897 +0.9240724885368904 0.7564701079796248 +0.9245248436848688 0.7629754333905235 +0.9249771988328471 0.7642093090013069 +0.9254295539808254 0.7590537266810087 +0.9258819091288037 0.7605408600335504 +0.926334264276782 0.7589527055849505 +0.9267866194247604 0.7637202769348684 +0.9272389745727387 0.7609168569118369 +0.927691329720717 0.7678933161301977 +0.9281436848686954 0.7632102519171202 +0.9285960400166736 0.7657535583427229 +0.929048395164652 0.7629407364357152 +0.9295007503126304 0.7760183760434255 +0.9299531054606086 0.776100324988634 +0.930405460608587 0.7687975450659553 +0.9308578157565652 0.7711180903597769 +0.9313101709045436 0.7686110308120834 +0.931762526052522 0.7713270026207205 +0.9322148812005002 0.766965851616144 +0.9326672363484786 0.7772114489856483 +0.933119591496457 0.7745367088402536 +0.9335719466444352 0.7748305226929282 +0.9340243017924136 0.7696078545872771 +0.9344766569403918 0.7761741705046173 +0.9349290120883702 0.7757129965503061 +0.9353813672363486 0.7726006816141756 +0.9358337223843268 0.7713249160779695 +0.9362860775323052 0.7685182905576299 +0.9367384326802835 0.7789267354279888 +0.9371907878282618 0.7768098192884652 +0.9376431429762402 0.7801073358551246 +0.9380954981242184 0.7756329463069719 +0.9385478532721968 0.7793819021860441 +0.9390002084201751 0.7774052841817253 +0.9394525635681534 0.7757554542596875 +0.9399049187161318 0.7829354601408544 +0.94035727386411 0.7772599219640813 +0.9408096290120884 0.7747415319848955 +0.9412619841600667 0.77135977113091 +0.941714339308045 0.777007459153863 +0.9421666944560234 0.7743573967689561 +0.9426190496040017 0.773243754485376 +0.94307140475198 0.76972199189754 +0.9435237598999584 0.7735445300021714 +0.9439761150479367 0.7687521139414973 +0.944428470195915 0.765342900823494 +0.9448808253438933 0.7670109802191546 +0.9453331804918716 0.762639531574293 +0.94578553563985 0.7605843577898039 +0.9462378907878283 0.7595360074151714 +0.9466902459358066 0.7658734537643511 +0.9471426010837849 0.7627611775972434 +0.9475949562317633 0.7625018347729585 +0.9480473113797416 0.7597274715695186 +0.9484996665277199 0.7596730345544593 +0.9489520216756983 0.7591544853050862 +0.9494043768236765 0.7539946548370807 +0.9498567319716549 0.756322121909272 +0.9503090871196332 0.7525268692688276 +0.9507614422676115 0.7504808670215286 +0.9512137974155899 0.7483220407957021 +0.9516661525635681 0.753432667559928 +0.9521185077115465 0.7488522368786239 +0.9525708628595249 0.7516895434651981 +0.9530232180075031 0.7455026292563427 +0.9534755731554815 0.7425936848105417 +0.9539279283034598 0.7465948717432211 +0.9543802834514381 0.7429046775573787 +0.9548326385994165 0.7434000580697506 +0.9552849937473947 0.7400998457807431 +0.9557373488953731 0.738933090311907 +0.9561897040433515 0.7376272417776178 +0.9566420591913297 0.7439369923545456 +0.9570944143393081 0.7405828289892793 +0.9575467694872863 0.7408481470638253 +0.9579991246352647 0.7379096061386758 +0.9584514797832431 0.7349800459536169 +0.9589038349312213 0.7360180435710069 +0.9593561900791997 0.7330974467948722 +0.959808545227178 0.7377641790958639 +0.9602609003751563 0.7343044267010954 +0.9607132555231347 0.7348544992433726 +0.961165610671113 0.7326891724027068 +0.9616179658190913 0.7375000431568679 +0.9620703209670696 0.736131435509987 +0.9625226761150479 0.7339638975795956 +0.9629750312630263 0.7351355802015084 +0.9634273864110046 0.7312541973956498 +0.9638797415589829 0.7358706162518469 +0.9643320967069612 0.7321357945840353 +0.9647844518549396 0.738624786133729 +0.9652368070029179 0.73337226488458 +0.9656891621508962 0.7360022641898171 +0.9661415172988745 0.7313849543370496 +0.9665938724468529 0.7415704515550396 +0.9670462275948312 0.73898286638594 +0.9674985827428095 0.7330184899896127 +0.9679509378907878 0.7324914557764944 +0.9684032930387662 0.7285787321413695 +0.9688556481867445 0.7401417214145707 +0.9693080033347228 0.7356020115056946 +0.9697603584827011 0.7390388071381941 +0.9702127136306794 0.7341907590879987 +0.9706650687786578 0.7400655004458656 +0.9711174239266361 0.7351952093440766 +0.9715697790746144 0.7389669922797636 +0.9720221342225929 0.734460179550491 +0.972474489370571 0.7285232960395946 +0.9729268445185494 0.7288531315045133 +0.9733791996665278 0.72535277096144 +0.973831554814506 0.740400387191613 +0.9742839099624845 0.7351883037880877 +0.9747362651104626 0.7403691897358137 +0.975188620258441 0.7361996730170746 +0.9756409754064194 0.7405471868407071 +0.9760933305543977 0.7356200318946062 +0.9765456857023761 0.738800819884006 +0.9769980408503544 0.738977203327099 +0.9774503959983326 0.7351010597453557 +0.977902751146311 0.7350735736093266 +0.9783551062942893 0.732509127611064 +0.9788074614422677 0.7377475604042713 +0.979259816590246 0.7361456611128587 +0.9797121717382242 0.7371818021916705 +0.9801645268862027 0.7333458406014848 +0.980616882034181 0.7374929909106046 +0.9810692371821593 0.7357268923143438 +0.9815215923301376 0.7354905910483335 +0.981973947478116 0.7358954173542723 +0.9824263026260943 0.7369161127760586 +0.9828786577740726 0.7352266445762026 +0.9833310129220509 0.7363692740780031 +0.9837833680700292 0.7367951799511551 +0.9842357232180076 0.7376298702063765 +0.9846880783659859 0.7369381377139252 +0.9851404335139642 0.7373610070534036 +0.9855927886619426 0.740362229131938 +0.9860451438099209 0.7400424199524852 +0.9864974989578992 0.7403829938097559 +0.9869498541058775 0.7416755978424691 +0.9874022092538559 0.7413106126088703 +0.9878545644018342 0.7414839421584491 +0.9883069195498125 0.7404104040881279 +0.9887592746977908 0.7502471008390091 +0.9892116298457692 0.7484481368839685 +0.9896639849937475 0.7534352526997303 +0.9901163401417258 0.7503744188641025 +0.9905686952897041 0.7435015269394485 +0.9910210504376824 0.7469963240427401 +0.9914734055856608 0.741083787911716 +0.9919257607336391 0.7390980591895306 +0.9923781158816174 0.7347590676377557 +0.9928304710295958 0.7339986028749107 +0.993282826177574 0.7305523511018981 +0.9937351813255524 0.7335237938755356 +0.9941875364735308 0.7292296272893899 +0.994639891621509 0.7257396924337327 +0.9950922467694874 0.7231701101906988 +0.9955446019174656 0.7213865511864904 +0.995996957065444 0.7187952673483017 +0.9964493122134224 0.7160147698604551 +0.9969016673614006 0.7154863152710754 +0.997354022509379 0.7138011359903943 +0.9978063776573574 0.7105955541824588 +0.9982587328053356 0.7099757425750777 +0.998711087953314 0.7081651950442052 +0.9991634431012922 0.705773724340475 +0.9996157982492706 0.7057679540877693 +1.0000681533972489 0.7042324406238893 +1.0005205085452273 0.7056411593351712 +1.0009728636932056 0.7052740916480121 +1.0014252188411839 0.7047136706453037 +1.001877573989162 0.7058219371739842 +1.0023299291371406 0.7069814759977606 +1.0027822842851188 0.706842219292062 +1.003234639433097 0.7082796711430664 +1.0036869945810756 0.7118440958618301 +1.0041393497290538 0.7135911723503257 +1.004591704877032 0.7127504542420943 +1.0050440600250106 0.7143017649584021 +1.0054964151729888 0.7157303106292011 +1.005948770320967 0.7203384639417627 +1.0064011254689456 0.720972574173143 +1.0068534806169238 0.7258154118387222 +1.007305835764902 0.7260427626231558 +1.0077581909128803 0.7315729311732424 +1.0082105460608588 0.7317650992368246 +1.008662901208837 0.7371445408892646 +1.0091152563568153 0.7384389611442371 +1.0095676115047938 0.7388005827900485 +1.010019966652772 0.7396946675475965 +1.0104723218007503 0.7400547795072084 +1.0109246769487288 0.7474423436383801 +1.011377032096707 0.7464910411121736 +1.0118293872446853 0.7519617757062923 +1.0122817423926636 0.75152393727499 +1.012734097540642 0.7533085033600031 +1.0131864526886203 0.752747925336347 +1.0136388078365985 0.7578438157916131 +1.014091162984577 0.7568870389789807 +1.0145435181325553 0.7555011868629141 +1.0149958732805335 0.7562156720962395 +1.015448228428512 0.7550303112136107 +1.0159005835764903 0.7622596293576577 +1.0163529387244685 0.761107937144086 +1.016805293872447 0.7649449012184075 +1.0172576490204253 0.7623506536413477 +1.0177100041684035 0.7680252022898024 +1.0181623593163818 0.7656810814890552 +1.0186147144643602 0.7634241945667086 +1.0190670696123385 0.766221497485825 +1.0195194247603168 0.7632361158463624 +1.0199717799082952 0.7635695803569555 +1.0204241350562735 0.7619163779131797 +1.0208764902042518 0.7691765047210884 +1.0213288453522302 0.766206926005266 +1.0217812005002085 0.7709628817651736 +1.0222335556481867 0.7667864677163989 +1.022685910796165 0.7707760641569535 +1.0231382659441435 0.7690004681975817 +1.0235906210921217 0.7673049417246276 +1.0240429762401002 0.7700358757585185 +1.0244953313880782 0.7679968915847502 +1.024947686536057 0.7674981524530788 +1.0254000416840352 0.766081205341096 +1.0258523968320132 0.7712924171586046 +1.0263047519799917 0.7688152406363317 +1.0267571071279702 0.7725866298150318 +1.0272094622759484 0.7699986134869206 +1.0276618174239267 0.7739675106621406 +1.028114172571905 0.7723726407944431 +1.0285665277198834 0.7712215403334775 +1.0290188828678617 0.7701414391303232 +1.0294712380158402 0.7693156742588814 +1.0299235931638184 0.7691880413694075 +1.0303759483117965 0.7696208050476246 +1.030828303459775 0.7739888375846337 +1.0312806586077534 0.7732960318658284 +1.0317330137557317 0.7747732240799656 +1.03218536890371 0.7733191152372011 +1.0326377240516882 0.7704975658190422 +1.0330900791996667 0.7762576888309617 +1.0335424343476447 0.773053166143872 +1.0339947894956234 0.7746915859615193 +1.0344471446436017 0.7733717633644908 +1.0348994997915797 0.7742330885859657 +1.0353518549395582 0.7729174882914102 +1.0358042100875366 0.7756552874398416 +1.036256565235515 0.7735645935112244 +1.0367089203834932 0.7755075171430923 +1.0371612755314714 0.7751389493434931 +1.03761363067945 0.7735050940909858 +1.0380659858274282 0.7753777254403385 +1.0385183409754066 0.774789283532525 +1.0389706961233849 0.7764542962624901 +1.039423051271363 0.7763013297587017 +1.0398754064193416 0.776230877006221 +1.0403277615673199 0.7753472876371863 +1.0407801167152981 0.7794337290869973 +1.0412324718632764 0.7786369363208401 +1.0416848270112546 0.7792768619513546 +1.0421371821592331 0.7803732884055624 +1.0425895373072114 0.779517892938201 +1.0430418924551899 0.779617461602133 +1.0434942476031681 0.7801447992119944 +1.0439466027511464 0.7836691797515019 +1.0443989578991248 0.7825528158464081 +1.044851313047103 0.7837115583058744 +1.0453036681950814 0.7826486113463353 +1.0457560233430596 0.7848920825454045 +1.046208378491038 0.7850279118904804 +1.0466607336390163 0.7836633975156393 +1.0471130887869946 0.7855353872135563 +1.047565443934973 0.7858270266825274 +1.0480177990829513 0.7865783967577161 +1.0484701542309296 0.7854823427465193 +1.048922509378908 0.7882054402372087 +1.0493748645268863 0.7878231393103862 +1.0498272196748646 0.788933191638267 +1.050279574822843 0.788701147533157 +1.0507319299708213 0.793845977020383 +1.0511842851187996 0.7921959881432441 +1.0516366402667778 0.791056891116253 +1.0520889954147563 0.7952669120340342 +1.0525413505627346 0.7941863787751108 +1.0529937057107128 0.7947314947429909 +1.0534460608586913 0.7949971504568606 +1.0538984160066696 0.798247341848044 +1.0543507711546478 0.7976365097128175 +1.0548031263026263 0.8022415188549066 +1.0552554814506045 0.8010796783527668 +1.0557078365985828 0.8059267548673654 +1.056160191746561 0.8027798369018881 +1.0566125468945395 0.8020050184352943 +1.0570649020425178 0.8013772178243532 +1.057517257190496 0.801263958039873 +1.0579696123384745 0.8062875560291358 +1.0584219674864528 0.8049790855394799 +1.058874322634431 0.8083587034090381 +1.0593266777824095 0.8083015985986519 +1.0597790329303878 0.8103606904353728 +1.060231388078366 0.8102371429290852 +1.0606837432263445 0.8091676058300596 +1.0611360983743228 0.8135352430259265 +1.061588453522301 0.8124826093104616 +1.0620408086702793 0.8139461294613038 +1.0624931638182578 0.814694091135488 +1.062945518966236 0.8197728920590683 +1.0633978741142143 0.8192236811060322 +1.0638502292621927 0.8238269854940945 +1.064302584410171 0.8230013124047504 +1.0647549395581493 0.8279466590840606 +1.0652072947061277 0.8265448113618209 +1.065659649854106 0.8262316451529068 +1.0661120050020843 0.82995773253401 +1.0665643601500625 0.8293272400427789 +1.067016715298041 0.8301478422929395 +1.0674690704460192 0.8306826162580917 +1.0679214255939975 0.8365257179252861 +1.068373780741976 0.8356469354990805 +1.0688261358899542 0.8411926666140918 +1.0692784910379325 0.8402425059942916 +1.069730846185911 0.844166421880349 +1.0701832013338892 0.8411785485242779 +1.0706355564818675 0.8408651177559031 +1.071087911629846 0.8429841246357128 +1.0715402667778242 0.8413419863884354 +1.0719926219258025 0.8412905654553927 +1.0724449770737807 0.8403543332820356 +1.0728973322217592 0.843047090232551 +1.0733496873697375 0.8415048835486513 +1.0738020425177157 0.844555476479622 +1.0742543976656942 0.842339372138111 +1.0747067528136725 0.8416938872252466 +1.0751591079616507 0.8447711482789785 +1.0756114631096292 0.8419740668346445 +1.0760638182576074 0.842230977113324 +1.0765161734055857 0.8419445744374704 +1.076968528553564 0.8423127640642935 +1.0774208837015424 0.8415262014865419 +1.0778732388495207 0.8447898703466586 +1.078325593997499 0.8431496689113844 +1.0787779491454774 0.8445571111386253 +1.0792303042934557 0.8428212201571064 +1.079682659441434 0.8423692647487525 +1.0801350145894124 0.8449008600322624 +1.0805873697373907 0.8446330187937049 +1.081039724885369 0.8451434909560517 +1.0814920800333474 0.8436389948222481 +1.0819444351813257 0.8441066537051554 +1.082396790329304 0.8438062498627638 +1.0828491454772822 0.845655966393093 +1.0833015006252606 0.8452553167391018 +1.083753855773239 0.8436588472978436 +1.0842062109212172 0.8476946852913011 +1.0846585660691956 0.8474044974071023 +1.085110921217174 0.8490018156973644 +1.0855632763651522 0.8481211990933724 +1.0860156315131306 0.847411539932603 +1.0864679866611089 0.8473831277378946 +1.0869203418090871 0.8467095383020338 +1.0873726969570654 0.846523815859184 +1.0878250521050439 0.8494014112911445 +1.0882774072530221 0.8497419101819896 +1.0887297624010004 0.8483713830206243 +1.0891821175489789 0.850230158330569 +1.0896344726969571 0.85015410543624 +1.0900868278449354 0.8524768921465872 +1.0905391829929139 0.8521791785156246 +1.0909915381408921 0.8525813419580734 +1.0914438932888704 0.8514788389365604 +1.0918962484368486 0.8518377896451211 +1.092348603584827 0.8514100402720518 +1.0928009587328054 0.8533390382191746 +1.0932533138807836 0.8530725378659945 +1.093705669028762 0.852676785436838 +1.0941580241767404 0.8545841335980714 +1.0946103793247186 0.8537409103484407 +1.095062734472697 0.8562323408355321 +1.0955150896206753 0.8556225535590158 +1.0959674447686536 0.8548668084884273 +1.096419799916632 0.8551181528460211 +1.0968721550646103 0.854808455247836 +1.0973245102125886 0.8551151191530945 +1.0977768653605668 0.8550917341622564 +1.0982292205085453 0.857478120178871 +1.0986815756565236 0.8556569037613486 +1.0991339308045018 0.8576455329042102 +1.0995862859524803 0.8584354682386235 +1.1000386411004586 0.8716274600409568 +1.1004909962484368 0.8783449364874074 +1.1009433513964153 0.8714257423369922 +1.1013957065443936 0.8708834528245116 +1.1018480616923718 0.8734853438753533 +1.10230041684035 0.8729462131295019 +1.1027527719883286 0.8734107950336185 +1.1032051271363068 0.8735099105494933 +1.103657482284285 0.8740356828464924 +1.1041098374322635 0.8741474663585407 +1.1045621925802418 0.874056703109611 +1.10501454772822 0.876537467205318 +1.1054669028761985 0.8754824409584142 +1.1059192580241768 0.876509006477695 +1.106371613172155 0.8759868453889541 +1.1068239683201335 0.8763155957420368 +1.1072763234681118 0.877237375110861 +1.10772867861609 0.876918114646428 +1.1081810337640683 0.877651621819244 +1.1086333889120468 0.8768470850390007 +1.109085744060025 0.8784207602676618 +1.1095380992080033 0.8792057901097149 +1.1099904543559818 0.8798618447231144 +1.11044280950396 0.8795410712036403 +1.1108951646519383 0.8801917300846027 +1.1113475197999167 0.8792003141286979 +1.111799874947895 0.8779040334934153 +1.1122522300958733 0.88032182370925 +1.1127045852438515 0.8801671135305825 +1.11315694039183 0.8810142878432391 +1.1136092955398083 0.8804025549586723 +1.1140616506877865 0.880443224959559 +1.114514005835765 0.8797014691327518 +1.1149663609837432 0.8820258892465636 +1.1154187161317215 0.8807611886657584 +1.1158710712797 0.8818447375946971 +1.1163234264276782 0.8818968998682161 +1.1167757815756565 0.8800412107638291 +1.117228136723635 0.8823794934453467 +1.1176804918716132 0.8823662544714336 +1.1181328470195915 0.8831452422268589 +1.1185852021675697 0.8813385333181907 +1.1190375573155482 0.8846816094759902 +1.1194899124635265 0.8835633058125241 +1.1199422676115047 0.8855213496428496 +1.1203946227594832 0.8848936973026885 +1.1208469779074615 0.8827821702273276 +1.1212993330554397 0.8850621822396845 +1.1217516882034182 0.8848110628087409 +1.1222040433513965 0.8871806896304903 +1.1226563984993747 0.8868833278936574 +1.123108753647353 0.8879607726900035 +1.1235611087953314 0.8871874051232321 +1.1240134639433097 0.8883357184557208 +1.124465819091288 0.8884321078367102 +1.1249181742392664 0.8894742077668234 +1.1253705293872447 0.8893296915336929 +1.125822884535223 0.8887005893187682 +1.1262752396832014 0.8877911949149108 +1.1267275948311797 0.8881553908127899 +1.127179949979158 0.8878910981654644 +1.1276323051271366 0.8888045878896433 +1.1280846602751147 0.8889658119750924 +1.128537015423093 0.8887157922516562 +1.1289893705710712 0.8901144566679032 +1.1294417257190497 0.8900577485941018 +1.1298940808670281 0.8904091058104011 +1.1303464360150062 0.8896090639785764 +1.1307987911629847 0.8898700520151818 +1.131251146310963 0.8888456577082937 +1.1317035014589412 0.8877251571350812 +1.1321558566069199 0.8916578736731924 +1.132608211754898 0.8911874877591194 +1.1330605669028762 0.8907072788863415 +1.1335129220508544 0.8892850314580888 +1.1339652771988329 0.8904691918579084 +1.1344176323468114 0.888886381568434 +1.1348699874947894 0.8885275538319688 +1.1353223426427679 0.8896845876036744 +1.1357746977907464 0.8883103156907737 +1.1362270529387244 0.8875088265172849 +1.136679408086703 0.8868946458904163 +1.1371317632346811 0.8895004191352733 +1.1375841183826594 0.8870061642283663 +1.138036473530638 0.8874534095299373 +1.1384888286786161 0.8857373447339667 +1.1389411838265946 0.8857797971945299 +1.1393935389745726 0.8844376437977671 +1.139845894122551 0.8844297087241125 +1.1402982492705296 0.8846845550764065 +1.1407506044185076 0.8821758653694814 +1.1412029595664863 0.8823611073179491 +1.1416553147144646 0.8811292111810404 +1.1421076698624426 0.8818592061254065 +1.1425600250104213 0.8800651208237089 +1.1430123801583993 0.881843357834175 +1.1434647353063778 0.8799611824860222 +1.143917090454356 0.8794902285901862 +1.1443694456023343 0.8782099520201399 +1.1448218007503128 0.8773647898372486 +1.1452741558982908 0.8762732544120745 +1.1457265110462695 0.8745343659202139 +1.1461788661942478 0.8751119094891121 +1.1466312213422258 0.8738459834970662 +1.1470835764902045 0.8753754069158113 +1.1475359316381826 0.874211818528114 +1.147988286786161 0.8731674514483909 +1.1484406419341395 0.8719306881736826 +1.1488929970821176 0.8701037017294188 +1.149345352230096 0.870215697969408 +1.1497977073780743 0.8693120481815235 +1.1502500625260528 0.8696528931369382 +1.150702417674031 0.8693901686823842 +1.151154772822009 0.8706166302108828 +1.1516071279699878 0.8696776555074951 +1.152059483117966 0.8713786381258508 +1.1525118382659443 0.8706351440488497 +1.1529641934139228 0.8724754117897001 +1.1534165485619008 0.8723900820687747 +1.1538689037098793 0.8732287958549116 +1.1543212588578575 0.8728153716811851 +1.154773614005836 0.8733416478367485 +1.1552259691538143 0.8732963985014692 +1.1556783243017925 0.8738104378740563 +1.156130679449771 0.8744049842265769 +1.1565830345977492 0.8745041353895072 +1.1570353897457275 0.8761541712479274 +1.157487744893706 0.8758264448229454 +1.1579401000416842 0.8768397537448607 +1.1583924551896625 0.875952952720855 +1.158844810337641 0.8757614579043562 +1.1592971654856192 0.8772392938376347 +1.1597495206335975 0.8767349941724574 +1.1602018757815757 0.8775453973366284 +1.1606542309295542 0.8757317043227668 +1.1611065860775325 0.875918943374337 +1.1615589412255107 0.8755464162019844 +1.1620112963734892 0.8754115170641944 +1.1624636515214675 0.87445466503928 +1.1629160066694457 0.8730053516467505 +1.1633683618174242 0.8741404937512975 +1.1638207169654025 0.8727634628315206 +1.1642730721133807 0.8727954665100492 +1.164725427261359 0.8721133185815151 +1.1651777824093374 0.8709848021227361 +1.1656301375573157 0.869254723170957 +1.166082492705294 0.8690976351435132 +1.1665348478532724 0.8685042179614217 +1.1669872030012507 0.8689672442911422 +1.167439558149229 0.8681151107065282 +1.1678919132972074 0.8677592145964517 +1.1683442684451857 0.8665526904527432 +1.168796623593164 0.8654578751866527 +1.1692489787411424 0.8646686598289562 +1.1697013338891207 0.8646633733278171 +1.170153689037099 0.8642807943936508 +1.1706060441850772 0.864540385970299 +1.1710583993330557 0.8649697648727416 +1.171510754481034 0.8652242313732229 +1.1719631096290122 0.8652330498615346 +1.1724154647769907 0.8656698007602632 +1.172867819924969 0.865851867261304 +1.1733201750729472 0.8664982327999288 +1.1737725302209256 0.8669659318556395 +1.174224885368904 0.8667006794768983 +1.1746772405168822 0.8673139022646388 +1.1751295956648604 0.867296195685353 +1.175581950812839 0.8673604055867479 +1.1760343059608172 0.8682029215849922 +1.1764866611087954 0.8675962763931965 +1.1769390162567739 0.8679925689784911 +1.1773913714047521 0.8684563839031455 +1.1778437265527304 0.869554498991647 +1.1782960817007089 0.8692582483752521 +1.1787484368486871 0.869868855484014 +1.1792007919966654 0.8693757384672652 +1.1796531471446436 0.8697748263214495 +1.1801055022926221 0.8697084593837217 +1.1805578574406004 0.8696852297645807 +1.1810102125885786 0.8689779738524102 +1.1814625677365571 0.8693808327688768 +1.1819149228845354 0.8700156993780768 +1.1823672780325136 0.8694264667953171 +1.182819633180492 0.8694563535691807 +1.1832719883284704 0.8693842831751648 +1.1837243434764486 0.8695369553411677 +1.184176698624427 0.8680048993316213 +1.1846290537724053 0.868288670754339 +1.1850814089203836 0.8679559835134999 +1.1855337640683619 0.8678284474746311 +1.1859861192163403 0.8672236299187891 +1.1864384743643186 0.866865769265882 +1.1868908295122969 0.8678062740910071 +1.1873431846602753 0.866855734890171 +1.1877955398082536 0.8682009462350914 +1.1882478949562318 0.8670348265994795 +1.1887002501042103 0.8681795330390216 +1.1891526052521886 0.8632898536580654 +1.1896049604001668 0.8647410199766463 +1.190057315548145 0.862658439484089 +1.1905096706961236 0.8664776121574558 +1.1909620258441018 0.8696549519365611 +1.19141438099208 0.8652277500995504 +1.1918667361400586 0.8691650121087529 +1.1923190912880368 0.8667871278810597 +1.192771446436015 0.8696801397092756 +1.1932238015839935 0.8691170073172735 +1.1936761567319718 0.8703939113807732 +1.19412851187995 0.8735783193471253 +1.1945808670279285 0.8724918044005809 +1.1950332221759068 0.8747046511609361 +1.195485577323885 0.8717878453536321 +1.1959379324718633 0.8690811962196823 +1.1963902876198418 0.8738878804076284 +1.19684264276782 0.8717659583333699 +1.1972949979157983 0.8757831257613516 +1.1977473530637768 0.873432309781344 +1.198199708211755 0.8736227987102686 +1.1986520633597333 0.8698926080036697 +1.1991044185077118 0.8740690045654864 +1.19955677365569 0.871773829208109 +1.2000091288036683 0.8738034189137245 +1.2004614839516465 0.8696027890182002 +1.200913839099625 0.8661765571580072 +1.2013661942476033 0.8694081724525821 +1.2018185493955815 0.866978431231584 +1.20227090454356 0.8701593831311395 +1.2027232596915383 0.8661533651553804 +1.2031756148395165 0.8682732362656145 +1.203627969987495 0.8656758380252559 +1.2040803251354733 0.8681654881780956 +1.2045326802834515 0.8663367902274796 +1.20498503543143 0.8644844372757894 +1.2054373905794082 0.86203925729101 +1.2058897457273865 0.8576652454906784 +1.2063421008753648 0.8624600610236467 +1.2067944560233432 0.8612456721844114 +1.2072468111713215 0.8629444838975221 +1.2076991663192997 0.8607428920866903 +1.2081515214672782 0.8603416578014665 +1.2086038766152565 0.8571740628298398 +1.2090562317632347 0.8594923570149118 +1.2095085869112132 0.8577378841662909 +1.2099609420591915 0.855990847330448 +1.2104132972071697 0.8559473313097498 +1.210865652355148 0.8524650085883113 +1.2113180075031265 0.8557990762098148 +1.2117703626511047 0.8530761730865011 +1.212222717799083 0.8544883894794034 +1.2126750729470614 0.8519642544668833 +1.2131274280950397 0.853602055697297 +1.213579783243018 0.8520997148666077 +1.2140321383909964 0.8540915081859292 +1.2144844935389747 0.8520558904345406 +1.214936848686953 0.8509697357069412 +1.2153892038349314 0.8499239314254171 +1.2158415589829097 0.8470891646862837 +1.216293914130888 0.849527394591511 +1.2167462692788662 0.8482768711826634 +1.2171986244268447 0.8488152441581457 +1.217650979574823 0.8469956623172717 +1.2181033347228012 0.8470772480204279 +1.2185556898707797 0.8460868305549113 +1.219008045018758 0.8448727621460277 +1.2194604001667362 0.8453606802081844 +1.2199127553147147 0.8447904114127751 +1.220365110462693 0.8451786297685819 +1.2208174656106712 0.8444580310378895 +1.2212698207586494 0.8443639798592838 +1.221722175906628 0.8432436028420106 +1.2221745310546062 0.8433728547865271 +1.2226268862025844 0.8422418553389494 +1.223079241350563 0.8427709450195421 +1.2235315964985412 0.8415536502435921 +1.2239839516465194 0.8396658409834266 +1.2244363067944979 0.840619897095482 +1.2248886619424761 0.8399678763266094 +1.2253410170904544 0.8404659242405783 +1.2257933722384329 0.8390082783226249 +1.2262457273864111 0.8394595559942266 +1.2266980825343894 0.8381620686125504 +1.2271504376823676 0.8389916183179441 +1.2276027928303461 0.8384522898009947 +1.2280551479783244 0.8380869313428319 +1.2285075031263026 0.8377126716744485 +1.2289598582742811 0.8365403752246685 +1.2294122134222594 0.8370227843356052 +1.2298645685702376 0.8367207150955751 +1.230316923718216 0.8366608666709097 +1.2307692788661944 0.8363204045147097 +1.2312216340141726 0.8359333367899293 +1.2316739891621509 0.8348859225894136 +1.2321263443101294 0.8348092053513494 +1.2325786994581076 0.8343461075040973 +1.2330310546060859 0.8336522777925809 +1.2334834097540643 0.8336412779988206 +1.2339357649020426 0.8326305268241947 +1.2343881200500209 0.8322393645174196 +1.2348404751979993 0.8322674560623817 +1.2352928303459776 0.8318660406320094 +1.2357451854939558 0.8313517848060367 +1.236197540641934 0.8318952941601766 +1.2366498957899126 0.830875153362703 +1.2371022509378908 0.8312742629575274 +1.237554606085869 0.8304693429012837 +1.2380069612338476 0.8295090966416381 +1.2384593163818258 0.8295679038282144 +1.238911671529804 0.8282608298776991 +1.2393640266777826 0.828605429565149 +1.2398163818257608 0.8287556185757248 +1.240268736973739 0.8289109466800688 +1.2407210921217176 0.8281223212188101 +1.2411734472696958 0.827633597500849 +1.241625802417674 0.8272008369589718 +1.2420781575656523 0.826759053990559 +1.2425305127136308 0.8271004359390502 +1.242982867861609 0.8269217126707811 +1.2434352230095873 0.8265628126347221 +1.2438875781575658 0.8262088148660518 +1.244339933305544 0.8259280419556706 +1.2447922884535223 0.8258322287783887 +1.2452446436015008 0.8256920687948747 +1.245696998749479 0.8254705974786076 +1.2461493538974573 0.8245911733862887 +1.2466017090454355 0.8248140421479954 +1.247054064193414 0.8237232596629083 +1.2475064193413923 0.8235266095731241 +1.2479587744893705 0.8239332941933337 +1.248411129637349 0.8235078178361697 +1.2488634847853273 0.8226781306530895 +1.2493158399333055 0.8229948074168921 +1.249768195081284 0.822147764700741 +1.2502205502292623 0.8227158312787055 +1.2506729053772405 0.8217304867851029 +1.251125260525219 0.8212305031518212 +1.2515776156731973 0.8201085106568126 +1.2520299708211755 0.8196842580811743 +1.2524823259691538 0.8195508614795031 +1.2529346811171322 0.8193842411981523 +1.2533870362651105 0.8188619771617864 +1.2538393914130888 0.8184027615884013 +1.2542917465610672 0.8189562364275694 +1.2547441017090455 0.8180293154923624 +1.2551964568570237 0.8177936886992095 +1.2556488120050022 0.8171389657888127 +1.2561011671529805 0.8173197853163426 +1.2565535223009587 0.8163080864175928 +1.257005877448937 0.8162347756123229 +1.2574582325969155 0.815427427642108 +1.2579105877448937 0.8161396592079169 +1.258362942892872 0.8158537687235277 +1.2588152980408505 0.8149235481352354 +1.2592676531888287 0.814610974557495 +1.259720008336807 0.8143266920657765 +1.2601723634847855 0.8145952475853376 +1.2606247186327637 0.8140046559922053 +1.261077073780742 0.8136124983218541 +1.2615294289287204 0.8141540864041208 +1.2619817840766987 0.8136755328575102 +1.262434139224677 0.8140210541588754 +1.2628864943726552 0.8133960460525386 +1.2633388495206337 0.8134300294290349 +1.263791204668612 0.8129225572574579 +1.2642435598165902 0.8133302768620705 +1.2646959149645687 0.8126236301610196 +1.265148270112547 0.8127434605531123 +1.2656006252605252 0.8133678233300821 +1.2660529804085037 0.8130153735070508 +1.266505335556482 0.81298839810111 +1.2669576907044602 0.8125113593718142 +1.2674100458524384 0.8122769759662508 +1.267862401000417 0.8126091683388584 +1.2683147561483952 0.8125391155584027 +1.2687671112963734 0.8113727496028642 +1.269219466444352 0.8119465499043712 +1.2696718215923302 0.8111594337164234 +1.2701241767403084 0.811512086069288 +1.270576531888287 0.811269706575495 +1.2710288870362652 0.8113089621577139 +1.2714812421842434 0.8113077630962617 +1.2719335973322219 0.8110854200516198 +1.2723859524802001 0.8102631493705564 +1.2728383076281784 0.8105953117906676 +1.2732906627761567 0.8103520068495023 +1.2737430179241351 0.8104506016823485 +1.2741953730721134 0.8101461509864624 +1.2746477282200916 0.809413476046501 +1.2751000833680701 0.8094681067239046 +1.2755524385160484 0.8088962898079763 +1.2760047936640266 0.8087735829819245 +1.2764571488120051 0.8091416808154499 +1.2769095039599834 0.8091098305965098 +1.2773618591079616 0.8082850452039412 +1.2778142142559399 0.8085083027373241 +1.2782665694039184 0.8087102471614079 +1.2787189245518966 0.808776223669177 +1.2791712796998749 0.8069487850871278 +1.2796236348478534 0.8072553619376144 +1.2800759899958316 0.8076441969139259 +1.2805283451438099 0.8070811302662834 +1.2809807002917883 0.8072150298909169 +1.2814330554397666 0.8065946444224993 +1.2818854105877449 0.8064442175214767 +1.2823377657357233 0.8054123655243417 +1.2827901208837016 0.8057481620808704 +1.2832424760316798 0.8060594825536583 +1.283694831179658 0.8062394081422254 +1.2841471863276366 0.8060170343631462 +1.2845995414756148 0.8054884698405602 +1.285051896623593 0.8055876841815838 +1.2855042517715716 0.8048790136813806 +1.2859566069195498 0.8052454498605077 +1.286408962067528 0.8043011676762348 +1.2868613172155066 0.8046582081830647 +1.2873136723634848 0.8039104696289527 +1.287766027511463 0.8043233799772816 +1.2882183826594413 0.8039453019216406 +1.2886707378074198 0.804072744098876 +1.289123092955398 0.8043135186564332 +1.2895754481033763 0.8038450791795164 +1.2900278032513548 0.8038654460860037 +1.290480158399333 0.8038846921009033 +1.2909325135473113 0.8038790306648136 +1.2913848686952898 0.8041711260624705 +1.291837223843268 0.8037797606233057 +1.2922895789912463 0.8034106212584274 +1.2927419341392246 0.8035483621744478 +1.293194289287203 0.8032647686258366 +1.2936466444351813 0.8039749651734897 +1.2940989995831595 0.8037685662342371 +1.294551354731138 0.8037525018641357 +1.2950037098791163 0.8037062909713932 +1.2954560650270945 0.8041049029873493 +1.295908420175073 0.8041205223208814 +1.2963607753230513 0.8040249131969951 +1.2968131304710295 0.804396977189378 +1.297265485619008 0.8040051450175995 +1.2977178407669863 0.804469414265096 +1.2981701959149645 0.8045443396030256 +1.2986225510629428 0.8049805944382753 +1.2990749062109213 0.8050979548988764 +1.2995272613588995 0.8046954375971995 +1.2999796165068778 0.8047763410083324 +1.3004319716548562 0.8046903226037638 +1.3008843268028345 0.8055282414468379 +1.3013366819508128 0.8057491768772135 +1.3017890370987912 0.8051374785726993 +1.3022413922467695 0.8051998206094076 +1.3026937473947477 0.805258605954467 +1.303146102542726 0.8054359598704005 +1.3035984576907045 0.8054792921253217 +1.3040508128386827 0.8056723476960052 +1.304503167986661 0.8059063306070425 +1.3049555231346395 0.8063945554086852 +1.3054078782826177 0.8055488842333435 +1.305860233430596 0.8060412861488849 +1.3063125885785745 0.8059923769182218 +1.3067649437265527 0.8063258250778624 +1.307217298874531 0.8051472646364347 +1.3076696540225095 0.8055994400321166 +1.3081220091704877 0.8061710910841549 +1.308574364318466 0.8057121506564614 +1.3090267194664442 0.8062756286927174 +1.3094790746144227 0.8056677449286511 +1.309931429762401 0.8055305706966549 +1.3103837849103792 0.8047173343216829 +1.3108361400583577 0.8054846653733952 +1.311288495206336 0.8047236362439714 +1.3117408503543142 0.8055522910256816 +1.3121932055022927 0.806356652706276 +1.312645560650271 0.8044728370286452 +1.3130979157982492 0.8049907871559705 +1.3135502709462274 0.8050881431583317 +1.314002626094206 0.8052936451992093 +1.3144549812421842 0.8037633751330843 +1.3149073363901624 0.8044047219675526 +1.315359691538141 0.8031291110112471 +1.3158120466861192 0.8040743569589444 +1.3162644018340974 0.8040358091283124 +1.316716756982076 0.8038792267808625 +1.3171691121300542 0.8051399017380819 +1.3176214672780324 0.8032735087090072 +1.318073822426011 0.804199176713941 +1.3185261775739892 0.8028932145645882 +1.3189785327219674 0.8036365392943765 +1.3194308878699457 0.8015084138183444 +1.3198832430179241 0.8028766506015814 +1.3203355981659024 0.8020588696032385 +1.3207879533138807 0.8017150050906853 +1.3212403084618591 0.8014612209621897 +1.3216926636098374 0.8019974846961556 +1.3221450187578156 0.8033298774801166 +1.3225973739057941 0.8012582709838167 +1.3230497290537724 0.801619449853585 +1.3235020842017506 0.8008784715819118 +1.323954439349729 0.8011798921144531 +1.3244067944977074 0.7997137596100751 +1.3248591496456856 0.8000409726239497 +1.3253115047936639 0.7996751919242878 +1.3257638599416424 0.7995560339600354 +1.3262162150896206 0.8003002510526847 +1.3266685702375989 0.8000369457410464 +1.3271209253855774 0.8006407482486364 +1.3275732805335556 0.7996264575164994 +1.3280256356815339 0.8001906866122941 +1.3284779908295123 0.7993625494477808 +1.3289303459774906 0.7998330809828126 +1.3293827011254689 0.7987968345178412 +1.3298350562734471 0.7996286072516152 +1.3302874114214256 0.7993424852559832 +1.3307397665694038 0.7995688756718021 +1.331192121717382 0.8006568639478177 +1.3316444768653606 0.8005794266368313 +1.3320968320133388 0.8014687033017875 +1.332549187161317 0.8002724064937248 +1.3330015423092956 0.8014305696244037 +1.3334538974572738 0.8002843855164125 +1.333906252605252 0.8010276920529313 +1.3343586077532303 0.8011876085252614 +1.3348109629012088 0.8036375724132762 +1.3352633180491873 0.8040107426430105 +1.3357156731971653 0.8028411123096825 +1.3361680283451438 0.8049967832550096 +1.336620383493122 0.8063195533415866 +1.3370727386411003 0.8088259467404642 +1.337525093789079 0.8055395719860949 +1.337977448937057 0.8088489142939868 +1.3384298040850353 0.8047688830399047 +1.3388821592330138 0.8063997049248823 +1.339334514380992 0.8049412824184455 +1.3397868695289705 0.8078415650430191 +1.3402392246769486 0.8103672558371956 +1.340691579824927 0.8054477274465 +1.3411439349729053 0.8071995037617679 +1.3415962901208836 0.8032120503184456 +1.3420486452688623 0.805134102691236 +1.3425010004168403 0.8019336050281929 +1.3429533555648185 0.8030172130377592 +1.343405710712797 0.7982488206533511 +1.3438580658607753 0.7988734586121186 +1.3443104210087538 0.7976308807833228 +1.3447627761567318 0.799110196695108 +1.3452151313047103 0.8013593133809165 +1.3456674864526885 0.7941519770023959 +1.3461198416006668 0.7955522264850086 +1.3465721967486455 0.7927365920150141 +1.3470245518966237 0.7938719511636816 +1.3474769070446018 0.7924863168298374 +1.3479292621925802 0.7939581136544543 +1.3483816173405585 0.7824149509500475 +1.348833972488537 0.7852192691149109 +1.3492863276365155 0.7862589725532568 +1.3497386827844935 0.7825358952525738 +1.3501910379324717 0.7843763160382785 +1.35064339308045 0.7772870655537002 +1.3510957482284287 0.777314792635694 +1.351548103376407 0.7752930813649883 +1.352000458524385 0.7741413129492071 +1.3524528136723635 0.7673734789064074 +1.3529051688203417 0.7680348549596642 +1.3533575239683202 0.7684564327339409 +1.3538098791162987 0.768092666060954 +1.3542622342642767 0.7675415316640811 +1.354714589412255 0.7662127732951787 +1.3551669445602332 0.7676374981064958 +1.355619299708212 0.7505245402421784 +1.3560716548561902 0.7535854217433224 +1.3565240100041682 0.7530534804632022 +1.3569763651521467 0.750423840116202 +1.357428720300125 0.7489104214306167 +1.3578810754481034 0.7482949308834047 +1.358333430596082 0.7427283898426325 +1.35878578574406 0.7419416625421928 +1.3592381408920382 0.7390401842395916 +1.3596904960400165 0.7373799481477172 +1.3601428511879952 0.7348073192078987 +1.3605952063359734 0.7456870212926165 +1.3610475614839517 0.7426092613132889 +1.36149991663193 0.7521934214685215 +1.3619522717799082 0.7513100917968427 +1.3624046269278867 0.7477284936293507 +1.3628569820758651 0.747944970823692 +1.3633093372238434 0.7481856667153114 +1.3637616923718214 0.7564371856273021 +1.3642140475198 0.7563867913065572 +1.3646664026677784 0.7588608344975509 +1.3651187578157566 0.7596472359609183 +1.365571112963735 0.7545514882380919 +1.3660234681117132 0.7553223193125644 +1.3664758232596914 0.7621966944408437 +1.36692817840767 0.7607249515292483 +1.3673805335556484 0.7688672551106954 +1.3678328887036266 0.7670322447374923 +1.3682852438516047 0.7670018156602271 +1.3687375989995831 0.7690536784397157 +1.3691899541475616 0.7695187263161845 +1.3696423092955399 0.7729389409433253 +1.3700946644435184 0.7723222941113603 +1.3705470195914964 0.7749856623289836 +1.3709993747394746 0.7757199639590137 +1.3714517298874531 0.7752169018041509 +1.3719040850354316 0.7764504104003869 +1.3723564401834099 0.767755103025573 +1.3728087953313879 0.7717116755470861 +1.3732611504793664 0.7759035136468659 +1.3737135056273448 0.7655795178148034 +1.374165860775323 0.7707773736315906 +1.3746182159233016 0.7569087485926539 +1.3750705710712798 0.7636985897091703 +1.3755229262192579 0.7551378535036803 +1.3759752813672363 0.760610619493154 +1.3764276365152148 0.7382728417370533 +1.376879991663193 0.7429516218018775 +1.3773323468111713 0.746593483567533 +1.3777847019591496 0.7407438829572331 +1.378237057107128 0.7428895319159321 +1.3786894122551063 0.7332311684086424 +1.3791417674030848 0.7325257700469312 +1.379594122551063 0.7359383678915001 +1.380046477699041 0.733944415206685 +1.3804988328470196 0.7450463071622963 +1.380951187994998 0.7426328744789427 +1.3814035431429763 0.7459072232245149 +1.3818558982909546 0.7455184304820165 +1.3823082534389328 0.7438852028638763 +1.3827606085869113 0.7541578279049557 +1.3832129637348896 0.7514030572243944 +1.383665318882868 0.7596601478940137 +1.3841176740308463 0.7586166030085885 +1.3845700291788243 0.7685754211214353 +1.385022384326803 0.7671141174644882 +1.3854747394747813 0.7653997390869722 +1.3859270946227595 0.7680423355281556 +1.3863794497707378 0.7673969862141784 +1.386831804918716 0.7690504341192831 +1.3872841600666945 0.7675363262900727 +1.3877365152146728 0.7756845194378029 +1.3881888703626513 0.7759698572901386 +1.3886412255106295 0.7745519782995838 +1.3890935806586078 0.7778620133745653 +1.3895459358065863 0.7723992709898669 +1.3899982909545645 0.7756320321851936 +1.3904506461025428 0.7659683946328951 +1.390903001250521 0.7666647927890512 +1.3913553563984995 0.7654268522998098 +1.3918077115464778 0.7800653112204782 +1.392260066694456 0.7780020137134432 +1.3927124218424345 0.7807678075174667 +1.3931647769904127 0.7795048270751924 +1.393617132138391 0.7734697217412438 +1.3940694872863695 0.7745275079613364 +1.3945218424343477 0.7738475057545802 +1.394974197582326 0.7732455706651197 +1.3954265527303045 0.7798604152206754 +1.3958789078782827 0.77667108365579 +1.396331263026261 0.7749846421687452 +1.3967836181742392 0.7830070619588005 +1.3972359733222177 0.7820612688541364 +1.397688328470196 0.7821495620707172 +1.3981406836181742 0.781923472093177 +1.3985930387661527 0.7740998413025691 +1.399045393914131 0.7739348224951037 +1.3994977490621092 0.785355429214237 +1.3999501042100877 0.7819512734175269 +1.400402459358066 0.7884876027968772 +1.4008548145060442 0.787230810033942 +1.4013071696540225 0.7867718314324335 +1.401759524802001 0.7863222211393008 +1.4022118799499792 0.786884499528681 +1.4026642350979575 0.7859847537804187 +1.403116590245936 0.7858981129122665 +1.4035689453939142 0.7819307854227574 +1.4040213005418924 0.7801126573001522 +1.404473655689871 0.795876737903494 +1.4049260108378492 0.7931800777920331 +1.4053783659858274 0.7918424393285151 +1.405830721133806 0.792027327238016 +1.4062830762817842 0.7902842777521003 +1.4067354314297624 0.8006999475390393 +1.4071877865777407 0.7994996897700243 +1.4076401417257192 0.7991244608258059 +1.4080924968736974 0.7994857804809413 +1.4085448520216757 0.8031518922145707 +1.4089972071696542 0.8023522195890804 +1.4094495623176324 0.8078134695717522 +1.4099019174656107 0.8062599507736229 +1.4103542726135891 0.8050682043935399 +1.4108066277615674 0.8050292405874591 +1.4112589829095457 0.8038601840901913 +1.411711338057524 0.8053557667333796 +1.4121636932055024 0.8044952572652793 +1.4126160483534806 0.8020429006779812 +1.413068403501459 0.8013515599603055 +1.4135207586494374 0.8059811578539907 +1.4139731137974156 0.8033123596314428 +1.4144254689453941 0.8074897172065328 +1.4148778240933724 0.8066253247346481 +1.4153301792413506 0.8047053131203353 +1.4157825343893289 0.8049310188489305 +1.4162348895373074 0.8040189599455606 +1.4166872446852858 0.8054431384587852 +1.4171395998332639 0.8045298040165421 +1.4175919549812421 0.8039625587886206 +1.4180443101292206 0.803430489137931 +1.4184966652771989 0.8081573839188662 +1.4189490204251773 0.8056976325535836 +1.4194013755731556 0.8051906586919217 +1.4198537307211339 0.8083903381026102 +1.4203060858691121 0.8069957990006457 +1.4207584410170906 0.8080066991981208 +1.421210796165069 0.8081320058409708 +1.421663151313047 0.8081580353385845 +1.4221155064610254 0.808159191417691 +1.4225678616090038 0.8096380749446384 +1.423020216756982 0.8096800116748132 +1.4234725719049606 0.8109474344233747 +1.4239249270529388 0.8107676976959101 +1.424377282200917 0.8104973881445943 +1.4248296373488953 0.8119234653134189 +1.4252819924968738 0.8122887580255717 +1.4257343476448523 0.8121717984992115 +1.4261867027928303 0.8121804173697028 +1.4266390579408088 0.8123935987789414 +1.427091413088787 0.812001910189727 +1.4275437682367653 0.8141608118661849 +1.4279961233847438 0.8139167998514819 +1.4284484785327223 0.8143257477539653 +1.4289008336807003 0.814301139577631 +1.4293531888286786 0.8143378782932714 +1.429805543976657 0.8155263962259656 +1.4302578991246355 0.8151523438825166 +1.4307102542726138 0.8156960122523594 +1.431162609420592 0.8159287841772792 +1.4316149645685703 0.8180805997992795 +1.4320673197165485 0.8172454917856907 +1.432519674864527 0.8188094779699623 +1.4329720300125055 0.8184082477159754 +1.4334243851604835 0.8177763094806519 +1.4338767403084618 0.8188655133308644 +1.4343290954564403 0.8181475744457473 +1.4347814506044188 0.8206484654308932 +1.435233805752397 0.8206630003510706 +1.4356861609003753 0.820336477780584 +1.4361385160483535 0.820165067430777 +1.4365908711963318 0.820575133019328 +1.4370432263443105 0.8201574537002962 +1.4374955814922887 0.8227683157244635 +1.4379479366402668 0.823009284149378 +1.438400291788245 0.8227089305031838 +1.4388526469362235 0.8229293463607358 +1.439305002084202 0.8230069610562878 +1.4397573572321802 0.8213982134582432 +1.4402097123801585 0.821547878993663 +1.4406620675281367 0.8222285060706007 +1.441114422676115 0.8216918390901405 +1.4415667778240937 0.8228445573542611 +1.442019132972072 0.8213306811373545 +1.4424714881200502 0.8231261512012052 +1.4429238432680283 0.8222924987883323 +1.4433761984160067 0.8218499858278251 +1.4438285535639852 0.8222241629143706 +1.4442809087119635 0.8223065073058966 +1.444733263859942 0.8205521604228707 +1.44518561900792 0.8197235173594214 +1.4456379741558982 0.8207883339706394 +1.446090329303877 0.8205032496581941 +1.4465426844518552 0.8203732118360827 +1.4469950395998334 0.8200139127741521 +1.4474473947478115 0.8192820931789084 +1.44789974989579 0.8184578706914717 +1.4483521050437684 0.8183652691277312 +1.4488044601917467 0.8169294911985848 +1.4492568153397252 0.8166752559131705 +1.4497091704877032 0.8161918990291411 +1.4501615256356815 0.8154585898244607 +1.4506138807836602 0.8160879552146375 +1.4510662359316384 0.8151131901887537 +1.4515185910796167 0.8134600667974355 +1.451970946227595 0.8129284799472294 +1.4524233013755732 0.8130757457619492 +1.4528756565235517 0.8115937151678564 +1.45332801167153 0.8104965052740839 +1.4537803668195084 0.808655165837974 +1.4542327219674867 0.8080070609264584 +1.4546850771154647 0.8059166035991858 +1.4551374322634434 0.8061207044876498 +1.4555897874114216 0.8033987704209412 +1.4560421425594 0.8034373794830182 +1.4564944977073784 0.8021097985008532 +1.4569468528553564 0.8024410863909849 +1.457399208003335 0.802677473329394 +1.4578515631513134 0.7992622348959894 +1.4583039182992916 0.798922129656909 +1.4587562734472699 0.7963614963068519 +1.459208628595248 0.7965873786161096 +1.4596609837432266 0.7941904049353262 +1.4601133388912049 0.7938595306137366 +1.4605656940391831 0.7928292338839643 +1.4610180491871616 0.7932453040483728 +1.4614704043351396 0.7943856953813371 +1.4619227594831181 0.7950949237636883 +1.4623751146310966 0.7954425653539147 +1.4628274697790749 0.794868101487531 +1.463279824927053 0.796213554789424 +1.4637321800750311 0.7938015735826738 +1.4641845352230098 0.7951229993259923 +1.464636890370988 0.7936016720164524 +1.4650892455189664 0.7949759336615321 +1.4655416006669448 0.7941845921426972 +1.4659939558149229 0.7955263894647575 +1.4664463109629013 0.7965995188507458 +1.4668986661108798 0.7953111775011712 +1.467351021258858 0.7967665765656794 +1.4678033764068363 0.7960963836538497 +1.4682557315548146 0.7969098236936744 +1.468708086702793 0.7976606065771784 +1.4691604418507713 0.7982502318164141 +1.4696127969987496 0.79850066237172 +1.470065152146728 0.7988394044627678 +1.4705175072947063 0.7995352777502625 +1.4709698624426846 0.7993363522352144 +1.471422217590663 0.7996364245549771 +1.4718745727386413 0.7994433262031301 +1.4723269278866196 0.8004284814482968 +1.472779283034598 0.8011413766639582 +1.4732316381825763 0.8018523196314207 +1.4736839933305546 0.8000221530184828 +1.4741363484785328 0.800682571536357 +1.4745887036265113 0.8008274169724332 +1.4750410587744895 0.8021325371093788 +1.4754934139224678 0.8023747284426618 +1.4759457690704463 0.8025122908793948 +1.4763981242184245 0.8027446327442651 +1.4768504793664028 0.8035861768784092 +1.4773028345143813 0.8038720251461458 +1.4777551896623595 0.8046839495005799 +1.4782075448103378 0.8053785011319171 +1.478659899958316 0.8059652516340498 +1.4791122551062945 0.8056937865628292 +1.4795646102542728 0.8067537832090983 +1.480016965402251 0.8075918028362584 +1.4804693205502295 0.8074113458520642 +1.4809216756982078 0.8088253149944182 +1.481374030846186 0.8099108305043231 +1.4818263859941645 0.8111021325385289 +1.4822787411421428 0.8106321612408778 +1.482731096290121 0.8116581920209083 +1.4831834514380995 0.8116386192856757 +1.4836358065860777 0.813786503107131 +1.484088161734056 0.8140448474592636 +1.4845405168820343 0.8145086540999585 +1.4849928720300127 0.8145800640776278 +1.485445227177991 0.8151362879998197 +1.4858975823259692 0.8165177392525768 +1.4863499374739477 0.8173725469900142 +1.486802292621926 0.8184857484470314 +1.4872546477699042 0.8185031781085993 +1.4877070029178827 0.8192061369853753 +1.488159358065861 0.8197317116746602 +1.4886117132138392 0.8204359344335515 +1.4890640683618175 0.8215485185569699 +1.489516423509796 0.8215032724794256 +1.4899687786577742 0.8228609067706308 +1.4904211338057525 0.8227033800259517 +1.490873488953731 0.8265817021572165 +1.4913258441017092 0.8126271701175898 +1.4917781992496875 0.8131561761695094 +1.492230554397666 0.8133687671892613 +1.4926829095456442 0.8140478979850865 +1.4931352646936225 0.814764345815195 +1.493587619841601 0.8151357106745973 +1.4940399749895792 0.8156706871067478 +1.4944923301375574 0.8164329680701065 +1.4949446852855357 0.8158959573626977 +1.4953970404335142 0.8174869389326311 +1.4958493955814924 0.8167744038517217 +1.4963017507294707 0.8171134021873381 +1.4967541058774492 0.8168278279905844 +1.4972064610254274 0.8177233158120498 +1.4976588161734057 0.8178807311768643 +1.4981111713213842 0.8182772069475683 +1.4985635264693624 0.8176126042865706 +1.4990158816173407 0.8183175598172434 +1.499468236765319 0.8192705648363408 +1.4999205919132974 0.818367342488661 +1.5003729470612757 0.8187143920497651 +1.500825302209254 0.8184033609852515 +1.5012776573572324 0.8192497364682565 +1.5017300125052107 0.8175473853275895 +1.502182367653189 0.8181424802788659 +1.5026347228011674 0.8178018541080315 +1.5030870779491456 0.819308378801066 +1.503539433097124 0.8197535314636011 +1.5039917882451024 0.8178190555360249 +1.5044441433930806 0.8190600072633394 +1.504896498541059 0.8168506267463396 +1.5053488536890371 0.8182177475366927 +1.5058012088370156 0.8177232713800057 +1.5062535639849939 0.8175650322691852 +1.5067059191329721 0.8156877670205186 +1.5071582742809506 0.8159823747148571 +1.5076106294289289 0.8148693308395508 +1.5080629845769071 0.8158280829032427 +1.5085153397248856 0.8174499067916579 +1.5089676948728639 0.8143774753108423 +1.5094200500208421 0.8145989054250721 +1.5098724051688204 0.8127744588460344 +1.5103247603167989 0.8139657111604841 +1.510777115464777 0.8131064186029836 +1.5112294706127554 0.8124436853269646 +1.5116818257607338 0.8108020030266617 +1.512134180908712 0.8116513102881836 +1.5125865360566904 0.8114502133709458 +1.5130388912046688 0.8106723065787262 +1.513491246352647 0.8104992815461243 +1.5139436015006253 0.8088672970486063 +1.5143959566486038 0.8086387078688483 +1.514848311796582 0.8064596919087217 +1.5153006669445603 0.8077047438692497 +1.5157530220925386 0.8065258991686144 +1.516205377240517 0.8074731801631266 +1.5166577323884953 0.8048094286899666 +1.5171100875364736 0.8054511559071708 +1.517562442684452 0.8055403482116654 +1.5180147978324303 0.8039726477042238 +1.5184671529804086 0.808669312386268 +1.518919508128387 0.8039297721112605 +1.5193718632763653 0.8034049111649523 +1.5198242184243436 0.802611488142839 +1.5202765735723218 0.802839407605726 +1.5207289287203003 0.8030671895772751 +1.5211812838682786 0.8026368047811032 +1.5216336390162568 0.8013004922870313 +1.5220859941642353 0.8021029163540279 +1.5225383493122135 0.8024949367419572 +1.5229907044601918 0.8027352812486503 +1.5234430596081703 0.7998129353418445 +1.5238954147561485 0.8011959895810936 +1.5243477699041268 0.8008779240682025 +1.524800125052105 0.8009120762676012 +1.5252524802000835 0.8012857021426555 +1.5257048353480618 0.8007953690739078 +1.52615719049604 0.8009992023982373 +1.5266095456440185 0.8012615590910792 +1.5270619007919968 0.8024201817656295 +1.527514255939975 0.8001031784778716 +1.5279666110879535 0.8004760777038836 +1.5284189662359318 0.8006510908136927 +1.52887132138391 0.8009249965499531 +1.5293236765318885 0.8004651194014941 +1.5297760316798668 0.8004243055372755 +1.530228386827845 0.8008752619414294 +1.5306807419758233 0.8007979605551857 +1.5311330971238017 0.801023135677719 +1.53158545227178 0.8012619360425977 +1.5320378074197583 0.8021692119677002 +1.5324901625677367 0.8019190440944887 +1.532942517715715 0.8012885222783008 +1.5333948728636932 0.8025067514393666 +1.5338472280116717 0.8022402799197423 +1.53429958315965 0.8025353223615057 +1.5347519383076282 0.8024526149054719 +1.5352042934556065 0.8034542891689229 +1.535656648603585 0.8025152318291434 +1.5361090037515632 0.8028806736282327 +1.5365613588995415 0.8035312867037381 +1.53701371404752 0.8041777689021944 +1.5374660691954982 0.8038819764801529 +1.5379184243434765 0.803170022778237 +1.538370779491455 0.8043619717377433 +1.5388231346394332 0.8042804433427629 +1.5392754897874115 0.8044894502052877 +1.53972784493539 0.8035602900447852 +1.5401802000833682 0.8046392468727097 +1.5406325552313465 0.8046516804795074 +1.5410849103793247 0.8043343455403478 +1.5415372655273032 0.8046058268094363 +1.5419896206752814 0.8052466983168789 +1.5424419758232597 0.8058576146779528 +1.5428943309712382 0.8044356869142981 +1.5433466861192164 0.8049568239036903 +1.5437990412671947 0.803998251415085 +1.5442513964151732 0.8053097825235817 +1.5447037515631514 0.8038325556817014 +1.5451561067111297 0.8043773793678572 +1.545608461859108 0.8053305067825742 +1.5460608170070864 0.8036146861462864 +1.5465131721550647 0.8043815546444251 +1.546965527303043 0.8038642135869988 +1.5474178824510214 0.8054172685081743 +1.5478702375989997 0.8033273037983357 +1.548322592746978 0.8037550363208397 +1.5487749478949564 0.8028509903814931 +1.5492273030429347 0.8034295418180243 +1.549679658190913 0.8022754375193526 +1.5501320133388914 0.8029560838650701 +1.5505843684868696 0.8032055642830936 +1.551036723634848 0.8013779895563995 +1.5514890787828262 0.8025339318599396 +1.5519414339308046 0.8003487355173003 +1.552393789078783 0.8010943167295139 +1.5528461442267611 0.7995422435522347 +1.5532984993747396 0.7995572897989917 +1.5537508545227179 0.7974471051943915 +1.5542032096706961 0.798298398281369 +1.5546555648186746 0.7986618438656589 +1.5551079199666529 0.7979785344435305 +1.5555602751146311 0.7990131875793088 +1.5560126302626094 0.796137846937231 +1.5564649854105879 0.7963060590996863 +1.5569173405585661 0.7938727660745799 +1.5573696957065444 0.7953190936237737 +1.5578220508545229 0.7932275808298125 +1.5582744060025011 0.7941020124658873 +1.5587267611504794 0.7913514145936515 +1.5591791162984578 0.792012178768676 +1.559631471446436 0.7930458490035731 +1.5600838265944144 0.7920791410594563 +1.5605361817423928 0.791884947769439 +1.560988536890371 0.7891637917857963 +1.5614408920383493 0.7903191569139798 +1.5618932471863276 0.788065951571342 +1.562345602334306 0.7891165081992899 +1.5627979574822843 0.7867685514622645 +1.5632503126302626 0.7871903651360764 +1.563702667778241 0.7863697161827868 +1.5641550229262193 0.7863034304411205 +1.5646073780741976 0.7869494033993536 +1.565059733222176 0.7860068629682548 +1.5655120883701543 0.7863793868836915 +1.5659644435181326 0.784713197542766 +1.5664167986661108 0.7849600596313928 +1.5668691538140893 0.782878419728969 +1.5673215089620676 0.7844400716492649 +1.5677738641100458 0.7832857278273423 +1.5682262192580243 0.7841609999322041 +1.5686785744060026 0.784961060293167 +1.5691309295539808 0.7828033273764353 +1.5695832847019593 0.783226038448471 +1.5700356398499375 0.7820990066005571 +1.5704879949979158 0.7825784619619442 +1.5709403501458943 0.7828372920399407 +1.5713927052938725 0.7824144364341932 +1.5718450604418508 0.7820816939931063 +1.572297415589829 0.7821041587953823 +1.5727497707378075 0.7822721666620736 +1.5732021258857858 0.7825319529738699 +1.573654481033764 0.7828245893343931 +1.5741068361817425 0.7822906892398546 +1.5745591913297208 0.7827043855792328 +1.575011546477699 0.7823841329884874 +1.5754639016256775 0.7833881044083991 +1.5759162567736558 0.7826986541309462 +1.576368611921634 0.7825367174796076 +1.5768209670696123 0.7826243142429118 +1.5772733222175908 0.7832682551061694 +1.577725677365569 0.7835146197580142 +1.5781780325135473 0.7841847880303504 +1.5786303876615257 0.7846384096209591 +1.579082742809504 0.7844092739907351 +1.5795350979574823 0.7852003965006807 +1.5799874531054607 0.7853220176356206 +1.580439808253439 0.7855140485355903 +1.5808921634014172 0.7867122025722522 +1.5813445185493955 0.78685812688562 +1.581796873697374 0.7878621826322838 +1.5822492288453522 0.7887361420655985 +1.5827015839933305 0.788568215529943 +1.583153939141309 0.7893885476340458 +1.5836062942892872 0.79038491872604 +1.5840586494372655 0.7909880105461228 +1.584511004585244 0.7919251162848248 +1.5849633597332222 0.7920212042414353 +1.5854157148812005 0.7927813743939625 +1.585868070029179 0.7934700495397311 +1.5863204251771572 0.7940746677890956 +1.5867727803251355 0.794926031546474 +1.5872251354731137 0.7959026284379584 +1.5876774906210922 0.7966423508649279 +1.5881298457690705 0.798875945202319 +1.5885822009170487 0.7989946033509177 +1.5890345560650272 0.7997959597874386 +1.5894869112130054 0.8004003544028865 +1.5899392663609837 0.8024955523847281 +1.5903916215089622 0.8023033171099732 +1.5908439766569404 0.803276924719187 +1.5912963318049187 0.8043553233791316 +1.591748686952897 0.8052147047544047 +1.5922010421008754 0.8059755507803203 +1.5926533972488537 0.8060053528523803 +1.593105752396832 0.8076294681919287 +1.5935581075448104 0.808649407388425 +1.5940104626927887 0.8099347384808421 +1.594462817840767 0.8100996224778715 +1.5949151729887454 0.811992799218328 +1.5953675281367237 0.8111933958422022 +1.595819883284702 0.8135829867275178 +1.5962722384326804 0.8137589141359964 +1.5967245935806587 0.8146603693698863 +1.597176948728637 0.8159860082357259 +1.5976293038766152 0.8154746527077069 +1.5980816590245936 0.8156773835140534 +1.598534014172572 0.817039672484301 +1.5989863693205502 0.8174364723145406 +1.5994387244685286 0.81941578608852 +1.599891079616507 0.8195014894999315 +1.6003434347644852 0.8199146412174834 +1.6007957899124636 0.81985942394447 +1.6012481450604419 0.821079492311608 +1.6017005002084201 0.8207374663378958 +1.6021528553563984 0.8208793496307948 +1.6026052105043769 0.821175755231762 +1.6030575656523551 0.8207763940335832 +1.6035099208003334 0.8221332339479508 +1.6039622759483119 0.8216521596230235 +1.6044146310962901 0.8218471728281688 +1.6048669862442684 0.82133791279735 +1.6053193413922469 0.8222139902546729 +1.6057716965402251 0.8213357413807922 +1.6062240516882034 0.8202612494155445 +1.6066764068361818 0.8221178306083486 +1.60712876198416 0.8214520433355179 +1.6075811171321384 0.8215920297074029 +1.6080334722801166 0.8188278831009767 +1.608485827428095 0.8190532945245752 +1.6089381825760734 0.8165174262355 +1.6093905377240516 0.817596476362454 +1.60984289287203 0.815350909059357 +1.6102952480200083 0.8150354207953912 +1.6107476031679866 0.8152174913460765 +1.611199958315965 0.8118420192831194 +1.6116523134639433 0.8122342220886309 +1.6121046686119216 0.8099515303858115 +1.6125570237598998 0.8100245669891983 +1.6130093789078783 0.8045532747757287 +1.6134617340558566 0.8055269245869385 +1.6139140892038348 0.7993594879540791 +1.6143664443518133 0.799997784913748 +1.6148187994997916 0.792787366556463 +1.6152711546477698 0.7941230465734967 +1.6157235097957483 0.7938012192066342 +1.6161758649437266 0.7841824817597027 +1.6166282200917048 0.7846641974738648 +1.6170805752396833 0.7775090275890777 +1.6175329303876615 0.7779777215249729 +1.6179852855356398 0.764584419924338 +1.618437640683618 0.7646842581000439 +1.6188899958315965 0.7485862888187156 +1.6193423509795748 0.7489405991480682 +1.619794706127553 0.7355654392835524 +1.6202470612755315 0.7355993818650082 +1.6206994164235098 0.736096003155938 +1.621151771571488 0.7050216888642076 +1.6216041267194665 0.7054649720762728 +1.6220564818674448 0.6823517265019124 +1.622508837015423 0.6829847252868991 +1.6229611921634013 0.6514138618142288 +1.6234135473113798 0.6515429187008848 +1.623865902459358 0.6117609132584892 +1.6243182576073363 0.6125866623277618 +1.6247706127553148 0.6131715952013359 +1.625222967903293 0.5902143513012453 +1.6256753230512713 0.5904237106822332 +1.6261276781992497 0.5393855660185155 +1.626580033347228 0.5398986412462439 +1.6270323884952063 0.49982113986454557 +1.6274847436431847 0.49909396745371454 +1.627937098791163 0.4565485306562065 +1.6283894539391413 0.4558661698466149 +1.6288418090871195 0.41583176307552816 +1.629294164235098 0.4149385233943291 +1.6297465193830762 0.4154363046796031 +1.6301988745310545 0.3869193706988458 +1.630651229679033 0.3875247323472696 +1.6311035848270112 0.33797876117474457 +1.6315559399749895 0.3376769027006694 +1.632008295122968 0.3110331558328847 +1.6324606502709462 0.31001374602965986 +1.6329130054189245 0.2918556923475617 +1.6333653605669027 0.2922476266142688 +1.6338177157148812 0.2891043087055897 +1.6342700708628595 0.2557595040940585 +1.6347224260108377 0.25642144103202474 +1.6351747811588162 0.2310866169095357 +1.6356271363067945 0.23139208663420216 +1.6360794914547727 0.2157570448668743 +1.6365318466027512 0.21651410948592312 +1.6369842017507295 0.19566308425310897 +1.6374365568987077 0.19571041272615786 +1.637888912046686 0.18560408861641203 +1.6383412671946644 0.18604941052934826 +1.6387936223426427 0.18549844311704292 +1.639245977490621 0.16604640816391567 +1.6396983326385994 0.1661120707824396 +1.640150687786578 0.15184279615849447 +1.640603042934556 0.15128947678188567 +1.6410553980825344 0.1428897616641379 +1.6415077532305127 0.14307605442265797 +1.641960108378491 0.13143562706199227 +1.6424124635264696 0.13101473939619493 +1.6428648186744477 0.12208763056610467 +1.643317173822426 0.12187656637090717 +1.6437695289704042 0.12288519920893863 +1.6442218841183827 0.11303049074930475 +1.6446742392663611 0.1140868412776458 +1.6451265944143392 0.10648909563652671 +1.6455789495623176 0.10719174999593883 +1.646031304710296 0.10197733555623621 +1.6464836598582742 0.10203059813087625 +1.6469360150062529 0.09351309223001464 +1.647388370154231 0.09419296317791355 +1.6478407253022092 0.09425411816682824 +1.6482930804501874 0.08844738129209845 +1.6487454355981659 0.08852278470443574 +1.6491977907461444 0.08498403249618983 +1.6496501458941224 0.08553618026267279 +1.6501025010421009 0.07956579032949454 +1.6505548561900794 0.0790624588609538 +1.6510072113380574 0.07571206605620757 +1.651459566486036 0.07682722921312504 +1.6519119216340141 0.07237003731289934 +1.6523642767819924 0.0724779353934494 +1.652816631929971 0.07238716643642253 +1.6532689870779491 0.0682695520129291 +1.6537213422259276 0.0692504767937696 +1.6541736973739056 0.06588999725753829 +1.654626052521884 0.06618298382588746 +1.6550784076698626 0.06312681494287807 +1.6555307628178406 0.06247526085079916 +1.6559831179658193 0.06061930706882378 +1.6564354731137974 0.06121785840992664 +1.6568878282617756 0.058320027279746445 +1.6573401834097543 0.05734622649259138 +1.6577925385577323 0.057291908010157835 +1.6582448937057108 0.05508580172589407 +1.6586972488536889 0.05552973391202461 +1.6591496040016673 0.05389162827606465 +1.6596019591496458 0.05386386553443928 +1.6600543142976238 0.05081369655609439 +1.6605066694456025 0.0497695288830324 +1.6609590245935806 0.04812303196082162 +1.6614113797415588 0.048533414750257055 +1.6618637348895375 0.047873165399366584 +1.6623160900375156 0.0470938763646672 +1.662768445185494 0.047300951970151786 +1.6632208003334723 0.0438672565056881 +1.6636731554814506 0.04388961993388451 +1.664125510629429 0.04183282967503366 +1.664577865777407 0.041616944272429304 +1.6650302209253858 0.03983610120722594 +1.6654825760733638 0.03927749827414944 +1.665934931221342 0.03728262941205966 +1.6663872863693208 0.03733351834516636 +1.6668396415172988 0.03787697618116499 +1.6672919966652773 0.03691294113944295 +1.6677443518132555 0.035879095554396126 +1.668196706961234 0.0339468820044997 +1.6686490621092123 0.034417145672620976 +1.6691014172571903 0.03270837295183074 +1.669553772405169 0.03199489079548527 +1.670006127553147 0.03035821514392859 +1.6704584827011255 0.030124410539155922 +1.670910837849104 0.02867100568935622 +1.671363192997082 0.028382977369709534 +1.6718155481450605 0.027897024896525492 +1.6722679032930388 0.027250817275566462 +1.6727202584410172 0.026932495950746937 +1.6731726135889955 0.024489430417301786 +1.6736249687369738 0.024373178765771754 +1.6740773238849522 0.023206283394034563 +1.6745296790329303 0.02298974992782825 +1.6749820341809087 0.022545920764127897 +1.6754343893288872 0.022313033008818747 +1.6758867444768653 0.02281332721783607 +1.6763390996248437 0.020780332268609217 +1.676791454772822 0.020017772469430418 +1.6772438099208005 0.018915640363321964 +1.6776961650687787 0.01937669937061007 +1.678148520216757 0.018167499600736253 +1.6786008753647355 0.018187121367469614 +1.6790532305127135 0.017062043164486052 +1.679505585660692 0.016691406923308547 +1.6799579408086704 0.016676349195960352 +1.6804102959566485 0.015926377865015016 +1.680862651104627 0.015902265463307814 +1.6813150062526052 0.01529863798468609 +1.6817673614005837 0.014653434471086921 +1.682219716548562 0.014245340799255289 +1.6826720716965402 0.014007017702797116 +1.6831244268445187 0.01354050478498797 +1.6835767819924967 0.013267029297832475 +1.6840291371404754 0.012412388535981464 +1.6844814922884537 0.012346695047732741 +1.6849338474364317 0.011365386035026554 +1.6853862025844102 0.011327174479817266 +1.6858385577323884 0.011435636460140206 +1.686290912880367 0.010497867069883912 +1.6867432680283452 0.01111915914994469 +1.6871956231763234 0.009914971362174566 +1.687647978324302 0.010539923281328306 +1.68810033347228 0.009778004345858701 +1.6885526886202586 0.009998389987951236 +1.689005043768237 0.00875892692825984 +1.689457398916215 0.009284324156696775 +1.6899097540641934 0.008188840090605222 +1.6903621092121717 0.007735505692052966 +1.6908144643601501 0.008559477416116575 +1.6912668195081284 0.007823925919715018 +1.6917191746561067 0.007341293285653628 +1.6921715298040851 0.006830773418781479 +1.6926238849520632 0.007268347480951657 +1.6930762401000419 0.006356977181158408 +1.6935285952480204 0.006678023300935216 +1.6939809503959984 0.005730164880998559 +1.6944333055439769 0.006074519334814097 +1.694885660691955 0.006171783146184631 +1.6953380158399334 0.0060348767150116105 +1.6957903709879119 0.006255043105280792 +1.69624272613589 0.005183708325970688 +1.6966950812838684 0.005391594098102751 +1.6971474364318464 0.005141334533802911 +1.697599791579825 0.004863636478207935 +1.6980521467278036 0.005151906210815816 +1.6985045018757816 0.005062785066009764 +1.69895685702376 0.004006410020696952 +1.6994092121717381 0.004924218194668104 +1.6998615673197166 0.004069417855090604 +1.700313922467695 0.0043151861910722305 +1.7007662776156733 0.003937846628510935 +1.7012186327636516 0.004322559339835224 +1.7016709879116296 0.003971730330243926 +1.7021233430596083 0.0032883509687976625 +1.7025756982075868 0.0036095522777792742 +1.7030280533555648 0.0039130476512144454 +1.7034804085035433 0.0033520459171408217 +1.7039327636515214 0.0034500399170389177 +1.7043851187994998 0.0035396120581816137 +1.7048374739474785 0.003263049987759202 +1.7052898290954566 0.003779364130064016 +1.7057421842434348 0.002669910940708459 +1.7061945393914129 0.0034362748729794253 +1.7066468945393916 0.0031829145314699182 +1.70709924968737 0.0035841609698352133 +1.707551604835348 0.0025385267677196788 +1.7080039599833265 0.0022750516536457124 +1.7084563151313046 0.003205453099936621 +1.708908670279283 0.0028270249245395634 +1.7093610254272618 0.0022611857617190236 +1.7098133805752398 0.0020634467387126705 +1.710265735723218 0.002155566399514602 +1.710718090871196 0.00251543208785314 +1.7111704460191748 0.0022640832963340828 +1.7116228011671533 0.0024343317121512894 +1.7120751563151313 0.001972916577249438 +1.7125275114631098 0.0023550154471838627 +1.7129798666110878 0.001686839305472624 +1.7134322217590663 0.002079723627857767 +1.713884576907045 0.001965290077135839 +1.714336932055023 0.001806862833510736 +1.7147892872030013 0.0018061344776961871 +1.7152416423509793 0.001616528645526164 +1.715693997498958 0.002118022681334582 +1.7161463526469365 0.001831676691181145 +1.7165987077949145 0.0012472418954504795 +1.717051062942893 0.0015164751526579132 +1.717503418090871 0.0016305752502222442 +1.7179557732388495 0.0023937661504016884 +1.7184081283868282 0.0023921034571123766 +1.7188604835348062 0.0012151200844303758 +1.7193128386827847 0.002315194287061003 +1.7197651938307628 0.0020781278737106645 +1.7202175489787412 0.001441542249778817 +1.7206699041267197 0.0010019545369643293 +1.7211222592746978 0.0017139225423430345 +1.7215746144226765 0.0012598572687423477 +1.7220269695706545 0.000850590210157023 +1.7224793247186327 0.0009709818433004745 +1.7229316798666114 0.0009051153223464888 +1.7233840350145895 0.0012461088929780894 +1.723836390162568 0.0013504336557146827 +1.7242887453105462 0.0007838441382840686 +1.7247411004585245 0.0019228238142737772 +1.725193455606503 0.0007000471252729554 +1.725645810754481 0.0 +1.7260981659024597 0.0 +1.7265505210504377 0.0 +1.727002876198416 0.0 +1.7274552313463947 0.0 +1.7279075864943727 0.0 +1.7283599416423512 0.0 +1.7288122967903294 0.0 +1.7292646519383077 0.0 +1.7297170070862862 0.0 +1.7301693622342644 0.0 +1.730621717382243 0.0 +1.731074072530221 0.0 +1.7315264276781992 0.0 +1.731978782826178 0.0 +1.732431137974156 0.0 +1.7328834931221344 0.0 +1.7333358482701127 0.0 +1.733788203418091 0.0 +1.7342405585660694 0.0 +1.7346929137140477 0.0 +1.7351452688620261 0.0 +1.7355976240100042 0.0 +1.7360499791579824 0.0 +1.7365023343059611 0.0 +1.7369546894539392 0.0 +1.7374070446019176 0.0 +1.737859399749896 0.0 +1.7383117548978742 0.0 +1.7387641100458526 0.0 +1.7392164651938309 0.0 +1.7396688203418094 0.0 +1.7401211754897874 0.0 +1.7405735306377659 0.0 +1.7410258857857444 0.0 +1.7414782409337224 0.0 +1.7419305960817009 0.0 +1.7423829512296791 0.0 +1.7428353063776574 0.0 +1.7432876615256359 0.0 +1.7437400166736141 0.0 +1.7441923718215926 0.0 +1.7446447269695706 0.0 +1.745097082117549 0.0 +1.7455494372655276 0.0 +1.7460017924135056 0.0 +1.7464541475614843 0.0 +1.7469065027094623 0.0 +1.7473588578574408 0.0 +1.747811213005419 0.0 +1.7482635681533973 0.0 +1.7487159233013758 0.0 +1.7491682784493539 0.0 +1.7496206335973326 0.0 +1.7500729887453108 0.0 +1.7505253438932888 0.0 +1.7509776990412675 0.0 +1.7514300541892456 0.0 +1.751882409337224 0.0 +1.7523347644852023 0.0 +1.7527871196331806 0.0 +1.753239474781159 0.0 diff --git a/DREAMS/TER_atmosphere.dat b/DREAMS/TER_atmosphere.dat new file mode 100644 index 00000000..a471871f --- /dev/null +++ b/DREAMS/TER_atmosphere.dat @@ -0,0 +1,359 @@ +# date_created : 2023-03-21 +# location : Sidling spring +# wavelength_unit : nm +# emission_unit : ph s-1 m-2 um-1 arcsec-2 +# action : transmission +# Details : http://www.gemini.edu/sciops/ObsProcess/obsConstraints/atm-models/trans_30_10.dat +# +wavelength transmission emission +1161.0 0.924793 0.1 +1161.5 0.939469 0.1 +1162.0 0.935235 0.1 +1162.5 0.940330 0.1 +1163.0 0.967153 0.1 +1163.5 0.963672 0.1 +1164.0 0.962931 0.1 +1164.5 0.968273 0.1 +1165.0 0.949592 0.1 +1165.5 0.934222 0.1 +1166.0 0.940428 0.1 +1166.5 0.953383 0.1 +1167.0 0.959292 0.1 +1167.5 0.968087 0.1 +1168.0 0.967105 0.1 +1168.5 0.966740 0.1 +1169.0 0.973188 0.1 +1169.5 0.975666 0.1 +1170.0 0.976777 0.1 +1170.5 0.970486 0.1 +1171.0 0.971351 0.1 +1171.5 0.978771 0.1 +1172.0 0.974734 0.1 +1172.5 0.969387 0.1 +1173.0 0.968874 0.1 +1173.5 0.950085 0.1 +1174.0 0.926160 0.1 +1174.5 0.950492 0.1 +1175.0 0.970293 0.1 +1175.5 0.969632 0.1 +1176.0 0.985673 0.1 +1176.5 0.992625 0.1 +1177.0 0.976347 0.1 +1177.5 0.939686 0.1 +1178.0 0.939704 0.1 +1178.5 0.967125 0.1 +1179.0 0.977988 0.1 +1179.5 0.963961 0.1 +1180.0 0.970498 0.1 +1180.5 0.984841 0.1 +1181.0 0.973231 0.1 +1181.5 0.931265 0.1 +1182.0 0.901812 0.1 +1182.5 0.940128 0.1 +1183.0 0.97894 0.1 +1183.5 0.983834 0.1 +1184.0 0.963308 0.1 +1184.5 0.942425 0.1 +1185.0 0.948056 0.1 +1185.5 0.974568 0.1 +1186.0 0.985875 0.1 +1186.5 0.981767 0.1 +1187.0 0.971953 0.1 +1187.5 0.946152 0.1 +1188.0 0.927766 0.1 +1188.5 0.942206 0.1 +1189.0 0.966158 0.1 +1189.5 0.97845 0.1 +1190.0 0.98131 0.1 +1190.5 0.975805 0.1 +1191.0 0.976528 0.1 +1191.5 0.981461 0.1 +1192.0 0.98515 0.1 +1192.5 0.989246 0.1 +1193.0 0.980573 0.1 +1193.5 0.969614 0.1 +1194.0 0.980815 0.1 +1194.5 0.985875 0.1 +1195.0 0.979645 0.1 +1195.5 0.975587 0.1 +1196.0 0.978874 0.1 +1196.5 0.984236 0.1 +1197.0 0.983552 0.1 +1197.5 0.974215 0.1 +1198.0 0.976686 0.1 +1198.5 0.965804 0.1 +1199.0 0.953592 0.1 +1199.5 0.969139 0.1 +1200.0 0.979289 0.1 +1200.5 0.977727 0.1 +1201.0 0.973854 0.1 +1201.5 0.96744 0.1 +1202.0 0.96946 0.1 +1202.5 0.98217 0.1 +1203.0 0.974242 0.1 +1203.5 0.938635 0.1 +1204.0 0.931655 0.1 +1204.5 0.961394 0.1 +1205.0 0.96694 0.1 +1205.5 0.979921 0.1 +1206.0 0.988763 0.1 +1206.5 0.981954 0.1 +1207.0 0.975657 0.1 +1207.5 0.97462 0.1 +1208.0 0.974888 0.1 +1208.5 0.976584 0.1 +1209.0 0.974079 0.1 +1209.5 0.975023 0.1 +1210.0 0.980829 0.1 +1210.5 0.988011 0.1 +1211.0 0.979813 0.1 +1211.5 0.970395 0.1 +1212.0 0.975829 0.1 +1212.5 0.981656 0.1 +1213.0 0.989676 0.1 +1213.5 0.989908 0.1 +1214.0 0.981482 0.1 +1214.5 0.97762 0.1 +1215.0 0.979185 0.1 +1215.5 0.985892 0.1 +1216.0 0.991672 0.1 +1216.5 0.988323 0.1 +1217.0 0.988118 0.1 +1217.5 0.992453 0.1 +1218.0 0.990045 0.1 +1218.5 0.988053 0.1 +1219.0 0.985249 0.1 +1219.5 0.986161 0.1 +1220.0 0.988808 0.1 +1220.5 0.991329 0.1 +1221.0 0.991927 0.1 +1221.5 0.985437 0.1 +1222.0 0.984916 0.1 +1222.5 0.98675 0.1 +1223.0 0.98793 0.1 +1223.5 0.988101 0.1 +1224.0 0.989341 0.1 +1224.5 0.992705 0.1 +1225.0 0.993683 0.1 +1225.5 0.99338 0.1 +1226.0 0.994528 0.1 +1226.5 0.992313 0.1 +1227.0 0.988305 0.1 +1227.5 0.991586 0.1 +1228.0 0.996353 0.1 +1228.5 0.99734 0.1 +1229.0 0.996037 0.1 +1229.5 0.995 0.1 +1230.0 0.996146 0.1 +1230.5 0.998058 0.1 +1231.0 0.998798 0.1 +1231.5 0.998681 0.1 +1232.0 0.99861 0.1 +1232.5 0.997529 0.1 +1233.0 0.996024 0.1 +1233.5 0.996784 0.1 +1234.0 0.998865 0.1 +1234.5 0.999455 0.1 +1235.0 0.999224 0.1 +1235.5 0.999201 0.1 +1236.0 0.999391 0.1 +1236.5 0.998944 0.1 +1237.0 0.998798 0.1 +1237.5 0.999424 0.1 +1238.0 0.999618 0.1 +1238.5 0.999606 0.1 +1239.0 0.999781 0.1 +1239.5 0.99993 0.1 +1240.0 0.999797 0.1 +1240.5 0.999385 0.1 +1241.0 0.99935 0.1 +1241.5 0.999734 0.1 +1242.0 0.999924 0.1 +1242.5 0.999974 0.1 +1243.0 0.999987 0.1 +1243.5 0.999939 0.1 +1244.0 0.999773 0.1 +1244.5 0.999739 0.1 +1245.0 0.999856 0.1 +1245.5 0.999907 0.1 +1246.0 0.999909 0.1 +1246.5 0.999764 0.1 +1247.0 0.999769 0.1 +1247.5 0.999678 0.1 +1248.0 0.999199 0.1 +1248.5 0.999371 0.1 +1249.0 0.999458 0.1 +1249.5 0.998813 0.1 +1250.0 0.999102 0.1 +1250.5 0.999015 0.1 +1251.0 0.997745 0.1 +1251.5 0.998324 0.1 +1252.0 0.99845 0.1 +1252.5 0.996314 0.1 +1253.0 0.997153 0.1 +1253.5 0.997924 0.1 +1254.0 0.994379 0.1 +1254.5 0.994844 0.1 +1255.0 0.997322 0.1 +1255.5 0.993264 0.1 +1256.0 0.992223 0.1 +1256.5 0.996706 0.1 +1257.0 0.993291 0.1 +1257.5 0.988848 0.1 +1258.0 0.994142 0.1 +1258.5 0.993098 0.1 +1259.0 0.984481 0.1 +1259.5 0.986507 0.1 +1260.0 0.987911 0.1 +1260.5 0.976332 0.1 +1261.0 0.96995 0.1 +1261.5 0.97284 0.1 +1262.0 0.964341 0.1 +1262.5 0.951234 0.1 +1263.0 0.952896 0.1 +1263.5 0.952426 0.1 +1264.0 0.940197 0.1 +1264.5 0.937113 0.1 +1265.0 0.94514 0.1 +1265.5 0.94353 0.1 +1266.0 0.935879 0.1 +1266.5 0.944456 0.1 +1267.0 0.956846 0.1 +1267.5 0.957313 0.1 +1268.0 0.92053 0.1 +1268.5 0.827965 0.1 +1269.0 0.807267 0.1 +1269.5 0.886275 0.1 +1270.0 0.948279 0.1 +1270.5 0.969009 0.1 +1271.0 0.972691 0.1 +1271.5 0.972872 0.1 +1272.0 0.970527 0.1 +1272.5 0.970182 0.1 +1273.0 0.970524 0.1 +1273.5 0.974835 0.1 +1274.0 0.971955 0.1 +1274.5 0.974446 0.1 +1275.0 0.976771 0.1 +1275.5 0.982604 0.1 +1276.0 0.979863 0.1 +1276.5 0.980001 0.1 +1277.0 0.984974 0.1 +1277.5 0.988458 0.1 +1278.0 0.989417 0.1 +1278.5 0.987455 0.1 +1279.0 0.99239 0.1 +1279.5 0.99362 0.1 +1280.0 0.992737 0.1 +1280.5 0.992026 0.1 +1281.0 0.994972 0.1 +1281.5 0.997955 0.1 +1282.0 0.996923 0.1 +1282.5 0.995505 0.1 +1283.0 0.997479 0.1 +1283.5 0.998524 0.1 +1284.0 0.99736 0.1 +1284.5 0.995762 0.1 +1285.0 0.997514 0.1 +1285.5 0.999254 0.1 +1286.0 0.998899 0.1 +1286.5 0.997613 0.1 +1287.0 0.997433 0.1 +1287.5 0.998147 0.1 +1288.0 0.997244 0.1 +1288.5 0.994733 0.1 +1289.0 0.993903 0.1 +1289.5 0.996418 0.1 +1290.0 0.997936 0.1 +1290.5 0.998285 0.1 +1291.0 0.997258 0.1 +1291.5 0.993251 0.1 +1292.0 0.991921 0.1 +1292.5 0.995091 0.1 +1293.0 0.99726 0.1 +1293.5 0.997584 0.1 +1294.0 0.996804 0.1 +1294.5 0.99684 0.1 +1295.0 0.995199 0.1 +1295.5 0.991666 0.1 +1296.0 0.991817 0.1 +1296.5 0.992422 0.1 +1297.0 0.987373 0.1 +1297.5 0.985714 0.1 +1298.0 0.991971 0.1 +1298.5 0.996272 0.1 +1299.0 0.994008 0.1 +1299.5 0.985871 0.1 +1300.0 0.982165 0.1 +1300.5 0.978732 0.1 +1301.0 0.980889 0.1 +1301.5 0.990831 0.1 +1302.0 0.993541 0.1 +1302.5 0.986085 0.1 +1303.0 0.976738 0.1 +1303.5 0.965915 0.1 +1304.0 0.955407 0.1 +1304.5 0.962769 0.1 +1305.0 0.985006 0.1 +1305.5 0.98931 0.1 +1306.0 0.982626 0.1 +1306.5 0.961445 0.1 +1307.0 0.960899 0.1 +1307.5 0.974298 0.1 +1308.0 0.967194 0.1 +1308.5 0.975655 0.1 +1309.0 0.981421 0.1 +1309.5 0.955877 0.1 +1310.0 0.941234 0.1 +1310.5 0.94841 0.1 +1311.0 0.971694 0.1 +1311.5 0.98802 0.1 +1312.0 0.974471 0.1 +1312.5 0.959905 0.1 +1313.0 0.949271 0.1 +1313.5 0.924982 0.1 +1314.0 0.93072 0.1 +1314.5 0.950727 0.1 +1315.0 0.953239 0.1 +1315.5 0.955262 0.1 +1316.0 0.969497 0.1 +1316.5 0.966207 0.1 +1317.0 0.947109 0.1 +1317.5 0.966528 0.1 +1318.0 0.963793 0.1 +1318.5 0.938209 0.1 +1319.0 0.936239 0.1 +1319.5 0.933048 0.1 +1320.0 0.906022 0.1 +1320.5 0.917669 0.1 +1321.0 0.942001 0.1 +1321.5 0.935802 0.1 +1322.0 0.947142 0.1 +1322.5 0.936449 0.1 +1323.0 0.91291 0.1 +1323.5 0.925838 0.1 +1324.0 0.931362 0.1 +1324.5 0.948152 0.1 +1325.0 0.958899 0.1 +1325.5 0.939779 0.1 +1326.0 0.949633 0.1 +1326.5 0.950142 0.1 +1327.0 0.927565 0.1 +1327.5 0.925407 0.1 +1328.0 0.902933 0.1 +1328.5 0.860525 0.1 +1329.0 0.860352 0.1 +1329.5 0.899508 0.1 +1330.0 0.910738 0.1 +1330.5 0.890063 0.1 +1331.0 0.841053 0.1 +1331.5 0.807372 0.1 +1332.0 0.804376 0.1 +1332.5 0.821738 0.1 +1333.0 0.870898 0.1 +1333.5 0.847962 0.1 +1334.0 0.834253 0.1 +1334.5 0.886711 0.1 +1335.0 0.904685 0.1 + + diff --git a/DREAMS/TER_mirror.dat b/DREAMS/TER_mirror.dat new file mode 100644 index 00000000..bd8459df --- /dev/null +++ b/DREAMS/TER_mirror.dat @@ -0,0 +1,22 @@ +# author : Anjali Shivani Reddy +# Assumption: Assuming that telescope has reflectivity of 85% +# date_created : 2024-04-02 +# status : Dreams mirrors +# type : mirror:reflection +# wavelength_unit : um +# +wavelength reflection +0.4 0.85 +0.5 0.85 +0.6 0.85 +0.7 0.85 +0.8 0.85 +0.9 0.85 +1.0 0.85 +1.1 0.85 +1.2 0.85 +1.3 0.85 +1.4 0.85 +1.5 0.85 +1.6 0.85 +1.7 0.85 \ No newline at end of file diff --git a/DREAMS/default.yaml b/DREAMS/default.yaml new file mode 100644 index 00000000..56bb6574 --- /dev/null +++ b/DREAMS/default.yaml @@ -0,0 +1,44 @@ +--- +### default observation parameters needed for DREAMS simulation +object : configuration +alias : OBS +name : DREAMS_default_configuration +description : default parameters needed for the DREAMS simulation + + +packages: + - DREAMS + +yamls : + - DREAMS.yaml + - DREAMS_InGaAs.yaml +properties : + airmass : 1.2 + declination : -31.273 + hour_angle : 0 + pupil_angle : 0 + dit : 10 + ndit : 1 + filter_name : !OBS.filter_name + sky : + bg_mag : 14.5 + filter_name : !OBS.filter_name + +--- +### default simulation parameters needed for DREAMS simulation +object : simulation +alias : SIM +name : LFAO_simulation_paramters +description : RC simulation paramters + +properties : + random : + seed : 9001 + + spectral : + wave_min : 1.17 + wave_mid : 1.42 + wave_max : 1.67 + + computing : + preload_field_of_view : False diff --git a/DREAMS/filters/H.dat b/DREAMS/filters/H.dat new file mode 100644 index 00000000..7a445e31 --- /dev/null +++ b/DREAMS/filters/H.dat @@ -0,0 +1,367 @@ +# source : Generic_Bessell.I SVO +# wavelength_unit : angstrom +# download_date : 2020-05-23 +wavelength transmission +14900.0 0.90802 +14905.0 0.958796 +14910.0 0.913225 +14915.0 0.849135 +14920.0 0.884093 +14925.0 0.915954 +14930.0 0.928744 +14935.0 0.949936 +14940.0 0.945656 +14945.0 0.927238 +14950.0 0.900331 +14955.0 0.895292 +14960.0 0.898208 +14965.0 0.900709 +14970.0 0.943867 +14975.0 0.955807 +14980.0 0.932836 +14985.0 0.944357 +14990.0 0.954788 +14995.0 0.954577 +15000.0 0.970904 +15005.0 0.985127 +15009.9 0.986479 +15015.0 0.973983 +15020.0 0.96211 +15025.0 0.957062 +15029.9 0.942257 +15035.0 0.916619 +15040.0 0.893669 +15045.0 0.906644 +15049.9 0.93975 +15055.0 0.973944 +15060.0 0.987869 +15065.0 0.993428 +15069.9 0.986808 +15075.0 0.981119 +15080.0 0.964471 +15085.0 0.927070 +15089.9 0.928636 +15095.0 0.970236 +15100.0 0.986694 +15105.0 0.985894 +15109.9 0.986642 +15115.0 0.989801 +15120.0 0.987493 +15125.0 0.978365 +15129.9 0.976059 +15135.0 0.97338 +15140.0 0.971952 +15145.0 0.980061 +15149.9 0.987342 +15155.0 0.991995 +15160.0 0.985098 +15165.0 0.977038 +15169.9 0.977478 +15175.0 0.978418 +15180.0 0.983991 +15185.0 0.984922 +15189.9 0.980764 +15195.0 0.985204 +15200.0 0.990749 +15205.0 0.992445 +15209.9 0.99613 +15215.0 0.994892 +15220.0 0.993991 +15225.0 0.997639 +15230.0 0.998183 +15235.0 0.996923 +15240.0 0.995911 +15245.0 0.992753 +15250.0 0.992698 +15255.0 0.992474 +15260.0 0.991742 +15265.0 0.991178 +15270.0 0.990807 +15275.0 0.993021 +15280.0 0.996219 +15285.0 0.996003 +15290.0 0.995775 +15295.0 0.995845 +15300.0 0.995311 +15305.0 0.995772 +15310.0 0.994481 +15315.0 0.993689 +15320.0 0.996246 +15325.0 0.996974 +15330.0 0.996282 +15335.0 0.995132 +15340.0 0.993863 +15345.0 0.992836 +15350.0 0.991561 +15355.0 0.992123 +15360.0 0.993688 +15365.0 0.994914 +15370.0 0.99542 +15375.0 0.996934 +15380.0 0.998167 +15385.0 0.9973 +15390.0 0.995481 +15395.0 0.994804 +15400.0 0.995068 +15405.0 0.994998 +15410.0 0.995093 +15415.0 0.995186 +15420.0 0.995262 +15425.0 0.996167 +15430.0 0.997174 +15435.0 0.997792 +15440.0 0.997405 +15445.0 0.997537 +15450.0 0.998712 +15455.0 0.998904 +15460.0 0.998787 +15465.0 0.999114 +15470.0 0.999524 +15475.0 0.99966 +15480.0 0.999717 +15485.0 0.999892 +15490.0 0.999952 +15495.0 0.999882 +15500.0 0.999877 +15505.0 0.999828 +15510.0 0.999648 +15515.0 0.999403 +15520.0 0.999029 +15525.0 0.999389 +15530.0 0.999835 +15535.0 0.9999 +15540.0 0.999712 +15545.0 0.99966 +15550.0 0.999874 +15555.0 0.999949 +15560.0 0.999817 +15565.0 0.999734 +15570.0 0.999882 +15575.0 0.99994 +15580.0 0.999821 +15585.0 0.999696 +15590.0 0.99973 +15595.0 0.999773 +15600.0 0.999786 +15605.0 0.999804 +15610.0 0.999806 +15615.0 0.999774 +15620.0 0.999318 +15625.0 0.999153 +15630.0 0.999566 +15634.9 0.999677 +15640.0 0.999438 +15645.0 0.999379 +15650.0 0.999713 +15654.9 0.99973 +15660.0 0.999565 +15665.0 0.999507 +15670.0 0.999153 +15674.9 0.998277 +15680.0 0.996639 +15685.0 0.993974 +15690.0 0.989486 +15694.9 0.98305 +15700.0 0.975111 +15705.0 0.966649 +15710.0 0.958776 +15714.9 0.952716 +15720.0 0.949206 +15725.0 0.948576 +15730.0 0.950842 +15734.9 0.956052 +15740.0 0.964453 +15745.0 0.975439 +15750.0 0.986076 +15754.9 0.988766 +15760.0 0.981985 +15765.0 0.973708 +15770.0 0.967999 +15774.9 0.965006 +15780.0 0.964174 +15785.0 0.964856 +15790.0 0.96689 +15794.9 0.969905 +15800.0 0.973248 +15805.0 0.976749 +15810.0 0.980261 +15814.9 0.983573 +15820.0 0.986629 +15825.0 0.989165 +15830.0 0.991148 +15834.9 0.993291 +15840.0 0.995228 +15845.0 0.996487 +15850.0 0.997388 +15855.0 0.998035 +15860.0 0.998226 +15865.0 0.998353 +15870.0 0.99852 +15875.0 0.999009 +15880.0 0.99961 +15885.0 0.999815 +15890.0 0.999873 +15895.0 0.999829 +15900.0 0.999595 +15905.0 0.999555 +15910.0 0.999641 +15915.0 0.999378 +15920.0 0.999227 +15925.0 0.999295 +15930.0 0.999629 +15935.0 0.999744 +15940.0 0.999343 +15945.0 0.999103 +15950.0 0.999475 +15955.0 0.999602 +15960.0 0.999202 +15965.0 0.998788 +15970.0 0.998282 +15975.0 0.997717 +15980.0 0.996794 +15985.0 0.994339 +15990.0 0.990353 +15995.0 0.984755 +16000.0 0.977766 +16005.0 0.970019 +16010.0 0.962395 +16015.0 0.95587 +16020.0 0.951126 +16025.0 0.949181 +16030.0 0.950146 +16035.0 0.953717 +16040.0 0.960126 +16045.0 0.969381 +16050.0 0.98064 +16055.0 0.989396 +16060.0 0.98851 +16065.0 0.980511 +16070.0 0.972859 +16075.0 0.967694 +16080.0 0.964677 +16085.0 0.963717 +16090.0 0.964531 +16095.0 0.966216 +16100.0 0.96848 +16105.0 0.971398 +16110.0 0.975001 +16115.0 0.97864 +16120.0 0.982068 +16125.0 0.985199 +16130.0 0.987864 +16135.0 0.990343 +16140.0 0.992741 +16145.0 0.994346 +16150.0 0.995406 +16155.0 0.996206 +16160.0 0.996663 +16165.0 0.996765 +16170.0 0.99718 +16175.0 0.997865 +16180.0 0.998152 +16185.0 0.998036 +16190.0 0.998189 +16195.0 0.998875 +16200.0 0.999207 +16205.0 0.999199 +16210.0 0.999169 +16215.0 0.999207 +16220.0 0.999327 +16225.0 0.999408 +16230.0 0.999407 +16235.0 0.999141 +16240.0 0.998969 +16245.0 0.999267 +16250.0 0.999352 +16255.0 0.999022 +16259.9 0.998794 +16265.0 0.998993 +16270.0 0.998813 +16275.0 0.998566 +16279.9 0.998311 +16285.0 0.998206 +16290.0 0.998681 +16295.0 0.998966 +16299.9 0.998134 +16305.0 0.996627 +16310.0 0.997419 +16315.0 0.998483 +16319.9 0.998122 +16325.0 0.996479 +16330.0 0.995497 +16335.0 0.996833 +16339.9 0.998097 +16345.0 0.997933 +16350.0 0.995308 +16355.0 0.993438 +16359.9 0.996261 +16365.0 0.997731 +16370.0 0.996135 +16375.0 0.990789 +16379.9 0.99119 +16385.0 0.996058 +16390.0 0.996186 +16395.0 0.993223 +16400.0 0.986465 +16405.0 0.984192 +16410.0 0.99106 +16415.0 0.99367 +16420.0 0.992093 +16425.0 0.984065 +16430.0 0.978558 +16435.0 0.987738 +16440.0 0.994092 +16445.0 0.994839 +16450.0 0.987458 +16455.0 0.976427 +16460.0 0.98537 +16465.0 0.995292 +16470.0 0.996081 +16475.0 0.991804 +16480.0 0.981326 +16485.0 0.980932 +16490.0 0.989585 +16495.0 0.992634 +16500.0 0.992504 +16505.0 0.984313 +16510.0 0.976919 +16515.0 0.986775 +16520.0 0.994091 +16525.0 0.996391 +16530.0 0.993693 +16535.0 0.983716 +16540.0 0.985604 +16545.0 0.995338 +16550.0 0.997057 +16555.0 0.996474 +16560.0 0.994213 +16565.0 0.990891 +16570.0 0.993737 +16575.0 0.997352 +16580.0 0.998644 +16585.0 0.998632 +16590.0 0.996879 +16595.0 0.995637 +16600.0 0.997682 +16605.0 0.99915 +16610.0 0.998298 +16615.0 0.996932 +16620.0 0.99522 +16625.0 0.994924 +16630.0 0.997324 +16635.0 0.998011 +16640.0 0.998667 +16645.0 0.996788 +16650.0 0.979618 +16655.0 0.948488 +16660.0 0.945662 +16665.0 0.966614 +16670.0 0.983386 +16675.0 0.992919 +16680.0 0.996386 +16685.0 0.996785 +16690.0 0.997608 +16695.0 0.998402 +16700.0 0.998608 + + diff --git a/DREAMS/filters/I.dat b/DREAMS/filters/I.dat new file mode 100644 index 00000000..2fbe0590 --- /dev/null +++ b/DREAMS/filters/I.dat @@ -0,0 +1,29 @@ +# source : Generic_Bessell.I SVO +# wavelength_unit : angstrom +# download_date : 2020-05-23 +wavelength transmission +7000.0 0.0000000000 +7100.0 0.0240000000 +7200.0 0.2320000000 +7300.0 0.5550000000 +7400.0 0.7850000000 +7500.0 0.9100000000 +7600.0 0.9650000000 +7700.0 0.9850000000 +7800.0 0.9900000000 +7900.0 0.9950000000 +8000.0 1.0000000000 +8100.0 1.0000000000 +8200.0 0.9900000000 +8300.0 0.9800000000 +8400.0 0.9500000000 +8500.0 0.9100000000 +8600.0 0.8600000000 +8700.0 0.7500000000 +8800.0 0.5600000000 +8900.0 0.3300000000 +9000.0 0.1500000000 +9100.0 0.0300000000 +9200.0 0.0000000000 + + diff --git a/DREAMS/filters/J.dat b/DREAMS/filters/J.dat new file mode 100644 index 00000000..2bc87cd8 --- /dev/null +++ b/DREAMS/filters/J.dat @@ -0,0 +1,341 @@ +# source : Generic_Bessell.I SVO +# wavelength_unit : angstrom +# download_date : 2020-05-23 +wavelength transmission +11610.0 0.924793 +11615.0 0.939469 +11620.0 0.935235 +11625.0 0.940330 +11630.0 0.967153 +11635.0 0.963672 +11640.0 0.962931 +11645.0 0.968273 +11700.0 0.976777 +11705.0 0.970486 +11710.0 0.971351 +11715.0 0.978771 +11720.0 0.974734 +11725.0 0.969387 +11730.0 0.968874 +11735.0 0.950085 +11740.0 0.926160 +11745.0 0.950492 +11750.0 0.970293 +11755.0 0.969632 +11760.0 0.985673 +11765.0 0.992625 +11770.0 0.976347 +11775.0 0.939686 +11780.0 0.939704 +11785.0 0.967125 +11790.0 0.977988 +11795.0 0.963961 +11800.0 0.970498 +11805.0 0.984841 +11810.0 0.973231 +11815.0 0.931265 +11820.0 0.901812 +11825.0 0.940128 +11830.0 0.97894 +11835.0 0.983834 +11840.0 0.963308 +11845.0 0.942425 +11850.0 0.948056 +11855.0 0.974568 +11860.0 0.985875 +11865.0 0.981767 +11870.0 0.971953 +11875.0 0.946152 +11880.0 0.927766 +11885.0 0.942206 +11890.0 0.966158 +11895.0 0.97845 +11900.0 0.98131 +11905.0 0.975805 +11910.0 0.976528 +11915.0 0.981461 +11920.0 0.98515 +11925.0 0.989246 +11930.0 0.980573 +11935.0 0.969614 +11940.0 0.980815 +11945.0 0.985875 +11950.0 0.979645 +11955.0 0.975587 +11960.0 0.978874 +11965.0 0.984236 +11970.0 0.983552 +11975.0 0.974215 +11980.0 0.976686 +11985.0 0.965804 +11990.0 0.953592 +11995.0 0.969139 +12000.0 0.979289 +12005.0 0.977727 +12010.0 0.973854 +12015.0 0.96744 +12020.0 0.96946 +12025.0 0.98217 +12030.0 0.974242 +12035.0 0.938635 +12040.0 0.931655 +12045.0 0.961394 +12050.0 0.96694 +12055.0 0.979921 +12060.0 0.988763 +12065.0 0.981954 +12070.0 0.975657 +12075.0 0.97462 +12080.0 0.974888 +12085.0 0.976584 +12090.0 0.974079 +12095.0 0.975023 +12100.0 0.980829 +12105.0 0.988011 +12110.0 0.979813 +12115.0 0.970395 +12120.0 0.975829 +12125.0 0.981656 +12130.0 0.989676 +12135.0 0.989908 +12140.0 0.981482 +12145.0 0.97762 +12150.0 0.979185 +12155.0 0.985892 +12160.0 0.991672 +12165.0 0.988323 +12170.0 0.988118 +12175.0 0.992453 +12180.0 0.990045 +12185.0 0.988053 +12190.0 0.985249 +12195.0 0.986161 +12200.0 0.988808 +12205.0 0.991329 +12210.0 0.991927 +12215.0 0.985437 +12220.0 0.984916 +12225.0 0.98675 +12230.0 0.98793 +12235.0 0.988101 +12240.0 0.989341 +12245.0 0.992705 +12250.0 0.993683 +12255.0 0.99338 +12260.0 0.994528 +12265.0 0.992313 +12270.0 0.988305 +12275.0 0.991586 +12280.0 0.996353 +12285.0 0.99734 +12290.0 0.996037 +12295.0 0.995 +12300.0 0.996146 +12305.0 0.998058 +12310.0 0.998798 +12315.0 0.998681 +12320.0 0.99861 +12325.0 0.997529 +12330.0 0.996024 +12335.0 0.996784 +12340.0 0.998865 +12345.0 0.999455 +12350.0 0.999224 +12355.0 0.999201 +12360.0 0.999391 +12365.0 0.998944 +12370.0 0.998798 +12375.0 0.999424 +12380.0 0.999618 +12385.0 0.999606 +12390.0 0.999781 +12395.0 0.99993 +12400.0 0.999797 +12405.0 0.999385 +12410.0 0.999350 +12415.0 0.999734 +12420.0 0.999924 +12425.0 0.999974 +12430.0 0.999987 +12435.0 0.999939 +12440.0 0.999773 +12445.0 0.999739 +12450.0 0.999856 +12455.0 0.999907 +12460.0 0.999909 +12465.0 0.999764 +12470.0 0.999769 +12475.0 0.999678 +12480.0 0.999199 +12485.0 0.999371 +12490.0 0.999458 +12495.0 0.998813 +12500.0 0.999102 +12505.0 0.999015 +12510.0 0.997745 +12515.0 0.998324 +12520.0 0.99845 +12525.0 0.996314 +12530.0 0.997153 +12535.0 0.997924 +12540.0 0.994379 +12545.0 0.994844 +12550.0 0.997322 +12555.0 0.993264 +12560.0 0.992223 +12565.0 0.996706 +12570.0 0.993291 +12575.0 0.988848 +12580.0 0.994142 +12585.0 0.993098 +12590.0 0.984481 +12595.0 0.986507 +12600.0 0.987911 +12605.0 0.976332 +12610.0 0.96995 +12615.0 0.97284 +12620.0 0.964341 +12625.0 0.951234 +12630.0 0.952896 +12635.0 0.952426 +12640.0 0.940197 +12645.0 0.937113 +12650.0 0.94514 +12655.0 0.94353 +12660.0 0.935879 +12665.0 0.944456 +12670.0 0.956846 +12675.0 0.957313 +12680.0 0.92053 +12685.0 0.827965 +12690.0 0.807267 +12695.0 0.886275 +12700.0 0.948279 +12705.0 0.969009 +12710.0 0.972691 +12715.0 0.972872 +12720.0 0.970527 +12725.0 0.970182 +12730.0 0.970524 +12735.0 0.974835 +12740.0 0.971955 +12745.0 0.974446 +12750.0 0.976771 +12755.0 0.982604 +12760.0 0.979863 +12765.0 0.980001 +12770.0 0.984974 +12775.0 0.988458 +12780.0 0.989417 +12785.0 0.987455 +12790.0 0.99239 +12795.0 0.99362 +12800.0 0.992737 +12805.0 0.992026 +12810.0 0.994972 +12815.0 0.997955 +12820.0 0.996923 +12825.0 0.995505 +12830.0 0.997479 +12835.0 0.998524 +12840.0 0.99736 +12845.0 0.995762 +12850.0 0.997514 +12855.0 0.999254 +12860.0 0.998899 +12865.0 0.997613 +12870.0 0.997433 +12875.0 0.998147 +12880.0 0.997244 +12885.0 0.994733 +12890.0 0.993903 +12895.0 0.996418 +12900.0 0.997936 +12905.0 0.998285 +12910.0 0.997258 +12915.0 0.993251 +12920.0 0.991921 +12925.0 0.995091 +12930.0 0.99726 +12935.0 0.997584 +12940.0 0.996804 +12945.0 0.99684 +12950.0 0.995199 +12955.0 0.991666 +12960.0 0.991817 +12965.0 0.992422 +12970.0 0.987373 +12975.0 0.985714 +12980.0 0.991971 +12985.0 0.996272 +12990.0 0.994008 +12995.0 0.985871 +13000.0 0.982165 +13005.0 0.978732 +13010.0 0.980889 +13015.0 0.990831 +13020.0 0.993541 +13025.0 0.986085 +13030.0 0.976738 +13035.0 0.965915 +13040.0 0.955407 +13045.0 0.962769 +13050.0 0.985006 +13055.0 0.98931 +13060.0 0.982626 +13065.0 0.961445 +13070.0 0.960899 +13075.0 0.974298 +13080.0 0.967194 +13085.0 0.975655 +13090.0 0.981421 +13095.0 0.955877 +13100.0 0.941234 +13105.0 0.94841 +13110.0 0.971694 +13115.0 0.98802 +13120.0 0.974471 +13125.0 0.959905 +13130.0 0.949271 +13135.0 0.924982 +13140.0 0.93072 +13145.0 0.950727 +13150.0 0.953239 +13155.0 0.955262 +13160.0 0.969497 +13165.0 0.966207 +13170.0 0.947109 +13175.0 0.966528 +13180.0 0.963793 +13185.0 0.938209 +13190.0 0.936239 +13195.0 0.933048 +13200.0 0.906022 +13205.0 0.917669 +13210.0 0.942001 +13215.0 0.935802 +13220.0 0.947142 +13225.0 0.936449 +13230.0 0.91291 +13235.0 0.925838 +13240.0 0.931362 +13245.0 0.948152 +13250.0 0.958899 +13255.0 0.939779 +13260.0 0.949633 +13265.0 0.950142 +13270.0 0.927565 +13275.0 0.925407 +13280.0 0.902933 +13285.0 0.860525 +13290.0 0.860352 +13295.0 0.899508 +13300.0 0.910738 +13305.0 0.890063 +13310.0 0.841053 +13315.0 0.807372 +13320.0 0.804376 +13325.0 0.821738 +13330.0 0.870898 + + From 7504a8b30c835da438bb8cc3e11f9f142ad76307 Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Wed, 7 Aug 2024 09:36:01 +1000 Subject: [PATCH 02/36] Add test scripts --- DREAMS/Test_codes/LMC.py | 75 +++++++++++++++++++ DREAMS/Test_codes/gal.py | 85 ++++++++++++++++++++++ DREAMS/Test_codes/star_1.py | 84 ++++++++++++++++++++++ DREAMS/Test_codes/testt.py | 140 ++++++++++++++++++++++++++++++++++++ 4 files changed, 384 insertions(+) create mode 100644 DREAMS/Test_codes/LMC.py create mode 100644 DREAMS/Test_codes/gal.py create mode 100644 DREAMS/Test_codes/star_1.py create mode 100644 DREAMS/Test_codes/testt.py diff --git a/DREAMS/Test_codes/LMC.py b/DREAMS/Test_codes/LMC.py new file mode 100644 index 00000000..4fc2fcf1 --- /dev/null +++ b/DREAMS/Test_codes/LMC.py @@ -0,0 +1,75 @@ +#cluster in the LMC +import os +import pytest +import numpy as np +from astropy.io.fits import HDUList +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim +import synphot +from scopesim import Source +from astropy.io import fits + + +from scopesim import rc +from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp +from scopesim.optics.fov_manager import FOVManager + +PLOTS = True + +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/Desktop" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +cmds = scopesim.UserCommands(use_instrument="DREAMS") +cmds["!OBS.dit"] = 1000 +cmds["!OBS.ndit"] = 1000 +cmds["!DET.bin_size"] = 1 +cmds["!OBS.sky.bg_mag"] = 14.9 +cmds["!OBS.sky.filter_name"] = "J" +cmds["SIM.sub_pixel.flag"] = True +dreams = scopesim.OpticalTrain(cmds) +dreams["detector_linearity"].include = False +dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +# Then make the initial field of view 10 times larges than normal. +dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec +dreams.fov_manager.volumes_list[0]["x_max"] = 18000 +dreams.fov_manager.volumes_list[0]["y_min"] = -18000 +dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +# Finally, shrink the field of view to the detector size. +dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + +print("scopesim package loaded successfully.") +src = sim_tp.stellar.clusters.cluster(mass=1000, distance=50000, core_radius=500, seed=9002) + +dreams.observe(src, update=False) +print("yessss anjali") +hdus = dreams.readout() +#dreams.readout(filename="Han.fits") +plt.subplot(121) +wave = np.arange(3000, 11000) +plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +plt.subplot(122) +im = hdus[0][1].data +# detector_order = [2, 1, 4, 3, 6, 5] +detector_order = [1, 2, 3, 4, 5, 6] +plt.figure(figsize=(20, 20)) +for plot_number, hdu_number in enumerate(detector_order, 1): + plt.subplot(3, 2, plot_number) + plt.imshow(hdus[0][hdu_number].data, norm=LogNorm(), cmap="hot") + plt.colorbar() + +plt.show() diff --git a/DREAMS/Test_codes/gal.py b/DREAMS/Test_codes/gal.py new file mode 100644 index 00000000..98a93f85 --- /dev/null +++ b/DREAMS/Test_codes/gal.py @@ -0,0 +1,85 @@ +import os +import pytest +import numpy as np +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim +from scopesim import Source, rc +from scopesim_templates.extragalactic import galaxy +from scopesim.source.source_templates import star_field +from scopesim.optics.fov_manager import FOVManager +from astropy.io import fits + +PLOTS = True + +# Check if integration tests should be skipped +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/Desktop" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +# Initialize UserCommands for DREAMS +cmds = scopesim.UserCommands(use_instrument="DREAMS") +cmds["!OBS.dit"] = 10 +cmds["!DET.bin_size"] = 1 +cmds["!OBS.sky.bg_mag"] = 14.9 +cmds["!OBS.sky.filter_name"] = "J" +cmds["SIM.sub_pixel.flag"] = True + +# Set up the optical train +dreams = scopesim.OpticalTrain(cmds) +dreams["detector_linearity"].include = False + +# Configure the field of view +dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec +dreams.fov_manager.volumes_list[0]["x_max"] = 18000 +dreams.fov_manager.volumes_list[0]["y_min"] = -18000 +dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + +print("scopesim package loaded successfully.") + +# Create a galaxy source +src = galaxy("kc96/s0", z=0.1, amplitude=17, filter_curve="J", pixel_scale=0.05, r_eff=2.5, n=4, ellip=0.5, theta=45, extend=3) + +# Observe the source +dreams.observe(src, update=False) + +# Readout and plot +hdus = dreams.readout() + +plt.subplot(121) +wave = np.arange(3000, 11000) +plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) + +plt.subplot(122) +im = hdus[0][1].data +plt.imshow(im, norm=LogNorm()) +plt.colorbar() +plt.title("Observed Galaxy Field") +plt.xlabel("X Pixels") +plt.ylabel("Y Pixels") + +detector_order = [2, 1, 4, 3, 6, 5] +plt.figure(figsize=(20, 20)) +for plot_number, hdu_number in enumerate(detector_order, 1): + plt.subplot(3, 2, plot_number) + plt.imshow(np.log10(src.fields[0].data), origin="lower") + plt.colorbar() + plt.title(f"HDU {hdu_number}") + +plt.show() + + diff --git a/DREAMS/Test_codes/star_1.py b/DREAMS/Test_codes/star_1.py new file mode 100644 index 00000000..c6497145 --- /dev/null +++ b/DREAMS/Test_codes/star_1.py @@ -0,0 +1,84 @@ +import os +import pytest +import numpy as np +from astropy.io.fits import HDUList +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim +import synphot +from scopesim import Source +from astropy.io import fits + + +from scopesim import rc +from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp +from scopesim.optics.fov_manager import FOVManager + +PLOTS = True + +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/Desktop" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +cmds = scopesim.UserCommands(use_instrument="DREAMS") +cmds["!OBS.dit"] = 10 +cmds["!DET.bin_size"] = 1 +cmds["!OBS.sky.bg_mag"] = 14.9 +cmds["!OBS.sky.filter_name"] = "J" +cmds["SIM.sub_pixel.flag"] = True +dreams = scopesim.OpticalTrain(cmds) +dreams["detector_linearity"].include = False +dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +# Then make the initial field of view 10 times larges than normal. +dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec +dreams.fov_manager.volumes_list[0]["x_max"] = 18000 +dreams.fov_manager.volumes_list[0]["y_min"] = -18000 +dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +# Finally, shrink the field of view to the detector size. +dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + +print("scopesim package loaded successfully.") +x, y = np.meshgrid(np.arange(100), np.arange(100)) +img = np.exp(-1 * ( ( (x - 50) / 5)**2 + ( (y - 50) / 5)**2 ) ) +# Fits headers of the image. Yes it needs a WCS +hdr = fits.Header(dict(NAXIS=2,NAXIS1=img.shape[0]+1,NAXIS2=img.shape[1]+1, CRPIX1=img.shape[0] / 2, CRPIX2=img.shape[1] / 2, CRVAL1=0, CRVAL2=0, CDELT1=0.2/3600, CDELT2=0.2/3600, +CUNIT1="DEG", CUNIT2="DEG", CTYPE1='RA---TAN', CTYPE2='DEC--TAN')) +# Creating an ImageHDU object +hdu = fits.ImageHDU(data=img, header=hdr) + +# Creating of a black body spectrum +wave = np.arange(1000, 35000, 10 ) +bb = synphot.models.BlackBody1D(temperature=5000) +sp = synphot.SourceSpectrum(synphot.Empirical1D, points=wave, lookup_table=bb(wave)) +src = Source(image_hdu=hdu, spectra=sp) +src.shift(10, 10) +dreams.observe(src, update=False) +print("yessss anjali") +hdus = dreams.readout() +#dreams.readout(filename="Han.fits") +plt.subplot(121) +wave = np.arange(3000, 11000) +plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +plt.subplot(122) +im = hdus[0][1].data +detector_order = [2, 1, 4, 3, 6, 5] +plt.figure(figsize=(20, 20)) +for plot_number, hdu_number in enumerate(detector_order, 1): + plt.subplot(3, 2, plot_number) + plt.imshow(hdus[0][hdu_number].data, origin="lower", norm=LogNorm()) + plt.colorbar() + +plt.show() diff --git a/DREAMS/Test_codes/testt.py b/DREAMS/Test_codes/testt.py new file mode 100644 index 00000000..9bf0bcf3 --- /dev/null +++ b/DREAMS/Test_codes/testt.py @@ -0,0 +1,140 @@ +import os +import pytest +import numpy as np +from astropy.io.fits import HDUList +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim + +from scopesim import rc +from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp +from scopesim.optics.fov_manager import FOVManager + +PLOTS = True + +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/github" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +class TestLoads: + def test_scopesim_loads_package(self): + dreams = scopesim.OpticalTrain("DREAMS") + assert isinstance(dreams, scopesim.OpticalTrain) # Corrected syntax + print("scopesim package loaded successfully.") + +class TestObserves: + def test_something_comes_out(self): + print("Starting observation test...") + + # Setting the width to 10000 arcsec makes the field fill the image. + # A with of 700 works as well, but covers only a fraction of the + # middle two detectors. + src = star_field(10000, 10, 20, width=10000) + + cmds = scopesim.UserCommands(use_instrument="DREAMS") + cmds["!OBS.dit"] = 8 + cmds["!DET.bin_size"] = 1 + cmds["!OBS.sky.bg_mag"] = 14.9 + cmds["!OBS.sky.filter_name"] = "J" + cmds["SIM.sub_pixel.flag"] = True + + dreams = scopesim.OpticalTrain(cmds) + dreams["detector_linearity"].include = False + + # Hackish workaround to get a larger Field of View. + # This problem is fixed in https://github.com/AstarVienna/ScopeSim/pull/433 + # This hack can thus be removed once that is merged and a new + # ScopeSim version is released. + # First recreate the fov_manager without preloading the field of + # views with the wrong values. + dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) + # Then make the initial field of view 10 times larges than normal. + dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec + dreams.fov_manager.volumes_list[0]["x_max"] = 18000 + dreams.fov_manager.volumes_list[0]["y_min"] = -18000 + dreams.fov_manager.volumes_list[0]["y_max"] = 18000 + # Finally, shrink the field of view to the detector size. + dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + + # We now need to put update=False here, because otherwise the hacked + # fov_manager gets reinitialized. dreams can therefor only be used + # once, and needs to be recreated for the next simulation. + dreams.observe(src, update=False) + + hdus = dreams.readout("dreams.fits") + + print(f"Observation completed. HDUList type: {type(hdus[0])}") + + if PLOTS: + plt.subplot(121) + wave = np.arange(3000, 11000) + plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) + + plt.subplot(122) + im = hdus[0][1].data + plt.imshow(im, norm=LogNorm()) + plt.colorbar() + plt.title("Observed Star Field") + plt.xlabel("X Pixels") + plt.ylabel("Y Pixels") + plt.grid() + plt.show() + + #detector_order = [2, 1, 4, 3, 6, 5] + #plt.figure(figsize=(20, 20)) + #for plot_number, hdu_number in enumerate(detector_order, 1): + #plt.subplot(3, 2, plot_number) + #plt.imshow(hdus[0][hdu_number].data, origin="lower", norm=LogNorm()) + #plt.colorbar() + #plt.show() + + @pytest.mark.slow + def test_observes_from_scopesim_templates(self): + print("Starting scopesim templates observation test...") + src = sim_tp.stellar.cluster(mass=10000, distance=2000, core_radius=1) + + dreams = scopesim.OpticalTrain("DREAMS") + dreams.observe(src) + + dreams.cmds["!OBS.dit"] = 10 + hdus = dreams.readout() + + assert isinstance(hdus[0], HDUList) + print("Observation from scopesim templates completed.") + + if PLOTS: + im = hdus[0][1].data + plt.imshow(im, norm=LogNorm(), cmap="hot") + plt.colorbar() + plt.show() + + @pytest.mark.slow + def test_saves_readout_to_disc(self): + print("Starting test to save readout to disk...") + src = sim_tp.stellar.cluster(mass=10000, distance=2000, core_radius=1) + dreams = scopesim.OpticalTrain("DREAMS") + dreams.observe(src) + dreams.readout(filename="GNANU.fits") + + assert os.path.exists("GNANU.fits") + print("Readout saved to GNANU.fits.") + +def run_test_and_plot(): + test_observes = TestObserves() + test_observes.test_something_comes_out() + +# Run the test and plot as soon as the module is imported +run_test_and_plot() From 3e55c1c72c94a6ea33f390da45036bfe26f80356 Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Wed, 7 Aug 2024 09:47:16 +1000 Subject: [PATCH 03/36] Added crowed field examples Cleanup fields.py and remove output --- DREAMS/Test_codes/field.ipynb | 253 ++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 DREAMS/Test_codes/field.ipynb diff --git a/DREAMS/Test_codes/field.ipynb b/DREAMS/Test_codes/field.ipynb new file mode 100644 index 00000000..a988c514 --- /dev/null +++ b/DREAMS/Test_codes/field.ipynb @@ -0,0 +1,253 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Mczzz3KcUzL0", + "outputId": "0748f1e7-7361-4346-cc74-00e3cc967baa" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scopesim_templates.stellar import cluster\n", + "import astropy\n", + "from astropy.table import QTable\n", + "import astropy.units as u\n", + "import numpy as np\n", + "import numpy as np\n", + "from astropy.table import Table\n", + "import matplotlib.pyplot as plt\n", + "from astroquery.simbad import Simbad\n", + "from astropy.coordinates import SkyCoord\n", + "import astropy.units as u\n", + "import numpy as np\n", + "from astropy.table import Table\n", + "import matplotlib.pyplot as plt\n", + "from astroquery.gaia import Gaia\n", + "import astropy.units as u\n", + "from astropy.coordinates import SkyCoord\n", + "from scopesim_templates.stellar import star_field, star_grid\n", + "import numpy as np\n", + "from astropy.table import Table\n", + "import matplotlib.pyplot as plt\n", + "from astroquery.gaia import Gaia\n", + "import astropy.units as u\n", + "from astropy.coordinates import SkyCoord\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "src = cluster(mass=1E3, distance=50000, core_radius=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hQvqPUhqVjUZ", + "outputId": "583b2ac8-7abe-40a5-bbeb-182ba3bede4e" + }, + "outputs": [], + "source": [ + "src.fields\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 714 + }, + "id": "EimFNanwVrDD", + "outputId": "75ba5c44-4072-4889-bb18-6f94171222c7" + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(8, 8))\n", + "plt.plot(src.fields[0][\"x\"], src.fields[0][\"y\"], '.')\n", + "plt.xlabel(\"X [arcsec]\")\n", + "plt.ylabel(\"Y [arcsec]\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "uUnEhR9ClNDp", + "outputId": "31f08023-3207-48e6-dc82-14f08867fb28" + }, + "outputs": [], + "source": [ + "\n", + "# Define the query for Gaia\n", + "query = \"\"\"\n", + "SELECT TOP 1000\n", + " source_id,\n", + " ra,\n", + " dec,\n", + " phot_g_mean_mag,\n", + " bp_rp\n", + "FROM gaiadr2.gaia_source\n", + "WHERE CONTAINS(\n", + " POINT('ICRS', ra, dec),\n", + " CIRCLE('ICRS', 75.0, -65.0, 5)\n", + ")=1\n", + "\"\"\"\n", + "\n", + "# Execute the query\n", + "job = Gaia.launch_job(query)\n", + "result = job.get_results()\n", + "\n", + "# Convert the results to an Astropy table\n", + "star_table = Table(result)\n", + "\n", + "# Display the table\n", + "print(star_table)\n", + "\n", + "# Plot the star field\n", + "plt.figure(figsize=(10, 10))\n", + "plt.scatter(star_table['ra'], star_table['dec'], s=10, c='white')\n", + "plt.gca().invert_yaxis() # Invert y-axis to match astronomical convention\n", + "plt.gca().set_facecolor('black') # Set the background color to black\n", + "plt.title('Star Field of Dorado Constellation')\n", + "plt.xlabel('RA (degrees)')\n", + "plt.ylabel('Dec (degrees)')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "teaFHYJDmH8O", + "outputId": "48a550f6-69fe-4ba5-92f3-81364ef49be0" + }, + "outputs": [], + "source": [ + "\n", + "\n", + "# Define the query for Gaia\n", + "query = \"\"\"\n", + "SELECT TOP 1000\n", + " source_id,\n", + " ra,\n", + " dec,\n", + " phot_g_mean_mag,\n", + " bp_rp\n", + "FROM gaiadr2.gaia_source\n", + "WHERE CONTAINS(\n", + " POINT('ICRS', ra, dec),\n", + " CIRCLE('ICRS', 90.0, -75.0, 5)\n", + ")=1\n", + "\"\"\"\n", + "\n", + "# Execute the query\n", + "job = Gaia.launch_job(query)\n", + "result = job.get_results()\n", + "\n", + "# Convert the results to an Astropy table\n", + "star_table = Table(result)\n", + "\n", + "# Display the table\n", + "print(star_table)\n", + "\n", + "# Plot the star field\n", + "plt.figure(figsize=(10, 10))\n", + "plt.scatter(star_table['ra'], star_table['dec'], s=10, c='white')\n", + "plt.gca().invert_yaxis() # Invert y-axis to match astronomical convention\n", + "plt.gca().set_facecolor('black') # Set the background color to black\n", + "plt.title('Star Field of Mensa Constellation')\n", + "plt.xlabel('RA (degrees)')\n", + "plt.ylabel('Dec (degrees)')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "Mtz9oAyYmu5o", + "outputId": "7a86eefd-bd6f-4fd9-f5b2-49c36208e2c3" + }, + "outputs": [], + "source": [ + "\n", + "field = star_field(n=400, mmin=15, mmax=25, width=20, height=20, filter_name=\"Ks\")\n", + "grid = star_grid(n=400, mmin=15, mmax=25, separation=1 , filter_name=\"Ks\")\n", + "\n", + "plt.figure(figsize=(14, 7))\n", + "plt.subplot(121)\n", + "\n", + "size = np.log10(field.fields[0][\"weight\"])**2\n", + "plt.scatter(field.fields[0][\"x\"], field.fields[0][\"y\"], s=size, marker=\"o\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "tsRbG1pAnTch" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From e14ba68cf6619372211788769bdec6c70befbc8e Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Thu, 8 Aug 2024 18:02:08 +1000 Subject: [PATCH 04/36] Update default.yaml --- DREAMS/DREAMS.yaml | 6 +++--- DREAMS/default.yaml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DREAMS/DREAMS.yaml b/DREAMS/DREAMS.yaml index 0bf83cca..f575f82f 100644 --- a/DREAMS/DREAMS.yaml +++ b/DREAMS/DREAMS.yaml @@ -6,7 +6,7 @@ alias : INST name : DREAMS description : DREAMS is a 0.5m telescope operated - by the Department of Astropyhics at the University of ANU. + by the Department of Astrophyhics at the University of ANU. properties: temperature: -40 # deg @@ -18,7 +18,7 @@ effects: description : Schoepfl PSF class : SeeingPSF kwargs : - fwhm : 15.00 # [arcsec] + fwhm : 5.00 # [arcsec] - name : skycalc_average_atmo description : atmospheric properties for a default skycalc run class : AtmosphericTERCurve @@ -28,7 +28,7 @@ effects: rescale_emission: filter_name: "!OBS.filter_name" filename_format: "filters/{}.dat" - value: "!OBS.bg_mag" + value: "!OBS.sky.bg_mag" unit: mag - name: dreams_static_surfaces description : telescope and camera optical surfaces diff --git a/DREAMS/default.yaml b/DREAMS/default.yaml index 56bb6574..3c319132 100644 --- a/DREAMS/default.yaml +++ b/DREAMS/default.yaml @@ -17,17 +17,17 @@ properties : declination : -31.273 hour_angle : 0 pupil_angle : 0 - dit : 10 + dit : 8 ndit : 1 - filter_name : !OBS.filter_name + filter_name : J sky : bg_mag : 14.5 - filter_name : !OBS.filter_name + filter_name : J --- ### default simulation parameters needed for DREAMS simulation object : simulation -alias : SIM +alias : OBS name : LFAO_simulation_paramters description : RC simulation paramters From a96e150e1cfbc71ac891a0f1e85d19fa9fc4967b Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Thu, 29 Aug 2024 12:39:16 +1000 Subject: [PATCH 05/36] Added S0, elliptical galaxy --- DREAMS/Test_codes/Galaxy.py | 88 ++++++++++++++++++++++++++ DREAMS/Test_codes/LMC.py | 4 +- DREAMS/Test_codes/{gal.py => ellip.py} | 39 +++++------- 3 files changed, 105 insertions(+), 26 deletions(-) create mode 100644 DREAMS/Test_codes/Galaxy.py rename DREAMS/Test_codes/{gal.py => ellip.py} (79%) diff --git a/DREAMS/Test_codes/Galaxy.py b/DREAMS/Test_codes/Galaxy.py new file mode 100644 index 00000000..f76e5c38 --- /dev/null +++ b/DREAMS/Test_codes/Galaxy.py @@ -0,0 +1,88 @@ +# Extragalatic +import os +import pytest +import numpy as np +from astropy.io.fits import HDUList +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim +import synphot +from scopesim import Source +from astropy.io import fits +from scopesim_templates.extragalactic import galaxy +from scopesim import rc +from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp +from scopesim.optics.fov_manager import FOVManager + +PLOTS = True + +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/github" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +cmds = scopesim.UserCommands(use_instrument="DREAMS") +cmds["!OBS.dit"] = 1000 +cmds["!OBS.ndit"] = 1000 +cmds["!DET.bin_size"] = 1 +cmds["!OBS.sky.bg_mag"] = 14.9 +cmds["!OBS.sky.filter_name"] = "J" +cmds["SIM.sub_pixel.flag"] = True +dreams = scopesim.OpticalTrain(cmds) +dreams["detector_linearity"].include = False +dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +# Then make the initial field of view 10 times larges than normal. +dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec +dreams.fov_manager.volumes_list[0]["x_max"] = 18000 +dreams.fov_manager.volumes_list[0]["y_min"] = -18000 +dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +# Finally, shrink the field of view to the detector size. +dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + +print("scopesim package loaded successfully.") +from scopesim_templates.extragalactic import galaxy +src = galaxy("kc96/s0", z=1.5, amplitude=17, filter_curve="J", pixel_scale=0.01, r_eff=2.5, n=4, ellip=0.5, theta=45, extend=3) + +dreams.observe(src, update=False) +print("yessss anjali") +hdus = dreams.readout() +dreams.readout(filename="gal.fits") +# Observe the source +dreams.observe(src, update=False) + +# Readout and plot +hdus = dreams.readout() + +plt.subplot(122) +im = hdus[0][1].data +plt.imshow(im, norm=LogNorm()) +plt.colorbar() +plt.title("Observed Galaxy Field") +plt.xlabel("X Pixels") +plt.ylabel("Y Pixels") + +detector_order = [2, 1, 4, 3, 6, 5] +plt.figure(figsize=(20, 20)) +for plot_number, hdu_number in enumerate(detector_order, 1): + plt.subplot(3, 2, plot_number) + plt.imshow(np.log10(src.fields[0].data), origin="lower") + plt.colorbar() + plt.title(f"HDU {hdu_number}") + +plt.show() + + + + diff --git a/DREAMS/Test_codes/LMC.py b/DREAMS/Test_codes/LMC.py index 4fc2fcf1..9b3e8cfb 100644 --- a/DREAMS/Test_codes/LMC.py +++ b/DREAMS/Test_codes/LMC.py @@ -22,7 +22,7 @@ pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") # Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/Desktop" +TOP_PATH = "/Users/anjali/github" rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH # Adjust the PKGS dictionary to reflect the correct path @@ -53,7 +53,7 @@ dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") -src = sim_tp.stellar.clusters.cluster(mass=1000, distance=50000, core_radius=500, seed=9002) +src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=500, seed=9002) dreams.observe(src, update=False) print("yessss anjali") diff --git a/DREAMS/Test_codes/gal.py b/DREAMS/Test_codes/ellip.py similarity index 79% rename from DREAMS/Test_codes/gal.py rename to DREAMS/Test_codes/ellip.py index 98a93f85..ef452f57 100644 --- a/DREAMS/Test_codes/gal.py +++ b/DREAMS/Test_codes/ellip.py @@ -1,18 +1,23 @@ +#Elliptical Galaxy import os import pytest import numpy as np +from astropy.io.fits import HDUList from matplotlib import pyplot as plt from matplotlib.colors import LogNorm import scopesim -from scopesim import Source, rc -from scopesim_templates.extragalactic import galaxy +import synphot +from scopesim_templates.extragalactic.galaxies import elliptical +from astropy.io import fits + + +from scopesim import rc from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp from scopesim.optics.fov_manager import FOVManager -from astropy.io import fits PLOTS = True -# Check if integration tests should be skipped if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") @@ -29,41 +34,29 @@ else: print("DREAMS package found at:", PKGS["DREAMS"]) -# Initialize UserCommands for DREAMS cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 10 +cmds["!OBS.dit"] = 1000 +cmds["!OBS.ndit"] = 1000 cmds["!DET.bin_size"] = 1 cmds["!OBS.sky.bg_mag"] = 14.9 cmds["!OBS.sky.filter_name"] = "J" cmds["SIM.sub_pixel.flag"] = True - -# Set up the optical train dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False - -# Configure the field of view dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +# Then make the initial field of view 10 times larges than normal. dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec dreams.fov_manager.volumes_list[0]["x_max"] = 18000 dreams.fov_manager.volumes_list[0]["y_min"] = -18000 dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +# Finally, shrink the field of view to the detector size. dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") - -# Create a galaxy source -src = galaxy("kc96/s0", z=0.1, amplitude=17, filter_curve="J", pixel_scale=0.05, r_eff=2.5, n=4, ellip=0.5, theta=45, extend=3) - -# Observe the source +src = elliptical(half_light_radius=11500, pixel_scale=2.48, filter_name="J", amplitude=17, normalization="total", n=4, ellipticity=0.5, angle=30) dreams.observe(src, update=False) - -# Readout and plot hdus = dreams.readout() - -plt.subplot(121) -wave = np.arange(3000, 11000) -plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) - +dreams.readout(filename="ellip.fits") plt.subplot(122) im = hdus[0][1].data plt.imshow(im, norm=LogNorm()) @@ -81,5 +74,3 @@ plt.title(f"HDU {hdu_number}") plt.show() - - From 3cd3c082a94964fe1913cd4e71c325e7ff183bb6 Mon Sep 17 00:00:00 2001 From: Astrogirlanjali Date: Sat, 14 Sep 2024 01:23:50 +1000 Subject: [PATCH 06/36] Added block filters --- DREAMS/filters/H_block.dat | 8 ++++++++ DREAMS/filters/J_block.dat | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 DREAMS/filters/H_block.dat create mode 100644 DREAMS/filters/J_block.dat diff --git a/DREAMS/filters/H_block.dat b/DREAMS/filters/H_block.dat new file mode 100644 index 00000000..c1def74f --- /dev/null +++ b/DREAMS/filters/H_block.dat @@ -0,0 +1,8 @@ +# source : Generic_Bessell.I SVO +# wavelength_unit : angstrom +# download_date : 2020-05-23 +wavelength transmission +14900.0 0.0 +16700.0 0.0 + + diff --git a/DREAMS/filters/J_block.dat b/DREAMS/filters/J_block.dat new file mode 100644 index 00000000..a3664a86 --- /dev/null +++ b/DREAMS/filters/J_block.dat @@ -0,0 +1,8 @@ +# source : Generic_Bessell.I SVO +# wavelength_unit : angstrom +# download_date : 2020-05-23 +wavelength transmission +11610.0 0.0 +13330.0 0.870898 + + From 46edf17a98b710f8d7bf421dd7ddc9ea8895d10c Mon Sep 17 00:00:00 2001 From: Anjali_Shivani <114407895+Astrogirlanajli@users.noreply.github.com> Date: Sun, 11 Aug 2024 18:04:53 +1000 Subject: [PATCH 07/36] Create README.md --- DREAMS/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 DREAMS/README.md diff --git a/DREAMS/README.md b/DREAMS/README.md new file mode 100644 index 00000000..dc1da135 --- /dev/null +++ b/DREAMS/README.md @@ -0,0 +1,5 @@ +# DREAMS Telescope in a nutshell: + +The Dynamic REd All-Sky Monitoring Survey (DREAMS) is a cutting-edge 0.5-meter infrared telescope strategically situated at the Siding Spring Observatory, part of the Australian National University. DREAMS is pioneering in its application of Indium Gallium Arsenide (InGaAs) detectors, which, despite having a higher noise profile, offer a cost-effective alternative to the traditionally used mercury-cadmium-telluride (HgCdTe) detectors in infrared astronomy. The telescope is equipped with the advanced Princeton Infrared Technologies 1280SCICAM, enabling high-sensitivity observations across the near-infrared spectrum. + +DREAMS is designed to push the boundaries of wide-field time-domain astronomy in parallel with other surveys such as Palomar Gattini-IR and WINTER. As a southern sky near-infrared time-domain survey, DREAMS is uniquely positioned to contribute to a range of astrophysical phenomena significantly. These include detecting and characterising Fast Radio Bursts (FRBs), studying variable stars such as RR Lyrae, and advancing multi-messenger astronomy by providing crucial infrared observations that complement data from other wavelengths and messengers. From 8f69c8505d42eadbb53ba186bf2d2c9a88ca483a Mon Sep 17 00:00:00 2001 From: Anjali_Shivani <114407895+Astrogirlanajli@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:25:02 +1000 Subject: [PATCH 08/36] Add files via upload --- DREAMS/Test_codes/Lc.py | 75 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 DREAMS/Test_codes/Lc.py diff --git a/DREAMS/Test_codes/Lc.py b/DREAMS/Test_codes/Lc.py new file mode 100644 index 00000000..132f5bbf --- /dev/null +++ b/DREAMS/Test_codes/Lc.py @@ -0,0 +1,75 @@ +#cluster in the LMC +import os +import pytest +import numpy as np +from astropy.io.fits import HDUList +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +import scopesim +import synphot +from scopesim import Source +from astropy.io import fits + + +from scopesim import rc +from scopesim.source.source_templates import star_field +import scopesim_templates as sim_tp +from scopesim_templates.stellar import cluster + +from scopesim.optics.fov_manager import FOVManager + +PLOTS = True + +if rc.__config__["!SIM.tests.run_integration_tests"] is False: + pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") + +# Set TOP_PATH to the directory containing the DREAMS package +TOP_PATH = "/Users/anjali/github" +rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH + +# Adjust the PKGS dictionary to reflect the correct path +PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} + +# Verify the path to the DREAMS package +if not os.path.exists(PKGS["DREAMS"]): + raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") +else: + print("DREAMS package found at:", PKGS["DREAMS"]) + +cmds = scopesim.UserCommands(use_instrument="DREAMS") +cmds["!OBS.dit"] = 1000 +cmds["!OBS.ndit"] = 1000 +cmds["!DET.bin_size"] = 1 +cmds["!OBS.sky.bg_mag"] = 14.9 +cmds["!OBS.sky.filter_name"] = "J" +cmds["SIM.sub_pixel.flag"] = True +dreams = scopesim.OpticalTrain(cmds) +dreams["detector_linearity"].include = False +dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) +# Then make the initial field of view 10 times larges than normal. +dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec +dreams.fov_manager.volumes_list[0]["x_max"] = 18000 +dreams.fov_manager.volumes_list[0]["y_min"] = -18000 +dreams.fov_manager.volumes_list[0]["y_max"] = 18000 +# Finally, shrink the field of view to the detector size. +dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) + +print("scopesim package loaded successfully.") +src = cluster(mass=1000, distance=50000, core_radius=500, seed=9002) + +dreams.observe(src, update=False) +print("yessss anjali") +hdus = dreams.readout() +dreams.readout(filename="Lc.fits") +#plt.subplot(121) +#wave = np.arange(3000, 11000) +#plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +plt.subplot(122) +im = hdus[0][1].data +plt.imshow(im, norm=LogNorm()) +plt.colorbar() +plt.title("Observed Star Field") +plt.xlabel("X Pixels") +plt.ylabel("Y Pixels") +plt.grid() +plt.show() From bc2553cac1ab42e45eb0b9da46f5bad9e5379fba Mon Sep 17 00:00:00 2001 From: Anjali_Shivani <114407895+Astrogirlanajli@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:31:16 +1000 Subject: [PATCH 09/36] Create GaussianDiffractionPSF.py --- DREAMS/Test_codes/GaussianDiffractionPSF.py | 68 +++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 DREAMS/Test_codes/GaussianDiffractionPSF.py diff --git a/DREAMS/Test_codes/GaussianDiffractionPSF.py b/DREAMS/Test_codes/GaussianDiffractionPSF.py new file mode 100644 index 00000000..cad84dcf --- /dev/null +++ b/DREAMS/Test_codes/GaussianDiffractionPSF.py @@ -0,0 +1,68 @@ +import os +import numpy as np +from astropy import units as u +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from astropy.convolution import Gaussian2DKernel +from scopesim.utils import quantify +from scopesim import rc +from scopesim_templates.stellar import star_field +from scopesim.optics.fov_manager import FOVManager + +# Set plotting flag +PLOTS = True + +# GaussianDiffractionPSF Class +class GaussianDiffractionPSF: + def __init__(self, diameter=0.1, **kwargs): # Default diameter is 0.1 m + self.meta = {"diameter": diameter, "z_order": [242, 642]} + self.required_keys = {"pixel_scale"} + self.valid_waverange = [11610.0 * u.angstrom.to(u.micron), # Min wavelength in microns + 13330.0 * u.angstrom.to(u.micron)] # Max wavelength in microns + + def update(self, **kwargs): + if "diameter" in kwargs: + self.meta["diameter"] = kwargs["diameter"] + + def get_kernel(self, pixel_scale): + wave_min = 11610.0 * u.angstrom.to(u.micron) # Using J band min wave + wave_max =13330.0 * u.angstrom.to(u.micron) # Using J band max wave + wave = 0.5 * (wave_max + wave_min) # Average wave + wave = quantify(wave, u.um) + + + diameter = quantify(self.meta["diameter"], u.m).to(u.um) + fwhm = 1.22 * (wave / diameter) * u.rad.to(u.arcsec) / pixel_scale + + sigma = fwhm.value / 2.35 + kernel = Gaussian2DKernel(sigma, mode="center").array + kernel /= np.sum(kernel) + + return kernel + + def plot(self, pixel_scale): + kernel = self.get_kernel(pixel_scale) + + size = kernel.shape[0] + arcsec_extent = size * pixel_scale / 2 + x = np.linspace(-arcsec_extent, arcsec_extent, size) + y = np.linspace(-arcsec_extent, arcsec_extent, size) + + plt.figure(figsize=(8, 6)) + plt.imshow(kernel, origin='lower', extent=[x[0], x[-1], y[0], y[-1]], cmap='plasma', norm=LogNorm(vmin=1e-6, vmax=1)) + plt.colorbar(label='Intensity') + plt.title(f"Gaussian Diffraction PSF (Diameter = {self.meta['diameter']} m, J Band Wavelength)") + plt.xlabel("X [arcseconds]") + plt.ylabel("Y [arcseconds]") + plt.gca().set_aspect('equal', adjustable='box') + plt.grid(False) + plt.show() + +# Define the pixel scale for DREAMS +pixel_scale = 2.48 # Arcseconds per pixel for DREAMS + +# Instantiate the GaussianDiffractionPSF class +gaussian_psf = GaussianDiffractionPSF(diameter=0.5) + +# Plot the Gaussian Diffraction PSF +gaussian_psf.plot(pixel_scale) From f146cf76179f1584ceeb8e0f5d664dfbbd5e1b8a Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 15 Oct 2025 22:06:15 +0200 Subject: [PATCH 10/36] Add inst_pkgs symlink --- DREAMS/Test_codes/inst_pkgs | 1 + 1 file changed, 1 insertion(+) create mode 120000 DREAMS/Test_codes/inst_pkgs diff --git a/DREAMS/Test_codes/inst_pkgs b/DREAMS/Test_codes/inst_pkgs new file mode 120000 index 00000000..c25bddb6 --- /dev/null +++ b/DREAMS/Test_codes/inst_pkgs @@ -0,0 +1 @@ +../.. \ No newline at end of file From 8c1f1b2afab6ed3c9bb2f7095daf5aa9db0fb27f Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 15 Oct 2025 22:13:04 +0200 Subject: [PATCH 11/36] Rename SummedExposure to ExposureIntegration --- DREAMS/DREAMS_InGaAs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DREAMS/DREAMS_InGaAs.yaml b/DREAMS/DREAMS_InGaAs.yaml index e59666ca..2c290ba3 100644 --- a/DREAMS/DREAMS_InGaAs.yaml +++ b/DREAMS/DREAMS_InGaAs.yaml @@ -29,9 +29,9 @@ effects: kwargs : filename : QE_InGaAs.dat -- name: exposure_action +- name: exposure_integration description: Summing up sky signal for all DITs and NDITs - class: SummedExposure + class: ExposureIntegration - name: dark_current description : SBIG dark current From bc860aa92fe3077ee7631cf441f8f81957cfeca6 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 15 Oct 2025 22:06:53 +0200 Subject: [PATCH 12/36] Cleanup example scripts Remove now unnecessary references to specific path Replace surfaces_table.throughput with system_transmission Remove FOV-workaround that is now not necessary anymore. Fixed by https://github.com/AstarVienna/ScopeSim/pull/433. Rename testt.py to cluster.py and cleanup --- DREAMS/Test_codes/Galaxy.py | 25 +-------- DREAMS/Test_codes/LMC.py | 25 +-------- DREAMS/Test_codes/Lc.py | 25 +-------- DREAMS/Test_codes/{testt.py => cluster.py} | 60 +++++++--------------- DREAMS/Test_codes/ellip.py | 23 +-------- DREAMS/Test_codes/star_1.py | 25 +-------- 6 files changed, 28 insertions(+), 155 deletions(-) rename DREAMS/Test_codes/{testt.py => cluster.py} (58%) diff --git a/DREAMS/Test_codes/Galaxy.py b/DREAMS/Test_codes/Galaxy.py index f76e5c38..7287ea2f 100644 --- a/DREAMS/Test_codes/Galaxy.py +++ b/DREAMS/Test_codes/Galaxy.py @@ -20,19 +20,6 @@ if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/github" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) - cmds = scopesim.UserCommands(use_instrument="DREAMS") cmds["!OBS.dit"] = 1000 cmds["!OBS.ndit"] = 1000 @@ -42,25 +29,17 @@ cmds["SIM.sub_pixel.flag"] = True dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False -dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) -# Then make the initial field of view 10 times larges than normal. -dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec -dreams.fov_manager.volumes_list[0]["x_max"] = 18000 -dreams.fov_manager.volumes_list[0]["y_min"] = -18000 -dreams.fov_manager.volumes_list[0]["y_max"] = 18000 -# Finally, shrink the field of view to the detector size. -dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") from scopesim_templates.extragalactic import galaxy src = galaxy("kc96/s0", z=1.5, amplitude=17, filter_curve="J", pixel_scale=0.01, r_eff=2.5, n=4, ellip=0.5, theta=45, extend=3) -dreams.observe(src, update=False) +dreams.observe(src) print("yessss anjali") hdus = dreams.readout() dreams.readout(filename="gal.fits") # Observe the source -dreams.observe(src, update=False) +dreams.observe(src) # Readout and plot hdus = dreams.readout() diff --git a/DREAMS/Test_codes/LMC.py b/DREAMS/Test_codes/LMC.py index 9b3e8cfb..8c02e732 100644 --- a/DREAMS/Test_codes/LMC.py +++ b/DREAMS/Test_codes/LMC.py @@ -21,19 +21,6 @@ if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/github" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) - cmds = scopesim.UserCommands(use_instrument="DREAMS") cmds["!OBS.dit"] = 1000 cmds["!OBS.ndit"] = 1000 @@ -43,25 +30,17 @@ cmds["SIM.sub_pixel.flag"] = True dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False -dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) -# Then make the initial field of view 10 times larges than normal. -dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec -dreams.fov_manager.volumes_list[0]["x_max"] = 18000 -dreams.fov_manager.volumes_list[0]["y_min"] = -18000 -dreams.fov_manager.volumes_list[0]["y_max"] = 18000 -# Finally, shrink the field of view to the detector size. -dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=500, seed=9002) -dreams.observe(src, update=False) +dreams.observe(src) print("yessss anjali") hdus = dreams.readout() #dreams.readout(filename="Han.fits") plt.subplot(121) wave = np.arange(3000, 11000) -plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +plt.plot(wave, dreams.optics_manager.system_transmission(wave)) plt.subplot(122) im = hdus[0][1].data # detector_order = [2, 1, 4, 3, 6, 5] diff --git a/DREAMS/Test_codes/Lc.py b/DREAMS/Test_codes/Lc.py index 132f5bbf..3e37bb18 100644 --- a/DREAMS/Test_codes/Lc.py +++ b/DREAMS/Test_codes/Lc.py @@ -23,19 +23,6 @@ if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/github" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) - cmds = scopesim.UserCommands(use_instrument="DREAMS") cmds["!OBS.dit"] = 1000 cmds["!OBS.ndit"] = 1000 @@ -45,25 +32,17 @@ cmds["SIM.sub_pixel.flag"] = True dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False -dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) -# Then make the initial field of view 10 times larges than normal. -dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec -dreams.fov_manager.volumes_list[0]["x_max"] = 18000 -dreams.fov_manager.volumes_list[0]["y_min"] = -18000 -dreams.fov_manager.volumes_list[0]["y_max"] = 18000 -# Finally, shrink the field of view to the detector size. -dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") src = cluster(mass=1000, distance=50000, core_radius=500, seed=9002) -dreams.observe(src, update=False) +dreams.observe(src) print("yessss anjali") hdus = dreams.readout() dreams.readout(filename="Lc.fits") #plt.subplot(121) #wave = np.arange(3000, 11000) -#plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +#plt.plot(wave, dreams.optics_manager.system_transmission(wave)) plt.subplot(122) im = hdus[0][1].data plt.imshow(im, norm=LogNorm()) diff --git a/DREAMS/Test_codes/testt.py b/DREAMS/Test_codes/cluster.py similarity index 58% rename from DREAMS/Test_codes/testt.py rename to DREAMS/Test_codes/cluster.py index 9bf0bcf3..e238512e 100644 --- a/DREAMS/Test_codes/testt.py +++ b/DREAMS/Test_codes/cluster.py @@ -9,25 +9,12 @@ from scopesim import rc from scopesim.source.source_templates import star_field import scopesim_templates as sim_tp -from scopesim.optics.fov_manager import FOVManager PLOTS = True if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/github" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) class TestLoads: def test_scopesim_loads_package(self): @@ -35,6 +22,7 @@ def test_scopesim_loads_package(self): assert isinstance(dreams, scopesim.OpticalTrain) # Corrected syntax print("scopesim package loaded successfully.") + class TestObserves: def test_something_comes_out(self): print("Starting observation test...") @@ -54,25 +42,7 @@ def test_something_comes_out(self): dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False - # Hackish workaround to get a larger Field of View. - # This problem is fixed in https://github.com/AstarVienna/ScopeSim/pull/433 - # This hack can thus be removed once that is merged and a new - # ScopeSim version is released. - # First recreate the fov_manager without preloading the field of - # views with the wrong values. - dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) - # Then make the initial field of view 10 times larges than normal. - dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec - dreams.fov_manager.volumes_list[0]["x_max"] = 18000 - dreams.fov_manager.volumes_list[0]["y_min"] = -18000 - dreams.fov_manager.volumes_list[0]["y_max"] = 18000 - # Finally, shrink the field of view to the detector size. - dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) - - # We now need to put update=False here, because otherwise the hacked - # fov_manager gets reinitialized. dreams can therefor only be used - # once, and needs to be recreated for the next simulation. - dreams.observe(src, update=False) + dreams.observe(src) hdus = dreams.readout("dreams.fits") @@ -81,7 +51,7 @@ def test_something_comes_out(self): if PLOTS: plt.subplot(121) wave = np.arange(3000, 11000) - plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) + plt.plot(wave, dreams.optics_manager.system_transmission(wave)) plt.subplot(122) im = hdus[0][1].data @@ -93,13 +63,18 @@ def test_something_comes_out(self): plt.grid() plt.show() - #detector_order = [2, 1, 4, 3, 6, 5] - #plt.figure(figsize=(20, 20)) - #for plot_number, hdu_number in enumerate(detector_order, 1): - #plt.subplot(3, 2, plot_number) - #plt.imshow(hdus[0][hdu_number].data, origin="lower", norm=LogNorm()) - #plt.colorbar() - #plt.show() + detector_order = [2, 1, 4, 3, 6, 5] + plt.figure(figsize=(20, 20)) + for plot_number, hdu_number in enumerate(detector_order, 1): + plt.subplot(3, 2, plot_number) + data = hdus[0][hdu_number].data + med = np.median(data) + std = np.std(data) + vmin = med + vmax = med + 5 * std + plt.imshow(data, origin="lower", norm=LogNorm(vmin=vmin, vmax=vmax)) + plt.colorbar() + plt.show() @pytest.mark.slow def test_observes_from_scopesim_templates(self): @@ -132,9 +107,12 @@ def test_saves_readout_to_disc(self): assert os.path.exists("GNANU.fits") print("Readout saved to GNANU.fits.") + def run_test_and_plot(): test_observes = TestObserves() test_observes.test_something_comes_out() + # Run the test and plot as soon as the module is imported -run_test_and_plot() +if __name__ == '__main__': + run_test_and_plot() diff --git a/DREAMS/Test_codes/ellip.py b/DREAMS/Test_codes/ellip.py index ef452f57..7004683b 100644 --- a/DREAMS/Test_codes/ellip.py +++ b/DREAMS/Test_codes/ellip.py @@ -21,19 +21,6 @@ if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/Desktop" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) - cmds = scopesim.UserCommands(use_instrument="DREAMS") cmds["!OBS.dit"] = 1000 cmds["!OBS.ndit"] = 1000 @@ -43,18 +30,10 @@ cmds["SIM.sub_pixel.flag"] = True dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False -dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) -# Then make the initial field of view 10 times larges than normal. -dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec -dreams.fov_manager.volumes_list[0]["x_max"] = 18000 -dreams.fov_manager.volumes_list[0]["y_min"] = -18000 -dreams.fov_manager.volumes_list[0]["y_max"] = 18000 -# Finally, shrink the field of view to the detector size. -dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") src = elliptical(half_light_radius=11500, pixel_scale=2.48, filter_name="J", amplitude=17, normalization="total", n=4, ellipticity=0.5, angle=30) -dreams.observe(src, update=False) +dreams.observe(src) hdus = dreams.readout() dreams.readout(filename="ellip.fits") plt.subplot(122) diff --git a/DREAMS/Test_codes/star_1.py b/DREAMS/Test_codes/star_1.py index c6497145..55ac0556 100644 --- a/DREAMS/Test_codes/star_1.py +++ b/DREAMS/Test_codes/star_1.py @@ -20,19 +20,6 @@ if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") -# Set TOP_PATH to the directory containing the DREAMS package -TOP_PATH = "/Users/anjali/Desktop" -rc.__config__["!SIM.file.local_packages_path"] = TOP_PATH - -# Adjust the PKGS dictionary to reflect the correct path -PKGS = {"DREAMS": os.path.join(TOP_PATH, "DREAMS")} - -# Verify the path to the DREAMS package -if not os.path.exists(PKGS["DREAMS"]): - raise FileNotFoundError(f"DREAMS package not found at {PKGS['DREAMS']}") -else: - print("DREAMS package found at:", PKGS["DREAMS"]) - cmds = scopesim.UserCommands(use_instrument="DREAMS") cmds["!OBS.dit"] = 10 cmds["!DET.bin_size"] = 1 @@ -41,14 +28,6 @@ cmds["SIM.sub_pixel.flag"] = True dreams = scopesim.OpticalTrain(cmds) dreams["detector_linearity"].include = False -dreams.fov_manager = FOVManager(dreams.optics_manager.fov_setup_effects, cmds=dreams.cmds, preload_fovs=False) -# Then make the initial field of view 10 times larges than normal. -dreams.fov_manager.volumes_list[0]["x_min"] = -18000 # arcsec -dreams.fov_manager.volumes_list[0]["x_max"] = 18000 -dreams.fov_manager.volumes_list[0]["y_min"] = -18000 -dreams.fov_manager.volumes_list[0]["y_max"] = 18000 -# Finally, shrink the field of view to the detector size. -dreams.fov_manager._fovs_list = list(dreams.fov_manager.generate_fovs_list()) print("scopesim package loaded successfully.") x, y = np.meshgrid(np.arange(100), np.arange(100)) @@ -65,13 +44,13 @@ sp = synphot.SourceSpectrum(synphot.Empirical1D, points=wave, lookup_table=bb(wave)) src = Source(image_hdu=hdu, spectra=sp) src.shift(10, 10) -dreams.observe(src, update=False) +dreams.observe(src) print("yessss anjali") hdus = dreams.readout() #dreams.readout(filename="Han.fits") plt.subplot(121) wave = np.arange(3000, 11000) -plt.plot(wave, dreams.optics_manager.surfaces_table.throughput(wave)) +plt.plot(wave, dreams.optics_manager.system_transmission(wave)) plt.subplot(122) im = hdus[0][1].data detector_order = [2, 1, 4, 3, 6, 5] From 501a4e3e479a26842af9a03c965cb54b864648a4 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 15 Oct 2025 22:54:01 +0200 Subject: [PATCH 13/36] Add bin_size to the default detector properties --- DREAMS/DREAMS_InGaAs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DREAMS/DREAMS_InGaAs.yaml b/DREAMS/DREAMS_InGaAs.yaml index 2c290ba3..2e8077e9 100644 --- a/DREAMS/DREAMS_InGaAs.yaml +++ b/DREAMS/DREAMS_InGaAs.yaml @@ -14,6 +14,8 @@ properties: height: 1024 x: 0 y: 0 + bin_size: 1 + effects: - name: full_detector_array description: THe full DREAMS detector array list From 6b5473ea151c3df50bb31a21250d684ec0b2dc37 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Thu, 7 May 2026 12:24:45 +0200 Subject: [PATCH 14/36] Cleanup LMC.py and make compatible with latest scopesim --- DREAMS/Test_codes/LMC.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/DREAMS/Test_codes/LMC.py b/DREAMS/Test_codes/LMC.py index 8c02e732..dd52859c 100644 --- a/DREAMS/Test_codes/LMC.py +++ b/DREAMS/Test_codes/LMC.py @@ -1,4 +1,5 @@ -#cluster in the LMC +"""A cluster in the LMC.""" + import os import pytest import numpy as np @@ -35,20 +36,24 @@ src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=500, seed=9002) dreams.observe(src) -print("yessss anjali") -hdus = dreams.readout() -#dreams.readout(filename="Han.fits") -plt.subplot(121) -wave = np.arange(3000, 11000) -plt.plot(wave, dreams.optics_manager.system_transmission(wave)) -plt.subplot(122) -im = hdus[0][1].data +hdus = dreams.readout("LMC.fits") + +dreams.optics_manager.system_transmission(plot=True) + # detector_order = [2, 1, 4, 3, 6, 5] detector_order = [1, 2, 3, 4, 5, 6] + plt.figure(figsize=(20, 20)) +# Nothing visible here because the sources are too small. for plot_number, hdu_number in enumerate(detector_order, 1): plt.subplot(3, 2, plot_number) - plt.imshow(hdus[0][hdu_number].data, norm=LogNorm(), cmap="hot") + plt.imshow(hdus[0][hdu_number].data, norm='log', cmap="hot") plt.colorbar() - + +# Does show something. +plt.figure(figsize=(20, 20)) +plt.subplot(1, 1, 1) +plt.imshow(hdus[0][2].data, norm='log', cmap="hot") +plt.colorbar() + plt.show() From 8bfb0d1b8439a63cda47acc89441ae476a19f6a8 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Thu, 7 May 2026 15:11:55 +0200 Subject: [PATCH 15/36] Various cleanups --- DREAMS/DREAMS.yaml | 14 ++++++++------ DREAMS/DREAMS_InGaAs.yaml | 1 - DREAMS/FPA_array_layout.dat | 3 +-- DREAMS/QE_InGaAs.dat | 1 + DREAMS/default.yaml | 8 ++++---- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/DREAMS/DREAMS.yaml b/DREAMS/DREAMS.yaml index f575f82f..af48f8b5 100644 --- a/DREAMS/DREAMS.yaml +++ b/DREAMS/DREAMS.yaml @@ -1,10 +1,7 @@ ---- - -### Leopold Figl SBIG camera object : instrument alias : INST name : DREAMS -description : +description : DREAMS is a 0.5m telescope operated by the Department of Astrophyhics at the University of ANU. @@ -15,10 +12,14 @@ properties: effects: - name : seeing_psf - description : Schoepfl PSF + description : DREAMS PSF class : SeeingPSF kwargs : + # 5.00 arcseconds is too large for DREAMS, the actual value is + # more like 1.50 arcsec. Using 1.50 arcsec makes the sources hard + # to see. fwhm : 5.00 # [arcsec] + - name : skycalc_average_atmo description : atmospheric properties for a default skycalc run class : AtmosphericTERCurve @@ -30,12 +31,13 @@ effects: filename_format: "filters/{}.dat" value: "!OBS.sky.bg_mag" unit: mag + - name: dreams_static_surfaces description : telescope and camera optical surfaces class: SurfaceList kwargs: filename: LIST_DREAMS_mirrors_static.dat - + - name: filter_curve description : transmission curve for filter class: FilterCurve diff --git a/DREAMS/DREAMS_InGaAs.yaml b/DREAMS/DREAMS_InGaAs.yaml index 2e8077e9..37218ac8 100644 --- a/DREAMS/DREAMS_InGaAs.yaml +++ b/DREAMS/DREAMS_InGaAs.yaml @@ -1,4 +1,3 @@ ---- ### Princeton DREAMS InGaAs DETECTOR object : detector alias : DET diff --git a/DREAMS/FPA_array_layout.dat b/DREAMS/FPA_array_layout.dat index 8fcbc105..939908fc 100644 --- a/DREAMS/FPA_array_layout.dat +++ b/DREAMS/FPA_array_layout.dat @@ -1,8 +1,7 @@ # name : DREAMS 1280SCICAM # author : Anjali Shivani Reddy -# sources : https://github.com/Astrogirlanajli/DREAMS/blob/main/5240-0001%20Scicam%20FPA%20Drawing%20mm%20v1.pdf +# sources : 5240-0001 Scicam FPA Drawing mm v1.pdf # date_created : 2024-05-04 -# type : detector:chip_list # x_cen_unit : mm # y_cen_unit : mm # x_size_unit : pix diff --git a/DREAMS/QE_InGaAs.dat b/DREAMS/QE_InGaAs.dat index dc1b3997..e1439d8c 100644 --- a/DREAMS/QE_InGaAs.dat +++ b/DREAMS/QE_InGaAs.dat @@ -2,6 +2,7 @@ # wavelength_unit : um # wavelength transmission +0.8 0.0 0.8010318882867862 0.47089420439103236 0.8014842434347645 0.48637536025609485 0.8019365985827428 0.4782511781493827 diff --git a/DREAMS/default.yaml b/DREAMS/default.yaml index 3c319132..eb545dbb 100644 --- a/DREAMS/default.yaml +++ b/DREAMS/default.yaml @@ -1,4 +1,3 @@ ---- ### default observation parameters needed for DREAMS simulation object : configuration alias : OBS @@ -14,7 +13,7 @@ yamls : - DREAMS_InGaAs.yaml properties : airmass : 1.2 - declination : -31.273 + declination : -31.273 hour_angle : 0 pupil_angle : 0 dit : 8 @@ -25,15 +24,16 @@ properties : filter_name : J --- + ### default simulation parameters needed for DREAMS simulation object : simulation alias : OBS -name : LFAO_simulation_paramters +name : simulation_paramters description : RC simulation paramters properties : random : - seed : 9001 + seed : None spectral : wave_min : 1.17 From ae1a682aec5c1c6fd12d16a5338f14fe4fc579ba Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 11:26:55 +0200 Subject: [PATCH 16/36] A cluster example --- DREAMS/Test_codes/cluster2.ipynb | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 DREAMS/Test_codes/cluster2.ipynb diff --git a/DREAMS/Test_codes/cluster2.ipynb b/DREAMS/Test_codes/cluster2.ipynb new file mode 100644 index 00000000..b854709c --- /dev/null +++ b/DREAMS/Test_codes/cluster2.ipynb @@ -0,0 +1,101 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "f39b3fae-cdb2-4f2f-a13b-b6def8b8398f", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import scopesim\n", + "import synphot\n", + "import numpy as np\n", + "import astropy\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager\n", + "from astropy.io import fits #FITS files handling\n", + "import os #Call commands from outside Python\n", + "from matplotlib.colors import LogNorm\n", + "import matplotlib.pyplot as plt\n", + "from scopesim_templates.stellar import star_field" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e79dd79-958d-4d41-9a52-d373f0bf178e", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "\n", + "cmds[\"!OBS.dit\"] = 60 * 60\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False\n", + "print(\"scopesim package loaded successfully.\")\n", + "\n", + "#%% SECTION: SOURCE AND PLOT THE DREAMS DETECTOR 1\n", + "source = star_field(n=500,mmin=15, mmax=25, width=10000, height=10000) \n", + "dreams.observe(source)\n", + "hdul = dreams.readout('dreams_1.fits')\n", + "data = hdul[0][1].data # Dreams detector 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69f84114-8a2e-49a7-a269-f56f513cb1f3", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(20,20))\n", + "plt.imshow(data, origin=\"lower\", norm=LogNorm(vmin=9300000,vmax=9400000))\n", + "plt.colorbar()\n", + "plt.title(\"DREAMS Detector 1\")\n", + "plt.xlabel(\"X Pixels\")\n", + "plt.ylabel(\"Y Pixels\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b32c07bb-8d4d-4fa6-b4b4-81475bd16ec4", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 2120a239aefde2fe9cbe2873d40b9bcde9b0b16c Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:03:00 +0200 Subject: [PATCH 17/36] Move notebook to example_nodebooks directory --- DREAMS/{Test_codes => example_nodebooks}/cluster2.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename DREAMS/{Test_codes => example_nodebooks}/cluster2.ipynb (100%) diff --git a/DREAMS/Test_codes/cluster2.ipynb b/DREAMS/example_nodebooks/cluster2.ipynb similarity index 100% rename from DREAMS/Test_codes/cluster2.ipynb rename to DREAMS/example_nodebooks/cluster2.ipynb From a670e587a9e37f78770a433ce665c48ddd63a744 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:06:21 +0200 Subject: [PATCH 18/36] Add inst_pkgs link --- DREAMS/example_nodebooks/inst_pkgs | 1 + 1 file changed, 1 insertion(+) create mode 120000 DREAMS/example_nodebooks/inst_pkgs diff --git a/DREAMS/example_nodebooks/inst_pkgs b/DREAMS/example_nodebooks/inst_pkgs new file mode 120000 index 00000000..c25bddb6 --- /dev/null +++ b/DREAMS/example_nodebooks/inst_pkgs @@ -0,0 +1 @@ +../.. \ No newline at end of file From 90063a88a2915a537a226ed0261084b8f315b09e Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:10:37 +0200 Subject: [PATCH 19/36] Cleanup notebook --- DREAMS/example_nodebooks/cluster2.ipynb | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/DREAMS/example_nodebooks/cluster2.ipynb b/DREAMS/example_nodebooks/cluster2.ipynb index b854709c..3cd59f4b 100644 --- a/DREAMS/example_nodebooks/cluster2.ipynb +++ b/DREAMS/example_nodebooks/cluster2.ipynb @@ -19,8 +19,8 @@ "from scopesim.source.source_templates import star_field\n", "import scopesim_templates as sim_tp\n", "from scopesim.optics.fov_manager import FOVManager\n", - "from astropy.io import fits #FITS files handling\n", - "import os #Call commands from outside Python\n", + "from astropy.io import fits\n", + "import os\n", "from matplotlib.colors import LogNorm\n", "import matplotlib.pyplot as plt\n", "from scopesim_templates.stellar import star_field" @@ -36,6 +36,7 @@ "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", "dreams = scopesim.OpticalTrain(cmds)\n", "\n", + "# Lower integration times are feasible too, up to 60 seconds, but make the sources really hard to see. \n", "cmds[\"!OBS.dit\"] = 60 * 60\n", "cmds[\"!DET.bin_size\"] = 1\n", "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", @@ -43,13 +44,11 @@ "cmds[\"SIM.sub_pixel.flag\"] = True\n", "dreams = scopesim.OpticalTrain(cmds)\n", "dreams[\"detector_linearity\"].include = False\n", - "print(\"scopesim package loaded successfully.\")\n", "\n", - "#%% SECTION: SOURCE AND PLOT THE DREAMS DETECTOR 1\n", "source = star_field(n=500,mmin=15, mmax=25, width=10000, height=10000) \n", "dreams.observe(source)\n", "hdul = dreams.readout('dreams_1.fits')\n", - "data = hdul[0][1].data # Dreams detector 1" + "data = hdul[0][1].data # Dreams detector 1" ] }, { @@ -65,16 +64,9 @@ "plt.title(\"DREAMS Detector 1\")\n", "plt.xlabel(\"X Pixels\")\n", "plt.ylabel(\"Y Pixels\")\n", - "plt.show()" + "# plt.show()\n", + "plt.savefig(\"cluster2.png\")" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b32c07bb-8d4d-4fa6-b4b4-81475bd16ec4", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 057d178658bd584abff01cacc368ed39b258952f Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:13:58 +0200 Subject: [PATCH 20/36] Move LMC notebook --- DREAMS/Test_codes/LMC.py | 59 ---------------- DREAMS/example_nodebooks/LMC.ipynb | 109 +++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 59 deletions(-) delete mode 100644 DREAMS/Test_codes/LMC.py create mode 100644 DREAMS/example_nodebooks/LMC.ipynb diff --git a/DREAMS/Test_codes/LMC.py b/DREAMS/Test_codes/LMC.py deleted file mode 100644 index dd52859c..00000000 --- a/DREAMS/Test_codes/LMC.py +++ /dev/null @@ -1,59 +0,0 @@ -"""A cluster in the LMC.""" - -import os -import pytest -import numpy as np -from astropy.io.fits import HDUList -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -import scopesim -import synphot -from scopesim import Source -from astropy.io import fits - - -from scopesim import rc -from scopesim.source.source_templates import star_field -import scopesim_templates as sim_tp -from scopesim.optics.fov_manager import FOVManager - -PLOTS = True - -if rc.__config__["!SIM.tests.run_integration_tests"] is False: - pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") - -cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 1000 -cmds["!OBS.ndit"] = 1000 -cmds["!DET.bin_size"] = 1 -cmds["!OBS.sky.bg_mag"] = 14.9 -cmds["!OBS.sky.filter_name"] = "J" -cmds["SIM.sub_pixel.flag"] = True -dreams = scopesim.OpticalTrain(cmds) -dreams["detector_linearity"].include = False - -print("scopesim package loaded successfully.") -src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=500, seed=9002) - -dreams.observe(src) -hdus = dreams.readout("LMC.fits") - -dreams.optics_manager.system_transmission(plot=True) - -# detector_order = [2, 1, 4, 3, 6, 5] -detector_order = [1, 2, 3, 4, 5, 6] - -plt.figure(figsize=(20, 20)) -# Nothing visible here because the sources are too small. -for plot_number, hdu_number in enumerate(detector_order, 1): - plt.subplot(3, 2, plot_number) - plt.imshow(hdus[0][hdu_number].data, norm='log', cmap="hot") - plt.colorbar() - -# Does show something. -plt.figure(figsize=(20, 20)) -plt.subplot(1, 1, 1) -plt.imshow(hdus[0][2].data, norm='log', cmap="hot") -plt.colorbar() - -plt.show() diff --git a/DREAMS/example_nodebooks/LMC.ipynb b/DREAMS/example_nodebooks/LMC.ipynb new file mode 100644 index 00000000..a7d8f979 --- /dev/null +++ b/DREAMS/example_nodebooks/LMC.ipynb @@ -0,0 +1,109 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8d81e2a4-c724-4ba1-8bc4-b69ef7f17efa", + "metadata": {}, + "source": [ + "# A cluster in the LMC." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "528b1786-b64f-48cb-8953-6de10a7ec595", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pytest\n", + "import numpy as np\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "import scopesim\n", + "import synphot\n", + "from scopesim import Source\n", + "from astropy.io import fits\n", + "\n", + "\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a75b70ae-8cd1-49e6-849a-7a131aa71dc0", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "cmds[\"!OBS.dit\"] = 1000\n", + "cmds[\"!OBS.ndit\"] = 1000\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False\n", + "\n", + "src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=500, seed=9002)\n", + "\n", + "dreams.observe(src)\n", + "hdus = dreams.readout(\"LMC.fits\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5332687-33f4-493e-8b90-7ef0ddc59721", + "metadata": {}, + "outputs": [], + "source": [ + "dreams.optics_manager.system_transmission(plot=True)\n", + "\n", + "# detector_order = [2, 1, 4, 3, 6, 5]\n", + "detector_order = [1, 2, 3, 4, 5, 6]\n", + "\n", + "plt.figure(figsize=(20, 20))\n", + "# Nothing visible here because the sources are too small.\n", + "for plot_number, hdu_number in enumerate(detector_order, 1):\n", + " plt.subplot(3, 2, plot_number)\n", + " plt.imshow(hdus[0][hdu_number].data, norm='log', cmap=\"hot\")\n", + " plt.colorbar()\n", + "\n", + "# Does show something.\n", + "plt.figure(figsize=(20, 20))\n", + "plt.subplot(1, 1, 1)\n", + "plt.imshow(hdus[0][2].data, norm='log', cmap=\"hot\")\n", + "plt.colorbar()\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From e3a30877cea2791e637baa48c245fd3a9a58338d Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:34:33 +0200 Subject: [PATCH 21/36] Add mock cluster with larger sources. --- DREAMS/example_nodebooks/Mock-Cluster.ipynb | 123 ++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 DREAMS/example_nodebooks/Mock-Cluster.ipynb diff --git a/DREAMS/example_nodebooks/Mock-Cluster.ipynb b/DREAMS/example_nodebooks/Mock-Cluster.ipynb new file mode 100644 index 00000000..b2c51e1f --- /dev/null +++ b/DREAMS/example_nodebooks/Mock-Cluster.ipynb @@ -0,0 +1,123 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8d81e2a4-c724-4ba1-8bc4-b69ef7f17efa", + "metadata": {}, + "source": [ + "# A mock cluster\n", + "\n", + "With the FWHM of the PSF artificially enlarged so the sources are easy to see." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "528b1786-b64f-48cb-8953-6de10a7ec595", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pytest\n", + "import numpy as np\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "import scopesim\n", + "import synphot\n", + "from scopesim import Source\n", + "from astropy.io import fits\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01508c44-c4dd-431f-9eea-8e69cefa5cb2", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "cmds[\"!OBS.dit\"] = 1000\n", + "cmds[\"!OBS.ndit\"] = 1000\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "466915ae-ef62-4ec6-bb8b-7a1b2c5678dc", + "metadata": {}, + "outputs": [], + "source": [ + "print(\"PSF was\", dreams[\"seeing_psf\"].meta[\"fwhm\"], \"arcseconds\")\n", + "dreams[\"seeing_psf\"].meta[\"fwhm\"] = 25\n", + "print(\"PSF is\", dreams[\"seeing_psf\"].meta[\"fwhm\"], \"arcseconds\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a75b70ae-8cd1-49e6-849a-7a131aa71dc0", + "metadata": {}, + "outputs": [], + "source": [ + "# Cluster artificially made smaller so it fits in the field of view.\n", + "src = sim_tp.stellar.clusters.cluster(mass=10000, distance=1800, core_radius=5, seed=9002)\n", + "\n", + "dreams.observe(src)\n", + "hdus = dreams.readout(\"LMC.fits\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5332687-33f4-493e-8b90-7ef0ddc59721", + "metadata": {}, + "outputs": [], + "source": [ + "# detector_order = [2, 1, 4, 3, 6, 5]\n", + "detector_order = [1, 2, 3, 4, 5, 6]\n", + "\n", + "# Since the sources are now artificially large, they can be seen.\n", + "plt.figure(figsize=(20, 20))\n", + "for plot_number, hdu_number in enumerate(detector_order, 1):\n", + " plt.subplot(3, 2, plot_number)\n", + " plt.imshow(hdus[0][hdu_number].data, norm='log', cmap=\"hot\")\n", + " plt.colorbar()\n", + "\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 4d1849cd28bf399a8d3b637852fb89a0a114741a Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:35:21 +0200 Subject: [PATCH 22/36] Delete Lc.py, not as useful as LMC.ipynb --- DREAMS/Test_codes/Lc.py | 54 ----------------------------------------- 1 file changed, 54 deletions(-) delete mode 100644 DREAMS/Test_codes/Lc.py diff --git a/DREAMS/Test_codes/Lc.py b/DREAMS/Test_codes/Lc.py deleted file mode 100644 index 3e37bb18..00000000 --- a/DREAMS/Test_codes/Lc.py +++ /dev/null @@ -1,54 +0,0 @@ -#cluster in the LMC -import os -import pytest -import numpy as np -from astropy.io.fits import HDUList -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -import scopesim -import synphot -from scopesim import Source -from astropy.io import fits - - -from scopesim import rc -from scopesim.source.source_templates import star_field -import scopesim_templates as sim_tp -from scopesim_templates.stellar import cluster - -from scopesim.optics.fov_manager import FOVManager - -PLOTS = True - -if rc.__config__["!SIM.tests.run_integration_tests"] is False: - pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") - -cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 1000 -cmds["!OBS.ndit"] = 1000 -cmds["!DET.bin_size"] = 1 -cmds["!OBS.sky.bg_mag"] = 14.9 -cmds["!OBS.sky.filter_name"] = "J" -cmds["SIM.sub_pixel.flag"] = True -dreams = scopesim.OpticalTrain(cmds) -dreams["detector_linearity"].include = False - -print("scopesim package loaded successfully.") -src = cluster(mass=1000, distance=50000, core_radius=500, seed=9002) - -dreams.observe(src) -print("yessss anjali") -hdus = dreams.readout() -dreams.readout(filename="Lc.fits") -#plt.subplot(121) -#wave = np.arange(3000, 11000) -#plt.plot(wave, dreams.optics_manager.system_transmission(wave)) -plt.subplot(122) -im = hdus[0][1].data -plt.imshow(im, norm=LogNorm()) -plt.colorbar() -plt.title("Observed Star Field") -plt.xlabel("X Pixels") -plt.ylabel("Y Pixels") -plt.grid() -plt.show() From 8a1de07610102b88c4717946fef58d40d180359d Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:36:33 +0200 Subject: [PATCH 23/36] Move field notebook --- DREAMS/{Test_codes => unfinished}/field.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename DREAMS/{Test_codes => unfinished}/field.ipynb (100%) diff --git a/DREAMS/Test_codes/field.ipynb b/DREAMS/unfinished/field.ipynb similarity index 100% rename from DREAMS/Test_codes/field.ipynb rename to DREAMS/unfinished/field.ipynb From a3e947505b95510ad5055b10c56a560d255c4659 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:37:29 +0200 Subject: [PATCH 24/36] Move Galaxy.py to unfinished Galaxy.ipynb --- DREAMS/Test_codes/Galaxy.py | 67 --------------- DREAMS/unfinished/Galaxy.ipynb | 143 +++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 67 deletions(-) delete mode 100644 DREAMS/Test_codes/Galaxy.py create mode 100644 DREAMS/unfinished/Galaxy.ipynb diff --git a/DREAMS/Test_codes/Galaxy.py b/DREAMS/Test_codes/Galaxy.py deleted file mode 100644 index 7287ea2f..00000000 --- a/DREAMS/Test_codes/Galaxy.py +++ /dev/null @@ -1,67 +0,0 @@ -# Extragalatic -import os -import pytest -import numpy as np -from astropy.io.fits import HDUList -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -import scopesim -import synphot -from scopesim import Source -from astropy.io import fits -from scopesim_templates.extragalactic import galaxy -from scopesim import rc -from scopesim.source.source_templates import star_field -import scopesim_templates as sim_tp -from scopesim.optics.fov_manager import FOVManager - -PLOTS = True - -if rc.__config__["!SIM.tests.run_integration_tests"] is False: - pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") - -cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 1000 -cmds["!OBS.ndit"] = 1000 -cmds["!DET.bin_size"] = 1 -cmds["!OBS.sky.bg_mag"] = 14.9 -cmds["!OBS.sky.filter_name"] = "J" -cmds["SIM.sub_pixel.flag"] = True -dreams = scopesim.OpticalTrain(cmds) -dreams["detector_linearity"].include = False - -print("scopesim package loaded successfully.") -from scopesim_templates.extragalactic import galaxy -src = galaxy("kc96/s0", z=1.5, amplitude=17, filter_curve="J", pixel_scale=0.01, r_eff=2.5, n=4, ellip=0.5, theta=45, extend=3) - -dreams.observe(src) -print("yessss anjali") -hdus = dreams.readout() -dreams.readout(filename="gal.fits") -# Observe the source -dreams.observe(src) - -# Readout and plot -hdus = dreams.readout() - -plt.subplot(122) -im = hdus[0][1].data -plt.imshow(im, norm=LogNorm()) -plt.colorbar() -plt.title("Observed Galaxy Field") -plt.xlabel("X Pixels") -plt.ylabel("Y Pixels") - -detector_order = [2, 1, 4, 3, 6, 5] -plt.figure(figsize=(20, 20)) -for plot_number, hdu_number in enumerate(detector_order, 1): - plt.subplot(3, 2, plot_number) - plt.imshow(np.log10(src.fields[0].data), origin="lower") - plt.colorbar() - plt.title(f"HDU {hdu_number}") - -plt.show() - - - - diff --git a/DREAMS/unfinished/Galaxy.ipynb b/DREAMS/unfinished/Galaxy.ipynb new file mode 100644 index 00000000..174536c3 --- /dev/null +++ b/DREAMS/unfinished/Galaxy.ipynb @@ -0,0 +1,143 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "59135b96-d114-42a3-ace8-fd81ef97cb37", + "metadata": {}, + "outputs": [], + "source": [ + "# Extragalatic\n", + "import os\n", + "import pytest\n", + "import numpy as np\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "import scopesim\n", + "import synphot\n", + "from scopesim import Source\n", + "from astropy.io import fits\n", + "from scopesim_templates.extragalactic import galaxy\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager\n", + "from scopesim_templates.extragalactic import galaxy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "003108a8-d9d2-4aa7-8f44-a42f40d15e7b", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "cmds[\"!OBS.dit\"] = 1000\n", + "cmds[\"!OBS.ndit\"] = 1000\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 24.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False\n", + "\n", + "src = galaxy(\"kc96/s0\", \n", + " z=1.5, \n", + " amplitude=17,\n", + " filter_curve=\"J\", \n", + " pixel_scale=1, \n", + " r_eff=2.5 * 1000, \n", + " n=4, \n", + " ellip=0.5, \n", + " theta=45, \n", + " extend=3)\n", + "\n", + "dreams.observe(src)\n", + "hdus = dreams.readout()\n", + "dreams.readout(filename=\"Galaxy.fits\")\n", + "\n", + "# Observe the source\n", + "dreams.observe(src)\n", + "\n", + "# Readout\n", + "hdus = dreams.readout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66f034b5-9f94-4940-8d01-9dbf68a38a4c", + "metadata": {}, + "outputs": [], + "source": [ + "len(hdus[0])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb97295d-f971-42fa-9871-12978cc46df3", + "metadata": {}, + "outputs": [], + "source": [ + "plt.subplot(122)\n", + "im = hdus[0][1].data\n", + "plt.imshow(im, norm=LogNorm())\n", + "plt.colorbar()\n", + "plt.title(\"Observed Galaxy Field\")\n", + "plt.xlabel(\"X Pixels\")\n", + "plt.ylabel(\"Y Pixels\")\n", + "\n", + "detector_order = [2, 1, 4, 3, 6, 5]\n", + "plt.figure(figsize=(20, 20))\n", + "for plot_number, hdu_number in enumerate(detector_order, 1):\n", + " plt.subplot(3, 2, plot_number)\n", + " # plt.imshow(np.log10(src.fields[0].data), origin=\"lower\")\n", + " plt.imshow(np.log10(hdus[0][hdu_number].data), origin=\"lower\")\n", + " plt.colorbar()\n", + " plt.title(f\"HDU {hdu_number}\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29d3838d-a8a0-4d79-97c9-d510b62af46d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6bcd6158-f97c-4be4-9d99-ccef5241f13e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 1137decb8129e663027f69cd6707037606e8269b Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:42:15 +0200 Subject: [PATCH 25/36] Move elliptical to unfinished notebook --- DREAMS/Test_codes/ellip.py | 55 ----------------- DREAMS/unfinished/Elliptical.ipynb | 98 ++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 55 deletions(-) delete mode 100644 DREAMS/Test_codes/ellip.py create mode 100644 DREAMS/unfinished/Elliptical.ipynb diff --git a/DREAMS/Test_codes/ellip.py b/DREAMS/Test_codes/ellip.py deleted file mode 100644 index 7004683b..00000000 --- a/DREAMS/Test_codes/ellip.py +++ /dev/null @@ -1,55 +0,0 @@ -#Elliptical Galaxy -import os -import pytest -import numpy as np -from astropy.io.fits import HDUList -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -import scopesim -import synphot -from scopesim_templates.extragalactic.galaxies import elliptical -from astropy.io import fits - - -from scopesim import rc -from scopesim.source.source_templates import star_field -import scopesim_templates as sim_tp -from scopesim.optics.fov_manager import FOVManager - -PLOTS = True - -if rc.__config__["!SIM.tests.run_integration_tests"] is False: - pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") - -cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 1000 -cmds["!OBS.ndit"] = 1000 -cmds["!DET.bin_size"] = 1 -cmds["!OBS.sky.bg_mag"] = 14.9 -cmds["!OBS.sky.filter_name"] = "J" -cmds["SIM.sub_pixel.flag"] = True -dreams = scopesim.OpticalTrain(cmds) -dreams["detector_linearity"].include = False - -print("scopesim package loaded successfully.") -src = elliptical(half_light_radius=11500, pixel_scale=2.48, filter_name="J", amplitude=17, normalization="total", n=4, ellipticity=0.5, angle=30) -dreams.observe(src) -hdus = dreams.readout() -dreams.readout(filename="ellip.fits") -plt.subplot(122) -im = hdus[0][1].data -plt.imshow(im, norm=LogNorm()) -plt.colorbar() -plt.title("Observed Galaxy Field") -plt.xlabel("X Pixels") -plt.ylabel("Y Pixels") - -detector_order = [2, 1, 4, 3, 6, 5] -plt.figure(figsize=(20, 20)) -for plot_number, hdu_number in enumerate(detector_order, 1): - plt.subplot(3, 2, plot_number) - plt.imshow(np.log10(src.fields[0].data), origin="lower") - plt.colorbar() - plt.title(f"HDU {hdu_number}") - -plt.show() diff --git a/DREAMS/unfinished/Elliptical.ipynb b/DREAMS/unfinished/Elliptical.ipynb new file mode 100644 index 00000000..58131b08 --- /dev/null +++ b/DREAMS/unfinished/Elliptical.ipynb @@ -0,0 +1,98 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "7369e1c2-9dac-443c-87e9-80a744e0e59f", + "metadata": {}, + "outputs": [], + "source": [ + "#Elliptical Galaxy\n", + "import os\n", + "import pytest\n", + "import numpy as np\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "import scopesim\n", + "import synphot\n", + "from scopesim_templates.extragalactic.galaxies import elliptical\n", + "from astropy.io import fits\n", + "\n", + "\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager\n", + "\n", + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "cmds[\"!OBS.dit\"] = 1000\n", + "cmds[\"!OBS.ndit\"] = 1000\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False\n", + "\n", + "print(\"scopesim package loaded successfully.\")\n", + "src = elliptical(half_light_radius=11500, \n", + " pixel_scale=2.48, \n", + " filter_name=\"J\", amplitude=17, \n", + " normalization=\"total\", \n", + " n=4, \n", + " ellipticity=0.5, \n", + " angle=30)\n", + "dreams.observe(src)\n", + "hdus = dreams.readout()\n", + "dreams.readout(filename=\"ellip.fits\")\n", + "plt.subplot(122)\n", + "im = hdus[0][1].data\n", + "plt.imshow(im, norm=LogNorm())\n", + "plt.colorbar()\n", + "plt.title(\"Observed Galaxy Field\")\n", + "plt.xlabel(\"X Pixels\")\n", + "plt.ylabel(\"Y Pixels\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce92e256-3a73-4e7f-85cb-00943118dab1", + "metadata": {}, + "outputs": [], + "source": [ + "detector_order = [2, 1, 4, 3, 6, 5]\n", + "plt.figure(figsize=(20, 20))\n", + "for plot_number, hdu_number in enumerate(detector_order, 1):\n", + " plt.subplot(3, 2, plot_number)\n", + " plt.imshow(np.log10(hdus[0][hdu_number].data), origin=\"lower\")\n", + " plt.colorbar()\n", + " plt.title(f\"HDU {hdu_number}\")\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From a5e437e11476513a22b0dd69640aca13ba8a813b Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:43:15 +0200 Subject: [PATCH 26/36] Remove GaussianDiffraction --- DREAMS/Test_codes/GaussianDiffractionPSF.py | 68 --------------------- 1 file changed, 68 deletions(-) delete mode 100644 DREAMS/Test_codes/GaussianDiffractionPSF.py diff --git a/DREAMS/Test_codes/GaussianDiffractionPSF.py b/DREAMS/Test_codes/GaussianDiffractionPSF.py deleted file mode 100644 index cad84dcf..00000000 --- a/DREAMS/Test_codes/GaussianDiffractionPSF.py +++ /dev/null @@ -1,68 +0,0 @@ -import os -import numpy as np -from astropy import units as u -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -from astropy.convolution import Gaussian2DKernel -from scopesim.utils import quantify -from scopesim import rc -from scopesim_templates.stellar import star_field -from scopesim.optics.fov_manager import FOVManager - -# Set plotting flag -PLOTS = True - -# GaussianDiffractionPSF Class -class GaussianDiffractionPSF: - def __init__(self, diameter=0.1, **kwargs): # Default diameter is 0.1 m - self.meta = {"diameter": diameter, "z_order": [242, 642]} - self.required_keys = {"pixel_scale"} - self.valid_waverange = [11610.0 * u.angstrom.to(u.micron), # Min wavelength in microns - 13330.0 * u.angstrom.to(u.micron)] # Max wavelength in microns - - def update(self, **kwargs): - if "diameter" in kwargs: - self.meta["diameter"] = kwargs["diameter"] - - def get_kernel(self, pixel_scale): - wave_min = 11610.0 * u.angstrom.to(u.micron) # Using J band min wave - wave_max =13330.0 * u.angstrom.to(u.micron) # Using J band max wave - wave = 0.5 * (wave_max + wave_min) # Average wave - wave = quantify(wave, u.um) - - - diameter = quantify(self.meta["diameter"], u.m).to(u.um) - fwhm = 1.22 * (wave / diameter) * u.rad.to(u.arcsec) / pixel_scale - - sigma = fwhm.value / 2.35 - kernel = Gaussian2DKernel(sigma, mode="center").array - kernel /= np.sum(kernel) - - return kernel - - def plot(self, pixel_scale): - kernel = self.get_kernel(pixel_scale) - - size = kernel.shape[0] - arcsec_extent = size * pixel_scale / 2 - x = np.linspace(-arcsec_extent, arcsec_extent, size) - y = np.linspace(-arcsec_extent, arcsec_extent, size) - - plt.figure(figsize=(8, 6)) - plt.imshow(kernel, origin='lower', extent=[x[0], x[-1], y[0], y[-1]], cmap='plasma', norm=LogNorm(vmin=1e-6, vmax=1)) - plt.colorbar(label='Intensity') - plt.title(f"Gaussian Diffraction PSF (Diameter = {self.meta['diameter']} m, J Band Wavelength)") - plt.xlabel("X [arcseconds]") - plt.ylabel("Y [arcseconds]") - plt.gca().set_aspect('equal', adjustable='box') - plt.grid(False) - plt.show() - -# Define the pixel scale for DREAMS -pixel_scale = 2.48 # Arcseconds per pixel for DREAMS - -# Instantiate the GaussianDiffractionPSF class -gaussian_psf = GaussianDiffractionPSF(diameter=0.5) - -# Plot the Gaussian Diffraction PSF -gaussian_psf.plot(pixel_scale) From 74c36d8d8d389f800acf7fefec0152ca5eb368ac Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:48:06 +0200 Subject: [PATCH 27/36] Move star 1 to unfinished notebook --- DREAMS/Test_codes/star_1.py | 63 ------------------- DREAMS/unfinished/Star1.ipynb | 112 ++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 63 deletions(-) delete mode 100644 DREAMS/Test_codes/star_1.py create mode 100644 DREAMS/unfinished/Star1.ipynb diff --git a/DREAMS/Test_codes/star_1.py b/DREAMS/Test_codes/star_1.py deleted file mode 100644 index 55ac0556..00000000 --- a/DREAMS/Test_codes/star_1.py +++ /dev/null @@ -1,63 +0,0 @@ -import os -import pytest -import numpy as np -from astropy.io.fits import HDUList -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -import scopesim -import synphot -from scopesim import Source -from astropy.io import fits - - -from scopesim import rc -from scopesim.source.source_templates import star_field -import scopesim_templates as sim_tp -from scopesim.optics.fov_manager import FOVManager - -PLOTS = True - -if rc.__config__["!SIM.tests.run_integration_tests"] is False: - pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") - -cmds = scopesim.UserCommands(use_instrument="DREAMS") -cmds["!OBS.dit"] = 10 -cmds["!DET.bin_size"] = 1 -cmds["!OBS.sky.bg_mag"] = 14.9 -cmds["!OBS.sky.filter_name"] = "J" -cmds["SIM.sub_pixel.flag"] = True -dreams = scopesim.OpticalTrain(cmds) -dreams["detector_linearity"].include = False - -print("scopesim package loaded successfully.") -x, y = np.meshgrid(np.arange(100), np.arange(100)) -img = np.exp(-1 * ( ( (x - 50) / 5)**2 + ( (y - 50) / 5)**2 ) ) -# Fits headers of the image. Yes it needs a WCS -hdr = fits.Header(dict(NAXIS=2,NAXIS1=img.shape[0]+1,NAXIS2=img.shape[1]+1, CRPIX1=img.shape[0] / 2, CRPIX2=img.shape[1] / 2, CRVAL1=0, CRVAL2=0, CDELT1=0.2/3600, CDELT2=0.2/3600, -CUNIT1="DEG", CUNIT2="DEG", CTYPE1='RA---TAN', CTYPE2='DEC--TAN')) -# Creating an ImageHDU object -hdu = fits.ImageHDU(data=img, header=hdr) - -# Creating of a black body spectrum -wave = np.arange(1000, 35000, 10 ) -bb = synphot.models.BlackBody1D(temperature=5000) -sp = synphot.SourceSpectrum(synphot.Empirical1D, points=wave, lookup_table=bb(wave)) -src = Source(image_hdu=hdu, spectra=sp) -src.shift(10, 10) -dreams.observe(src) -print("yessss anjali") -hdus = dreams.readout() -#dreams.readout(filename="Han.fits") -plt.subplot(121) -wave = np.arange(3000, 11000) -plt.plot(wave, dreams.optics_manager.system_transmission(wave)) -plt.subplot(122) -im = hdus[0][1].data -detector_order = [2, 1, 4, 3, 6, 5] -plt.figure(figsize=(20, 20)) -for plot_number, hdu_number in enumerate(detector_order, 1): - plt.subplot(3, 2, plot_number) - plt.imshow(hdus[0][hdu_number].data, origin="lower", norm=LogNorm()) - plt.colorbar() - -plt.show() diff --git a/DREAMS/unfinished/Star1.ipynb b/DREAMS/unfinished/Star1.ipynb new file mode 100644 index 00000000..72c6211b --- /dev/null +++ b/DREAMS/unfinished/Star1.ipynb @@ -0,0 +1,112 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "cf9ae246-6aae-457e-ab2a-f174f1c3b63c", + "metadata": {}, + "outputs": [], + "source": [ + "import pytest\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "import scopesim\n", + "import synphot\n", + "from scopesim import Source\n", + "from astropy.io import fits\n", + "from scopesim import rc" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6464803-a473-458f-843b-317f88831e0f", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "cmds[\"!OBS.dit\"] = 10\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False\n", + "print(\"scopesim package loaded successfully.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e10a549-ecc1-4231-bbe0-44f6f19180ce", + "metadata": {}, + "outputs": [], + "source": [ + "x, y = np.meshgrid(np.arange(100), np.arange(100))\n", + "img = np.exp(-1 * ( ( (x - 50) / 5)**2 + ( (y - 50) / 5)**2 ) )\n", + "# Fits headers of the image. Yes it needs a WCS\n", + "hdr = fits.Header(dict(NAXIS=2,NAXIS1=img.shape[0]+1,NAXIS2=img.shape[1]+1, CRPIX1=img.shape[0] / 2, CRPIX2=img.shape[1] / 2, CRVAL1=0, CRVAL2=0, CDELT1=0.2/3600, CDELT2=0.2/3600,\n", + "CUNIT1=\"DEG\", CUNIT2=\"DEG\", CTYPE1='RA---TAN', CTYPE2='DEC--TAN'))\n", + "# Creating an ImageHDU object\n", + "hdu = fits.ImageHDU(data=img, header=hdr)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0b84049-a9cb-415c-8f92-dce5256b8d7f", + "metadata": {}, + "outputs": [], + "source": [ + "# Creating of a black body spectrum\n", + "wave = np.arange(1000, 35000, 10 )\n", + "bb = synphot.models.BlackBody1D(temperature=5000)\n", + "sp = synphot.SourceSpectrum(synphot.Empirical1D, points=wave, lookup_table=bb(wave))\n", + "src = Source(image_hdu=hdu, spectra=sp)\n", + "src.shift(10, 10)\n", + "dreams.observe(src)\n", + "hdus = dreams.readout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a2ae288-636c-40b6-b5e7-8bc16ff4d243", + "metadata": {}, + "outputs": [], + "source": [ + "im = hdus[0][1].data\n", + "detector_order = [2, 1, 4, 3, 6, 5]\n", + "plt.figure(figsize=(20, 20))\n", + "for plot_number, hdu_number in enumerate(detector_order, 1):\n", + " plt.subplot(3, 2, plot_number)\n", + " plt.imshow(hdus[0][hdu_number].data, origin=\"lower\", norm=LogNorm())\n", + " plt.colorbar()\n", + " \n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 32176746758dcea193b31584b1d72d27db1d9eee Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:48:34 +0200 Subject: [PATCH 28/36] Rename Test_codes to tests --- DREAMS/{Test_codes => tests}/cluster.py | 0 DREAMS/{Test_codes => tests}/inst_pkgs | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename DREAMS/{Test_codes => tests}/cluster.py (100%) rename DREAMS/{Test_codes => tests}/inst_pkgs (100%) diff --git a/DREAMS/Test_codes/cluster.py b/DREAMS/tests/cluster.py similarity index 100% rename from DREAMS/Test_codes/cluster.py rename to DREAMS/tests/cluster.py diff --git a/DREAMS/Test_codes/inst_pkgs b/DREAMS/tests/inst_pkgs similarity index 100% rename from DREAMS/Test_codes/inst_pkgs rename to DREAMS/tests/inst_pkgs From 322ecbb18f12b8391e7839e2a4b1c97480f01954 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:50:55 +0200 Subject: [PATCH 29/36] Disable plots for test --- DREAMS/tests/cluster.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DREAMS/tests/cluster.py b/DREAMS/tests/cluster.py index e238512e..74669736 100644 --- a/DREAMS/tests/cluster.py +++ b/DREAMS/tests/cluster.py @@ -10,7 +10,7 @@ from scopesim.source.source_templates import star_field import scopesim_templates as sim_tp -PLOTS = True +PLOTS = False if rc.__config__["!SIM.tests.run_integration_tests"] is False: pytestmark = pytest.mark.skip("Ignoring DREAMS integration tests") @@ -116,3 +116,4 @@ def run_test_and_plot(): # Run the test and plot as soon as the module is imported if __name__ == '__main__': run_test_and_plot() + \ No newline at end of file From 649455e6f85f990f6ead6582ed09c3d6eb3ae9c4 Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Wed, 17 Jun 2026 13:51:58 +0200 Subject: [PATCH 30/36] Rename cluster test --- DREAMS/tests/{cluster.py => test_cluster.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename DREAMS/tests/{cluster.py => test_cluster.py} (100%) diff --git a/DREAMS/tests/cluster.py b/DREAMS/tests/test_cluster.py similarity index 100% rename from DREAMS/tests/cluster.py rename to DREAMS/tests/test_cluster.py From ba236f39027654d91b6799ca54c80ae62c7a1b1d Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:17:20 +0200 Subject: [PATCH 31/36] Rename notebook directory... --- DREAMS/{example_nodebooks => example_notebooks}/LMC.ipynb | 0 .../{example_nodebooks => example_notebooks}/Mock-Cluster.ipynb | 0 DREAMS/{example_nodebooks => example_notebooks}/cluster2.ipynb | 0 DREAMS/{example_nodebooks => example_notebooks}/inst_pkgs | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename DREAMS/{example_nodebooks => example_notebooks}/LMC.ipynb (100%) rename DREAMS/{example_nodebooks => example_notebooks}/Mock-Cluster.ipynb (100%) rename DREAMS/{example_nodebooks => example_notebooks}/cluster2.ipynb (100%) rename DREAMS/{example_nodebooks => example_notebooks}/inst_pkgs (100%) diff --git a/DREAMS/example_nodebooks/LMC.ipynb b/DREAMS/example_notebooks/LMC.ipynb similarity index 100% rename from DREAMS/example_nodebooks/LMC.ipynb rename to DREAMS/example_notebooks/LMC.ipynb diff --git a/DREAMS/example_nodebooks/Mock-Cluster.ipynb b/DREAMS/example_notebooks/Mock-Cluster.ipynb similarity index 100% rename from DREAMS/example_nodebooks/Mock-Cluster.ipynb rename to DREAMS/example_notebooks/Mock-Cluster.ipynb diff --git a/DREAMS/example_nodebooks/cluster2.ipynb b/DREAMS/example_notebooks/cluster2.ipynb similarity index 100% rename from DREAMS/example_nodebooks/cluster2.ipynb rename to DREAMS/example_notebooks/cluster2.ipynb diff --git a/DREAMS/example_nodebooks/inst_pkgs b/DREAMS/example_notebooks/inst_pkgs similarity index 100% rename from DREAMS/example_nodebooks/inst_pkgs rename to DREAMS/example_notebooks/inst_pkgs From f85f8d4e532f3e7c5bbf750db67e88a722aafa2a Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:21:09 +0200 Subject: [PATCH 32/36] Add inst_pkgs link to unfinished notebooks as well --- DREAMS/unfinished/inst_pkgs | 1 + 1 file changed, 1 insertion(+) create mode 120000 DREAMS/unfinished/inst_pkgs diff --git a/DREAMS/unfinished/inst_pkgs b/DREAMS/unfinished/inst_pkgs new file mode 120000 index 00000000..c25bddb6 --- /dev/null +++ b/DREAMS/unfinished/inst_pkgs @@ -0,0 +1 @@ +../.. \ No newline at end of file From 513b85405452740938819bd1ded8659e3fc3a2fb Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:54:31 +0200 Subject: [PATCH 33/36] Add supernova example --- DREAMS/example_notebooks/Supernova.ipynb | 151 +++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 DREAMS/example_notebooks/Supernova.ipynb diff --git a/DREAMS/example_notebooks/Supernova.ipynb b/DREAMS/example_notebooks/Supernova.ipynb new file mode 100644 index 00000000..910e7760 --- /dev/null +++ b/DREAMS/example_notebooks/Supernova.ipynb @@ -0,0 +1,151 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "c9149b97-f2b8-49e6-808f-c2b5fcd329b5", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import scopesim\n", + "import synphot\n", + "import pytest\n", + "import scopesim\n", + "import numpy as np\n", + "import astropy\n", + "import scopesim_templates\n", + "import scopesim_targets\n", + "from astropy.io.fits import HDUList\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib.colors import LogNorm\n", + "from scopesim import rc\n", + "from scopesim.source.source_templates import star_field\n", + "import scopesim_templates as sim_tp\n", + "from scopesim.optics.fov_manager import FOVManager\n", + "from astropy.io import fits\n", + "from matplotlib.colors import LogNorm\n", + "import matplotlib.pyplot as plt\n", + "from scopesim_templates.stellar import star_field\n", + "from spextra import Spextrum\n", + "from scopesim_targets.point_source import Star\n", + "from scopesim_targets.extended_source import Sersic\n", + "from astropy import units as u" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96a62b81-8fa8-4ab9-bea2-191f40171319", + "metadata": {}, + "outputs": [], + "source": [ + "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "cmds[\"!OBS.dit\"] = 60 * 60\n", + "cmds[\"!DET.bin_size\"] = 1\n", + "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", + "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", + "cmds[\"SIM.sub_pixel.flag\"] = True\n", + "dreams = scopesim.OpticalTrain(cmds)\n", + "dreams[\"detector_linearity\"].include = False" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6bf50b9b-9808-49fc-9ba6-5ee9672e1ee7", + "metadata": {}, + "outputs": [], + "source": [ + "source = star_field(n=15000,mmin=15, mmax=25, width=10000, height=10000)\n", + "supernova = Star(\n", + " position=(1, 0), # offset from center in arcsec\n", + " brightness=(\"J\", -15), # point source brightness in J-band in mag\n", + " spectrum=Spextrum(\"sne/sn1a\").redshift(z=0.0025), # SN1a spectrum\n", + ")\n", + "galaxy_1 = Sersic(\n", + " params={\"n\": 4,\n", + " \"r_eff\": 400*u.arcsec,\n", + " \"amplitude\":10 ,\n", + " \"ellip\": 0.625,\n", + " \"theta\": 0.87,\n", + " \"c\": -0.1\n", + " },\n", + " position=(0.0, 0.0),\n", + " spectrum=Spextrum(\"brown/NGC0628\").redshift(z=0.0025),\n", + " brightness=(\"J\", 8.48),\n", + ")\n", + "\n", + "simulation_params = {\n", + " \"pixel_scale\": 2.48 * u.arcsec/u.pix, # pixel_scale off dreams\n", + " \"height\": 500,\n", + " \"width\": 500,\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d67ea46a-34ca-498a-a05f-1062a9815ecd", + "metadata": {}, + "outputs": [], + "source": [ + "source_1 = source + supernova.to_source() + galaxy_1.to_source(simulation_params)\n", + "\n", + "source_1.fields[1].field[\"x\"] = 2300 # supernova position\n", + "source_1.fields[1].field[\"y\"] = 2500\n", + "source_1.fields[2].shift(2200, 2500) # Galaxy position" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3cca439a-2ba9-4224-99d4-4cde03d7808f", + "metadata": {}, + "outputs": [], + "source": [ + "dreams.observe(source_1)\n", + "hdul = dreams.readout('dreams_supernova.fits')\n", + "data = hdul[0][2].data # Dreams detector 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eb1d4ac-9e50-4efa-b1da-2a2b68a7d220", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(20,20))\n", + "plt.imshow(data, origin=\"lower\", norm=LogNorm(vmin=9300000,vmax=9400000))\n", + "plt.colorbar()\n", + "plt.title(\"DREAMS Detector 1\")\n", + "plt.xlabel(\"X Pixels\")\n", + "plt.ylabel(\"Y Pixels\")\n", + "plt.show() " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 2b1435ab3b3e0aa57207f3d1539a543a741f929a Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:54:52 +0200 Subject: [PATCH 34/36] Remove unfinished notebooks, the Supernova one is better --- DREAMS/unfinished/Elliptical.ipynb | 98 ----------- DREAMS/unfinished/Galaxy.ipynb | 143 ---------------- DREAMS/unfinished/Star1.ipynb | 112 ------------- DREAMS/unfinished/field.ipynb | 253 ----------------------------- DREAMS/unfinished/inst_pkgs | 1 - 5 files changed, 607 deletions(-) delete mode 100644 DREAMS/unfinished/Elliptical.ipynb delete mode 100644 DREAMS/unfinished/Galaxy.ipynb delete mode 100644 DREAMS/unfinished/Star1.ipynb delete mode 100644 DREAMS/unfinished/field.ipynb delete mode 120000 DREAMS/unfinished/inst_pkgs diff --git a/DREAMS/unfinished/Elliptical.ipynb b/DREAMS/unfinished/Elliptical.ipynb deleted file mode 100644 index 58131b08..00000000 --- a/DREAMS/unfinished/Elliptical.ipynb +++ /dev/null @@ -1,98 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "7369e1c2-9dac-443c-87e9-80a744e0e59f", - "metadata": {}, - "outputs": [], - "source": [ - "#Elliptical Galaxy\n", - "import os\n", - "import pytest\n", - "import numpy as np\n", - "from astropy.io.fits import HDUList\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib.colors import LogNorm\n", - "import scopesim\n", - "import synphot\n", - "from scopesim_templates.extragalactic.galaxies import elliptical\n", - "from astropy.io import fits\n", - "\n", - "\n", - "from scopesim import rc\n", - "from scopesim.source.source_templates import star_field\n", - "import scopesim_templates as sim_tp\n", - "from scopesim.optics.fov_manager import FOVManager\n", - "\n", - "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", - "cmds[\"!OBS.dit\"] = 1000\n", - "cmds[\"!OBS.ndit\"] = 1000\n", - "cmds[\"!DET.bin_size\"] = 1\n", - "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", - "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", - "cmds[\"SIM.sub_pixel.flag\"] = True\n", - "dreams = scopesim.OpticalTrain(cmds)\n", - "dreams[\"detector_linearity\"].include = False\n", - "\n", - "print(\"scopesim package loaded successfully.\")\n", - "src = elliptical(half_light_radius=11500, \n", - " pixel_scale=2.48, \n", - " filter_name=\"J\", amplitude=17, \n", - " normalization=\"total\", \n", - " n=4, \n", - " ellipticity=0.5, \n", - " angle=30)\n", - "dreams.observe(src)\n", - "hdus = dreams.readout()\n", - "dreams.readout(filename=\"ellip.fits\")\n", - "plt.subplot(122)\n", - "im = hdus[0][1].data\n", - "plt.imshow(im, norm=LogNorm())\n", - "plt.colorbar()\n", - "plt.title(\"Observed Galaxy Field\")\n", - "plt.xlabel(\"X Pixels\")\n", - "plt.ylabel(\"Y Pixels\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ce92e256-3a73-4e7f-85cb-00943118dab1", - "metadata": {}, - "outputs": [], - "source": [ - "detector_order = [2, 1, 4, 3, 6, 5]\n", - "plt.figure(figsize=(20, 20))\n", - "for plot_number, hdu_number in enumerate(detector_order, 1):\n", - " plt.subplot(3, 2, plot_number)\n", - " plt.imshow(np.log10(hdus[0][hdu_number].data), origin=\"lower\")\n", - " plt.colorbar()\n", - " plt.title(f\"HDU {hdu_number}\")\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/DREAMS/unfinished/Galaxy.ipynb b/DREAMS/unfinished/Galaxy.ipynb deleted file mode 100644 index 174536c3..00000000 --- a/DREAMS/unfinished/Galaxy.ipynb +++ /dev/null @@ -1,143 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "59135b96-d114-42a3-ace8-fd81ef97cb37", - "metadata": {}, - "outputs": [], - "source": [ - "# Extragalatic\n", - "import os\n", - "import pytest\n", - "import numpy as np\n", - "from astropy.io.fits import HDUList\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib.colors import LogNorm\n", - "import scopesim\n", - "import synphot\n", - "from scopesim import Source\n", - "from astropy.io import fits\n", - "from scopesim_templates.extragalactic import galaxy\n", - "from scopesim import rc\n", - "from scopesim.source.source_templates import star_field\n", - "import scopesim_templates as sim_tp\n", - "from scopesim.optics.fov_manager import FOVManager\n", - "from scopesim_templates.extragalactic import galaxy" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "003108a8-d9d2-4aa7-8f44-a42f40d15e7b", - "metadata": {}, - "outputs": [], - "source": [ - "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", - "cmds[\"!OBS.dit\"] = 1000\n", - "cmds[\"!OBS.ndit\"] = 1000\n", - "cmds[\"!DET.bin_size\"] = 1\n", - "cmds[\"!OBS.sky.bg_mag\"] = 24.9\n", - "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", - "cmds[\"SIM.sub_pixel.flag\"] = True\n", - "dreams = scopesim.OpticalTrain(cmds)\n", - "dreams[\"detector_linearity\"].include = False\n", - "\n", - "src = galaxy(\"kc96/s0\", \n", - " z=1.5, \n", - " amplitude=17,\n", - " filter_curve=\"J\", \n", - " pixel_scale=1, \n", - " r_eff=2.5 * 1000, \n", - " n=4, \n", - " ellip=0.5, \n", - " theta=45, \n", - " extend=3)\n", - "\n", - "dreams.observe(src)\n", - "hdus = dreams.readout()\n", - "dreams.readout(filename=\"Galaxy.fits\")\n", - "\n", - "# Observe the source\n", - "dreams.observe(src)\n", - "\n", - "# Readout\n", - "hdus = dreams.readout()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "66f034b5-9f94-4940-8d01-9dbf68a38a4c", - "metadata": {}, - "outputs": [], - "source": [ - "len(hdus[0])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb97295d-f971-42fa-9871-12978cc46df3", - "metadata": {}, - "outputs": [], - "source": [ - "plt.subplot(122)\n", - "im = hdus[0][1].data\n", - "plt.imshow(im, norm=LogNorm())\n", - "plt.colorbar()\n", - "plt.title(\"Observed Galaxy Field\")\n", - "plt.xlabel(\"X Pixels\")\n", - "plt.ylabel(\"Y Pixels\")\n", - "\n", - "detector_order = [2, 1, 4, 3, 6, 5]\n", - "plt.figure(figsize=(20, 20))\n", - "for plot_number, hdu_number in enumerate(detector_order, 1):\n", - " plt.subplot(3, 2, plot_number)\n", - " # plt.imshow(np.log10(src.fields[0].data), origin=\"lower\")\n", - " plt.imshow(np.log10(hdus[0][hdu_number].data), origin=\"lower\")\n", - " plt.colorbar()\n", - " plt.title(f\"HDU {hdu_number}\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "29d3838d-a8a0-4d79-97c9-d510b62af46d", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6bcd6158-f97c-4be4-9d99-ccef5241f13e", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/DREAMS/unfinished/Star1.ipynb b/DREAMS/unfinished/Star1.ipynb deleted file mode 100644 index 72c6211b..00000000 --- a/DREAMS/unfinished/Star1.ipynb +++ /dev/null @@ -1,112 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "cf9ae246-6aae-457e-ab2a-f174f1c3b63c", - "metadata": {}, - "outputs": [], - "source": [ - "import pytest\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib.colors import LogNorm\n", - "import scopesim\n", - "import synphot\n", - "from scopesim import Source\n", - "from astropy.io import fits\n", - "from scopesim import rc" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f6464803-a473-458f-843b-317f88831e0f", - "metadata": {}, - "outputs": [], - "source": [ - "cmds = scopesim.UserCommands(use_instrument=\"DREAMS\")\n", - "cmds[\"!OBS.dit\"] = 10\n", - "cmds[\"!DET.bin_size\"] = 1\n", - "cmds[\"!OBS.sky.bg_mag\"] = 14.9\n", - "cmds[\"!OBS.sky.filter_name\"] = \"J\"\n", - "cmds[\"SIM.sub_pixel.flag\"] = True\n", - "dreams = scopesim.OpticalTrain(cmds)\n", - "dreams[\"detector_linearity\"].include = False\n", - "print(\"scopesim package loaded successfully.\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4e10a549-ecc1-4231-bbe0-44f6f19180ce", - "metadata": {}, - "outputs": [], - "source": [ - "x, y = np.meshgrid(np.arange(100), np.arange(100))\n", - "img = np.exp(-1 * ( ( (x - 50) / 5)**2 + ( (y - 50) / 5)**2 ) )\n", - "# Fits headers of the image. Yes it needs a WCS\n", - "hdr = fits.Header(dict(NAXIS=2,NAXIS1=img.shape[0]+1,NAXIS2=img.shape[1]+1, CRPIX1=img.shape[0] / 2, CRPIX2=img.shape[1] / 2, CRVAL1=0, CRVAL2=0, CDELT1=0.2/3600, CDELT2=0.2/3600,\n", - "CUNIT1=\"DEG\", CUNIT2=\"DEG\", CTYPE1='RA---TAN', CTYPE2='DEC--TAN'))\n", - "# Creating an ImageHDU object\n", - "hdu = fits.ImageHDU(data=img, header=hdr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0b84049-a9cb-415c-8f92-dce5256b8d7f", - "metadata": {}, - "outputs": [], - "source": [ - "# Creating of a black body spectrum\n", - "wave = np.arange(1000, 35000, 10 )\n", - "bb = synphot.models.BlackBody1D(temperature=5000)\n", - "sp = synphot.SourceSpectrum(synphot.Empirical1D, points=wave, lookup_table=bb(wave))\n", - "src = Source(image_hdu=hdu, spectra=sp)\n", - "src.shift(10, 10)\n", - "dreams.observe(src)\n", - "hdus = dreams.readout()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a2ae288-636c-40b6-b5e7-8bc16ff4d243", - "metadata": {}, - "outputs": [], - "source": [ - "im = hdus[0][1].data\n", - "detector_order = [2, 1, 4, 3, 6, 5]\n", - "plt.figure(figsize=(20, 20))\n", - "for plot_number, hdu_number in enumerate(detector_order, 1):\n", - " plt.subplot(3, 2, plot_number)\n", - " plt.imshow(hdus[0][hdu_number].data, origin=\"lower\", norm=LogNorm())\n", - " plt.colorbar()\n", - " \n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "/gnu/store/gp20syp5vcyg7y6rksyp6fpvjcv4yf1c-python-3.12.12/bin/python3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/DREAMS/unfinished/field.ipynb b/DREAMS/unfinished/field.ipynb deleted file mode 100644 index a988c514..00000000 --- a/DREAMS/unfinished/field.ipynb +++ /dev/null @@ -1,253 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Mczzz3KcUzL0", - "outputId": "0748f1e7-7361-4346-cc74-00e3cc967baa" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "from scopesim_templates.stellar import cluster\n", - "import astropy\n", - "from astropy.table import QTable\n", - "import astropy.units as u\n", - "import numpy as np\n", - "import numpy as np\n", - "from astropy.table import Table\n", - "import matplotlib.pyplot as plt\n", - "from astroquery.simbad import Simbad\n", - "from astropy.coordinates import SkyCoord\n", - "import astropy.units as u\n", - "import numpy as np\n", - "from astropy.table import Table\n", - "import matplotlib.pyplot as plt\n", - "from astroquery.gaia import Gaia\n", - "import astropy.units as u\n", - "from astropy.coordinates import SkyCoord\n", - "from scopesim_templates.stellar import star_field, star_grid\n", - "import numpy as np\n", - "from astropy.table import Table\n", - "import matplotlib.pyplot as plt\n", - "from astroquery.gaia import Gaia\n", - "import astropy.units as u\n", - "from astropy.coordinates import SkyCoord\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "src = cluster(mass=1E3, distance=50000, core_radius=1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hQvqPUhqVjUZ", - "outputId": "583b2ac8-7abe-40a5-bbeb-182ba3bede4e" - }, - "outputs": [], - "source": [ - "src.fields\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 714 - }, - "id": "EimFNanwVrDD", - "outputId": "75ba5c44-4072-4889-bb18-6f94171222c7" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "plt.figure(figsize=(8, 8))\n", - "plt.plot(src.fields[0][\"x\"], src.fields[0][\"y\"], '.')\n", - "plt.xlabel(\"X [arcsec]\")\n", - "plt.ylabel(\"Y [arcsec]\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "uUnEhR9ClNDp", - "outputId": "31f08023-3207-48e6-dc82-14f08867fb28" - }, - "outputs": [], - "source": [ - "\n", - "# Define the query for Gaia\n", - "query = \"\"\"\n", - "SELECT TOP 1000\n", - " source_id,\n", - " ra,\n", - " dec,\n", - " phot_g_mean_mag,\n", - " bp_rp\n", - "FROM gaiadr2.gaia_source\n", - "WHERE CONTAINS(\n", - " POINT('ICRS', ra, dec),\n", - " CIRCLE('ICRS', 75.0, -65.0, 5)\n", - ")=1\n", - "\"\"\"\n", - "\n", - "# Execute the query\n", - "job = Gaia.launch_job(query)\n", - "result = job.get_results()\n", - "\n", - "# Convert the results to an Astropy table\n", - "star_table = Table(result)\n", - "\n", - "# Display the table\n", - "print(star_table)\n", - "\n", - "# Plot the star field\n", - "plt.figure(figsize=(10, 10))\n", - "plt.scatter(star_table['ra'], star_table['dec'], s=10, c='white')\n", - "plt.gca().invert_yaxis() # Invert y-axis to match astronomical convention\n", - "plt.gca().set_facecolor('black') # Set the background color to black\n", - "plt.title('Star Field of Dorado Constellation')\n", - "plt.xlabel('RA (degrees)')\n", - "plt.ylabel('Dec (degrees)')\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "teaFHYJDmH8O", - "outputId": "48a550f6-69fe-4ba5-92f3-81364ef49be0" - }, - "outputs": [], - "source": [ - "\n", - "\n", - "# Define the query for Gaia\n", - "query = \"\"\"\n", - "SELECT TOP 1000\n", - " source_id,\n", - " ra,\n", - " dec,\n", - " phot_g_mean_mag,\n", - " bp_rp\n", - "FROM gaiadr2.gaia_source\n", - "WHERE CONTAINS(\n", - " POINT('ICRS', ra, dec),\n", - " CIRCLE('ICRS', 90.0, -75.0, 5)\n", - ")=1\n", - "\"\"\"\n", - "\n", - "# Execute the query\n", - "job = Gaia.launch_job(query)\n", - "result = job.get_results()\n", - "\n", - "# Convert the results to an Astropy table\n", - "star_table = Table(result)\n", - "\n", - "# Display the table\n", - "print(star_table)\n", - "\n", - "# Plot the star field\n", - "plt.figure(figsize=(10, 10))\n", - "plt.scatter(star_table['ra'], star_table['dec'], s=10, c='white')\n", - "plt.gca().invert_yaxis() # Invert y-axis to match astronomical convention\n", - "plt.gca().set_facecolor('black') # Set the background color to black\n", - "plt.title('Star Field of Mensa Constellation')\n", - "plt.xlabel('RA (degrees)')\n", - "plt.ylabel('Dec (degrees)')\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 617 - }, - "id": "Mtz9oAyYmu5o", - "outputId": "7a86eefd-bd6f-4fd9-f5b2-49c36208e2c3" - }, - "outputs": [], - "source": [ - "\n", - "field = star_field(n=400, mmin=15, mmax=25, width=20, height=20, filter_name=\"Ks\")\n", - "grid = star_grid(n=400, mmin=15, mmax=25, separation=1 , filter_name=\"Ks\")\n", - "\n", - "plt.figure(figsize=(14, 7))\n", - "plt.subplot(121)\n", - "\n", - "size = np.log10(field.fields[0][\"weight\"])**2\n", - "plt.scatter(field.fields[0][\"x\"], field.fields[0][\"y\"], s=size, marker=\"o\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tsRbG1pAnTch" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/DREAMS/unfinished/inst_pkgs b/DREAMS/unfinished/inst_pkgs deleted file mode 120000 index c25bddb6..00000000 --- a/DREAMS/unfinished/inst_pkgs +++ /dev/null @@ -1 +0,0 @@ -../.. \ No newline at end of file From a9b4c0d781578782b4f91d72f8bfb9fddcefdcfa Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:56:52 +0200 Subject: [PATCH 35/36] Rename cluster2 --- DREAMS/example_notebooks/{cluster2.ipynb => Cluster.ipynb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename DREAMS/example_notebooks/{cluster2.ipynb => Cluster.ipynb} (100%) diff --git a/DREAMS/example_notebooks/cluster2.ipynb b/DREAMS/example_notebooks/Cluster.ipynb similarity index 100% rename from DREAMS/example_notebooks/cluster2.ipynb rename to DREAMS/example_notebooks/Cluster.ipynb From 3865399e806b81cfab7bc7df5c1189cdda0f94cc Mon Sep 17 00:00:00 2001 From: Hugo Buddelmeijer Date: Tue, 30 Jun 2026 13:59:57 +0200 Subject: [PATCH 36/36] Cleanup some whitespace --- DREAMS/FPA_array_layout.dat | 3 --- DREAMS/LIST_DREAMS_mirrors_static.dat | 2 +- DREAMS/TER_atmosphere.dat | 2 -- DREAMS/TER_mirror.dat | 2 +- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/DREAMS/FPA_array_layout.dat b/DREAMS/FPA_array_layout.dat index 939908fc..6e39fb24 100644 --- a/DREAMS/FPA_array_layout.dat +++ b/DREAMS/FPA_array_layout.dat @@ -17,6 +17,3 @@ id x_cen y_cen x_size y_size pixel_size angle gain 4 8.015 0.000 1280 1024 0.012 0.0 4.3 5 -8.015 -12.95 1280 1024 0.012 0.0 4.3 6 8.015 -12.95 1280 1024 0.012 0.0 4.3 - - - diff --git a/DREAMS/LIST_DREAMS_mirrors_static.dat b/DREAMS/LIST_DREAMS_mirrors_static.dat index 2374a591..39fbc2c2 100644 --- a/DREAMS/LIST_DREAMS_mirrors_static.dat +++ b/DREAMS/LIST_DREAMS_mirrors_static.dat @@ -7,4 +7,4 @@ # name outer inner angle temperature action filename M1 0.5 0.0 0 -40 reflection TER_mirror.dat -M2 0.5 0.0 0 -40 reflection TER_mirror.dat \ No newline at end of file +M2 0.5 0.0 0 -40 reflection TER_mirror.dat diff --git a/DREAMS/TER_atmosphere.dat b/DREAMS/TER_atmosphere.dat index a471871f..12b531ac 100644 --- a/DREAMS/TER_atmosphere.dat +++ b/DREAMS/TER_atmosphere.dat @@ -355,5 +355,3 @@ wavelength transmission emission 1334.0 0.834253 0.1 1334.5 0.886711 0.1 1335.0 0.904685 0.1 - - diff --git a/DREAMS/TER_mirror.dat b/DREAMS/TER_mirror.dat index bd8459df..bdb9484d 100644 --- a/DREAMS/TER_mirror.dat +++ b/DREAMS/TER_mirror.dat @@ -19,4 +19,4 @@ wavelength reflection 1.4 0.85 1.5 0.85 1.6 0.85 -1.7 0.85 \ No newline at end of file +1.7 0.85